jitcraft/Stack.cpp
changeset 1 27f12e2fc369
parent 0 c455ebb9a5dc
child 10 0c3bcd50e361
     1.1 --- a/jitcraft/Stack.cpp	Mon Jun 25 02:57:28 2012 -0700
     1.2 +++ b/jitcraft/Stack.cpp	Mon Jun 25 21:20:01 2012 -0700
     1.3 @@ -18,6 +18,7 @@
     1.4  #include <new>
     1.5  #include <stdlib.h>
     1.6  #include "Stack.h"
     1.7 +#include "Zone.h"
     1.8  
     1.9  using namespace jc;
    1.10  
    1.11 @@ -59,7 +60,7 @@
    1.12          return NULL;
    1.13  
    1.14      Frame *frame = reinterpret_cast<Frame *>(top_->sp);
    1.15 -    new (frame) Frame(prev, top_->pc, code);
    1.16 +    new (frame) Frame(prev, top_->pc, code, ZONE()->unsafeStack().position());
    1.17      memset(frame->locals(), 0, sizeof(LocalSlot) * code->nlocals());
    1.18  
    1.19      top_->pc = frame->code()->start();
    1.20 @@ -79,6 +80,7 @@
    1.21                      sizeof(LocalSlot) * code->nargs();
    1.22      top_->pc = frame->prevpc();
    1.23      top_->sp = reinterpret_cast<LocalSlot *>(reinterpret_cast<char *>(top_->sp) - nbytes);
    1.24 +    ZONE()->unsafeStack().unwind(frame->prevUnsafeStack());
    1.25      return prev;
    1.26  }
    1.27