summaryrefslogtreecommitdiff
path: root/src/md
diff options
context:
space:
mode:
authorEugene Zemtsov <Eugene.Zemtsov@microsoft.com>2015-06-05 15:03:44 -0700
committerEugene Zemtsov <Eugene.Zemtsov@microsoft.com>2015-06-05 15:03:44 -0700
commit72063e16410e3f3d89a1c346f50fc38f5a691093 (patch)
tree543878000ffedddf15ff060e738182f9a896d350 /src/md
parent4f9f660cc46c1d719e139da96c43ed71dfc51ebf (diff)
downloadcoreclr-72063e16410e3f3d89a1c346f50fc38f5a691093.tar.gz
coreclr-72063e16410e3f3d89a1c346f50fc38f5a691093.tar.bz2
coreclr-72063e16410e3f3d89a1c346f50fc38f5a691093.zip
Fix bug: CoreCLR debugger couldn't make more than one EnC edit to a method. Second and all further attempts failed, moreover sometimes VS debugger would crash with AV trying to do EnC. (TFS bug #1172983)
[tfs-changeset: 1483755]
Diffstat (limited to 'src/md')
-rw-r--r--src/md/enc/metamodelenc.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/md/enc/metamodelenc.cpp b/src/md/enc/metamodelenc.cpp
index 1b3c733ae4..e19cf7a717 100644
--- a/src/md/enc/metamodelenc.cpp
+++ b/src/md/enc/metamodelenc.cpp
@@ -264,14 +264,18 @@ CMiniMdRW::ApplyDelta(
return E_INVALIDARG;
}
+#ifndef FEATURE_CORECLR
// Verify that the delta is based on the base.
IfFailGo(mdDelta.getEncBaseIdOfModule(pModDelta, &GuidDelta));
IfFailGo(getEncBaseIdOfModule(pModBase,&GuidBase));
- if (CLRConfig::GetConfigValue(CLRConfig::INTERNAL_MD_DeltaCheck) && (GuidDelta != GuidBase))
+ if (CLRConfig::GetConfigValue(CLRConfig::INTERNAL_MD_DeltaCheck) &&
+ CLRConfig::GetConfigValue(CLRConfig::INTERNAL_MD_UseMinimalDeltas) &&
+ (GuidDelta != GuidBase))
{
_ASSERTE(!"The Delta MetaData is based on a different generation than the current MetaData.");
return E_INVALIDARG;
}
+#endif //!FEATURE_CORECLR
// Let the other md prepare for sparse records.
IfFailGo(mdDelta.StartENCMap());