Ignore:
Timestamp:
Dec 9, 2009, 5:44:20 PM (15 years ago)
Author:
[email protected]
Message:

JavaScriptCore: https://bugs.webkit.org/show_bug.cgi?id=32228
Make destruction of ropes non-recursive to prevent stack exhaustion.
Also, pass a UString& into initializeFiber rather than a Ustring::Rep*,
since the Rep is not being ref counted this could result in usage of a
Rep with refcount zero (where the Rep comes from a temporary UString
returned from a function).

Reviewed by Oliver Hunt.

  • runtime/JSString.cpp:

(JSC::JSString::Rope::destructNonRecursive):
(JSC::JSString::Rope::~Rope):

  • runtime/JSString.h:

(JSC::JSString::Rope::initializeFiber):

  • runtime/Operations.h:

(JSC::concatenateStrings):

LayoutTests: https://bugs.webkit.org/show_bug.cgi?id=32228
Reenabling tests.

Reviewed by Oliver Hunt.

  • platform/win/Skipped:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/runtime/Operations.h

    r51801 r51933  
    318318                rope->initializeFiber(i, asString(v));
    319319            else
    320                 rope->initializeFiber(i, v.toString(callFrame).rep());
     320                rope->initializeFiber(i, v.toString(callFrame));
    321321        }
    322322
Note: See TracChangeset for help on using the changeset viewer.