Changeset 104362 in webkit


Ignore:
Timestamp:
Jan 6, 2012 5:23:41 PM (12 years ago)
Author:
caio.oliveira@openbossa.org
Message:

Use HashMap<OwnPtr> in SVGAttributeToPropertyMap
https://bugs.webkit.org/show_bug.cgi?id=75734

Reviewed by Daniel Bates.

  • svg/properties/SVGAttributeToPropertyMap.cpp:

(WebCore::SVGAttributeToPropertyMap::addProperties):
(WebCore::SVGAttributeToPropertyMap::addProperty): use HashMap::add() to avoid an
extra hash lookup to set a new PropertiesVector.
(WebCore::SVGAttributeToPropertyMap::synchronizeProperties):

  • svg/properties/SVGAttributeToPropertyMap.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r104358 r104362  
     12012-01-06  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
     2
     3        Use HashMap<OwnPtr> in SVGAttributeToPropertyMap
     4        https://bugs.webkit.org/show_bug.cgi?id=75734
     5
     6        Reviewed by Daniel Bates.
     7
     8        * svg/properties/SVGAttributeToPropertyMap.cpp:
     9        (WebCore::SVGAttributeToPropertyMap::addProperties):
     10        (WebCore::SVGAttributeToPropertyMap::addProperty): use HashMap::add() to avoid an
     11        extra hash lookup to set a new PropertiesVector.
     12        (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
     13        * svg/properties/SVGAttributeToPropertyMap.h:
     14
    1152012-01-06  Greg Billock  <gbillock@google.com>
    216
  • trunk/Source/WebCore/svg/properties/SVGAttributeToPropertyMap.cpp

    r95901 r104362  
    3232    AttributeToPropertiesMap::iterator end = map.m_map.end();
    3333    for (AttributeToPropertiesMap::iterator it = map.m_map.begin(); it != end; ++it) {
    34         PropertiesVector* vector = it->second;
     34        PropertiesVector* vector = it->second.get();
    3535        ASSERT(vector);
    3636
     
    4545    ASSERT(info);
    4646    ASSERT(info->attributeName != anyQName());
    47     if (PropertiesVector* vector = m_map.get(info->attributeName)) {
    48         vector->append(info);
    49         return;
    50     }
    51     PropertiesVector* vector = new PropertiesVector;
     47    OwnPtr<PropertiesVector>& vector = m_map.add(info->attributeName, nullptr).first->second;
     48    if (!vector)
     49        vector = adoptPtr(new PropertiesVector);
    5250    vector->append(info);
    53     m_map.set(info->attributeName, vector);
    5451}
    5552
     
    8279    AttributeToPropertiesMap::iterator end = m_map.end();
    8380    for (AttributeToPropertiesMap::iterator it = m_map.begin(); it != end; ++it) {
    84         PropertiesVector* vector = it->second;
     81        PropertiesVector* vector = it->second.get();
    8582        ASSERT(vector);
    8683
  • trunk/Source/WebCore/svg/properties/SVGAttributeToPropertyMap.h

    r95901 r104362  
    3434class SVGAttributeToPropertyMap {
    3535public:
    36     SVGAttributeToPropertyMap() { }
    37     ~SVGAttributeToPropertyMap() { deleteAllValues(m_map); }
    38 
    3936    bool isEmpty() const { return m_map.isEmpty(); }
    4037
     
    5350
    5451    typedef Vector<const SVGPropertyInfo*> PropertiesVector;
    55     typedef HashMap<QualifiedName, PropertiesVector*> AttributeToPropertiesMap;
     52    typedef HashMap<QualifiedName, OwnPtr<PropertiesVector> > AttributeToPropertiesMap;
    5653    AttributeToPropertiesMap m_map;
    5754};
Note: See TracChangeset for help on using the changeset viewer.