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

Side by Side Diff: runtime/vm/raw_object.h

Issue 68113028: Lazily format LanguageError messages (fix issue 15069). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 1 month 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/parser.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('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 #ifndef VM_RAW_OBJECT_H_ 5 #ifndef VM_RAW_OBJECT_H_
6 #define VM_RAW_OBJECT_H_ 6 #define VM_RAW_OBJECT_H_
7 7
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/globals.h" 9 #include "vm/globals.h"
10 #include "vm/token.h" 10 #include "vm/token.h"
(...skipping 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after
1085 RawObject** to() { 1085 RawObject** to() {
1086 return reinterpret_cast<RawObject**>(&ptr()->message_); 1086 return reinterpret_cast<RawObject**>(&ptr()->message_);
1087 } 1087 }
1088 }; 1088 };
1089 1089
1090 1090
1091 class RawLanguageError : public RawError { 1091 class RawLanguageError : public RawError {
1092 RAW_HEAP_OBJECT_IMPLEMENTATION(LanguageError); 1092 RAW_HEAP_OBJECT_IMPLEMENTATION(LanguageError);
1093 1093
1094 RawObject** from() { 1094 RawObject** from() {
1095 return reinterpret_cast<RawObject**>(&ptr()->message_); 1095 return reinterpret_cast<RawObject**>(&ptr()->previous_error_);
1096 } 1096 }
1097 RawError* previous_error_; // May be null.
1098 RawScript* script_;
1097 RawString* message_; 1099 RawString* message_;
1100 RawString* formatted_message_; // Incl. previous error's formatted message.
1098 RawObject** to() { 1101 RawObject** to() {
1099 return reinterpret_cast<RawObject**>(&ptr()->message_); 1102 return reinterpret_cast<RawObject**>(&ptr()->formatted_message_);
1100 } 1103 }
1104 intptr_t token_pos_; // Source position in script_.
1105 int8_t kind_; // Of type LanguageError::Kind.
1101 }; 1106 };
1102 1107
1103 1108
1104 class RawUnhandledException : public RawError { 1109 class RawUnhandledException : public RawError {
1105 RAW_HEAP_OBJECT_IMPLEMENTATION(UnhandledException); 1110 RAW_HEAP_OBJECT_IMPLEMENTATION(UnhandledException);
1106 1111
1107 RawObject** from() { 1112 RawObject** from() {
1108 return reinterpret_cast<RawObject**>(&ptr()->exception_); 1113 return reinterpret_cast<RawObject**>(&ptr()->exception_);
1109 } 1114 }
1110 RawInstance* exception_; 1115 RawInstance* exception_;
(...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after
1720 // Make sure this is updated when new TypedData types are added. 1725 // Make sure this is updated when new TypedData types are added.
1721 ASSERT(kTypedDataInt8ArrayViewCid == kTypedDataInt8ArrayCid + 13); 1726 ASSERT(kTypedDataInt8ArrayViewCid == kTypedDataInt8ArrayCid + 13);
1722 ASSERT(kExternalTypedDataInt8ArrayCid == kTypedDataInt8ArrayViewCid + 14); 1727 ASSERT(kExternalTypedDataInt8ArrayCid == kTypedDataInt8ArrayViewCid + 14);
1723 ASSERT(kNullCid == kExternalTypedDataInt8ArrayCid + 13); 1728 ASSERT(kNullCid == kExternalTypedDataInt8ArrayCid + 13);
1724 return (kNullCid - kTypedDataInt8ArrayCid); 1729 return (kNullCid - kTypedDataInt8ArrayCid);
1725 } 1730 }
1726 1731
1727 } // namespace dart 1732 } // namespace dart
1728 1733
1729 #endif // VM_RAW_OBJECT_H_ 1734 #endif // VM_RAW_OBJECT_H_
OLDNEW
« no previous file with comments | « runtime/vm/parser.cc ('k') | runtime/vm/raw_object_snapshot.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698