Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1498)

Unified Diff: runtime/vm/object.cc

Issue 2374273002: Fix a throw returning to a frame marked for lazy deopt that captures the stacktrace. (Closed)
Patch Set: . Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index d80c2000f1d1a8090cfc71bd0b6300be801c77ff..6f0f16472e248b3bddd20d37e062b2055ceaa405 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -14229,7 +14229,8 @@ RawCode* Code::New(intptr_t pointer_offsets_length) {
result.set_is_alive(false);
result.set_comments(Comments::New(0));
result.set_compile_timestamp(0);
- result.set_lazy_deopt_pc_offset(kInvalidPc);
+ result.set_lazy_deopt_return_pc_offset(kInvalidPc);
+ result.set_lazy_deopt_throw_pc_offset(kInvalidPc);
result.set_pc_descriptors(Object::empty_descriptors());
}
return result.raw();
@@ -14543,9 +14544,15 @@ void Code::SetActiveInstructions(RawInstructions* instructions) const {
}
-uword Code::GetLazyDeoptPc() const {
- return (lazy_deopt_pc_offset() != kInvalidPc)
- ? PayloadStart() + lazy_deopt_pc_offset() : 0;
+uword Code::GetLazyDeoptReturnPc() const {
+ return (lazy_deopt_return_pc_offset() != kInvalidPc)
+ ? PayloadStart() + lazy_deopt_return_pc_offset() : 0;
+}
+
+
+uword Code::GetLazyDeoptThrowPc() const {
+ return (lazy_deopt_throw_pc_offset() != kInvalidPc)
+ ? PayloadStart() + lazy_deopt_throw_pc_offset() : 0;
}
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698