| OLD | NEW |
| 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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 registerWeakMembers(obj, &TraceMethodDelegate<T, method>::trampoline); | 276 registerWeakMembers(obj, &TraceMethodDelegate<T, method>::trampoline); |
| 277 } | 277 } |
| 278 | 278 |
| 279 void registerWeakMembers(const void* object, WeakCallback callback) { | 279 void registerWeakMembers(const void* object, WeakCallback callback) { |
| 280 Derived::fromHelper(this)->registerWeakMembers(object, object, callback); | 280 Derived::fromHelper(this)->registerWeakMembers(object, object, callback); |
| 281 } | 281 } |
| 282 | 282 |
| 283 void registerBackingStoreReference(void* slot) { | 283 void registerBackingStoreReference(void* slot) { |
| 284 if (getMarkingMode() != VisitorMarkingMode::GlobalMarkingWithCompaction) | 284 if (getMarkingMode() != VisitorMarkingMode::GlobalMarkingWithCompaction) |
| 285 return; | 285 return; |
| 286 Derived::fromHelper(this)->registerMovingObjectReference( | 286 heap().registerMovingObjectReference( |
| 287 reinterpret_cast<MovableReference*>(slot)); | 287 reinterpret_cast<MovableReference*>(slot)); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void registerBackingStoreCallback(void* backingStore, | 290 void registerBackingStoreCallback(void* backingStore, |
| 291 MovingObjectCallback callback, | 291 MovingObjectCallback callback, |
| 292 void* callbackData) { | 292 void* callbackData) { |
| 293 if (getMarkingMode() != VisitorMarkingMode::GlobalMarkingWithCompaction) | 293 if (getMarkingMode() != VisitorMarkingMode::GlobalMarkingWithCompaction) |
| 294 return; | 294 return; |
| 295 Derived::fromHelper(this)->registerMovingObjectCallback( | 295 heap().registerMovingObjectCallback( |
| 296 reinterpret_cast<MovableReference>(backingStore), callback, | 296 reinterpret_cast<MovableReference>(backingStore), callback, |
| 297 callbackData); | 297 callbackData); |
| 298 } | 298 } |
| 299 | 299 |
| 300 inline ThreadState* state() const { return m_state; } | 300 inline ThreadState* state() const { return m_state; } |
| 301 inline ThreadHeap& heap() const { return state()->heap(); } | 301 inline ThreadHeap& heap() const { return state()->heap(); } |
| 302 | 302 |
| 303 inline VisitorMarkingMode getMarkingMode() const { return m_markingMode; } | 303 inline VisitorMarkingMode getMarkingMode() const { return m_markingMode; } |
| 304 | 304 |
| 305 inline bool isGlobalMarking() const { | 305 inline bool isGlobalMarking() const { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 | 380 |
| 381 virtual void registerWeakTable(const void*, | 381 virtual void registerWeakTable(const void*, |
| 382 EphemeronCallback, | 382 EphemeronCallback, |
| 383 EphemeronCallback) = 0; | 383 EphemeronCallback) = 0; |
| 384 #if DCHECK_IS_ON() | 384 #if DCHECK_IS_ON() |
| 385 virtual bool weakTableRegistered(const void*) = 0; | 385 virtual bool weakTableRegistered(const void*) = 0; |
| 386 #endif | 386 #endif |
| 387 | 387 |
| 388 virtual bool ensureMarked(const void*) = 0; | 388 virtual bool ensureMarked(const void*) = 0; |
| 389 | 389 |
| 390 virtual void registerMovingObjectReference(MovableReference*) = 0; | |
| 391 | |
| 392 virtual void registerMovingObjectCallback(MovableReference, | |
| 393 MovingObjectCallback, | |
| 394 void*) = 0; | |
| 395 | |
| 396 virtual void registerWeakCellWithCallback(void**, WeakCallback) = 0; | 390 virtual void registerWeakCellWithCallback(void**, WeakCallback) = 0; |
| 397 | 391 |
| 398 protected: | 392 protected: |
| 399 Visitor(ThreadState*, VisitorMarkingMode); | 393 Visitor(ThreadState*, VisitorMarkingMode); |
| 400 | 394 |
| 401 private: | 395 private: |
| 402 static Visitor* fromHelper(VisitorHelper<Visitor>* helper) { | 396 static Visitor* fromHelper(VisitorHelper<Visitor>* helper) { |
| 403 return static_cast<Visitor*>(helper); | 397 return static_cast<Visitor*>(helper); |
| 404 } | 398 } |
| 405 }; | 399 }; |
| 406 | 400 |
| 407 } // namespace blink | 401 } // namespace blink |
| 408 | 402 |
| 409 #endif // Visitor_h | 403 #endif // Visitor_h |
| OLD | NEW |