Exemplo n.º 1
0
    bool check_stack(CallFrame* call_frame, void* end) {
      // @TODO assumes stack growth direction
      if(unlikely(reinterpret_cast<uintptr_t>(end) < stack_limit_)) {
        raise_stack_error(call_frame);
        return false;
      }

      return true;
    }
Exemplo n.º 2
0
    bool check_stack(void* end) {
      // @TODO assumes stack growth direction
      if(reinterpret_cast<intptr_t>(stack_start_) -
          reinterpret_cast<intptr_t>(end) > cStackDepthMax) {
        raise_stack_error();
        return false;
      }

      return true;
    }
Exemplo n.º 3
0
    bool check_stack(STATE, void* stack_address) {
      ssize_t stack_used =
        (reinterpret_cast<intptr_t>(current_stack_start_)
        - reinterpret_cast<intptr_t>(stack_address));

      if(stack_used < 0) stack_used = -stack_used;

      if(stack_used > stack_size_) {
        raise_stack_error(state);
        return false;
      }

      return true;
    }