summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Chen <jochen@microsoft.com>2016-06-03 10:18:37 -0700
committerJohn Chen <jochen@microsoft.com>2016-06-03 10:18:37 -0700
commit5f455600c0e0155d80bd814d4a60b44f6ac6bcbb (patch)
tree3fa7d8970b037c8c69ba3f206e3797250dfac439
parentaf37c3b7bf4160f4af0f517526e304bcba271bb5 (diff)
downloadcoreclr-5f455600c0e0155d80bd814d4a60b44f6ac6bcbb.tar.gz
coreclr-5f455600c0e0155d80bd814d4a60b44f6ac6bcbb.tar.bz2
coreclr-5f455600c0e0155d80bd814d4a60b44f6ac6bcbb.zip
Fix desktop NGen break caused by CoreCLR change, and add a missing contract
[tfs-changeset: 1610323]
-rw-r--r--src/vm/compile.h1
-rw-r--r--src/vm/genericdict.cpp10
2 files changed, 9 insertions, 2 deletions
diff --git a/src/vm/compile.h b/src/vm/compile.h
index 97c6cc1465..c7a2d06ce9 100644
--- a/src/vm/compile.h
+++ b/src/vm/compile.h
@@ -531,6 +531,7 @@ class CEEPreloader : public ICorCompilePreloader
void AppendUncompiledMethod(MethodDesc *pMD)
{
+ STANDARD_VM_CONTRACT;
if (m_methodCompileLimit > 0)
{
m_uncompiledMethods.Append(pMD);
diff --git a/src/vm/genericdict.cpp b/src/vm/genericdict.cpp
index 65638d1402..dfb9ea94dd 100644
--- a/src/vm/genericdict.cpp
+++ b/src/vm/genericdict.cpp
@@ -682,7 +682,10 @@ Dictionary::PopulateEntry(
th = th.GetMethodTable()->GetMethodTableMatchingParentClass(declaringType.AsMethodTable());
}
- th.GetMethodTable()->EnsureInstanceActive();
+ if (!IsCompilationProcess())
+ {
+ th.GetMethodTable()->EnsureInstanceActive();
+ }
result = (CORINFO_GENERIC_HANDLE)th.AsPtr();
break;
@@ -917,7 +920,10 @@ Dictionary::PopulateEntry(
DWORD fieldIndex;
IfFailThrow(ptr.GetData(&fieldIndex));
- th.AsMethodTable()->EnsureInstanceActive();
+ if (!IsCompilationProcess())
+ {
+ th.AsMethodTable()->EnsureInstanceActive();
+ }
result = (CORINFO_GENERIC_HANDLE)th.AsMethodTable()->GetFieldDescByIndex(fieldIndex);
break;