Changeset 174094 in webkit for trunk/Source/JavaScriptCore/replay


Ignore:
Timestamp:
Sep 29, 2014, 8:30:54 PM (11 years ago)
Author:
Brian Burg
Message:

Web Inspector: InspectorValues should use references for out parameters
https://bugs.webkit.org/show_bug.cgi?id=137190

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Use references for out parameters in asType() and getType() methods.
Also convert to references in some miscellaneous code where we don't
expect or handle null values.

Remove variants of asObject() and asArray() that return a nullable RefPtr.
Now, client code is forced to use out parameters and check for cast failure.

Iron out control flow in some functions and fix some style issues.

  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::getFunctionDetails):
(Inspector::InjectedScript::wrapObject):
(Inspector::InjectedScript::wrapTable):

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeEvalCall):

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::injectedScriptForObjectId): Simplify control flow.

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::InspectorBackendDispatcher::dispatch):
(Inspector::getPropertyValue):
(Inspector::AsMethodBridges::asInteger):
(Inspector::AsMethodBridges::asDouble):
(Inspector::AsMethodBridges::asString):
(Inspector::AsMethodBridges::asBoolean):
(Inspector::AsMethodBridges::asObject):
(Inspector::AsMethodBridges::asArray):

  • inspector/InspectorProtocolTypes.h:

(Inspector::Protocol::BindingTraits<Protocol::Array<T>>::runtimeCast):
(Inspector::Protocol::BindingTraits<Protocol::Array<T>>::assertValueHasExpectedType):

  • inspector/InspectorValues.cpp: Use more by-reference out parameters. Add more spacing.

(Inspector::InspectorValue::asBoolean):
(Inspector::InspectorValue::asDouble):
(Inspector::InspectorValue::asInteger):
(Inspector::InspectorValue::asString):
(Inspector::InspectorValue::asValue):
(Inspector::InspectorValue::asObject):
(Inspector::InspectorValue::asArray):
(Inspector::InspectorValue::parseJSON):
(Inspector::InspectorValue::toJSONString):
(Inspector::InspectorValue::writeJSON):
(Inspector::InspectorBasicValue::asBoolean):
(Inspector::InspectorBasicValue::asDouble):
(Inspector::InspectorBasicValue::asInteger):
(Inspector::InspectorBasicValue::writeJSON):
(Inspector::InspectorString::asString):
(Inspector::InspectorString::writeJSON):
(Inspector::InspectorObjectBase::asObject):
(Inspector::InspectorObjectBase::openAccessors):
(Inspector::InspectorObjectBase::getBoolean):
(Inspector::InspectorObjectBase::getString):
(Inspector::InspectorObjectBase::getObject):
(Inspector::InspectorObjectBase::getArray):
(Inspector::InspectorObjectBase::writeJSON):
(Inspector::InspectorArrayBase::asArray):
(Inspector::InspectorArrayBase::writeJSON):

  • inspector/InspectorValues.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol):
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::parseLocation):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::continueToLocation):
(Inspector::InspectorDebuggerAgent::didParseSource):

  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):

  • inspector/scripts/codegen/generate_protocol_types_implementation.py:

(ProtocolTypesImplementationGenerator):
(ProtocolTypesImplementationGenerator._generate_assertion_for_enum):

  • inspector/scripts/codegen/generator_templates.py:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
  • replay/EncodedValue.cpp:

(JSC::EncodedValue::asObject):
(JSC::EncodedValue::asArray):
(JSC::EncodedValue::convertTo<bool>):
(JSC::EncodedValue::convertTo<double>):
(JSC::EncodedValue::convertTo<float>):
(JSC::EncodedValue::convertTo<int32_t>):
(JSC::EncodedValue::convertTo<int64_t>):
(JSC::EncodedValue::convertTo<uint32_t>):
(JSC::EncodedValue::convertTo<uint64_t>):
(JSC::EncodedValue::convertTo<String>):

Source/WebCore:

Clean up some call sites to explicitly check for cast success, and simplify
some exceptional control flows.

No new tests, no behavior changed.

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::inspectImpl):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::computePseudoClassMask):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::parseColor):
(WebCore::parseConfigColor):
(WebCore::parseQuad):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
(WebCore::InspectorDOMAgent::innerHighlightQuad):
(WebCore::InspectorDOMAgent::highlightFrame):

  • inspector/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/InspectorIndexedDBAgent.cpp: Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):

  • inspector/InspectorReplayAgent.cpp:

(WebCore::InspectorReplayAgent::replayToPosition):

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::willSendRequest):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::styleWithProperties):

  • inspector/InspectorStyleSheet.h:

(WebCore::InspectorCSSId::InspectorCSSId):

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):

  • inspector/InspectorWorkerAgent.cpp:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/replay/EncodedValue.cpp

    r173554 r174094  
    4141{
    4242    RefPtr<InspectorObject> result;
    43     bool castSucceeded = m_value->asObject(&result);
     43    bool castSucceeded = m_value->asObject(result);
    4444    ASSERT_UNUSED(castSucceeded, castSucceeded);
    4545
     
    5050{
    5151    RefPtr<InspectorArray> result;
    52     bool castSucceeded = m_value->asArray(&result);
     52    bool castSucceeded = m_value->asArray(result);
    5353    ASSERT_UNUSED(castSucceeded, castSucceeded);
    5454
     
    104104{
    105105    bool result;
    106     bool castSucceeded = m_value->asBoolean(&result);
     106    bool castSucceeded = m_value->asBoolean(result);
    107107    ASSERT_UNUSED(castSucceeded, castSucceeded);
    108108
     
    113113{
    114114    double result;
    115     bool castSucceeded = m_value->asDouble(&result);
     115    bool castSucceeded = m_value->asDouble(result);
    116116    ASSERT_UNUSED(castSucceeded, castSucceeded);
    117117
     
    122122{
    123123    float result;
    124     bool castSucceeded = m_value->asDouble(&result);
     124    bool castSucceeded = m_value->asDouble(result);
    125125    ASSERT_UNUSED(castSucceeded, castSucceeded);
    126126
     
    131131{
    132132    int32_t result;
    133     bool castSucceeded = m_value->asInteger(&result);
     133    bool castSucceeded = m_value->asInteger(result);
    134134    ASSERT_UNUSED(castSucceeded, castSucceeded);
    135135
     
    140140{
    141141    int64_t result;
    142     bool castSucceeded = m_value->asInteger(&result);
     142    bool castSucceeded = m_value->asInteger(result);
    143143    ASSERT_UNUSED(castSucceeded, castSucceeded);
    144144
     
    149149{
    150150    uint32_t result;
    151     bool castSucceeded = m_value->asInteger(&result);
     151    bool castSucceeded = m_value->asInteger(result);
    152152    ASSERT_UNUSED(castSucceeded, castSucceeded);
    153153
     
    158158{
    159159    uint64_t result;
    160     bool castSucceeded = m_value->asInteger(&result);
     160    bool castSucceeded = m_value->asInteger(result);
    161161    ASSERT_UNUSED(castSucceeded, castSucceeded);
    162162
     
    167167{
    168168    String result;
    169     bool castSucceeded = m_value->asString(&result);
     169    bool castSucceeded = m_value->asString(result);
    170170    ASSERT_UNUSED(castSucceeded, castSucceeded);
    171171
Note: See TracChangeset for help on using the changeset viewer.