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

Unified Diff: runtime/vm/object.cc

Issue 15930003: - Allocate symbols for 'get:' and 'set:' (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/object.cc
===================================================================
--- runtime/vm/object.cc (revision 23085)
+++ runtime/vm/object.cc (working copy)
@@ -1558,12 +1558,11 @@
intptr_t Class::NumTypeParameters() const {
- const TypeArguments& type_params = TypeArguments::Handle(type_parameters());
- if (type_params.IsNull()) {
+ if (type_parameters() == TypeArguments::null()) {
return 0;
- } else {
- return type_params.Length();
}
+ const TypeArguments& type_params = TypeArguments::Handle(type_parameters());
+ return type_params.Length();
}
@@ -1579,10 +1578,10 @@
}
}
intptr_t num_type_args = NumTypeParameters();
- const Class& superclass = Class::Handle(cls.SuperClass());
+ cls = cls.SuperClass();
// Object is its own super class during bootstrap.
- if (!superclass.IsNull() && (superclass.raw() != raw())) {
- num_type_args += superclass.NumTypeArguments();
+ if (!cls.IsNull() && (cls.raw() != raw())) {
+ num_type_args += cls.NumTypeArguments();
}
return num_type_args;
}
@@ -3841,8 +3840,9 @@
return false;
}
// Verify that all argument names are valid parameter names.
- String& argument_name = String::Handle();
- String& parameter_name = String::Handle();
+ Isolate* isolate = Isolate::Current();
+ String& argument_name = String::Handle(isolate);
+ String& parameter_name = String::Handle(isolate);
for (int i = 0; i < num_named_arguments; i++) {
argument_name ^= argument_names.At(i);
ASSERT(argument_name.IsSymbol());
@@ -4672,10 +4672,7 @@
RawString* Field::GetterName(const String& field_name) {
- String& str = String::Handle();
- str = String::New(kGetterPrefix);
- str = String::Concat(str, field_name);
- return str.raw();
+ return String::Concat(Symbols::GetterPrefix(), field_name);
}
@@ -4686,10 +4683,7 @@
RawString* Field::SetterName(const String& field_name) {
- String& str = String::Handle();
- str = String::New(kSetterPrefix);
- str = String::Concat(str, field_name);
- return str.raw();
+ return String::Concat(Symbols::SetterPrefix(), field_name);
}
@@ -4700,26 +4694,22 @@
RawString* Field::NameFromGetter(const String& getter_name) {
- String& str = String::Handle();
- str = String::SubString(getter_name, strlen(kGetterPrefix));
- return str.raw();
+ return String::SubString(getter_name, strlen(kGetterPrefix));
}
RawString* Field::NameFromSetter(const String& setter_name) {
- String& str = String::Handle();
- str = String::SubString(setter_name, strlen(kSetterPrefix));
- return str.raw();
+ return String::SubString(setter_name, strlen(kSetterPrefix));
}
bool Field::IsGetterName(const String& function_name) {
- return function_name.StartsWith(String::Handle(String::New(kGetterPrefix)));
+ return function_name.StartsWith(Symbols::GetterPrefix());
}
bool Field::IsSetterName(const String& function_name) {
- return function_name.StartsWith(String::Handle(String::New(kSetterPrefix)));
+ return function_name.StartsWith(Symbols::SetterPrefix());
}
@@ -6329,8 +6319,8 @@
if ((index < 0) || index >= num_imports()) {
return Namespace::null();
}
- const Array& import_list = Array::Handle(imports());
Namespace& import = Namespace::Handle();
Ivan Posva 2013/05/23 22:30:17 ?
siva 2013/05/23 22:39:31 Restored.
+ const Array& import_list = Array::Handle(imports());
import ^= import_list.At(index);
return import.raw();
}
« no previous file with comments | « no previous file | runtime/vm/parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698