diff options
Diffstat (limited to 'src/inc/fixuppointer.h')
-rw-r--r-- | src/inc/fixuppointer.h | 33 |
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; }; |