Index: runtime/vm/isolate.h |
diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h |
index a01638d2ec23db3c16cbd0f7a8a5a9177018f516..84ade6010dd5c0f097a02fe0fb0888f441e39787 100644 |
--- a/runtime/vm/isolate.h |
+++ b/runtime/vm/isolate.h |
@@ -34,6 +34,7 @@ class HandleVisitor; |
class Heap; |
class ICData; |
class Instance; |
+class IsolateProfilerData; |
class LongJump; |
class MessageHandler; |
class Mutex; |
@@ -50,6 +51,7 @@ class RawInteger; |
class RawError; |
class RawFloat32x4; |
class RawInt32x4; |
+class SampleBuffer; |
class Simulator; |
class StackResource; |
class StackZone; |
@@ -203,6 +205,9 @@ class Isolate : public BaseIsolate { |
// The true stack limit for this isolate. |
uword saved_stack_limit() const { return saved_stack_limit_; } |
+ // Retrieve the stack address bounds. |
+ bool GetStackBounds(uintptr_t* lower, uintptr_t* upper); |
+ |
static uword GetSpecifiedStackSize(); |
static const intptr_t kStackSizeBuffer = (4 * KB * kWordSize); |
@@ -383,6 +388,18 @@ class Isolate : public BaseIsolate { |
return defer_finalization_count_ == 0; |
} |
+ Mutex* profiler_data_mutex() { |
+ return &profiler_data_mutex_; |
+ } |
+ |
+ void set_profiler_data(IsolateProfilerData* profiler_data) { |
+ profiler_data_ = profiler_data; |
+ } |
+ |
+ IsolateProfilerData* profiler_data() { |
+ return profiler_data_; |
+ } |
+ |
private: |
Isolate(); |
@@ -441,6 +458,9 @@ class Isolate : public BaseIsolate { |
// Ring buffer of objects assigned an id. |
ObjectIdRing* object_id_ring_; |
+ IsolateProfilerData* profiler_data_; |
+ Mutex profiler_data_mutex_; |
+ |
// Reusable handles support. |
#define REUSABLE_HANDLE_FIELDS(object) \ |
object* object##_handle_; \ |