diff options
Diffstat (limited to 'runtime/stack.h')
-rw-r--r-- | runtime/stack.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/runtime/stack.h b/runtime/stack.h index e2af5ee..3f1bff8 100644 --- a/runtime/stack.h +++ b/runtime/stack.h @@ -74,12 +74,18 @@ class ShadowFrame { } // Create ShadowFrame in heap for deoptimization. - static ShadowFrame* Create(uint32_t num_vregs, ShadowFrame* link, - mirror::ArtMethod* method, uint32_t dex_pc) { + static ShadowFrame* CreateDeoptimizedFrame(uint32_t num_vregs, ShadowFrame* link, + mirror::ArtMethod* method, uint32_t dex_pc) { uint8_t* memory = new uint8_t[ComputeSize(num_vregs)]; return Create(num_vregs, link, method, dex_pc, memory); } + // Delete a ShadowFrame allocated on the heap for deoptimization. + static void DeleteDeoptimizedFrame(ShadowFrame* sf) { + uint8_t* memory = reinterpret_cast<uint8_t*>(sf); + delete[] memory; + } + // Create ShadowFrame for interpreter using provided memory. static ShadowFrame* Create(uint32_t num_vregs, ShadowFrame* link, mirror::ArtMethod* method, uint32_t dex_pc, void* memory) { |