Changeset 34982 in webkit


Ignore:
Timestamp:
Jul 3, 2008 11:13:29 AM (16 years ago)
Author:
cwzwarich@webkit.org
Message:

2008-07-03 Cameron Zwarich <cwzwarich@uwaterloo.ca>

Reviewed by Geoff.

Bug 19853: REGRESSION (r34838): Crash when visiting http://www.thewebsiteisdown.com/salesguy.html
https://bugs.webkit.org/show_bug.cgi?id=19853

Remove the body of _NPN_SetException(), because it was simply calling
throwError(), which sets an exception on an ExecState but does not
actually handle it. The presence of an exception on the global ExecState
causes assertions that there is no exception set on that ExecState to
fail, as well as causing Machine::execute() to mistakingly return 0 in
some cases, as it assumes the presence of an exception implies that it
has run out of memory.

  • bridge/NP_jsobject.cpp: (_NPN_SetException):
Location:
trunk/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r34980 r34982  
     12008-07-03  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
     2
     3        Reviewed by Geoff.
     4
     5        Bug 19853: REGRESSION (r34838): Crash when visiting http://www.thewebsiteisdown.com/salesguy.html
     6        https://bugs.webkit.org/show_bug.cgi?id=19853
     7
     8        Remove the body of _NPN_SetException(), because it was simply calling
     9        throwError(), which sets an exception on an ExecState but does not
     10        actually handle it. The presence of an exception on the global ExecState
     11        causes assertions that there is no exception set on that ExecState to
     12        fail, as well as causing Machine::execute() to mistakingly return 0 in
     13        some cases, as it assumes the presence of an exception implies that it
     14        has run out of memory.
     15
     16        * bridge/NP_jsobject.cpp:
     17        (_NPN_SetException):
     18
    1192008-07-03  Maciej Katafiasz  <mathrick@gmail.com>
    220
  • trunk/WebCore/bridge/NP_jsobject.cpp

    r34947 r34982  
    352352}
    353353
    354 void _NPN_SetException(NPObject* o, const NPUTF8* message)
    355 {
    356     if (o->_class == NPScriptObjectClass) {
    357         JavaScriptObject* obj = (JavaScriptObject*)o;
    358         RootObject* rootObject = obj->rootObject;
    359         if (!rootObject || !rootObject->isValid())
    360             return;
    361 
    362         ExecState* exec = rootObject->globalObject()->globalExec();
    363         JSLock lock(false);
    364         throwError(exec, GeneralError, message);
    365     }
     354void _NPN_SetException(NPObject*, const NPUTF8*)
     355{
     356    // FIXME:
     357    // Bug 19888: Implement _NPN_SetException() correctly
     358    // <https://bugs.webkit.org/show_bug.cgi?id=19888>
    366359}
    367360
Note: See TracChangeset for help on using the changeset viewer.