summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Mason <davmason@microsoft.com>2018-01-25 23:41:29 -0800
committerGitHub <noreply@github.com>2018-01-25 23:41:29 -0800
commitcb250bf00d10417b57559c86560a76975574b247 (patch)
tree08c19bbac1ea75b62247908106669ac16a8d3679 /src
parenta118b0571d8ae8bd34c275d02294fa19251345b6 (diff)
downloadcoreclr-cb250bf00d10417b57559c86560a76975574b247.tar.gz
coreclr-cb250bf00d10417b57559c86560a76975574b247.tar.bz2
coreclr-cb250bf00d10417b57559c86560a76975574b247.zip
fix pointer in ILCodeVersionNode so it uses PTR_COR_ILMETHOD instead of COR_IL_METHOD *, which was causing a crash in the DAC (#16003)
Diffstat (limited to 'src')
-rw-r--r--src/vm/codeversion.cpp6
-rw-r--r--src/vm/codeversion.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/vm/codeversion.cpp b/src/vm/codeversion.cpp
index da808e8839..01aad66d92 100644
--- a/src/vm/codeversion.cpp
+++ b/src/vm/codeversion.cpp
@@ -518,9 +518,11 @@ ILCodeVersionNode::ILCodeVersionNode() :
m_rejitId(0),
m_pNextILVersionNode(dac_cast<PTR_ILCodeVersionNode>(nullptr)),
m_rejitState(ILCodeVersion::kStateRequested),
- m_pIL(dac_cast<PTR_COR_ILMETHOD>(nullptr)),
+ m_pIL(),
m_jitFlags(0)
-{}
+{
+ m_pIL.Store(dac_cast<PTR_COR_ILMETHOD>(nullptr));
+}
#ifndef DACCESS_COMPILE
ILCodeVersionNode::ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id) :
diff --git a/src/vm/codeversion.h b/src/vm/codeversion.h
index 768c9cdb55..c548bea316 100644
--- a/src/vm/codeversion.h
+++ b/src/vm/codeversion.h
@@ -340,7 +340,7 @@ private:
ReJITID m_rejitId;
PTR_ILCodeVersionNode m_pNextILVersionNode;
Volatile<ILCodeVersion::RejitFlags> m_rejitState;
- VolatilePtr<COR_ILMETHOD> m_pIL;
+ VolatilePtr<COR_ILMETHOD, PTR_COR_ILMETHOD> m_pIL;
Volatile<DWORD> m_jitFlags;
InstrumentedILOffsetMapping m_instrumentedILMap;
};