| 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_;
|
|
|