Index: runtime/vm/debuginfo.h |
diff --git a/runtime/vm/debuginfo.h b/runtime/vm/debuginfo.h |
index 2b4bc8658ad635b911d49a9369a29f17381804ae..b3de437c655a8d57d119cd705d2ab4b78efe64bd 100644 |
--- a/runtime/vm/debuginfo.h |
+++ b/runtime/vm/debuginfo.h |
@@ -11,56 +11,6 @@ |
namespace dart { |
-// A basic ByteArray which is growable and uses malloc/free. |
-class ByteArray { |
- public: |
- ByteArray() : size_(0), capacity_(0), data_(NULL) { } |
- ~ByteArray() { |
- free(data_); |
- size_ = 0; |
- capacity_ = 0; |
- data_ = NULL; |
- } |
- |
- uint8_t at(int index) const { |
- ASSERT(0 <= index); |
- ASSERT(index < size_); |
- ASSERT(size_ <= capacity_); |
- return data_[index]; |
- } |
- |
- uint8_t* data() const { return data_; } |
- void set_data(uint8_t* value) { data_ = value; } |
- int size() const { return size_; } |
- |
- // Append an element. |
- void Add(const uint8_t value) { |
- Resize(size() + 1); |
- data_[size() - 1] = value; |
- } |
- |
- private: |
- void Resize(int new_size) { |
- if (new_size > capacity_) { |
- int new_capacity = Utils::RoundUpToPowerOfTwo(new_size); |
- uint8_t* new_data = |
- reinterpret_cast<uint8_t*>(realloc(data_, new_capacity)); |
- ASSERT(new_data != NULL); |
- data_ = new_data; |
- capacity_ = new_capacity; |
- } |
- size_ = new_size; |
- } |
- |
- int size_; |
- int capacity_; |
- uint8_t* data_; |
- |
- // Disallow assignment |
- DISALLOW_COPY_AND_ASSIGN(ByteArray); |
-}; |
- |
- |
// DebugInfo is used to generate minimal debug information containing code, |
// symbols, and line numbers for generated code in the dart VM. This information |
// can be used in two ways: |
@@ -68,6 +18,55 @@ class ByteArray { |
// - for generating information to be read by pprof to analyze Dart programs. |
class DebugInfo { |
public: |
+ // A basic ByteBuffer which is growable and uses malloc/free. |
+ class ByteBuffer { |
+ public: |
+ ByteBuffer() : size_(0), capacity_(0), data_(NULL) { } |
+ ~ByteBuffer() { |
+ free(data_); |
+ size_ = 0; |
+ capacity_ = 0; |
+ data_ = NULL; |
+ } |
+ |
+ uint8_t at(int index) const { |
+ ASSERT(0 <= index); |
+ ASSERT(index < size_); |
+ ASSERT(size_ <= capacity_); |
+ return data_[index]; |
+ } |
+ |
+ uint8_t* data() const { return data_; } |
+ void set_data(uint8_t* value) { data_ = value; } |
+ int size() const { return size_; } |
+ |
+ // Append an element. |
+ void Add(const uint8_t value) { |
+ Resize(size() + 1); |
+ data_[size() - 1] = value; |
+ } |
+ |
+ private: |
+ void Resize(int new_size) { |
+ if (new_size > capacity_) { |
+ int new_capacity = Utils::RoundUpToPowerOfTwo(new_size); |
+ uint8_t* new_data = |
+ reinterpret_cast<uint8_t*>(realloc(data_, new_capacity)); |
+ ASSERT(new_data != NULL); |
+ data_ = new_data; |
+ capacity_ = new_capacity; |
+ } |
+ size_ = new_size; |
+ } |
+ |
+ int size_; |
+ int capacity_; |
+ uint8_t* data_; |
+ |
+ // Disallow assignment |
+ DISALLOW_COPY_AND_ASSIGN(ByteBuffer); |
+ }; |
+ |
~DebugInfo(); |
// Add the code starting at pc. |
@@ -78,7 +77,7 @@ class DebugInfo { |
void AddCodeRegion(const char* name, uword pc, intptr_t size); |
// Write out all the debug information info the memory region. |
- bool WriteToMemory(ByteArray* region); |
+ bool WriteToMemory(ByteBuffer* region); |
// Create a new debug information generator. |
static DebugInfo* NewGenerator(); |