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

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

Issue 51123003: VM: Fix checked mode crash (issue 13831). (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
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 "include/dart_mirrors_api.h" 5 #include "include/dart_mirrors_api.h"
6 6
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/class_finalizer.h" 8 #include "vm/class_finalizer.h"
9 #include "vm/dart.h" 9 #include "vm/dart.h"
10 #include "vm/dart_api_impl.h" 10 #include "vm/dart_api_impl.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 86
87 // Some special types like 'dynamic' have a null functions list. 87 // Some special types like 'dynamic' have a null functions list.
88 if (!func_array.IsNull()) { 88 if (!func_array.IsNull()) {
89 for (intptr_t i = 0; i < func_array.Length(); ++i) { 89 for (intptr_t i = 0; i < func_array.Length(); ++i) {
90 func ^= func_array.At(i); 90 func ^= func_array.At(i);
91 91
92 // Skip implicit getters and setters. 92 // Skip implicit getters and setters.
93 if (func.kind() == RawFunction::kImplicitGetter || 93 if (func.kind() == RawFunction::kImplicitGetter ||
94 func.kind() == RawFunction::kImplicitSetter || 94 func.kind() == RawFunction::kImplicitSetter ||
95 func.kind() == RawFunction::kImplicitStaticFinalGetter || 95 func.kind() == RawFunction::kImplicitStaticFinalGetter ||
96 func.kind() == RawFunction::kStaticInitializer ||
96 func.kind() == RawFunction::kMethodExtractor || 97 func.kind() == RawFunction::kMethodExtractor ||
97 func.kind() == RawFunction::kNoSuchMethodDispatcher) { 98 func.kind() == RawFunction::kNoSuchMethodDispatcher) {
98 continue; 99 continue;
99 } 100 }
100 101
101 name = func.UserVisibleName(); 102 name = func.UserVisibleName();
102 names.Add(name); 103 names.Add(name);
103 } 104 }
104 } 105 }
105 } else if (obj.IsLibrary()) { 106 } else if (obj.IsLibrary()) {
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 RETURN_TYPE_ERROR(isolate, closure, Instance); 366 RETURN_TYPE_ERROR(isolate, closure, Instance);
366 } 367 }
367 368
368 ASSERT(ClassFinalizer::AllClassesFinalized()); 369 ASSERT(ClassFinalizer::AllClassesFinalized());
369 370
370 RawFunction* rf = Closure::function(closure_obj); 371 RawFunction* rf = Closure::function(closure_obj);
371 return Api::NewHandle(isolate, rf); 372 return Api::NewHandle(isolate, rf);
372 } 373 }
373 374
374 } // namespace dart 375 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698