Ignore:
Timestamp:
Dec 2, 2010, 5:16:11 PM (14 years ago)
Author:
[email protected]
Message:

Fixed <rdar://problem/8310571> CrashTracer: 60 crashes in Photo Booth at
com.apple.JavaScriptCore: JSC::Heap::markRoots + 746

Reviewed by Gavin Barraclough.

  • API/APIShims.h:

(JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Call our new
synchronize() function.

  • runtime/Collector.cpp:

(JSC::Heap::activityCallback):

  • runtime/Collector.h: Added an activityCallback() accessor, for the

call above.

  • runtime/GCActivityCallback.h:

(JSC::GCActivityCallback::synchronize):

  • runtime/GCActivityCallbackCF.cpp:

(JSC::DefaultGCActivityCallback::DefaultGCActivityCallback):
(JSC::DefaultGCActivityCallback::~DefaultGCActivityCallback):
(JSC::DefaultGCActivityCallback::operator()):
(JSC::DefaultGCActivityCallback::synchronize): Track the run loop we're
scheduled in. If we begin/resume execution within a new run loop, reschedule
on it. This prevents a crash when using a lockless context group on
multiple threads -- the crash would happen if the GC timer scheduled on
thread A, then you continued execution on thread B, then the thread A
timer fired.

File:
1 edited

Legend:

Unmodified
Added
Removed
Note: See TracChangeset for help on using the changeset viewer.