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

Unified Diff: vm/object.h

Issue 9791048: - Wire the stack frame iterator to use stack maps for traversing objects if there are stack maps in… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: Created 8 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
« no previous file with comments | « vm/heap.cc ('k') | vm/object.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: vm/object.h
===================================================================
--- vm/object.h (revision 6294)
+++ vm/object.h (working copy)
@@ -130,6 +130,7 @@
return raw()->ptr(); \
} \
SNAPSHOT_READER_SUPPORT(object) \
+ friend class DartFrame; \
class Object {
public:
@@ -2076,10 +2077,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 +2089,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 +2202,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_;
« no previous file with comments | « vm/heap.cc ('k') | vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698