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

Unified Diff: runtime/vm/object.cc

Issue 10796004: Consolidate a few fields in RawFunction using bitfields. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 5 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
Index: runtime/vm/object.cc
===================================================================
--- runtime/vm/object.cc (revision 9727)
+++ runtime/vm/object.cc (working copy)
@@ -3642,17 +3642,17 @@
void Function::set_kind(RawFunction::Kind value) const {
- raw_ptr()->kind_ = value;
+ raw()->SetKind(value);
}
void Function::set_is_static(bool is_static) const {
- raw_ptr()->is_static_ = is_static;
+ raw()->SetIsStatic(is_static);
}
void Function::set_is_const(bool is_const) const {
- raw_ptr()->is_const_ = is_const;
+ raw()->SetIsConst(is_const);
}
@@ -3675,15 +3675,20 @@
void Function::set_is_optimizable(bool value) const {
- raw_ptr()->is_optimizable_ = value;
+ raw()->SetIsOptimizable(value);
}
void Function::set_is_native(bool value) const {
- raw_ptr()->is_native_ = value;
+ raw()->SetIsNative(value);
}
+void Function::set_is_abstract(bool value) const {
+ raw()->SetIsAbstract(value);
+}
+
+
intptr_t Function::NumberOfParameters() const {
return num_fixed_parameters() + num_optional_parameters();
}
@@ -4008,6 +4013,7 @@
RawFunction::Kind kind,
bool is_static,
bool is_const,
+ bool is_abstract,
intptr_t token_pos) {
ASSERT(name.IsOneByteString());
const Function& result = Function::Handle(Function::New());
@@ -4025,6 +4031,7 @@
result.set_deoptimization_counter(0);
result.set_is_optimizable(true);
result.set_is_native(false);
+ result.set_is_abstract(is_abstract);
return result.raw();
}
@@ -4041,6 +4048,7 @@
RawFunction::kClosureFunction,
/* is_static = */ parent.is_static(),
/* is_const = */ false,
+ /* is_abstract = */ false,
token_pos));
result.set_parent_function(parent);
result.set_owner(parent_class);
@@ -4236,43 +4244,43 @@
const char* Function::ToCString() const {
- const char* f0 = is_static() ? " static" : "";
- const char* f1 = NULL;
- const char* f2 = is_const() ? " const" : "";
+ const char* static_str = is_static() ? " static" : "";
+ const char* abstract_str = is_abstract() ? " abstract" : "";
+ const char* kind_str = NULL;
+ const char* const_str = is_const() ? " const" : "";
switch (kind()) {
case RawFunction::kFunction:
case RawFunction::kClosureFunction:
case RawFunction::kGetterFunction:
case RawFunction::kSetterFunction:
- f1 = "";
+ kind_str = "";
break;
case RawFunction::kSignatureFunction:
- f1 = " signature";
+ kind_str = " signature";
break;
- case RawFunction::kAbstract:
- f1 = " abstract";
- break;
case RawFunction::kConstructor:
- f1 = is_static() ? " factory" : " constructor";
+ kind_str = is_static() ? " factory" : " constructor";
break;
case RawFunction::kImplicitGetter:
- f1 = " getter";
+ kind_str = " getter";
break;
case RawFunction::kImplicitSetter:
- f1 = " setter";
+ kind_str = " setter";
break;
case RawFunction::kConstImplicitGetter:
- f1 = " const-getter";
+ kind_str = " const-getter";
break;
default:
UNREACHABLE();
}
- const char* kFormat = "Function '%s':%s%s%s.";
+ const char* kFormat = "Function '%s':%s%s%s%s.";
const char* function_name = String::Handle(name()).ToCString();
- intptr_t len = OS::SNPrint(NULL, 0, kFormat, function_name, f0, f1, f2) + 1;
+ intptr_t len = OS::SNPrint(NULL, 0, kFormat, function_name,
+ static_str, abstract_str, kind_str, const_str) + 1;
char* chars = reinterpret_cast<char*>(
Isolate::Current()->current_zone()->Allocate(len));
- OS::SNPrint(chars, len, kFormat, function_name, f0, f1, f2);
+ OS::SNPrint(chars, len, kFormat, function_name,
+ static_str, abstract_str, kind_str, const_str);
return chars;
}

Powered by Google App Engine
This is Rietveld 408576698