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

Unified Diff: runtime/vm/stack_frame.h

Issue 2845053003: Fix asserts in StackFrameIterator which were effectively disabled (Closed)
Patch Set: remote two assertions which cannot be made Created 3 years, 8 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
Index: runtime/vm/stack_frame.h
diff --git a/runtime/vm/stack_frame.h b/runtime/vm/stack_frame.h
index 1d5c6100518347c0190b12e5511be46f17e43b6a..a8da1708f2bea1cf78809c82972729d1fea33997 100644
--- a/runtime/vm/stack_frame.h
+++ b/runtime/vm/stack_frame.h
@@ -212,10 +212,12 @@ class StackFrameIterator : public ValueObject {
// Iterators for iterating over all frames from the last ExitFrame to the
// first EntryFrame.
explicit StackFrameIterator(bool validate,
- Thread* thread = Thread::Current());
+ Thread* thread,
+ bool allow_iterating_other_thread);
StackFrameIterator(uword last_fp,
bool validate,
- Thread* thread = Thread::Current());
+ Thread* thread,
+ bool allow_iterating_other_thread);
#if !defined(TARGET_ARCH_DBC)
// Iterator for iterating over all frames from the current frame (given by its
@@ -224,7 +226,8 @@ class StackFrameIterator : public ValueObject {
uword sp,
uword pc,
bool validate,
- Thread* thread = Thread::Current());
+ Thread* thread,
+ bool allow_iterating_other_thread);
#endif
// Checks if a next frame exists.
@@ -302,17 +305,30 @@ class StackFrameIterator : public ValueObject {
// isolate given is not running concurrently on another thread.
class DartFrameIterator : public ValueObject {
public:
- explicit DartFrameIterator(Thread* thread = Thread::Current())
- : frames_(StackFrameIterator::kDontValidateFrames, thread) {}
- explicit DartFrameIterator(uword last_fp, Thread* thread = Thread::Current())
- : frames_(last_fp, StackFrameIterator::kDontValidateFrames, thread) {}
+ explicit DartFrameIterator(Thread* thread, bool allow_iterating_other_thread)
+ : frames_(StackFrameIterator::kDontValidateFrames,
+ thread,
+ allow_iterating_other_thread) {}
+ explicit DartFrameIterator(uword last_fp,
+ Thread* thread,
+ bool allow_iterating_other_thread)
+ : frames_(last_fp,
+ StackFrameIterator::kDontValidateFrames,
+ thread,
+ allow_iterating_other_thread) {}
#if !defined(TARGET_ARCH_DBC)
DartFrameIterator(uword fp,
uword sp,
uword pc,
- Thread* thread = Thread::Current())
- : frames_(fp, sp, pc, StackFrameIterator::kDontValidateFrames, thread) {}
+ Thread* thread,
+ bool allow_iterating_other_thread)
+ : frames_(fp,
+ sp,
+ pc,
+ StackFrameIterator::kDontValidateFrames,
+ thread,
+ allow_iterating_other_thread) {}
#endif
// Get next dart frame.

Powered by Google App Engine
This is Rietveld 408576698