Ignore:
Timestamp:
Apr 11, 2016, 4:22:16 PM (9 years ago)
Author:
BJ Burg
Message:

Web Inspector: get rid of InspectorBasicValue and InspectorString subclasses
https://bugs.webkit.org/show_bug.cgi?id=156407
<rdar://problem/25627659>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

There's no point having these subclasses as they don't save any space.
Add a StringImpl to the union and merge some implementations of writeJSON.

Rename m_data to m_map and explicitly name the union as InspectorValue::m_value.
If the value is a string and the string is not empty or null (i.e., it has a
StringImpl), then we need to ref() and deref() the string as the InspectorValue
is created or destroyed.

Move uses of the subclass to InspectorValue and delete redundant methods.
Now, most InspectorValue methods are non-virtual so they can be templated.

  • bindings/ScriptValue.cpp:

(Deprecated::jsToInspectorValue):

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeCall):
Don't used deleted subclasses.

  • inspector/InspectorValues.cpp:

(Inspector::InspectorValue::null):
(Inspector::InspectorValue::create):
(Inspector::InspectorValue::asValue):
(Inspector::InspectorValue::asBoolean):
(Inspector::InspectorValue::asDouble):
(Inspector::InspectorValue::asInteger):
(Inspector::InspectorValue::asString):
These only need one implementation now.

(Inspector::InspectorValue::writeJSON):
Still a virtual method since Object and Array need their members.

(Inspector::InspectorObjectBase::InspectorObjectBase):
(Inspector::InspectorBasicValue::asBoolean): Deleted.
(Inspector::InspectorBasicValue::asDouble): Deleted.
(Inspector::InspectorBasicValue::asInteger): Deleted.
(Inspector::InspectorBasicValue::writeJSON): Deleted.
(Inspector::InspectorString::asString): Deleted.
(Inspector::InspectorString::writeJSON): Deleted.
(Inspector::InspectorString::create): Deleted.
(Inspector::InspectorBasicValue::create): Deleted.

  • inspector/InspectorValues.h:

(Inspector::InspectorObjectBase::find):
(Inspector::InspectorObjectBase::setBoolean):
(Inspector::InspectorObjectBase::setInteger):
(Inspector::InspectorObjectBase::setDouble):
(Inspector::InspectorObjectBase::setString):
(Inspector::InspectorObjectBase::setValue):
(Inspector::InspectorObjectBase::setObject):
(Inspector::InspectorObjectBase::setArray):
(Inspector::InspectorArrayBase::pushBoolean):
(Inspector::InspectorArrayBase::pushInteger):
(Inspector::InspectorArrayBase::pushDouble):
(Inspector::InspectorArrayBase::pushString):
(Inspector::InspectorArrayBase::pushValue):
(Inspector::InspectorArrayBase::pushObject):
(Inspector::InspectorArrayBase::pushArray):
Use new factory methods.

  • replay/EncodedValue.cpp:

(JSC::ScalarEncodingTraits<bool>::encodeValue):
(JSC::ScalarEncodingTraits<double>::encodeValue):
(JSC::ScalarEncodingTraits<float>::encodeValue):
(JSC::ScalarEncodingTraits<int32_t>::encodeValue):
(JSC::ScalarEncodingTraits<int64_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint32_t>::encodeValue):
(JSC::ScalarEncodingTraits<uint64_t>::encodeValue):

  • replay/EncodedValue.h:

Use new factory methods.

Source/WebCore:

  • inspector/InspectorDatabaseAgent.cpp: Don't use deleted subclasses.
File:
1 edited

Legend:

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

    r199276 r199320  
    6868template<> EncodedValue ScalarEncodingTraits<bool>::encodeValue(const bool& value)
    6969{
    70     return EncodedValue(InspectorBasicValue::create(value));
     70    return EncodedValue(InspectorValue::create(value));
    7171}
    7272
    7373template<> EncodedValue ScalarEncodingTraits<double>::encodeValue(const double& value)
    7474{
    75     return EncodedValue(InspectorBasicValue::create(value));
     75    return EncodedValue(InspectorValue::create(value));
    7676}
    7777
    7878template<> EncodedValue ScalarEncodingTraits<float>::encodeValue(const float& value)
    7979{
    80     return EncodedValue(InspectorBasicValue::create((double)value));
     80    return EncodedValue(InspectorValue::create((double)value));
    8181}
    8282
    8383template<> EncodedValue ScalarEncodingTraits<int32_t>::encodeValue(const int32_t& value)
    8484{
    85     return EncodedValue(InspectorBasicValue::create((double)value));
     85    return EncodedValue(InspectorValue::create((double)value));
    8686}
    8787
    8888template<> EncodedValue ScalarEncodingTraits<int64_t>::encodeValue(const int64_t& value)
    8989{
    90     return EncodedValue(InspectorBasicValue::create((double)value));
     90    return EncodedValue(InspectorValue::create((double)value));
    9191}
    9292
    9393template<> EncodedValue ScalarEncodingTraits<uint32_t>::encodeValue(const uint32_t& value)
    9494{
    95     return EncodedValue(InspectorBasicValue::create((double)value));
     95    return EncodedValue(InspectorValue::create((double)value));
    9696}
    9797
    9898template<> EncodedValue ScalarEncodingTraits<uint64_t>::encodeValue(const uint64_t& value)
    9999{
    100     return EncodedValue(InspectorBasicValue::create((double)value));
     100    return EncodedValue(InspectorValue::create((double)value));
    101101}
    102102
Note: See TracChangeset for help on using the changeset viewer.