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

Side by Side Diff: third_party/WebKit/Source/platform/heap/ThreadState.h

Issue 1472823002: Couple V8AbstractEventListener's lifetime to the V8 listeners lifetime (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ignore self refs Created 5 years 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 } 226 }
227 227
228 static ThreadState* mainThreadState() 228 static ThreadState* mainThreadState()
229 { 229 {
230 return reinterpret_cast<ThreadState*>(s_mainThreadStateStorage); 230 return reinterpret_cast<ThreadState*>(s_mainThreadStateStorage);
231 } 231 }
232 232
233 bool isMainThread() const { return this == mainThreadState(); } 233 bool isMainThread() const { return this == mainThreadState(); }
234 #if ENABLE(ASSERT) 234 #if ENABLE(ASSERT)
235 bool checkThread() const { return m_thread == currentThread(); } 235 bool checkThread() const { return m_thread == currentThread(); }
236 void incrementNumberOfSelfRefs() { ++m_numberOfSelfRefs; }
237 void decrementNumberOfSelfRefs() { --m_numberOfSelfRefs; }
236 #endif 238 #endif
237 239
238 void performIdleGC(double deadlineSeconds); 240 void performIdleGC(double deadlineSeconds);
239 void performIdleLazySweep(double deadlineSeconds); 241 void performIdleLazySweep(double deadlineSeconds);
240 242
241 void scheduleIdleGC(); 243 void scheduleIdleGC();
242 void scheduleIdleLazySweep(); 244 void scheduleIdleLazySweep();
243 void schedulePreciseGC(); 245 void schedulePreciseGC();
244 void scheduleV8FollowupGCIfNeeded(BlinkGC::V8GCType); 246 void scheduleV8FollowupGCIfNeeded(BlinkGC::V8GCType);
245 void schedulePageNavigationGCIfNeeded(float estimatedRemovalRatio); 247 void schedulePageNavigationGCIfNeeded(float estimatedRemovalRatio);
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 CallbackStack* m_threadLocalWeakCallbackStack; 642 CallbackStack* m_threadLocalWeakCallbackStack;
641 643
642 // Pre-finalizers are called in the reverse order in which they are 644 // Pre-finalizers are called in the reverse order in which they are
643 // registered by the constructors (including constructors of Mixin objects) 645 // registered by the constructors (including constructors of Mixin objects)
644 // for an object, by processing the m_orderedPreFinalizers back-to-front. 646 // for an object, by processing the m_orderedPreFinalizers back-to-front.
645 ListHashSet<PreFinalizer> m_orderedPreFinalizers; 647 ListHashSet<PreFinalizer> m_orderedPreFinalizers;
646 648
647 v8::Isolate* m_isolate; 649 v8::Isolate* m_isolate;
648 void (*m_traceDOMWrappers)(v8::Isolate*, Visitor*); 650 void (*m_traceDOMWrappers)(v8::Isolate*, Visitor*);
649 651
652 #if ENABLE(ASSERT)
653 int m_numberOfSelfRefs;
654 #endif
655
650 #if defined(ADDRESS_SANITIZER) 656 #if defined(ADDRESS_SANITIZER)
651 void* m_asanFakeStack; 657 void* m_asanFakeStack;
652 #endif 658 #endif
653 659
654 // Ideally we want to allocate an array of size |gcInfoTableMax| but it will 660 // Ideally we want to allocate an array of size |gcInfoTableMax| but it will
655 // waste memory. Thus we limit the array size to 2^8 and share one entry 661 // waste memory. Thus we limit the array size to 2^8 and share one entry
656 // with multiple types of vectors. This won't be an issue in practice, 662 // with multiple types of vectors. This won't be an issue in practice,
657 // since there will be less than 2^8 types of objects in common cases. 663 // since there will be less than 2^8 types of objects in common cases.
658 static const int likelyToBePromptlyFreedArraySize = (1 << 8); 664 static const int likelyToBePromptlyFreedArraySize = (1 << 8);
659 static const int likelyToBePromptlyFreedArrayMask = likelyToBePromptlyFreedA rraySize - 1; 665 static const int likelyToBePromptlyFreedArrayMask = likelyToBePromptlyFreedA rraySize - 1;
(...skipping 13 matching lines...) Expand all
673 }; 679 };
674 680
675 template<> class ThreadStateFor<AnyThread> { 681 template<> class ThreadStateFor<AnyThread> {
676 public: 682 public:
677 static ThreadState* state() { return ThreadState::current(); } 683 static ThreadState* state() { return ThreadState::current(); }
678 }; 684 };
679 685
680 } // namespace blink 686 } // namespace blink
681 687
682 #endif // ThreadState_h 688 #endif // ThreadState_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698