aboutsummaryrefslogtreecommitdiff
path: root/vm/compiler/codegen/CompilerCodegen.h
diff options
context:
space:
mode:
authorAndy McFadden <fadden@android.com>2010-10-18 13:28:31 -0700
committerAndy McFadden <fadden@android.com>2010-10-18 14:35:36 -0700
commit7b4c1d52a946506d49c6da5649d1677e92263d66 (patch)
treed90fa752cffc8a8983142cda80fe05d20ac58777 /vm/compiler/codegen/CompilerCodegen.h
parente09a766f3a964fb98296939ce1f92b8c95bf8c25 (diff)
Pop call frame before boxing result
After reflective method calls, primitive results need to be boxed up in an appropriate object. This generally requires allocating an object of the appropriate type. We were doing this before popping the call frame, which meant that if the allocation caused a GC we would be scanning results out of a "dead" stack frame. We hit a case where a register went from holding a reference to holding a primitive right before the method returned. The exported PC was pointing at the last GC point, where the register was expected to hold a reference, so precise GC was getting very confused. Bug 3102352. (cherry-pick from dalvik-dev) Change-Id: I21f59f1d70689d9e4901deb3100c756fd85223e7
Diffstat (limited to 'vm/compiler/codegen/CompilerCodegen.h')
0 files changed, 0 insertions, 0 deletions