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

Side by Side Diff: src/heap/heap.h

Issue 2474163002: [api] Remove EmbedderReachableReferenceReporter (Closed)
Patch Set: Remove old api Created 4 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
« no previous file with comments | « src/api.cc ('k') | src/heap/heap.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_HEAP_HEAP_H_ 5 #ifndef V8_HEAP_HEAP_H_
6 #define V8_HEAP_HEAP_H_ 6 #define V8_HEAP_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
(...skipping 1183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 void RegisterExternallyReferencedObject(Object** object); 1194 void RegisterExternallyReferencedObject(Object** object);
1195 1195
1196 void RegisterWrappersWithEmbedderHeapTracer(); 1196 void RegisterWrappersWithEmbedderHeapTracer();
1197 1197
1198 // In order to avoid running out of memory we force tracing wrappers if there 1198 // In order to avoid running out of memory we force tracing wrappers if there
1199 // are too many of them. 1199 // are too many of them.
1200 bool RequiresImmediateWrapperProcessing(); 1200 bool RequiresImmediateWrapperProcessing();
1201 1201
1202 EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; } 1202 EmbedderHeapTracer* embedder_heap_tracer() { return embedder_heap_tracer_; }
1203 1203
1204 EmbedderReachableReferenceReporter* embedder_reachable_reference_reporter() {
1205 return embedder_reference_reporter_;
1206 }
1207
1208 size_t wrappers_to_trace() { return wrappers_to_trace_.size(); } 1204 size_t wrappers_to_trace() { return wrappers_to_trace_.size(); }
1209 1205
1210 // =========================================================================== 1206 // ===========================================================================
1211 // External string table API. ================================================ 1207 // External string table API. ================================================
1212 // =========================================================================== 1208 // ===========================================================================
1213 1209
1214 // Registers an external string. 1210 // Registers an external string.
1215 inline void RegisterExternalString(String* string); 1211 inline void RegisterExternalString(String* string);
1216 1212
1217 // Finalizes an external string by deleting the associated external 1213 // Finalizes an external string by deleting the associated external
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
2304 int gc_callbacks_depth_; 2300 int gc_callbacks_depth_;
2305 2301
2306 bool deserialization_complete_; 2302 bool deserialization_complete_;
2307 2303
2308 StrongRootsList* strong_roots_list_; 2304 StrongRootsList* strong_roots_list_;
2309 2305
2310 // The depth of HeapIterator nestings. 2306 // The depth of HeapIterator nestings.
2311 int heap_iterator_depth_; 2307 int heap_iterator_depth_;
2312 2308
2313 EmbedderHeapTracer* embedder_heap_tracer_; 2309 EmbedderHeapTracer* embedder_heap_tracer_;
2314 EmbedderReachableReferenceReporter* embedder_reference_reporter_;
2315 std::vector<std::pair<void*, void*>> wrappers_to_trace_; 2310 std::vector<std::pair<void*, void*>> wrappers_to_trace_;
2316 2311
2317 // Used for testing purposes. 2312 // Used for testing purposes.
2318 bool force_oom_; 2313 bool force_oom_;
2319 bool delay_sweeper_tasks_for_testing_; 2314 bool delay_sweeper_tasks_for_testing_;
2320 2315
2321 // Classes in "heap" can be friends. 2316 // Classes in "heap" can be friends.
2322 friend class AlwaysAllocateScope; 2317 friend class AlwaysAllocateScope;
2323 friend class GCCallbacksScope; 2318 friend class GCCallbacksScope;
2324 friend class GCTracer; 2319 friend class GCTracer;
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
2628 intptr_t step_size_; 2623 intptr_t step_size_;
2629 intptr_t bytes_to_next_step_; 2624 intptr_t bytes_to_next_step_;
2630 2625
2631 private: 2626 private:
2632 friend class LargeObjectSpace; 2627 friend class LargeObjectSpace;
2633 friend class NewSpace; 2628 friend class NewSpace;
2634 friend class PagedSpace; 2629 friend class PagedSpace;
2635 DISALLOW_COPY_AND_ASSIGN(AllocationObserver); 2630 DISALLOW_COPY_AND_ASSIGN(AllocationObserver);
2636 }; 2631 };
2637 2632
2638 class TracePossibleWrapperReporter : public EmbedderReachableReferenceReporter {
2639 public:
2640 explicit TracePossibleWrapperReporter(Heap* heap) : heap_(heap) {}
2641 void ReportExternalReference(Value* object) override {
2642 heap_->RegisterExternallyReferencedObject(
2643 reinterpret_cast<Object**>(object));
2644 }
2645
2646 private:
2647 Heap* heap_;
2648 };
2649
2650 } // namespace internal 2633 } // namespace internal
2651 } // namespace v8 2634 } // namespace v8
2652 2635
2653 #endif // V8_HEAP_HEAP_H_ 2636 #endif // V8_HEAP_HEAP_H_
OLDNEW
« no previous file with comments | « src/api.cc ('k') | src/heap/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698