summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2016-02-24 23:53:11 -0800
committerJan Kotas <jkotas@microsoft.com>2016-02-24 23:53:11 -0800
commita1775a988af161a8268d7269c432246aad486a93 (patch)
treeb6de836f028e50626cb9f8e207ee16e15f6cb9a4 /src
parente1fd6dc6d5adf7c4107e60fdb8a6bcb5fc57069f (diff)
downloadcoreclr-a1775a988af161a8268d7269c432246aad486a93.tar.gz
coreclr-a1775a988af161a8268d7269c432246aad486a93.tar.bz2
coreclr-a1775a988af161a8268d7269c432246aad486a93.zip
Fixes for GC update
Diffstat (limited to 'src')
-rwxr-xr-xsrc/gc/gcee.cpp2
-rw-r--r--src/gc/gcscan.h2
-rw-r--r--src/inc/profilepriv.h2
-rw-r--r--src/vm/proftoeeinterfaceimpl.cpp9
4 files changed, 8 insertions, 7 deletions
diff --git a/src/gc/gcee.cpp b/src/gc/gcee.cpp
index 60ff60aa90..a73770168d 100755
--- a/src/gc/gcee.cpp
+++ b/src/gc/gcee.cpp
@@ -402,7 +402,7 @@ void ProfScanRootsHelper(Object** ppObject, ScanContext *pSC, uint32_t dwFlags)
pObj = (Object*) hp->find_object(o, hp->gc_low);
}
#endif //INTERIOR_POINTERS
- ScanRootsHelper(&pObj, ppObject, pSC, dwFlags);
+ ScanRootsHelper(pObj, ppObject, pSC, dwFlags);
#endif // defined(GC_PROFILING) || defined(FEATURE_EVENT_TRACE)
}
diff --git a/src/gc/gcscan.h b/src/gc/gcscan.h
index 1088ee5340..3515b8e1b6 100644
--- a/src/gc/gcscan.h
+++ b/src/gc/gcscan.h
@@ -102,7 +102,7 @@ private:
// These two functions are utilized to scan the heap if requested by ETW
// or a profiler. The implementations of these two functions are in profheapwalkhelper.cpp.
#if defined(FEATURE_EVENT_TRACE) | defined(GC_PROFILING)
-void ScanRootsHelper(Object** ppObject, Object** ppObjectRef, ScanContext * pSC, DWORD dwFlags);
+void ScanRootsHelper(Object* pObj, Object** ppRoot, ScanContext * pSC, DWORD dwFlags);
BOOL HeapWalkHelper(Object * pBO, void * pvContext);
#endif
diff --git a/src/inc/profilepriv.h b/src/inc/profilepriv.h
index 58c7b25588..f74818c731 100644
--- a/src/inc/profilepriv.h
+++ b/src/inc/profilepriv.h
@@ -149,7 +149,7 @@ GVAL_DECL(ProfControlBlock, g_profControlBlock);
// This is the helper callback that the gc uses when walking the heap.
BOOL HeapWalkHelper(Object* pBO, void* pv);
-void ScanRootsHelper(Object** ppObj, ScanContext *pSC, uint32_t dwUnused);
+void ScanRootsHelper(Object* pObj, Object** ppRoot, ScanContext *pSC, uint32_t dwUnused);
BOOL AllocByClassHelper(Object* pBO, void* pv);
#endif // _ProfilePriv_h_
diff --git a/src/vm/proftoeeinterfaceimpl.cpp b/src/vm/proftoeeinterfaceimpl.cpp
index fe091de5d6..f4810b3f95 100644
--- a/src/vm/proftoeeinterfaceimpl.cpp
+++ b/src/vm/proftoeeinterfaceimpl.cpp
@@ -1251,14 +1251,15 @@ BOOL AllocByClassHelper(Object * pBO, void * pv)
// which does the real work.
//
// Arguments:
-// o - Object reference encountered
+// pObj - Object reference encountered
+/// ppRoot - Address that references ppObject (can be interior pointer)
// pSC - ProfilingScanContext * containing the root kind and GCReferencesData used
// by RootReference2
// dwFlags - Properties of the root as GC_CALL* constants (this function converts
// to COR_PRF_GC_ROOT_FLAGS.
//
-void ScanRootsHelper(Object** ppObject, ScanContext *pSC, uint32_t dwFlags)
+void ScanRootsHelper(Object* pObj, Object ** ppRoot, ScanContext *pSC, uint32_t dwFlags)
{
CONTRACTL
{
@@ -1305,7 +1306,7 @@ void ScanRootsHelper(Object** ppObject, ScanContext *pSC, uint32_t dwFlags)
{
// Let the profiling code know about this root reference
g_profControlBlock.pProfInterface->
- RootReference2((BYTE *)*ppObject, pPSC->dwEtwRootKind, (EtwGCRootFlags)dwEtwRootFlags, (BYTE *)rootID, &((pPSC)->pHeapId));
+ RootReference2((BYTE *)pObj, pPSC->dwEtwRootKind, (EtwGCRootFlags)dwEtwRootFlags, (BYTE *)rootID, &((pPSC)->pHeapId));
}
#endif
@@ -1318,7 +1319,7 @@ void ScanRootsHelper(Object** ppObject, ScanContext *pSC, uint32_t dwFlags)
{
ETW::GCLog::RootReference(
NULL, // handle is NULL, cuz this is a non-HANDLE root
- *ppObject, // object being rooted
+ pObj, // object being rooted
NULL, // pSecondaryNodeForDependentHandle is NULL, cuz this isn't a dependent handle
FALSE, // is dependent handle
pPSC,