diff options
Diffstat (limited to 'src/gc')
-rw-r--r-- | src/gc/gchandletable.cpp | 41 | ||||
-rw-r--r-- | src/gc/gchandletableimpl.h | 18 | ||||
-rw-r--r-- | src/gc/gcinterface.h | 18 |
3 files changed, 41 insertions, 36 deletions
diff --git a/src/gc/gchandletable.cpp b/src/gc/gchandletable.cpp index 28852df038..82ab269861 100644 --- a/src/gc/gchandletable.cpp +++ b/src/gc/gchandletable.cpp @@ -23,14 +23,19 @@ void GCHandleTable::Shutdown() Ref_Shutdown(); } -void* GCHandleTable::GetGlobalHandleTable() +void* GCHandleTable::GetGlobalHandleStore() { return (void*)g_HandleTableMap.pBuckets[0]; } -void* GCHandleTable::GetNewHandleTable(void* context) +void* GCHandleTable::CreateHandleStore(void* context) { - return (void*)::Ref_CreateHandleTableBucket(ADIndex((uintptr_t)context)); +#ifndef FEATURE_REDHAWK + return (void*)::Ref_CreateHandleTableBucket(ADIndex((DWORD)(uintptr_t)context)); +#else + assert("CreateHandleStore is not implemented when FEATURE_REDHAWK is defined!"); + return nullptr; +#endif } void* GCHandleTable::GetHandleContext(OBJECTHANDLE handle) @@ -38,30 +43,30 @@ void* GCHandleTable::GetHandleContext(OBJECTHANDLE handle) return (void*)((uintptr_t)::HndGetHandleTableADIndex(::HndGetHandleTable(handle)).m_dwIndex); } -void GCHandleTable::DestroyHandleTable(void* table) +void GCHandleTable::DestroyHandleStore(void* store) { - Ref_DestroyHandleTableBucket((HandleTableBucket*) table); + Ref_DestroyHandleTableBucket((HandleTableBucket*) store); } -void GCHandleTable::UprootHandleTable(void* table) +void GCHandleTable::UprootHandleStore(void* store) { - Ref_RemoveHandleTableBucket((HandleTableBucket*) table); + Ref_RemoveHandleTableBucket((HandleTableBucket*) store); } -bool GCHandleTable::ContainsHandle(void* table, OBJECTHANDLE handle) +bool GCHandleTable::ContainsHandle(void* store, OBJECTHANDLE handle) { - return ((HandleTableBucket*)table)->Contains(handle); + return ((HandleTableBucket*)store)->Contains(handle); } -OBJECTHANDLE GCHandleTable::CreateHandleOfType(void* table, Object* object, int type) +OBJECTHANDLE GCHandleTable::CreateHandleOfType(void* store, Object* object, int type) { - HHANDLETABLE handletable = ((HandleTableBucket*)table)->pTable[GetCurrentThreadHomeHeapNumber()]; + HHANDLETABLE handletable = ((HandleTableBucket*)store)->pTable[GetCurrentThreadHomeHeapNumber()]; return ::HndCreateHandle(handletable, type, ObjectToOBJECTREF(object)); } -OBJECTHANDLE GCHandleTable::CreateHandleOfType(void* table, Object* object, int type, int heapToAffinitizeTo) +OBJECTHANDLE GCHandleTable::CreateHandleOfType(void* store, Object* object, int type, int heapToAffinitizeTo) { - HHANDLETABLE handletable = ((HandleTableBucket*)table)->pTable[heapToAffinitizeTo]; + HHANDLETABLE handletable = ((HandleTableBucket*)store)->pTable[heapToAffinitizeTo]; return ::HndCreateHandle(handletable, type, ObjectToOBJECTREF(object)); } @@ -70,15 +75,15 @@ OBJECTHANDLE GCHandleTable::CreateGlobalHandleOfType(Object* object, int type) return ::HndCreateHandle(g_HandleTableMap.pBuckets[0]->pTable[GetCurrentThreadHomeHeapNumber()], type, ObjectToOBJECTREF(object)); } -OBJECTHANDLE GCHandleTable::CreateHandleWithExtraInfo(void* table, Object* object, int type, void* pExtraInfo) +OBJECTHANDLE GCHandleTable::CreateHandleWithExtraInfo(void* store, Object* object, int type, void* pExtraInfo) { - HHANDLETABLE handletable = ((HandleTableBucket*)table)->pTable[GetCurrentThreadHomeHeapNumber()]; + HHANDLETABLE handletable = ((HandleTableBucket*)store)->pTable[GetCurrentThreadHomeHeapNumber()]; return ::HndCreateHandle(handletable, type, ObjectToOBJECTREF(object), reinterpret_cast<uintptr_t>(pExtraInfo)); } -OBJECTHANDLE GCHandleTable::CreateDependentHandle(void* table, Object* primary, Object* secondary) +OBJECTHANDLE GCHandleTable::CreateDependentHandle(void* store, Object* primary, Object* secondary) { - HHANDLETABLE handletable = ((HandleTableBucket*)table)->pTable[GetCurrentThreadHomeHeapNumber()]; + HHANDLETABLE handletable = ((HandleTableBucket*)store)->pTable[GetCurrentThreadHomeHeapNumber()]; OBJECTHANDLE handle = ::HndCreateHandle(handletable, HNDTYPE_DEPENDENT, ObjectToOBJECTREF(primary)); ::SetDependentHandleSecondary(handle, ObjectToOBJECTREF(secondary)); @@ -87,7 +92,7 @@ OBJECTHANDLE GCHandleTable::CreateDependentHandle(void* table, Object* primary, OBJECTHANDLE GCHandleTable::CreateDuplicateHandle(OBJECTHANDLE handle) { - return ::HndCreateHandle(HndGetHandleTable(handle), HNDTYPE_DEFAULT, ObjectFromHandle(handle)); + return ::HndCreateHandle(HndGetHandleTable(handle), HNDTYPE_DEFAULT, ::HndFetchHandle(handle)); } void GCHandleTable::DestroyHandleOfType(OBJECTHANDLE handle, int type) diff --git a/src/gc/gchandletableimpl.h b/src/gc/gchandletableimpl.h index a45f98395d..af20f52e54 100644 --- a/src/gc/gchandletableimpl.h +++ b/src/gc/gchandletableimpl.h @@ -14,25 +14,25 @@ public: virtual void Shutdown(); - virtual void* GetGlobalHandleTable(); + virtual void* GetGlobalHandleStore(); - virtual void* GetNewHandleTable(void* context); + virtual void* CreateHandleStore(void* context); virtual void* GetHandleContext(OBJECTHANDLE handle); - virtual void DestroyHandleTable(void* table); + virtual void DestroyHandleStore(void* store); - virtual void UprootHandleTable(void* table); + virtual void UprootHandleStore(void* store); - virtual bool ContainsHandle(void* table, OBJECTHANDLE handle); + virtual bool ContainsHandle(void* store, OBJECTHANDLE handle); - virtual OBJECTHANDLE CreateHandleOfType(void* table, Object* object, int type); + virtual OBJECTHANDLE CreateHandleOfType(void* store, Object* object, int type); - virtual OBJECTHANDLE CreateHandleOfType(void* table, Object* object, int type, int heapToAffinitizeTo); + virtual OBJECTHANDLE CreateHandleOfType(void* store, Object* object, int type, int heapToAffinitizeTo); - virtual OBJECTHANDLE CreateHandleWithExtraInfo(void* table, Object* object, int type, void* pExtraInfo); + virtual OBJECTHANDLE CreateHandleWithExtraInfo(void* store, Object* object, int type, void* pExtraInfo); - virtual OBJECTHANDLE CreateDependentHandle(void* table, Object* primary, Object* secondary); + virtual OBJECTHANDLE CreateDependentHandle(void* store, Object* primary, Object* secondary); virtual OBJECTHANDLE CreateGlobalHandleOfType(Object* object, int type); diff --git a/src/gc/gcinterface.h b/src/gc/gcinterface.h index b2bfbb7298..cac2ba7114 100644 --- a/src/gc/gcinterface.h +++ b/src/gc/gcinterface.h @@ -411,23 +411,23 @@ public: virtual void* GetHandleContext(OBJECTHANDLE handle) = 0; - virtual void* GetGlobalHandleTable() = 0; + virtual void* GetGlobalHandleStore() = 0; - virtual void* GetNewHandleTable(void* context) = 0; + virtual void* CreateHandleStore(void* context) = 0; - virtual void DestroyHandleTable(void* table) = 0; + virtual void DestroyHandleStore(void* store) = 0; - virtual void UprootHandleTable(void* table) = 0; + virtual void UprootHandleStore(void* store) = 0; - virtual bool ContainsHandle(void* table, OBJECTHANDLE handle) = 0; + virtual bool ContainsHandle(void* store, OBJECTHANDLE handle) = 0; - virtual OBJECTHANDLE CreateHandleOfType(void* table, Object* object, int type) = 0; + virtual OBJECTHANDLE CreateHandleOfType(void* store, Object* object, int type) = 0; - virtual OBJECTHANDLE CreateHandleOfType(void* table, Object* object, int type, int heapToAffinitizeTo) = 0; + virtual OBJECTHANDLE CreateHandleOfType(void* store, Object* object, int type, int heapToAffinitizeTo) = 0; - virtual OBJECTHANDLE CreateHandleWithExtraInfo(void* table, Object* object, int type, void* pExtraInfo) = 0; + virtual OBJECTHANDLE CreateHandleWithExtraInfo(void* store, Object* object, int type, void* pExtraInfo) = 0; - virtual OBJECTHANDLE CreateDependentHandle(void* table, Object* primary, Object* secondary) = 0; + virtual OBJECTHANDLE CreateDependentHandle(void* store, Object* primary, Object* secondary) = 0; virtual OBJECTHANDLE CreateGlobalHandleOfType(Object* object, int type) = 0; |