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

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

Issue 2106863003: Handle cross-thread weak persistents during global weak processing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: only treat cross-thread weaks during global weak processing Created 4 years, 5 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
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 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 virtual void registerWeakMembers(const void*, const void*, WeakCallback) = 0 ; 311 virtual void registerWeakMembers(const void*, const void*, WeakCallback) = 0 ;
312 using VisitorHelper<Visitor>::registerWeakMembers; 312 using VisitorHelper<Visitor>::registerWeakMembers;
313 313
314 virtual void registerWeakTable(const void*, EphemeronCallback, EphemeronCall back) = 0; 314 virtual void registerWeakTable(const void*, EphemeronCallback, EphemeronCall back) = 0;
315 #if ENABLE(ASSERT) 315 #if ENABLE(ASSERT)
316 virtual bool weakTableRegistered(const void*) = 0; 316 virtual bool weakTableRegistered(const void*) = 0;
317 #endif 317 #endif
318 318
319 virtual bool ensureMarked(const void*) = 0; 319 virtual bool ensureMarked(const void*) = 0;
320 320
321 virtual void registerWeakCellWithCallback(void**, WeakCallback) = 0;
322
321 inline MarkingMode getMarkingMode() const { return m_markingMode; } 323 inline MarkingMode getMarkingMode() const { return m_markingMode; }
322 324
323 protected: 325 protected:
324 Visitor(ThreadState*, MarkingMode); 326 Visitor(ThreadState*, MarkingMode);
325 327
326 virtual void registerWeakCellWithCallback(void**, WeakCallback) = 0;
327
328 private: 328 private:
329 static Visitor* fromHelper(VisitorHelper<Visitor>* helper) { return static_c ast<Visitor*>(helper); } 329 static Visitor* fromHelper(VisitorHelper<Visitor>* helper) { return static_c ast<Visitor*>(helper); }
330 330
331 ThreadState* m_state; 331 ThreadState* m_state;
332 const MarkingMode m_markingMode; 332 const MarkingMode m_markingMode;
333 }; 333 };
334 334
335 } // namespace blink 335 } // namespace blink
336 336
337 #endif // Visitor_h 337 #endif // Visitor_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698