Reviewed by Maciej.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 5 Aug 2007 10:16:41 +0000 (10:16 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 5 Aug 2007 10:16:41 +0000 (10:16 +0000)
commit10b94ecc92b50b1c29d90ff756d73344ff5e442c
treefe38005a65665ed9714bd5d898c098f4a1cfc38d
parent11baf22380575ab2cd1490a1061b86d9c74bccb3
    Reviewed by Maciej.

        - fix <rdar://problem/5371862> crash in Dashcode due to Quartz Composer JavaScript garbage collector reentrancy

        * API/JSBase.cpp: (JSGarbageCollect): Don't call collector() if isBusy() returns true.

        * kjs/collector.h: Added isBusy(), removed the unused return value from collect()
        * kjs/collector.cpp: Added an "operation in progress" flag to the allocator.
        (KJS::Collector::allocate): Call abort() if an operation is already in progress. Set the new flag instead
        of using the debug-only GCLock.
        (KJS::Collector::collect): Ditto.
        (KJS::Collector::isBusy): Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@24874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/API/JSBase.cpp
JavaScriptCore/ChangeLog
JavaScriptCore/kjs/collector.cpp
JavaScriptCore/kjs/collector.h