Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Commit

Permalink
Merge pull request #1215 from richardlford/rosfix
Browse files Browse the repository at this point in the history
Modify conservative GC code for unaligned InlinedCallFrames
  • Loading branch information
jkotas committed Jul 9, 2015
2 parents 9945fc4 + 2d9199d commit eed62e3
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion src/vm/gcenv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,14 @@ VOID GCToEEInterface::ScanStackRoots(Thread * pThread, promote_func* fn, ScanCon
// Since we report every thing as pinned, we don't need to run following code for relocation phase.
if (sc->promotion)
{
Object ** topStack = (Object **)pThread->GetFrame();
Frame* pTopFrame = pThread->GetFrame();
Object ** topStack = (Object **)pTopFrame;
if ((pTopFrame != ((Frame*)-1))
&& (pTopFrame->GetVTablePtr() == InlinedCallFrame::GetMethodFrameVPtr())) {
// It is an InlinedCallFrame. Get SP from it.
InlinedCallFrame* pInlinedFrame = (InlinedCallFrame*)pTopFrame;
topStack = (Object **)pInlinedFrame->GetCallSiteSP();
}
Object ** bottomStack = (Object **) pThread->GetCachedStackBase();
Object ** walk;
for (walk = topStack; walk < bottomStack; walk ++)
Expand Down

0 comments on commit eed62e3

Please sign in to comment.