diff options
author | Fedor Indutny <fedor@indutny.com> | 2014-07-30 15:33:52 -0700 |
---|---|---|
committer | Timothy J Fontaine <tjfontaine@gmail.com> | 2014-07-31 09:26:09 -0700 |
commit | 530af9cb8e700e7596b3ec812bad123c9fa06356 (patch) | |
tree | 3ed39e9a35e436a6d58cf291e241936514bbc55b | |
parent | 1223cafea647e2af4580f4990dc313abf4f7a802 (diff) | |
download | node-new-530af9cb8e700e7596b3ec812bad123c9fa06356.tar.gz |
v8: Interrupts must not mask stack overflow.
Backport of https://codereview.chromium.org/339883002
-rw-r--r-- | deps/v8/src/isolate.h | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/deps/v8/src/isolate.h b/deps/v8/src/isolate.h index b90191d0eb..2769ca7c9a 100644 --- a/deps/v8/src/isolate.h +++ b/deps/v8/src/isolate.h @@ -1392,14 +1392,9 @@ class StackLimitCheck BASE_EMBEDDED { public: explicit StackLimitCheck(Isolate* isolate) : isolate_(isolate) { } - bool HasOverflowed() const { + inline bool HasOverflowed() const { StackGuard* stack_guard = isolate_->stack_guard(); - // Stack has overflowed in C++ code only if stack pointer exceeds the C++ - // stack guard and the limits are not set to interrupt values. - // TODO(214): Stack overflows are ignored if a interrupt is pending. This - // code should probably always use the initial C++ limit. - return (reinterpret_cast<uintptr_t>(this) < stack_guard->climit()) && - stack_guard->IsStackOverflow(); + return reinterpret_cast<uintptr_t>(this) < stack_guard->real_climit(); } private: Isolate* isolate_; |