diff options
author | dotnet-bot <dotnet-bot@microsoft.com> | 2015-04-07 17:23:32 -0700 |
---|---|---|
committer | dotnet-bot <dotnet-bot@microsoft.com> | 2015-04-07 17:23:32 -0700 |
commit | f1c0c7d95164abbbc4dfbd5bc312ef543256b0e0 (patch) | |
tree | 7a7156b56e9b9283ae0668491157bf1526077a3a /src/vm/gcinfodecoder.cpp | |
parent | 1afe5ce4f45045d724a4e129df4b816655d486fb (diff) | |
download | coreclr-f1c0c7d95164abbbc4dfbd5bc312ef543256b0e0.tar.gz coreclr-f1c0c7d95164abbbc4dfbd5bc312ef543256b0e0.tar.bz2 coreclr-f1c0c7d95164abbbc4dfbd5bc312ef543256b0e0.zip |
Merge changes from parent branch
[tfs-changeset: 1448103]
Diffstat (limited to 'src/vm/gcinfodecoder.cpp')
-rw-r--r-- | src/vm/gcinfodecoder.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/vm/gcinfodecoder.cpp b/src/vm/gcinfodecoder.cpp index 3fd6ca2fce..2d886d4ad4 100644 --- a/src/vm/gcinfodecoder.cpp +++ b/src/vm/gcinfodecoder.cpp @@ -53,6 +53,22 @@ } while (0) #endif // !VALIDATE_ROOT +#ifndef LOG_PIPTR +#define LOG_PIPTR(pObjRef, gcFlags, hCallBack) \ + { \ + GCCONTEXT* pGCCtx = (GCCONTEXT*)(hCallBack); \ + if (pGCCtx->sc->promotion) \ + { \ + LOG((LF_GCROOTS, LL_INFO1000, /* Part Three */ \ + LOG_PIPTR_OBJECT_CLASS(OBJECTREF_TO_UNCHECKED_OBJECTREF(*pObjRef), (gcFlags & GC_CALL_PINNED), (gcFlags & GC_CALL_INTERIOR)))); \ + } \ + else \ + { \ + LOG((LF_GCROOTS, LL_INFO1000, /* Part Three */ \ + LOG_PIPTR_OBJECT(OBJECTREF_TO_UNCHECKED_OBJECTREF(*pObjRef), (gcFlags & GC_CALL_PINNED), (gcFlags & GC_CALL_INTERIOR)))); \ + } \ + } +#endif // !LOG_PIPTR bool GcInfoDecoder::SetIsInterruptibleCB (UINT32 startOffset, UINT32 stopOffset, LPVOID hCallback) { @@ -1559,8 +1575,7 @@ void GcInfoDecoder::ReportRegisterToGC( // AMD64 VALIDATE_ROOT((gcFlags & GC_CALL_INTERIOR), hCallBack, pObjRef); - LOG((LF_GCROOTS, LL_INFO1000, /* Part Three */ - LOG_PIPTR_OBJECT_CLASS(OBJECTREF_TO_UNCHECKED_OBJECTREF(*pObjRef), (gcFlags & GC_CALL_PINNED), (gcFlags & GC_CALL_INTERIOR)))); + LOG_PIPTR(pObjRef, gcFlags, hCallBack); #endif //_DEBUG gcFlags |= CHECK_APP_DOMAIN; @@ -1657,8 +1672,7 @@ void GcInfoDecoder::ReportRegisterToGC( // ARM VALIDATE_ROOT((gcFlags & GC_CALL_INTERIOR), hCallBack, pObjRef); - LOG((LF_GCROOTS, LL_INFO1000, /* Part Three */ - LOG_PIPTR_OBJECT_CLASS(OBJECTREF_TO_UNCHECKED_OBJECTREF(*pObjRef), (gcFlags & GC_CALL_PINNED), (gcFlags & GC_CALL_INTERIOR)))); + LOG_PIPTR(pObjRef, gcFlags, hCallBack); #endif //_DEBUG gcFlags |= CHECK_APP_DOMAIN; @@ -1752,8 +1766,7 @@ void GcInfoDecoder::ReportRegisterToGC( // ARM64 VALIDATE_ROOT((gcFlags & GC_CALL_INTERIOR), hCallBack, pObjRef); - LOG((LF_GCROOTS, LL_INFO1000, /* Part Three */ - LOG_PIPTR_OBJECT_CLASS(OBJECTREF_TO_UNCHECKED_OBJECTREF(*pObjRef), (gcFlags & GC_CALL_PINNED), (gcFlags & GC_CALL_INTERIOR)))); + LOG_PIPTR(pObjRef, gcFlags, hCallBack); #endif //_DEBUG gcFlags |= CHECK_APP_DOMAIN; @@ -1893,8 +1906,7 @@ void GcInfoDecoder::ReportStackSlotToGC( VALIDATE_ROOT((gcFlags & GC_CALL_INTERIOR), hCallBack, pObjRef); - LOG((LF_GCROOTS, LL_INFO1000, /* Part Three */ - LOG_PIPTR_OBJECT_CLASS(OBJECTREF_TO_UNCHECKED_OBJECTREF(*pObjRef), (gcFlags & GC_CALL_PINNED), (gcFlags & GC_CALL_INTERIOR)))); + LOG_PIPTR(pObjRef, gcFlags, hCallBack); #endif gcFlags |= CHECK_APP_DOMAIN; |