Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: runtime/vm/object.cc

Issue 10876100: Convert double interface into abstract class (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/object_store.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/bigint_operations.h" 10 #include "vm/bigint_operations.h"
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 RegisterClass(cls, name, core_lib); 771 RegisterClass(cls, name, core_lib);
772 pending_classes.Add(cls, Heap::kOld); 772 pending_classes.Add(cls, Heap::kOld);
773 type = Type::NewNonParameterizedType(cls); 773 type = Type::NewNonParameterizedType(cls);
774 object_store->set_number_type(type); 774 object_store->set_number_type(type);
775 775
776 cls = CreateAndRegisterInterface("int", script, core_lib); 776 cls = CreateAndRegisterInterface("int", script, core_lib);
777 pending_classes.Add(cls, Heap::kOld); 777 pending_classes.Add(cls, Heap::kOld);
778 type = Type::NewNonParameterizedType(cls); 778 type = Type::NewNonParameterizedType(cls);
779 object_store->set_int_interface(type); 779 object_store->set_int_interface(type);
780 780
781 cls = CreateAndRegisterInterface("double", script, core_lib); 781 name = Symbols::New("double");
782 cls = Class::New<Instance>(name, script, Scanner::kDummyTokenIndex);
783 RegisterClass(cls, name, core_lib);
782 pending_classes.Add(cls, Heap::kOld); 784 pending_classes.Add(cls, Heap::kOld);
783 type = Type::NewNonParameterizedType(cls); 785 type = Type::NewNonParameterizedType(cls);
784 object_store->set_double_interface(type); 786 object_store->set_double_type(type);
785 787
786 cls = CreateAndRegisterInterface("String", script, core_lib); 788 cls = CreateAndRegisterInterface("String", script, core_lib);
787 pending_classes.Add(cls, Heap::kOld); 789 pending_classes.Add(cls, Heap::kOld);
788 type = Type::NewNonParameterizedType(cls); 790 type = Type::NewNonParameterizedType(cls);
789 object_store->set_string_interface(type); 791 object_store->set_string_interface(type);
790 792
791 cls = CreateAndRegisterInterface("List", script, core_lib); 793 cls = CreateAndRegisterInterface("List", script, core_lib);
792 pending_classes.Add(cls, Heap::kOld); 794 pending_classes.Add(cls, Heap::kOld);
793 type = Type::NewNonParameterizedType(cls); 795 type = Type::NewNonParameterizedType(cls);
794 object_store->set_list_interface(type); 796 object_store->set_list_interface(type);
795 797
796 cls = CreateAndRegisterInterface("ByteArray", script, core_lib); 798 cls = CreateAndRegisterInterface("ByteArray", script, core_lib);
797 pending_classes.Add(cls, Heap::kOld); 799 pending_classes.Add(cls, Heap::kOld);
798 type = Type::NewNonParameterizedType(cls); 800 type = Type::NewNonParameterizedType(cls);
799 object_store->set_byte_array_interface(type); 801 object_store->set_byte_array_interface(type);
800 802
801 cls = object_store->bool_class(); 803 cls = object_store->bool_class();
802 type = Type::NewNonParameterizedType(cls); 804 type = Type::NewNonParameterizedType(cls);
803 object_store->set_bool_type(type); 805 object_store->set_bool_type(type);
804 806
805 cls = object_store->smi_class(); 807 cls = object_store->smi_class();
806 type = Type::NewNonParameterizedType(cls); 808 type = Type::NewNonParameterizedType(cls);
807 object_store->set_smi_type(type); 809 object_store->set_smi_type(type);
808 810
809 cls = object_store->double_class();
810 type = Type::NewNonParameterizedType(cls);
811 object_store->set_double_type(type);
812
813 cls = object_store->mint_class(); 811 cls = object_store->mint_class();
814 type = Type::NewNonParameterizedType(cls); 812 type = Type::NewNonParameterizedType(cls);
815 object_store->set_mint_type(type); 813 object_store->set_mint_type(type);
816 814
817 // The classes 'Null' and 'void' are not registered in the class dictionary, 815 // The classes 'Null' and 'void' are not registered in the class dictionary,
818 // because their names are reserved keywords. Their names are not heap 816 // because their names are reserved keywords. Their names are not heap
819 // allocated, because the classes reside in the VM isolate. 817 // allocated, because the classes reside in the VM isolate.
820 // The corresponding types are stored in the object store. 818 // The corresponding types are stored in the object store.
821 cls = null_class(); 819 cls = null_class();
822 type = Type::NewNonParameterizedType(cls); 820 type = Type::NewNonParameterizedType(cls);
(...skipping 1735 matching lines...) Expand 10 before | Expand all | Expand 10 after
2558 (type_class() == Type::Handle(Type::BoolType()).type_class()); 2556 (type_class() == Type::Handle(Type::BoolType()).type_class());
2559 } 2557 }
2560 2558
2561 2559
2562 bool AbstractType::IsIntInterface() const { 2560 bool AbstractType::IsIntInterface() const {
2563 return HasResolvedTypeClass() && 2561 return HasResolvedTypeClass() &&
2564 (type_class() == Type::Handle(Type::IntInterface()).type_class()); 2562 (type_class() == Type::Handle(Type::IntInterface()).type_class());
2565 } 2563 }
2566 2564
2567 2565
2568 bool AbstractType::IsDoubleInterface() const { 2566 bool AbstractType::IsDoubleType() const {
2569 return HasResolvedTypeClass() && 2567 return HasResolvedTypeClass() &&
2570 (type_class() == Type::Handle(Type::DoubleInterface()).type_class()); 2568 (type_class() == Type::Handle(Type::Double()).type_class());
2571 } 2569 }
2572 2570
2573 2571
2574 bool AbstractType::IsNumberType() const { 2572 bool AbstractType::IsNumberType() const {
2575 return HasResolvedTypeClass() && 2573 return HasResolvedTypeClass() &&
2576 (type_class() == Type::Handle(Type::Number()).type_class()); 2574 (type_class() == Type::Handle(Type::Number()).type_class());
2577 } 2575 }
2578 2576
2579 2577
2580 bool AbstractType::IsStringInterface() const { 2578 bool AbstractType::IsStringInterface() const {
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
2699 RawType* Type::SmiType() { 2697 RawType* Type::SmiType() {
2700 return Isolate::Current()->object_store()->smi_type(); 2698 return Isolate::Current()->object_store()->smi_type();
2701 } 2699 }
2702 2700
2703 2701
2704 RawType* Type::MintType() { 2702 RawType* Type::MintType() {
2705 return Isolate::Current()->object_store()->mint_type(); 2703 return Isolate::Current()->object_store()->mint_type();
2706 } 2704 }
2707 2705
2708 2706
2709 RawType* Type::DoubleInterface() { 2707 RawType* Type::Double() {
2710 return Isolate::Current()->object_store()->double_interface(); 2708 return Isolate::Current()->object_store()->double_type();
2711 } 2709 }
2712 2710
2713 2711
2714 RawType* Type::Number() { 2712 RawType* Type::Number() {
2715 return Isolate::Current()->object_store()->number_type(); 2713 return Isolate::Current()->object_store()->number_type();
2716 } 2714 }
2717 2715
2718 2716
2719 RawType* Type::StringInterface() { 2717 RawType* Type::StringInterface() {
2720 return Isolate::Current()->object_store()->string_interface(); 2718 return Isolate::Current()->object_store()->string_interface();
(...skipping 8462 matching lines...) Expand 10 before | Expand all | Expand 10 after
11183 } 11181 }
11184 return result.raw(); 11182 return result.raw();
11185 } 11183 }
11186 11184
11187 11185
11188 const char* WeakProperty::ToCString() const { 11186 const char* WeakProperty::ToCString() const {
11189 return "_WeakProperty"; 11187 return "_WeakProperty";
11190 } 11188 }
11191 11189
11192 } // namespace dart 11190 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/object.h ('k') | runtime/vm/object_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698