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/dart_api_message.h" | 5 #include "vm/dart_api_message.h" |
6 #include "vm/object.h" | 6 #include "vm/object.h" |
7 #include "vm/snapshot_ids.h" | 7 #include "vm/snapshot_ids.h" |
8 #include "vm/symbols.h" | 8 #include "vm/symbols.h" |
9 #include "vm/unicode.h" | 9 #include "vm/unicode.h" |
10 | 10 |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 for (int i = 0; i < len; i++) { | 409 for (int i = 0; i < len; i++) { |
410 value->value.as_array.values[i] = ReadObjectRef(); | 410 value->value.as_array.values[i] = ReadObjectRef(); |
411 } | 411 } |
412 return value; | 412 return value; |
413 } | 413 } |
414 | 414 |
415 return ReadInternalVMObject(class_id, object_id); | 415 return ReadInternalVMObject(class_id, object_id); |
416 } | 416 } |
417 | 417 |
418 | 418 |
419 Dart_CObject* ApiMessageReader::ReadVMSymbol(intptr_t object_id) { | 419 Dart_CObject* ApiMessageReader::ReadPredefinedSymbol(intptr_t object_id) { |
420 ASSERT(Symbols::IsVMSymbolId(object_id)); | 420 ASSERT(Symbols::IsPredefinedSymbolId(object_id)); |
421 intptr_t symbol_id = object_id - kMaxPredefinedObjectIds; | 421 intptr_t symbol_id = object_id - kMaxPredefinedObjectIds; |
422 Dart_CObject* object; | 422 Dart_CObject* object; |
423 if (vm_symbol_references_ != NULL && | 423 if (vm_symbol_references_ != NULL && |
424 (object = vm_symbol_references_[symbol_id]) != NULL) { | 424 (object = vm_symbol_references_[symbol_id]) != NULL) { |
425 return object; | 425 return object; |
426 } | 426 } |
427 | 427 |
428 if (vm_symbol_references_ == NULL) { | 428 if (vm_symbol_references_ == NULL) { |
429 intptr_t size = | 429 intptr_t size = |
430 (sizeof(*vm_symbol_references_) * Symbols::kMaxPredefinedId); | 430 (sizeof(*vm_symbol_references_) * Symbols::kMaxPredefinedId); |
431 vm_symbol_references_ = | 431 vm_symbol_references_ = |
432 reinterpret_cast<Dart_CObject**>(allocator(size)); | 432 reinterpret_cast<Dart_CObject**>(allocator(size)); |
433 memset(vm_symbol_references_, 0, size); | 433 memset(vm_symbol_references_, 0, size); |
434 } | 434 } |
435 | 435 |
436 object = CreateDartCObjectString(Symbols::GetVMSymbol(object_id)); | 436 object = CreateDartCObjectString(Symbols::GetPredefinedSymbol(object_id)); |
437 ASSERT(vm_symbol_references_[symbol_id] == NULL); | 437 ASSERT(vm_symbol_references_[symbol_id] == NULL); |
438 vm_symbol_references_[symbol_id] = object; | 438 vm_symbol_references_[symbol_id] = object; |
439 return object; | 439 return object; |
440 } | 440 } |
441 | 441 |
442 | 442 |
443 intptr_t ApiMessageReader::NextAvailableObjectId() const { | 443 intptr_t ApiMessageReader::NextAvailableObjectId() const { |
444 return backward_references_.length() + kMaxPredefinedObjectIds; | 444 return backward_references_.length() + kMaxPredefinedObjectIds; |
445 } | 445 } |
446 | 446 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
540 } | 540 } |
541 if (object_id == kTrueValue) { | 541 if (object_id == kTrueValue) { |
542 return AllocateDartCObjectBool(true); | 542 return AllocateDartCObjectBool(true); |
543 } | 543 } |
544 if (object_id == kFalseValue) { | 544 if (object_id == kFalseValue) { |
545 return AllocateDartCObjectBool(false); | 545 return AllocateDartCObjectBool(false); |
546 } | 546 } |
547 if (object_id == kDoubleObject) { | 547 if (object_id == kDoubleObject) { |
548 return AllocateDartCObjectDouble(ReadDouble()); | 548 return AllocateDartCObjectDouble(ReadDouble()); |
549 } | 549 } |
550 if (Symbols::IsVMSymbolId(object_id)) { | 550 if (Symbols::IsPredefinedSymbolId(object_id)) { |
551 return ReadVMSymbol(object_id); | 551 return ReadPredefinedSymbol(object_id); |
552 } | 552 } |
553 // No other VM isolate objects are supported. | 553 // No other VM isolate objects are supported. |
554 return AllocateDartCObjectNull(); | 554 return AllocateDartCObjectNull(); |
555 } | 555 } |
556 | 556 |
557 | 557 |
558 Dart_CObject* ApiMessageReader::ReadInternalVMObject(intptr_t class_id, | 558 Dart_CObject* ApiMessageReader::ReadInternalVMObject(intptr_t class_id, |
559 intptr_t object_id) { | 559 intptr_t object_id) { |
560 switch (class_id) { | 560 switch (class_id) { |
561 case kClassCid: { | 561 case kClassCid: { |
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1337 if (!success) { | 1337 if (!success) { |
1338 UnmarkAllCObjects(object); | 1338 UnmarkAllCObjects(object); |
1339 return false; | 1339 return false; |
1340 } | 1340 } |
1341 } | 1341 } |
1342 UnmarkAllCObjects(object); | 1342 UnmarkAllCObjects(object); |
1343 return true; | 1343 return true; |
1344 } | 1344 } |
1345 | 1345 |
1346 } // namespace dart | 1346 } // namespace dart |
OLD | NEW |