Index: runtime/vm/dart_api_state.h |
=================================================================== |
--- runtime/vm/dart_api_state.h (revision 11638) |
+++ runtime/vm/dart_api_state.h (working copy) |
@@ -105,6 +105,7 @@ |
void set_raw(RawObject* ref) { raw_ = ref; } |
void set_raw(const LocalHandle& ref) { raw_ = ref.raw(); } |
void set_raw(const Object& object) { raw_ = object.raw(); } |
+ RawObject** raw_addr() { return &raw_; } |
static intptr_t raw_offset() { return OFFSET_OF(PersistentHandle, raw_); } |
private: |
@@ -141,6 +142,7 @@ |
void set_raw(RawObject* raw) { raw_ = raw; } |
void set_raw(const LocalHandle& ref) { raw_ = ref.raw(); } |
void set_raw(const Object& object) { raw_ = object.raw(); } |
+ RawObject** raw_addr() { return &raw_; } |
static intptr_t raw_offset() { |
return OFFSET_OF(FinalizablePersistentHandle, raw_); |
} |
@@ -391,14 +393,14 @@ |
RawObject** get_key(intptr_t i) { |
ASSERT(i >= 0); |
ASSERT(i < num_keys_); |
- return reinterpret_cast<RawObject**>(keys_[i]); |
+ return (reinterpret_cast<PersistentHandle*>(keys_[i]))->raw_addr(); |
} |
intptr_t num_values() const { return num_values_; } |
RawObject** get_value(intptr_t i) { |
ASSERT(i >= 0); |
ASSERT(i < num_values_); |
- return reinterpret_cast<RawObject**>(values_[i]); |
+ return (reinterpret_cast<PersistentHandle*>(values_[i]))->raw_addr(); |
} |
static WeakReferenceSet* Pop(WeakReferenceSet** queue) { |