summaryrefslogtreecommitdiff
path: root/src/vm/precode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/precode.cpp')
-rw-r--r--src/vm/precode.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/vm/precode.cpp b/src/vm/precode.cpp
index 8891d5a903..103fc03959 100644
--- a/src/vm/precode.cpp
+++ b/src/vm/precode.cpp
@@ -425,6 +425,29 @@ void Precode::Init(PrecodeType t, MethodDesc* pMD, LoaderAllocator *pLoaderAlloc
_ASSERTE(IsValidType(GetType()));
}
+void Precode::ResetTargetInterlocked()
+{
+ WRAPPER_NO_CONTRACT;
+
+ PrecodeType precodeType = GetType();
+ switch (precodeType)
+ {
+ case PRECODE_STUB:
+ AsStubPrecode()->ResetTargetInterlocked();
+ break;
+
+#ifdef HAS_FIXUP_PRECODE
+ case PRECODE_FIXUP:
+ AsFixupPrecode()->ResetTargetInterlocked();
+ break;
+#endif // HAS_FIXUP_PRECODE
+
+ default:
+ UnexpectedPrecodeType("Precode::ResetTargetInterlocked", precodeType);
+ break;
+ }
+}
+
BOOL Precode::SetTargetInterlocked(PCODE target, BOOL fOnlyRedirectFromPrestub)
{
WRAPPER_NO_CONTRACT;