Ignore:
Timestamp:
Jul 7, 2006, 1:41:27 PM (19 years ago)
Author:
ggaren
Message:

Reviewed by John.


  • Fixed a few crashes resulting from NULL parameters to JSClassCreate.
  • API/JSClassRef.cpp: (JSClassCreate): (JSClassRelease):
  • API/testapi.c: Added test for NULL parameters. (main):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/JSClassRef.cpp

    r15133 r15213  
    3838    if (staticValues) {
    3939        jsClass->staticValues = new __JSClass::StaticValuesTable();
    40         while (staticValues->name != 0) {
     40        while (staticValues->name) {
    4141            jsClass->staticValues->add(Identifier(staticValues->name).ustring().rep(),
    4242                                       new StaticValueEntry(staticValues->getProperty, staticValues->setProperty, staticValues->attributes));
     
    4747    if (staticFunctions) {
    4848        jsClass->staticFunctions = new __JSClass::StaticFunctionsTable();
    49         while (staticFunctions->name != 0) {
     49        while (staticFunctions->name) {
    5050            jsClass->staticFunctions->add(Identifier(staticFunctions->name).ustring().rep(),
    5151                                          new StaticFunctionEntry(staticFunctions->callAsFunction, staticFunctions->attributes));
     
    5454    }
    5555   
    56     jsClass->callbacks = *callbacks;
     56    if (callbacks)
     57        jsClass->callbacks = *callbacks;
     58    else
     59        jsClass->callbacks = kJSObjectCallbacksNone;
     60   
    5761    jsClass->parent = parentClass;
    5862   
     
    6973{
    7074    if (--jsClass->refCount == 0) {
    71         deleteAllValues(*jsClass->staticValues);
    72         delete jsClass->staticValues;
     75        if (jsClass->staticValues) {
     76            deleteAllValues(*jsClass->staticValues);
     77            delete jsClass->staticValues;
     78        }
    7379
    74         deleteAllValues(*jsClass->staticFunctions);
    75         delete jsClass->staticFunctions;
     80        if (jsClass->staticFunctions) {
     81            deleteAllValues(*jsClass->staticFunctions);
     82            delete jsClass->staticFunctions;
     83        }
    7684
    7785        delete jsClass;
Note: See TracChangeset for help on using the changeset viewer.