OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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_ISOLATE_RELOAD_H_ | 5 #ifndef VM_ISOLATE_RELOAD_H_ |
6 #define VM_ISOLATE_RELOAD_H_ | 6 #define VM_ISOLATE_RELOAD_H_ |
7 | 7 |
8 #include "vm/globals.h" | 8 #include "vm/globals.h" |
9 #include "vm/growable_array.h" | 9 #include "vm/growable_array.h" |
10 #include "vm/log.h" | 10 #include "vm/log.h" |
(...skipping 28 matching lines...) Expand all Loading... |
39 class RawGrowableObjectArray; | 39 class RawGrowableObjectArray; |
40 class RawLibrary; | 40 class RawLibrary; |
41 class RawObject; | 41 class RawObject; |
42 class RawString; | 42 class RawString; |
43 class ObjectPointerVisitor; | 43 class ObjectPointerVisitor; |
44 class ObjectStore; | 44 class ObjectStore; |
45 class UpdateClassesVisitor; | 45 class UpdateClassesVisitor; |
46 | 46 |
47 class IsolateReloadContext { | 47 class IsolateReloadContext { |
48 public: | 48 public: |
49 explicit IsolateReloadContext(Isolate* isolate, bool test_mode = false); | 49 explicit IsolateReloadContext(Isolate* isolate); |
50 ~IsolateReloadContext(); | 50 ~IsolateReloadContext(); |
51 | 51 |
52 void StartReload(); | 52 void StartReload(); |
53 void FinishReload(); | 53 void FinishReload(); |
54 void AbortReload(const Error& error); | 54 void AbortReload(const Error& error); |
55 | 55 |
56 RawLibrary* saved_root_library() const; | 56 RawLibrary* saved_root_library() const; |
57 | 57 |
58 RawGrowableObjectArray* saved_libraries() const; | 58 RawGrowableObjectArray* saved_libraries() const; |
59 | 59 |
60 void ReportError(const Error& error); | 60 void ReportError(const Error& error); |
61 void ReportError(const String& error_msg); | 61 void ReportError(const String& error_msg); |
62 void ReportSuccess(); | 62 void ReportSuccess(); |
63 | 63 |
64 bool has_error() const { return has_error_; } | 64 bool has_error() const { return has_error_; } |
65 RawError* error() const { return error_; } | 65 RawError* error() const { return error_; } |
66 bool test_mode() const { return test_mode_; } | |
67 | 66 |
68 static bool IsSameField(const Field& a, const Field& b); | 67 static bool IsSameField(const Field& a, const Field& b); |
69 static bool IsSameLibrary(const Library& a_lib, const Library& b_lib); | 68 static bool IsSameLibrary(const Library& a_lib, const Library& b_lib); |
70 static bool IsSameClass(const Class& a, const Class& b); | 69 static bool IsSameClass(const Class& a, const Class& b); |
71 | 70 |
72 RawClass* FindOriginalClass(const Class& cls); | 71 RawClass* FindOriginalClass(const Class& cls); |
73 | 72 |
74 bool IsDirty(const Library& lib); | 73 bool IsDirty(const Library& lib); |
75 | 74 |
76 // Prefers old classes when we are in the middle of a reload. | 75 // Prefers old classes when we are in the middle of a reload. |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 void ClearReplacedObjectBits(); | 122 void ClearReplacedObjectBits(); |
124 | 123 |
125 // atomic_install: | 124 // atomic_install: |
126 void MarkAllFunctionsForRecompilation(); | 125 void MarkAllFunctionsForRecompilation(); |
127 void ResetUnoptimizedICsOnStack(); | 126 void ResetUnoptimizedICsOnStack(); |
128 void ResetMegamorphicCaches(); | 127 void ResetMegamorphicCaches(); |
129 void InvalidateWorld(); | 128 void InvalidateWorld(); |
130 | 129 |
131 int64_t start_time_micros_; | 130 int64_t start_time_micros_; |
132 Isolate* isolate_; | 131 Isolate* isolate_; |
133 bool test_mode_; | |
134 bool has_error_; | 132 bool has_error_; |
135 | 133 |
136 intptr_t saved_num_cids_; | 134 intptr_t saved_num_cids_; |
137 RawClass** saved_class_table_; | 135 RawClass** saved_class_table_; |
138 | 136 |
139 intptr_t num_saved_libs_; | 137 intptr_t num_saved_libs_; |
140 struct LibraryInfo { | 138 struct LibraryInfo { |
141 bool dirty; | 139 bool dirty; |
142 }; | 140 }; |
143 MallocGrowableArray<LibraryInfo> library_infos_; | 141 MallocGrowableArray<LibraryInfo> library_infos_; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 RawGrowableObjectArray* saved_libraries_; | 174 RawGrowableObjectArray* saved_libraries_; |
177 RawObject** to() { return reinterpret_cast<RawObject**>(&saved_libraries_); } | 175 RawObject** to() { return reinterpret_cast<RawObject**>(&saved_libraries_); } |
178 | 176 |
179 friend class Isolate; | 177 friend class Isolate; |
180 friend class Class; // AddStaticFieldMapping, AddEnumBecomeMapping. | 178 friend class Class; // AddStaticFieldMapping, AddEnumBecomeMapping. |
181 }; | 179 }; |
182 | 180 |
183 } // namespace dart | 181 } // namespace dart |
184 | 182 |
185 #endif // VM_ISOLATE_RELOAD_H_ | 183 #endif // VM_ISOLATE_RELOAD_H_ |
OLD | NEW |