Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Mosier <smosier@microsoft.com>2015-10-14 19:59:44 +0300
committerScott Mosier <smosier@microsoft.com>2015-10-14 20:50:33 +0300
commit015b60a6ae813714a6dc576c36df4637880ab897 (patch)
tree76a3288dffb3ae226b9b2fd77747816f214f65f2 /src/Native/Runtime/ObjectLayout.h
parent9ceafad81f9c68f16c6be2e11ff609ce9f228ae9 (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.h23
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;