| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VM_OBJECT_H_ | 5 #ifndef VM_OBJECT_H_ |
| 6 #define VM_OBJECT_H_ | 6 #define VM_OBJECT_H_ |
| 7 | 7 |
| 8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "platform/utils.h" | 10 #include "platform/utils.h" |
| (...skipping 6662 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6673 void* GetPeer() const; | 6673 void* GetPeer() const; |
| 6674 | 6674 |
| 6675 void ToUTF8(uint8_t* utf8_array, intptr_t array_len) const; | 6675 void ToUTF8(uint8_t* utf8_array, intptr_t array_len) const; |
| 6676 | 6676 |
| 6677 // Copies the string characters into the provided external array | 6677 // Copies the string characters into the provided external array |
| 6678 // and morphs the string object into an external string object. | 6678 // and morphs the string object into an external string object. |
| 6679 // The remaining unused part of the original string object is marked as | 6679 // The remaining unused part of the original string object is marked as |
| 6680 // an Array object or a regular Object so that it can be traversed during | 6680 // an Array object or a regular Object so that it can be traversed during |
| 6681 // garbage collection. | 6681 // garbage collection. |
| 6682 RawString* MakeExternal(void* array, | 6682 RawString* MakeExternal(void* array, |
| 6683 intptr_t length, | 6683 intptr_t external_size, |
| 6684 void* peer, | 6684 void* peer, |
| 6685 Dart_PeerFinalizer cback) const; | 6685 Dart_PeerFinalizer cback) const; |
| 6686 | 6686 |
| 6687 // Creates a new String object from a C string that is assumed to contain | 6687 // Creates a new String object from a C string that is assumed to contain |
| 6688 // UTF-8 encoded characters and '\0' is considered a termination character. | 6688 // UTF-8 encoded characters and '\0' is considered a termination character. |
| 6689 // TODO(7123) - Rename this to FromCString(....). | 6689 // TODO(7123) - Rename this to FromCString(....). |
| 6690 static RawString* New(const char* cstr, Heap::Space space = Heap::kNew); | 6690 static RawString* New(const char* cstr, Heap::Space space = Heap::kNew); |
| 6691 | 6691 |
| 6692 // Creates a new String object from an array of UTF-8 encoded characters. | 6692 // Creates a new String object from an array of UTF-8 encoded characters. |
| 6693 static RawString* FromUTF8(const uint8_t* utf8_array, | 6693 static RawString* FromUTF8(const uint8_t* utf8_array, |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6929 Heap::Space space); | 6929 Heap::Space space); |
| 6930 | 6930 |
| 6931 // High performance version of substring for one-byte strings. | 6931 // High performance version of substring for one-byte strings. |
| 6932 // "str" must be OneByteString. | 6932 // "str" must be OneByteString. |
| 6933 static RawOneByteString* SubStringUnchecked(const String& str, | 6933 static RawOneByteString* SubStringUnchecked(const String& str, |
| 6934 intptr_t begin_index, | 6934 intptr_t begin_index, |
| 6935 intptr_t length, | 6935 intptr_t length, |
| 6936 Heap::Space space); | 6936 Heap::Space space); |
| 6937 | 6937 |
| 6938 static void SetPeer(const String& str, | 6938 static void SetPeer(const String& str, |
| 6939 intptr_t external_size, |
| 6939 void* peer, | 6940 void* peer, |
| 6940 Dart_PeerFinalizer cback); | 6941 Dart_PeerFinalizer cback); |
| 6941 | 6942 |
| 6942 static void Finalize(void* isolate_callback_data, | 6943 static void Finalize(void* isolate_callback_data, |
| 6943 Dart_WeakPersistentHandle handle, | 6944 Dart_WeakPersistentHandle handle, |
| 6944 void* peer); | 6945 void* peer); |
| 6945 | 6946 |
| 6946 static const ClassId kClassId = kOneByteStringCid; | 6947 static const ClassId kClassId = kOneByteStringCid; |
| 6947 | 6948 |
| 6948 static RawOneByteString* null() { | 6949 static RawOneByteString* null() { |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7044 intptr_t start, | 7045 intptr_t start, |
| 7045 intptr_t end, | 7046 intptr_t end, |
| 7046 intptr_t len, | 7047 intptr_t len, |
| 7047 Heap::Space space); | 7048 Heap::Space space); |
| 7048 | 7049 |
| 7049 static RawTwoByteString* Transform(int32_t (*mapping)(int32_t ch), | 7050 static RawTwoByteString* Transform(int32_t (*mapping)(int32_t ch), |
| 7050 const String& str, | 7051 const String& str, |
| 7051 Heap::Space space); | 7052 Heap::Space space); |
| 7052 | 7053 |
| 7053 static void SetPeer(const String& str, | 7054 static void SetPeer(const String& str, |
| 7055 intptr_t external_size, |
| 7054 void* peer, | 7056 void* peer, |
| 7055 Dart_PeerFinalizer cback); | 7057 Dart_PeerFinalizer cback); |
| 7056 | 7058 |
| 7057 static void Finalize(void* isolate_callback_data, | 7059 static void Finalize(void* isolate_callback_data, |
| 7058 Dart_WeakPersistentHandle handle, | 7060 Dart_WeakPersistentHandle handle, |
| 7059 void* peer); | 7061 void* peer); |
| 7060 | 7062 |
| 7061 static RawTwoByteString* null() { | 7063 static RawTwoByteString* null() { |
| 7062 return reinterpret_cast<RawTwoByteString*>(Object::null()); | 7064 return reinterpret_cast<RawTwoByteString*>(Object::null()); |
| 7063 } | 7065 } |
| (...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7889 TYPED_GETTER_SETTER(Uint64, uint64_t) | 7891 TYPED_GETTER_SETTER(Uint64, uint64_t) |
| 7890 TYPED_GETTER_SETTER(Float32, float) | 7892 TYPED_GETTER_SETTER(Float32, float) |
| 7891 TYPED_GETTER_SETTER(Float64, double) | 7893 TYPED_GETTER_SETTER(Float64, double) |
| 7892 TYPED_GETTER_SETTER(Float32x4, simd128_value_t) | 7894 TYPED_GETTER_SETTER(Float32x4, simd128_value_t) |
| 7893 TYPED_GETTER_SETTER(Int32x4, simd128_value_t) | 7895 TYPED_GETTER_SETTER(Int32x4, simd128_value_t) |
| 7894 TYPED_GETTER_SETTER(Float64x2, simd128_value_t) | 7896 TYPED_GETTER_SETTER(Float64x2, simd128_value_t) |
| 7895 | 7897 |
| 7896 #undef TYPED_GETTER_SETTER | 7898 #undef TYPED_GETTER_SETTER |
| 7897 | 7899 |
| 7898 FinalizablePersistentHandle* AddFinalizer( | 7900 FinalizablePersistentHandle* AddFinalizer( |
| 7899 void* peer, Dart_WeakPersistentHandleFinalizer callback) const; | 7901 void* peer, |
| 7902 Dart_WeakPersistentHandleFinalizer callback, |
| 7903 intptr_t external_size) const; |
| 7900 | 7904 |
| 7901 static intptr_t length_offset() { | 7905 static intptr_t length_offset() { |
| 7902 return OFFSET_OF(RawExternalTypedData, length_); | 7906 return OFFSET_OF(RawExternalTypedData, length_); |
| 7903 } | 7907 } |
| 7904 | 7908 |
| 7905 static intptr_t data_offset() { | 7909 static intptr_t data_offset() { |
| 7906 return OFFSET_OF(RawExternalTypedData, data_); | 7910 return OFFSET_OF(RawExternalTypedData, data_); |
| 7907 } | 7911 } |
| 7908 | 7912 |
| 7909 static intptr_t InstanceSize() { | 7913 static intptr_t InstanceSize() { |
| (...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8779 | 8783 |
| 8780 inline void TypeArguments::SetHash(intptr_t value) const { | 8784 inline void TypeArguments::SetHash(intptr_t value) const { |
| 8781 // This is only safe because we create a new Smi, which does not cause | 8785 // This is only safe because we create a new Smi, which does not cause |
| 8782 // heap allocation. | 8786 // heap allocation. |
| 8783 StoreSmi(&raw_ptr()->hash_, Smi::New(value)); | 8787 StoreSmi(&raw_ptr()->hash_, Smi::New(value)); |
| 8784 } | 8788 } |
| 8785 | 8789 |
| 8786 } // namespace dart | 8790 } // namespace dart |
| 8787 | 8791 |
| 8788 #endif // VM_OBJECT_H_ | 8792 #endif // VM_OBJECT_H_ |
| OLD | NEW |