Ignore:
Timestamp:
Apr 5, 2012, 1:09:33 PM (13 years ago)
Author:
[email protected]
Message:

Replace static_cast with jsCast when casting JSCell subclasses in JSC
https://bugs.webkit.org/show_bug.cgi?id=83307

Reviewed by Gavin Barraclough.

Replace all usage of static_cast<JSCell subtype*> with jsCast<> in JavaScriptCore.
This results in assertions when unsafe casts are performed, but simply leaves
a static_cast<> in release builds.

  • API/APICast.h:

(toJS):

  • API/JSCallbackConstructor.cpp:

(JSC::constructJSCallback):

  • API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::call):

  • API/JSCallbackObjectFunctions.h:

(JSC::::asCallbackObject):
(JSC::::finishCreation):
(JSC::::construct):
(JSC::::call):

  • API/JSObjectRef.cpp:

(JSObjectGetPrivate):
(JSObjectSetPrivate):
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):

  • API/JSValueRef.cpp:

(JSValueIsObjectOfClass):

  • API/JSWeakObjectMapRefPrivate.cpp:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::resolve):
(JSC::BytecodeGenerator::resolveConstDecl):

  • debugger/DebuggerActivation.cpp:

(JSC::DebuggerActivation::finishCreation):

  • dfg/DFGOperations.cpp:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::privateExecute):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

  • runtime/Executable.h:

(JSC::isHostFunction):

  • runtime/JSActivation.h:

(JSC::asActivation):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):

  • runtime/JSArray.h:

(JSC::asArray):

  • runtime/JSBoundFunction.cpp:

(JSC::boundFunctionCall):
(JSC::boundFunctionConstruct):

  • runtime/JSByteArray.h:

(JSC::asByteArray):

  • runtime/JSCell.cpp:

(JSC::JSCell::toObject):

  • runtime/JSCell.h:

(JSC::jsCast):

  • runtime/JSGlobalObject.h:

(JSC::asGlobalObject):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval):

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::allowsAccessFrom):
(JSC::JSObject::toThisObject):
(JSC::JSObject::unwrappedObject):

  • runtime/JSObject.h:

(JSC::asObject):

  • runtime/JSPropertyNameIterator.h:

(JSC::Register::propertyNameIterator):

  • runtime/JSString.h:

(JSC::asString):
(JSC::JSValue::toString):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSubstr):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSObjectRef.cpp

    r109866 r113363  
    342342   
    343343    if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info))
    344         return static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivate();
     344        return jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivate();
    345345    if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info))
    346         return static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->getPrivate();
     346        return jsCast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->getPrivate();
    347347   
    348348    return 0;
     
    354354   
    355355    if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info)) {
    356         static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->setPrivate(data);
     356        jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->setPrivate(data);
    357357        return true;
    358358    }
    359359    if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) {
    360         static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->setPrivate(data);
     360        jsCast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->setPrivate(data);
    361361        return true;
    362362    }
     
    373373    Identifier name(propertyName->identifier(&exec->globalData()));
    374374    if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info))
    375         result = static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivateProperty(name);
     375        result = jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivateProperty(name);
    376376    else if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info))
    377         result = static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->getPrivateProperty(name);
     377        result = jsCast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->getPrivateProperty(name);
    378378    return toRef(exec, result);
    379379}
     
    387387    Identifier name(propertyName->identifier(&exec->globalData()));
    388388    if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info)) {
    389         static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue);
     389        jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue);
    390390        return true;
    391391    }
    392392    if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) {
    393         static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue);
     393        jsCast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue);
    394394        return true;
    395395    }
     
    404404    Identifier name(propertyName->identifier(&exec->globalData()));
    405405    if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info)) {
    406         static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->deletePrivateProperty(name);
     406        jsCast<JSCallbackObject<JSGlobalObject>*>(jsObject)->deletePrivateProperty(name);
    407407        return true;
    408408    }
    409409    if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) {
    410         static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->deletePrivateProperty(name);
     410        jsCast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->deletePrivateProperty(name);
    411411        return true;
    412412    }
Note: See TracChangeset for help on using the changeset viewer.