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

Side by Side Diff: src/api.h

Issue 2801073006: Decouple root visitors from object visitors. (Closed)
Patch Set: rebase Created 3 years, 8 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 | « BUILD.gn ('k') | src/api.cc » ('j') | src/heap/mark-compact.cc » ('J')
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_API_H_ 5 #ifndef V8_API_H_
6 #define V8_API_H_ 6 #define V8_API_H_
7 7
8 #include "include/v8-testing.h" 8 #include "include/v8-testing.h"
9 #include "src/contexts.h" 9 #include "src/contexts.h"
10 #include "src/debug/debug-interface.h" 10 #include "src/debug/debug-interface.h"
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 358
359 private: 359 private:
360 DeferredHandles(Object** first_block_limit, Isolate* isolate) 360 DeferredHandles(Object** first_block_limit, Isolate* isolate)
361 : next_(NULL), 361 : next_(NULL),
362 previous_(NULL), 362 previous_(NULL),
363 first_block_limit_(first_block_limit), 363 first_block_limit_(first_block_limit),
364 isolate_(isolate) { 364 isolate_(isolate) {
365 isolate->LinkDeferredHandles(this); 365 isolate->LinkDeferredHandles(this);
366 } 366 }
367 367
368 void Iterate(ObjectVisitor* v); 368 void Iterate(RootVisitor* v);
369 369
370 List<Object**> blocks_; 370 List<Object**> blocks_;
371 DeferredHandles* next_; 371 DeferredHandles* next_;
372 DeferredHandles* previous_; 372 DeferredHandles* previous_;
373 Object** first_block_limit_; 373 Object** first_block_limit_;
374 Isolate* isolate_; 374 Isolate* isolate_;
375 375
376 friend class HandleScopeImplementer; 376 friend class HandleScopeImplementer;
377 friend class Isolate; 377 friend class Isolate;
378 }; 378 };
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 DeleteArray(spare_); 410 DeleteArray(spare_);
411 } 411 }
412 412
413 // Threading support for handle data. 413 // Threading support for handle data.
414 static int ArchiveSpacePerThread(); 414 static int ArchiveSpacePerThread();
415 char* RestoreThread(char* from); 415 char* RestoreThread(char* from);
416 char* ArchiveThread(char* to); 416 char* ArchiveThread(char* to);
417 void FreeThreadResources(); 417 void FreeThreadResources();
418 418
419 // Garbage collection support. 419 // Garbage collection support.
420 void Iterate(v8::internal::ObjectVisitor* v); 420 void Iterate(v8::internal::RootVisitor* v);
421 static char* Iterate(v8::internal::ObjectVisitor* v, char* data); 421 static char* Iterate(v8::internal::RootVisitor* v, char* data);
422
423 422
424 inline internal::Object** GetSpareOrNewBlock(); 423 inline internal::Object** GetSpareOrNewBlock();
425 inline void DeleteExtensions(internal::Object** prev_limit); 424 inline void DeleteExtensions(internal::Object** prev_limit);
426 425
427 // Call depth represents nested v8 api calls. 426 // Call depth represents nested v8 api calls.
428 inline void IncrementCallDepth() {call_depth_++;} 427 inline void IncrementCallDepth() {call_depth_++;}
429 inline void DecrementCallDepth() {call_depth_--;} 428 inline void DecrementCallDepth() {call_depth_--;}
430 inline bool CallDepthIsZero() { return call_depth_ == 0; } 429 inline bool CallDepthIsZero() { return call_depth_ == 0; }
431 430
432 // Microtasks scope depth represents nested scopes controlling microtasks 431 // Microtasks scope depth represents nested scopes controlling microtasks
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 int microtasks_suppressions_; 526 int microtasks_suppressions_;
528 int entered_context_count_during_microtasks_; 527 int entered_context_count_during_microtasks_;
529 #ifdef DEBUG 528 #ifdef DEBUG
530 int debug_microtasks_depth_; 529 int debug_microtasks_depth_;
531 #endif 530 #endif
532 v8::MicrotasksPolicy microtasks_policy_; 531 v8::MicrotasksPolicy microtasks_policy_;
533 Object** last_handle_before_deferred_block_; 532 Object** last_handle_before_deferred_block_;
534 // This is only used for threading support. 533 // This is only used for threading support.
535 HandleScopeData handle_scope_data_; 534 HandleScopeData handle_scope_data_;
536 535
537 void IterateThis(ObjectVisitor* v); 536 void IterateThis(RootVisitor* v);
538 char* RestoreThreadHelper(char* from); 537 char* RestoreThreadHelper(char* from);
539 char* ArchiveThreadHelper(char* to); 538 char* ArchiveThreadHelper(char* to);
540 539
541 friend class DeferredHandles; 540 friend class DeferredHandles;
542 friend class DeferredHandleScope; 541 friend class DeferredHandleScope;
543 542
544 DISALLOW_COPY_AND_ASSIGN(HandleScopeImplementer); 543 DISALLOW_COPY_AND_ASSIGN(HandleScopeImplementer);
545 }; 544 };
546 545
547 546
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 } 664 }
666 665
667 private: 666 private:
668 static v8::Testing::StressType stress_type_; 667 static v8::Testing::StressType stress_type_;
669 }; 668 };
670 669
671 } // namespace internal 670 } // namespace internal
672 } // namespace v8 671 } // namespace v8
673 672
674 #endif // V8_API_H_ 673 #endif // V8_API_H_
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/api.cc » ('j') | src/heap/mark-compact.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698