Index: vm/object.h |
=================================================================== |
--- vm/object.h (revision 6329) |
+++ vm/object.h (working copy) |
@@ -130,6 +130,7 @@ |
return raw()->ptr(); \ |
} \ |
SNAPSHOT_READER_SUPPORT(object) \ |
+ friend class DartFrame; \ |
class Object { |
public: |
@@ -374,7 +375,8 @@ |
static void InitializeObject(uword address, intptr_t size); |
cpp_vtable* vtable_address() const { |
- return reinterpret_cast<cpp_vtable*>(reinterpret_cast<word>(this)); |
+ uword vtable_addr = reinterpret_cast<uword>(this); |
+ return reinterpret_cast<cpp_vtable*>(vtable_addr); |
} |
static cpp_vtable handle_vtable_; |
@@ -2076,10 +2078,10 @@ |
void SetCode(const Code& code) const; |
// Return the offset of the highest stack slot that has an object. |
- intptr_t Maximum() const; |
+ intptr_t MaximumBitOffset() const { return raw_ptr()->max_set_bit_offset_; } |
// Return the offset of the lowest stack slot that has an object. |
- intptr_t Minimum() const; |
+ intptr_t MinimumBitOffset() const { return raw_ptr()->min_set_bit_offset_; } |
static intptr_t InstanceSize() { |
ASSERT(sizeof(RawStackmap) == OFFSET_OF(RawStackmap, data_)); |
@@ -2088,19 +2090,24 @@ |
static intptr_t InstanceSize(intptr_t size) { |
return RoundedAllocationSize(sizeof(RawStackmap) + (size * kWordSize)); |
} |
- static RawStackmap* New(uword pc, const Code& code, BitmapBuilder* bmap); |
+ static RawStackmap* New(uword pc, BitmapBuilder* bmap); |
private: |
inline intptr_t SizeInBits() const; |
+ void SetMinBitOffset(intptr_t value) const { |
+ raw_ptr()->min_set_bit_offset_ = value; |
+ } |
+ void SetMaxBitOffset(intptr_t value) const { |
+ raw_ptr()->max_set_bit_offset_ = value; |
+ } |
+ |
bool InRange(intptr_t offset) const { return offset < SizeInBits(); } |
bool GetBit(intptr_t bit_offset) const; |
void SetBit(intptr_t bit_offset, bool value) const; |
void set_bitmap_size_in_bytes(intptr_t value) const; |
- void set_pc(uword value) const; |
- void set_code(const Code& code) const; |
HEAP_OBJECT_IMPLEMENTATION(Stackmap, Object); |
friend class Class; |
@@ -2196,6 +2203,7 @@ |
return raw_ptr()->stackmaps_; |
} |
void set_stackmaps(const Array& maps) const; |
+ RawStackmap* GetStackmap(uword pc, Array* stackmaps, Stackmap* map) const; |
RawLocalVarDescriptors* var_descriptors() const { |
return raw_ptr()->var_descriptors_; |