| OLD | NEW |
| 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/class_finalizer.h" | 5 #include "vm/class_finalizer.h" |
| 6 | 6 |
| 7 #include "vm/flags.h" | 7 #include "vm/flags.h" |
| 8 #include "vm/heap.h" | 8 #include "vm/heap.h" |
| 9 #include "vm/isolate.h" | 9 #include "vm/isolate.h" |
| 10 #include "vm/longjump.h" | 10 #include "vm/longjump.h" |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 76 for (intptr_t i = 0; i < class_array.Length(); i++) { | 76 for (intptr_t i = 0; i < class_array.Length(); i++) { |
| 77 cls ^= class_array.At(i); | 77 cls ^= class_array.At(i); |
| 78 if (!cls.is_interface()) { | 78 if (!cls.is_interface()) { |
| 79 VerifyClassImplements(cls); | 79 VerifyClassImplements(cls); |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 } | 82 } |
| 83 // Clear pending classes array. | 83 // Clear pending classes array. |
| 84 class_array = GrowableObjectArray::New(); | 84 class_array = GrowableObjectArray::New(); |
| 85 object_store->set_pending_classes(class_array); | 85 object_store->set_pending_classes(class_array); |
| 86 | |
| 87 // Check to ensure there are no duplicate definitions in the library | |
| 88 // hierarchy. | |
| 89 const String& str = String::Handle(Library::CheckForDuplicateDefinition()); | |
| 90 if (!str.IsNull()) { | |
| 91 ReportError("Duplicate definition : %s\n", str.ToCString()); | |
| 92 } | |
| 93 } else { | 86 } else { |
| 94 retval = false; | 87 retval = false; |
| 95 } | 88 } |
| 96 isolate->set_long_jump_base(base); | 89 isolate->set_long_jump_base(base); |
| 97 return retval; | 90 return retval; |
| 98 } | 91 } |
| 99 | 92 |
| 100 | 93 |
| 101 // Adds all interfaces of cls into 'collected'. Duplicate entries may occur. | 94 // Adds all interfaces of cls into 'collected'. Duplicate entries may occur. |
| 102 // No cycles are allowed. | 95 // No cycles are allowed. |
| (...skipping 1404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1507 void ClassFinalizer::ReportError(const char* format, ...) { | 1500 void ClassFinalizer::ReportError(const char* format, ...) { |
| 1508 va_list args; | 1501 va_list args; |
| 1509 va_start(args, format); | 1502 va_start(args, format); |
| 1510 const Error& error = Error::Handle( | 1503 const Error& error = Error::Handle( |
| 1511 Parser::FormatError(Script::Handle(), -1, "Error", format, args)); | 1504 Parser::FormatError(Script::Handle(), -1, "Error", format, args)); |
| 1512 va_end(args); | 1505 va_end(args); |
| 1513 ReportError(error); | 1506 ReportError(error); |
| 1514 } | 1507 } |
| 1515 | 1508 |
| 1516 } // namespace dart | 1509 } // namespace dart |
| OLD | NEW |