2008-10-09 Cameron Zwarich <zwarich@apple.com>
authorcwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Oct 2008 21:47:31 +0000 (21:47 +0000)
committercwzwarich@webkit.org <cwzwarich@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 9 Oct 2008 21:47:31 +0000 (21:47 +0000)
commit11a91e26ee2a812ec2e85946e23f0807c11b1095
treeae5e19489c619a3fa52f8a184afacb4dd0c3d8cc
parent4a2262380744a40e5aadf9cd0dc9a9c7bdb6735c
2008-10-09  Cameron Zwarich  <zwarich@apple.com>

        Reviewed by Oliver Hunt.

        Bug 21459: REGRESSION (r37324): Safari crashes inside JavaScriptCore while browsing hulu.com
        <https://bugs.webkit.org/show_bug.cgi?id=21459>

        After r37324, an Arguments object does not mark an associated activation
        object. This change was made because Arguments no longer directly used
        the activation object in any way. However, if an activation is torn off,
        then the backing store of Arguments becomes the register array of the
        activation object. Arguments directly marks all of the arguments, but
        the activation object is being collected, which causes its register
        array to be freed and new memory to be allocated in its place.

        Unfortunately, it does not seem possible to reproduce this issue in a
        layout test.

        * kjs/Arguments.cpp:
        (JSC::Arguments::mark):
        * kjs/Arguments.h:
        (JSC::Arguments::setActivation):
        (JSC::Arguments::Arguments):
        (JSC::JSActivation::copyRegisters):

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