| 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 #include "vm/object.h" | 5 #include "vm/object.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
| (...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 } else if (value == '\\') { | 289 } else if (value == '\\') { |
| 290 return '\\'; | 290 return '\\'; |
| 291 } else if (value == '$') { | 291 } else if (value == '$') { |
| 292 return '$'; | 292 return '$'; |
| 293 } | 293 } |
| 294 UNREACHABLE(); | 294 UNREACHABLE(); |
| 295 return '\0'; | 295 return '\0'; |
| 296 } | 296 } |
| 297 | 297 |
| 298 | 298 |
| 299 static void DeleteWeakPersistentHandle(Dart_Handle handle) { | 299 static void DeleteWeakPersistentHandle(Dart_WeakPersistentHandle handle) { |
| 300 ApiState* state = Isolate::Current()->api_state(); | 300 ApiState* state = Isolate::Current()->api_state(); |
| 301 ASSERT(state != NULL); | 301 ASSERT(state != NULL); |
| 302 FinalizablePersistentHandle* weak_ref = | 302 FinalizablePersistentHandle* weak_ref = |
| 303 reinterpret_cast<FinalizablePersistentHandle*>(handle); | 303 reinterpret_cast<FinalizablePersistentHandle*>(handle); |
| 304 ASSERT(state->IsValidWeakPersistentHandle(handle)); | 304 ASSERT(state->IsValidWeakPersistentHandle(handle)); |
| 305 state->weak_persistent_handles().FreeHandle(weak_ref); | 305 state->weak_persistent_handles().FreeHandle(weak_ref); |
| 306 } | 306 } |
| 307 | 307 |
| 308 | 308 |
| 309 void Object::InitOnce() { | 309 void Object::InitOnce() { |
| (...skipping 4791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5101 RawExternalTypedData* TokenStream::GetStream() const { | 5101 RawExternalTypedData* TokenStream::GetStream() const { |
| 5102 return raw_ptr()->stream_; | 5102 return raw_ptr()->stream_; |
| 5103 } | 5103 } |
| 5104 | 5104 |
| 5105 | 5105 |
| 5106 void TokenStream::SetStream(const ExternalTypedData& value) const { | 5106 void TokenStream::SetStream(const ExternalTypedData& value) const { |
| 5107 StorePointer(&raw_ptr()->stream_, value.raw()); | 5107 StorePointer(&raw_ptr()->stream_, value.raw()); |
| 5108 } | 5108 } |
| 5109 | 5109 |
| 5110 | 5110 |
| 5111 void TokenStream::DataFinalizer(Dart_Handle handle, void *peer) { | 5111 void TokenStream::DataFinalizer(Dart_WeakPersistentHandle handle, void *peer) { |
| 5112 ASSERT(peer != NULL); | 5112 ASSERT(peer != NULL); |
| 5113 ::free(peer); | 5113 ::free(peer); |
| 5114 DeleteWeakPersistentHandle(handle); | 5114 DeleteWeakPersistentHandle(handle); |
| 5115 } | 5115 } |
| 5116 | 5116 |
| 5117 | 5117 |
| 5118 RawString* TokenStream::PrivateKey() const { | 5118 RawString* TokenStream::PrivateKey() const { |
| 5119 return raw_ptr()->private_key_; | 5119 return raw_ptr()->private_key_; |
| 5120 } | 5120 } |
| 5121 | 5121 |
| (...skipping 7203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12325 result ^= raw; | 12325 result ^= raw; |
| 12326 result.SetLength(len); | 12326 result.SetLength(len); |
| 12327 result.SetHash(0); | 12327 result.SetHash(0); |
| 12328 SetExternalData(result, external_data); | 12328 SetExternalData(result, external_data); |
| 12329 } | 12329 } |
| 12330 AddFinalizer(result, external_data, ExternalOneByteString::Finalize); | 12330 AddFinalizer(result, external_data, ExternalOneByteString::Finalize); |
| 12331 return ExternalOneByteString::raw(result); | 12331 return ExternalOneByteString::raw(result); |
| 12332 } | 12332 } |
| 12333 | 12333 |
| 12334 | 12334 |
| 12335 void ExternalOneByteString::Finalize(Dart_Handle handle, void* peer) { | 12335 void ExternalOneByteString::Finalize(Dart_WeakPersistentHandle handle, |
| 12336 void* peer) { |
| 12336 delete reinterpret_cast<ExternalStringData<uint8_t>*>(peer); | 12337 delete reinterpret_cast<ExternalStringData<uint8_t>*>(peer); |
| 12337 DeleteWeakPersistentHandle(handle); | 12338 DeleteWeakPersistentHandle(handle); |
| 12338 } | 12339 } |
| 12339 | 12340 |
| 12340 | 12341 |
| 12341 RawExternalTwoByteString* ExternalTwoByteString::New( | 12342 RawExternalTwoByteString* ExternalTwoByteString::New( |
| 12342 const uint16_t* data, | 12343 const uint16_t* data, |
| 12343 intptr_t len, | 12344 intptr_t len, |
| 12344 void* peer, | 12345 void* peer, |
| 12345 Dart_PeerFinalizer callback, | 12346 Dart_PeerFinalizer callback, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 12362 result ^= raw; | 12363 result ^= raw; |
| 12363 result.SetLength(len); | 12364 result.SetLength(len); |
| 12364 result.SetHash(0); | 12365 result.SetHash(0); |
| 12365 SetExternalData(result, external_data); | 12366 SetExternalData(result, external_data); |
| 12366 } | 12367 } |
| 12367 AddFinalizer(result, external_data, ExternalTwoByteString::Finalize); | 12368 AddFinalizer(result, external_data, ExternalTwoByteString::Finalize); |
| 12368 return ExternalTwoByteString::raw(result); | 12369 return ExternalTwoByteString::raw(result); |
| 12369 } | 12370 } |
| 12370 | 12371 |
| 12371 | 12372 |
| 12372 void ExternalTwoByteString::Finalize(Dart_Handle handle, void* peer) { | 12373 void ExternalTwoByteString::Finalize(Dart_WeakPersistentHandle handle, |
| 12374 void* peer) { |
| 12373 delete reinterpret_cast<ExternalStringData<uint16_t>*>(peer); | 12375 delete reinterpret_cast<ExternalStringData<uint16_t>*>(peer); |
| 12374 DeleteWeakPersistentHandle(handle); | 12376 DeleteWeakPersistentHandle(handle); |
| 12375 } | 12377 } |
| 12376 | 12378 |
| 12377 | 12379 |
| 12378 RawBool* Bool::New(bool value) { | 12380 RawBool* Bool::New(bool value) { |
| 12379 ASSERT(Isolate::Current()->object_store()->bool_class() != Class::null()); | 12381 ASSERT(Isolate::Current()->object_store()->bool_class() != Class::null()); |
| 12380 Bool& result = Bool::Handle(); | 12382 Bool& result = Bool::Handle(); |
| 12381 { | 12383 { |
| 12382 // Since the two boolean instances are singletons we allocate them straight | 12384 // Since the two boolean instances are singletons we allocate them straight |
| (...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13325 } | 13327 } |
| 13326 return result.raw(); | 13328 return result.raw(); |
| 13327 } | 13329 } |
| 13328 | 13330 |
| 13329 | 13331 |
| 13330 const char* WeakProperty::ToCString() const { | 13332 const char* WeakProperty::ToCString() const { |
| 13331 return "_WeakProperty"; | 13333 return "_WeakProperty"; |
| 13332 } | 13334 } |
| 13333 | 13335 |
| 13334 } // namespace dart | 13336 } // namespace dart |
| OLD | NEW |