diff options
author | Scott Mosier <smosier@microsoft.com> | 2015-10-14 19:59:44 +0300 |
---|---|---|
committer | Scott Mosier <smosier@microsoft.com> | 2015-10-14 20:50:33 +0300 |
commit | 015b60a6ae813714a6dc576c36df4637880ab897 (patch) | |
tree | 76a3288dffb3ae226b9b2fd77747816f214f65f2 /src/Native/Runtime/ObjectLayout.h | |
parent | 9ceafad81f9c68f16c6be2e11ff609ce9f228ae9 (diff) |
Additional GC-to-EE hookup.
Provide specialized gcenv.h for CoreRT.
Some refactoring of related gcenv stuff.
Wire up finalizer code.
Add runtime-specific scanning code.
Diffstat (limited to 'src/Native/Runtime/ObjectLayout.h')
-rw-r--r-- | src/Native/Runtime/ObjectLayout.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/Native/Runtime/ObjectLayout.h b/src/Native/Runtime/ObjectLayout.h index fd53e6ae2..1502abdfd 100644 --- a/src/Native/Runtime/ObjectLayout.h +++ b/src/Native/Runtime/ObjectLayout.h @@ -34,6 +34,10 @@ public: //------------------------------------------------------------------------------------------------- static UIntNative const SYNC_BLOCK_SKEW = sizeof(void *); +class EEType; +typedef DPTR(class EEType) PTR_EEType; +class MethodTable; + //------------------------------------------------------------------------------------------------- class Object { @@ -53,6 +57,24 @@ public: size_t GetSize(); #endif + + // + // Adapter methods for GC code so that GC and runtime code can use the same type. + // These methods are deprecated -- only use from existing GC code. + // + MethodTable * RawGetMethodTable() const + { + return (MethodTable*)m_pEEType; + } + void RawSetMethodTable(MethodTable * pMT) + { + m_pEEType = (EEType *)pMT; + } + void SetMethodTable(MethodTable * pMT) + { + m_pEEType = (EEType *)pMT; + } + ////// End adaptor methods }; typedef DPTR(Object) PTR_Object; typedef DPTR(PTR_Object) PTR_PTR_Object; @@ -66,6 +88,7 @@ static UIntNative const REFERENCE_SIZE = sizeof(Object *); //------------------------------------------------------------------------------------------------- class Array : public Object { + friend class ArrayBase; friend class AsmOffsets; UInt32 m_Length; |