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

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

Issue 343803002: Finishes removing intptr_t from raw object fields. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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 unified diff | Download patch | Annotate | Revision Log
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/cpu.h" 10 #include "vm/cpu.h"
(...skipping 10453 matching lines...) Expand 10 before | Expand all | Expand 10 after
10464 UNREACHABLE(); 10464 UNREACHABLE();
10465 return "Unknown"; 10465 return "Unknown";
10466 } 10466 }
10467 } 10467 }
10468 10468
10469 10469
10470 static int PrintVarInfo(char* buffer, int len, 10470 static int PrintVarInfo(char* buffer, int len,
10471 intptr_t i, 10471 intptr_t i,
10472 const String& var_name, 10472 const String& var_name,
10473 const RawLocalVarDescriptors::VarInfo& info) { 10473 const RawLocalVarDescriptors::VarInfo& info) {
10474 if (info.kind == RawLocalVarDescriptors::kContextLevel) { 10474 const int8_t kind =
10475 RawLocalVarDescriptors::KindBits::decode(info.index_kind);
10476 const int32_t index =
10477 RawLocalVarDescriptors::IndexBits::decode(info.index_kind);
10478 if (kind == RawLocalVarDescriptors::kContextLevel) {
10475 return OS::SNPrint(buffer, len, 10479 return OS::SNPrint(buffer, len,
10476 "%2" Pd " %-13s level=%-3" Pd " scope=%-3d" 10480 "%2" Pd " %-13s level=%-3d scope=%-3d"
10477 " begin=%-3" Pd " end=%" Pd "\n", 10481 " begin=%-3d end=%d\n",
10478 i, 10482 i,
10479 VarKindString(info.kind), 10483 VarKindString(kind),
10480 info.index, 10484 index,
10481 info.scope_id, 10485 info.scope_id,
10482 info.begin_pos, 10486 info.begin_pos,
10483 info.end_pos); 10487 info.end_pos);
10484 } else if (info.kind == RawLocalVarDescriptors::kContextVar) { 10488 } else if (kind == RawLocalVarDescriptors::kContextVar) {
10485 return OS::SNPrint(buffer, len, 10489 return OS::SNPrint(buffer, len,
10486 "%2" Pd " %-13s level=%-3d index=%-3" Pd "" 10490 "%2" Pd " %-13s level=%-3d index=%-3d"
10487 " begin=%-3" Pd " end=%-3" Pd " name=%s\n", 10491 " begin=%-3d end=%-3d name=%s\n",
10488 i, 10492 i,
10489 VarKindString(info.kind), 10493 VarKindString(kind),
10490 info.scope_id, 10494 info.scope_id,
10491 info.index, 10495 index,
10492 info.begin_pos, 10496 info.begin_pos,
10493 info.end_pos, 10497 info.end_pos,
10494 var_name.ToCString()); 10498 var_name.ToCString());
10495 } else { 10499 } else {
10496 return OS::SNPrint(buffer, len, 10500 return OS::SNPrint(buffer, len,
10497 "%2" Pd " %-13s scope=%-3d index=%-3" Pd "" 10501 "%2" Pd " %-13s scope=%-3d index=%-3d"
10498 " begin=%-3" Pd " end=%-3" Pd " name=%s\n", 10502 " begin=%-3d end=%-3d name=%s\n",
10499 i, 10503 i,
10500 VarKindString(info.kind), 10504 VarKindString(kind),
10501 info.scope_id, 10505 info.scope_id,
10502 info.index, 10506 index,
10503 info.begin_pos, 10507 info.begin_pos,
10504 info.end_pos, 10508 info.end_pos,
10505 var_name.ToCString()); 10509 var_name.ToCString());
10506 } 10510 }
10507 } 10511 }
10508 10512
10509 10513
10510 const char* LocalVarDescriptors::ToCString() const { 10514 const char* LocalVarDescriptors::ToCString() const {
10511 if (IsNull()) { 10515 if (IsNull()) {
10512 return "LocalVarDescriptors(NULL)"; 10516 return "LocalVarDescriptors(NULL)";
(...skipping 30 matching lines...) Expand all
10543 void LocalVarDescriptors::PrintJSONImpl(JSONStream* stream, 10547 void LocalVarDescriptors::PrintJSONImpl(JSONStream* stream,
10544 bool ref) const { 10548 bool ref) const {
10545 Object::PrintJSONImpl(stream, ref); 10549 Object::PrintJSONImpl(stream, ref);
10546 } 10550 }
10547 10551
10548 10552
10549 RawLocalVarDescriptors* LocalVarDescriptors::New(intptr_t num_variables) { 10553 RawLocalVarDescriptors* LocalVarDescriptors::New(intptr_t num_variables) {
10550 ASSERT(Object::var_descriptors_class() != Class::null()); 10554 ASSERT(Object::var_descriptors_class() != Class::null());
10551 if (num_variables < 0 || num_variables > kMaxElements) { 10555 if (num_variables < 0 || num_variables > kMaxElements) {
10552 // This should be caught before we reach here. 10556 // This should be caught before we reach here.
10553 FATAL1("Fatal error in LocalVarDescriptors::New: " 10557 FATAL2("Fatal error in LocalVarDescriptors::New: "
10554 "invalid num_variables %" Pd "\n", num_variables); 10558 "invalid num_variables %" Pd ". Maximum is: %d\n",
10559 num_variables, RawLocalVarDescriptors::kMaxIndex);
10555 } 10560 }
10556 LocalVarDescriptors& result = LocalVarDescriptors::Handle(); 10561 LocalVarDescriptors& result = LocalVarDescriptors::Handle();
10557 { 10562 {
10558 uword size = LocalVarDescriptors::InstanceSize(num_variables); 10563 uword size = LocalVarDescriptors::InstanceSize(num_variables);
10559 RawObject* raw = Object::Allocate(LocalVarDescriptors::kClassId, 10564 RawObject* raw = Object::Allocate(LocalVarDescriptors::kClassId,
10560 size, 10565 size,
10561 Heap::kOld); 10566 Heap::kOld);
10562 NoGCScope no_gc; 10567 NoGCScope no_gc;
10563 result ^= raw; 10568 result ^= raw;
10564 result.raw_ptr()->length_ = num_variables; 10569 result.raw_ptr()->length_ = num_variables;
(...skipping 8185 matching lines...) Expand 10 before | Expand all | Expand 10 after
18750 18755
18751 RawJSRegExp* JSRegExp::FromDataStartAddress(void* data) { 18756 RawJSRegExp* JSRegExp::FromDataStartAddress(void* data) {
18752 JSRegExp& regexp = JSRegExp::Handle(); 18757 JSRegExp& regexp = JSRegExp::Handle();
18753 intptr_t addr = reinterpret_cast<intptr_t>(data) - sizeof(RawJSRegExp); 18758 intptr_t addr = reinterpret_cast<intptr_t>(data) - sizeof(RawJSRegExp);
18754 regexp ^= RawObject::FromAddr(addr); 18759 regexp ^= RawObject::FromAddr(addr);
18755 return regexp.raw(); 18760 return regexp.raw();
18756 } 18761 }
18757 18762
18758 18763
18759 const char* JSRegExp::Flags() const { 18764 const char* JSRegExp::Flags() const {
18760 switch (raw_ptr()->flags_) { 18765 switch (flags()) {
18761 case kGlobal | kIgnoreCase | kMultiLine : 18766 case kGlobal | kIgnoreCase | kMultiLine :
18762 case kIgnoreCase | kMultiLine : 18767 case kIgnoreCase | kMultiLine :
18763 return "im"; 18768 return "im";
18764 case kGlobal | kIgnoreCase : 18769 case kGlobal | kIgnoreCase :
18765 case kIgnoreCase: 18770 case kIgnoreCase:
18766 return "i"; 18771 return "i";
18767 case kGlobal | kMultiLine : 18772 case kGlobal | kMultiLine :
18768 case kMultiLine: 18773 case kMultiLine:
18769 return "m"; 18774 return "m";
18770 default: 18775 default:
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
19021 return tag_label.ToCString(); 19026 return tag_label.ToCString();
19022 } 19027 }
19023 19028
19024 19029
19025 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const { 19030 void UserTag::PrintJSONImpl(JSONStream* stream, bool ref) const {
19026 Instance::PrintJSONImpl(stream, ref); 19031 Instance::PrintJSONImpl(stream, ref);
19027 } 19032 }
19028 19033
19029 19034
19030 } // namespace dart 19035 } // namespace dart
OLDNEW
« runtime/vm/object.h ('K') | « runtime/vm/object.h ('k') | runtime/vm/raw_object.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698