summaryrefslogtreecommitdiff
path: root/src/inc/fixuppointer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/inc/fixuppointer.h')
-rw-r--r--src/inc/fixuppointer.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/inc/fixuppointer.h b/src/inc/fixuppointer.h
index 5a897e44ea..abed1f96a8 100644
--- a/src/inc/fixuppointer.h
+++ b/src/inc/fixuppointer.h
@@ -156,6 +156,26 @@ public:
}
#endif // DACCESS_COMPILE
+ static TADDR GetRelativeMaybeNull(TADDR base, TADDR addr)
+ {
+ LIMITED_METHOD_DAC_CONTRACT;
+ if (addr == NULL)
+ {
+ return NULL;
+ }
+ else
+ {
+ return addr - base;
+ }
+ }
+
+ static TADDR GetRelative(TADDR base, TADDR addr)
+ {
+ LIMITED_METHOD_DAC_CONTRACT;
+ PRECONDITION(addr != NULL);
+ return addr - base;
+ }
+
private:
#ifndef DACCESS_COMPILE
Volatile<TADDR> m_delta;
@@ -721,6 +741,19 @@ public:
}
#endif
+ static TADDR GetRelativeMaybeNull(TADDR base, TADDR addr)
+ {
+ LIMITED_METHOD_DAC_CONTRACT;
+ return addr;
+ }
+
+ static TADDR GetRelative(TADDR base, TADDR addr)
+ {
+ LIMITED_METHOD_DAC_CONTRACT;
+ PRECONDITION(addr != NULL);
+ return addr;
+ }
+
private:
TADDR m_ptr;
};