Index: runtime/vm/assembler.cc |
diff --git a/runtime/vm/assembler.cc b/runtime/vm/assembler.cc |
index 5a8f846dc6832bfe7bda8bb80750001bec67b58b..ff08c9a2d76cd6bd9774c4da20fd10358529c488 100644 |
--- a/runtime/vm/assembler.cc |
+++ b/runtime/vm/assembler.cc |
@@ -149,12 +149,25 @@ class PatchCodeWithHandle : public AssemblerFixup { |
pointer_offsets_->Add(position); |
} |
+ virtual bool IsPointerOffset() const { return true; } |
+ |
private: |
ZoneGrowableArray<intptr_t>* pointer_offsets_; |
const Object& object_; |
}; |
+intptr_t AssemblerBuffer::CountPointerOffsets() const { |
+ intptr_t count = 0; |
+ AssemblerFixup* current = fixup_; |
+ while (current != NULL) { |
+ if (current->IsPointerOffset()) ++count; |
+ current = current->previous_; |
+ } |
+ return count; |
+} |
+ |
+ |
void AssemblerBuffer::EmitObject(const Object& object) { |
// Since we are going to store the handle as part of the fixup information |
// the handle needs to be a zone handle. |