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

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

Issue 1737693003: - Remove Isolate::Flags structure and store flags directly in isolate. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Address review comments. Created 4 years, 9 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
« no previous file with comments | « runtime/vm/class_finalizer.cc ('k') | runtime/vm/compiler_test.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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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/code_generator.h" 5 #include "vm/code_generator.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 #include "vm/ast.h" 8 #include "vm/ast.h"
9 #include "vm/code_patcher.h" 9 #include "vm/code_patcher.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 DEFINE_RUNTIME_ENTRY(InstantiateTypeArguments, 2) { 225 DEFINE_RUNTIME_ENTRY(InstantiateTypeArguments, 2) {
226 TypeArguments& type_arguments = 226 TypeArguments& type_arguments =
227 TypeArguments::CheckedHandle(arguments.ArgAt(0)); 227 TypeArguments::CheckedHandle(arguments.ArgAt(0));
228 const TypeArguments& instantiator = 228 const TypeArguments& instantiator =
229 TypeArguments::CheckedHandle(arguments.ArgAt(1)); 229 TypeArguments::CheckedHandle(arguments.ArgAt(1));
230 ASSERT(!type_arguments.IsNull() && !type_arguments.IsInstantiated()); 230 ASSERT(!type_arguments.IsNull() && !type_arguments.IsInstantiated());
231 ASSERT(instantiator.IsNull() || instantiator.IsInstantiated()); 231 ASSERT(instantiator.IsNull() || instantiator.IsInstantiated());
232 // Code inlined in the caller should have optimized the case where the 232 // Code inlined in the caller should have optimized the case where the
233 // instantiator can be reused as type argument vector. 233 // instantiator can be reused as type argument vector.
234 ASSERT(instantiator.IsNull() || !type_arguments.IsUninstantiatedIdentity()); 234 ASSERT(instantiator.IsNull() || !type_arguments.IsUninstantiatedIdentity());
235 if (isolate->flags().type_checks()) { 235 if (isolate->type_checks()) {
236 Error& bound_error = Error::Handle(); 236 Error& bound_error = Error::Handle();
237 type_arguments = 237 type_arguments =
238 type_arguments.InstantiateAndCanonicalizeFrom(instantiator, 238 type_arguments.InstantiateAndCanonicalizeFrom(instantiator,
239 &bound_error); 239 &bound_error);
240 if (!bound_error.IsNull()) { 240 if (!bound_error.IsNull()) {
241 // Throw a dynamic type error. 241 // Throw a dynamic type error.
242 const TokenPosition location = GetCallerLocation(); 242 const TokenPosition location = GetCallerLocation();
243 String& bound_error_message = String::Handle( 243 String& bound_error_message = String::Handle(
244 String::New(bound_error.ToErrorCString())); 244 String::New(bound_error.ToErrorCString()));
245 Exceptions::CreateAndThrowTypeError( 245 Exceptions::CreateAndThrowTypeError(
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 // Note that instantiated_dst_type may be malbounded. 530 // Note that instantiated_dst_type may be malbounded.
531 dst_type_name = instantiated_dst_type.UserVisibleName(); 531 dst_type_name = instantiated_dst_type.UserVisibleName();
532 dst_type_lib = 532 dst_type_lib =
533 Class::Handle(instantiated_dst_type.type_class()).library(); 533 Class::Handle(instantiated_dst_type.type_class()).library();
534 } else { 534 } else {
535 dst_type_name = dst_type.UserVisibleName(); 535 dst_type_name = dst_type.UserVisibleName();
536 dst_type_lib = Class::Handle(dst_type.type_class()).library(); 536 dst_type_lib = Class::Handle(dst_type.type_class()).library();
537 } 537 }
538 String& bound_error_message = String::Handle(); 538 String& bound_error_message = String::Handle();
539 if (!bound_error.IsNull()) { 539 if (!bound_error.IsNull()) {
540 ASSERT(isolate->flags().type_checks()); 540 ASSERT(isolate->type_checks());
541 bound_error_message = String::New(bound_error.ToErrorCString()); 541 bound_error_message = String::New(bound_error.ToErrorCString());
542 } 542 }
543 if (src_type_name.Equals(dst_type_name)) { 543 if (src_type_name.Equals(dst_type_name)) {
544 // Qualify the names with their libraries. 544 // Qualify the names with their libraries.
545 String& lib_name = String::Handle(); 545 String& lib_name = String::Handle();
546 lib_name = Library::Handle( 546 lib_name = Library::Handle(
547 Class::Handle(src_type.type_class()).library()).name(); 547 Class::Handle(src_type.type_class()).library()).name();
548 if (lib_name.Length() != 0) { 548 if (lib_name.Length() != 0) {
549 lib_name = String::Concat(lib_name, Symbols::Dot()); 549 lib_name = String::Concat(lib_name, Symbols::Dot());
550 src_type_name = String::Concat(lib_name, src_type_name); 550 src_type_name = String::Concat(lib_name, src_type_name);
(...skipping 1339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 const intptr_t elm_size = old_data.ElementSizeInBytes(); 1890 const intptr_t elm_size = old_data.ElementSizeInBytes();
1891 const TypedData& new_data = 1891 const TypedData& new_data =
1892 TypedData::Handle(TypedData::New(cid, new_size, Heap::kOld)); 1892 TypedData::Handle(TypedData::New(cid, new_size, Heap::kOld));
1893 TypedData::Copy(new_data, 0, old_data, 0, old_size * elm_size); 1893 TypedData::Copy(new_data, 0, old_data, 0, old_size * elm_size);
1894 typed_data_cell.SetAt(0, new_data); 1894 typed_data_cell.SetAt(0, new_data);
1895 arguments.SetReturn(new_data); 1895 arguments.SetReturn(new_data);
1896 } 1896 }
1897 1897
1898 1898
1899 } // namespace dart 1899 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/class_finalizer.cc ('k') | runtime/vm/compiler_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698