Index: runtime/vm/object.h |
=================================================================== |
--- runtime/vm/object.h (revision 3811) |
+++ runtime/vm/object.h (working copy) |
@@ -3249,7 +3249,25 @@ |
public: |
virtual intptr_t Length() const; |
+ static void Copy(uint8_t* dst, |
+ const ByteArray& src, |
+ intptr_t src_offset, |
+ intptr_t length); |
+ |
+ static void Copy(const ByteArray& dst, |
+ intptr_t dst_offset, |
+ const uint8_t* src, |
+ intptr_t length); |
+ |
+ static void Copy(const ByteArray& dst, |
+ intptr_t dst_offset, |
+ const ByteArray& src, |
+ intptr_t src_offset, |
+ intptr_t length); |
+ |
private: |
+ virtual uint8_t* ByteAddr(intptr_t byte_offset) const; |
+ |
HEAP_OBJECT_IMPLEMENTATION(ByteArray, Instance); |
friend class Class; |
}; |
@@ -3313,6 +3331,10 @@ |
Heap::Space space = Heap::kNew); |
private: |
+ uint8_t* ByteAddr(intptr_t byte_offset) const { |
+ return Addr<uint8_t>(byte_offset); |
+ } |
+ |
template<typename T> |
T* Addr(intptr_t byte_offset) const { |
intptr_t limit = byte_offset + sizeof(T); |
@@ -3373,6 +3395,10 @@ |
Heap::Space space = Heap::kNew); |
private: |
+ uint8_t* ByteAddr(intptr_t byte_offset) const { |
+ return Addr<uint8_t>(byte_offset); |
+ } |
+ |
template<typename T> |
T* Addr(intptr_t byte_offset) const { |
intptr_t limit = byte_offset + sizeof(T); |