Chromium Code Reviews| Index: runtime/vm/raw_object.h |
| diff --git a/runtime/vm/raw_object.h b/runtime/vm/raw_object.h |
| index 8662311cb4b5fa6049197c83f1988d96e21b8e52..a170719ce2d693e403d312a9c8cf9071b7812961 100644 |
| --- a/runtime/vm/raw_object.h |
| +++ b/runtime/vm/raw_object.h |
| @@ -49,6 +49,9 @@ namespace dart { |
| V(OneByteString) \ |
| V(TwoByteString) \ |
| V(FourByteString) \ |
| + V(ExternalOneByteString) \ |
| + V(ExternalTwoByteString) \ |
| + V(ExternalFourByteString) \ |
| V(Bool) \ |
| V(Array) \ |
| V(ImmutableArray) \ |
| @@ -685,6 +688,40 @@ class RawFourByteString : public RawString { |
| }; |
| +template<typename T> |
| +class RawExternalStringData { |
|
Ivan Posva
2011/11/18 19:36:44
As I mentioned before this should really not be na
cshapiro
2011/11/19 01:08:29
Done. This has been renamed to ExternalStringData
|
| + public: |
| + typedef void Callback(void* peer); |
| + RawExternalStringData(const T* data, void* peer, Callback* callback) : |
| + data_(data), peer_(peer), callback_(callback) { |
| + } |
| + const T* data_; |
| + void* peer_; |
| + Callback* callback_; |
| +}; |
| + |
| + |
| +class RawExternalOneByteString : public RawString { |
| + RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalOneByteString); |
| + |
| + RawExternalStringData<uint8_t>* external_data_; |
| +}; |
| + |
| + |
| +class RawExternalTwoByteString : public RawString { |
| + RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalTwoByteString); |
| + |
| + RawExternalStringData<uint16_t>* external_data_; |
| +}; |
| + |
| + |
| +class RawExternalFourByteString : public RawString { |
| + RAW_HEAP_OBJECT_IMPLEMENTATION(ExternalFourByteString); |
| + |
| + RawExternalStringData<uint32_t>* external_data_; |
| +}; |
| + |
| + |
| class RawBool : public RawInstance { |
| RAW_HEAP_OBJECT_IMPLEMENTATION(Bool); |