Changeset 39338 in webkit


Ignore:
Timestamp:
Dec 16, 2008 1:20:38 PM (15 years ago)
Author:
Stephanie Lewis
Message:

2008-12-16 Stephanie Lewis <Stephanie Lewis>

Reviewed by Geoff Garen.

Change HTTPHeaderMap to use an AtomicString as its key.
Shaves ~1MB off of the Mozilla Memory Test
No functionality difference

  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorController.cpp: (WebCore::addHeaders):
  • loader/appcache/ApplicationCacheStorage.cpp: (WebCore::parseHeader):
  • platform/network/HTTPHeaderMap.h:
  • platform/network/ResourceRequestBase.cpp: (WebCore::ResourceRequestBase::httpHeaderField): (WebCore::ResourceRequestBase::setHTTPHeaderField): (WebCore::ResourceRequestBase::addHTTPHeaderField):
  • platform/network/ResourceRequestBase.h:
  • platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::httpHeaderField): (WebCore::ResourceResponseBase::setHTTPHeaderField):
  • platform/network/ResourceResponseBase.h:
  • platform/text/StringHash.h: (WebCore::CaseFoldingHash::hash): (WebCore::CaseFoldingHash::equal):
  • xml/XMLHttpRequest.cpp: (WebCore::isSetCookieHeader): (WebCore::XMLHttpRequest::setRequestHeader): (WebCore::XMLHttpRequest::setRequestHeaderInternal): (WebCore::XMLHttpRequest::getRequestHeader): (WebCore::XMLHttpRequest::getResponseHeader):
  • xml/XMLHttpRequest.h:
Location:
trunk/WebCore
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r39337 r39338  
     12008-12-16  Stephanie Lewis  <slewis@apple.com>
     2
     3        Reviewed by Geoff Garen.
     4
     5        Change HTTPHeaderMap to use an AtomicString as its key. 
     6        Shaves ~1MB off of the Mozilla Memory Test
     7        No functionality difference   
     8
     9        * WebCore.xcodeproj/project.pbxproj:
     10        * inspector/InspectorController.cpp:
     11        (WebCore::addHeaders):
     12        * loader/appcache/ApplicationCacheStorage.cpp:
     13        (WebCore::parseHeader):
     14        * platform/network/HTTPHeaderMap.h:
     15        * platform/network/ResourceRequestBase.cpp:
     16        (WebCore::ResourceRequestBase::httpHeaderField):
     17        (WebCore::ResourceRequestBase::setHTTPHeaderField):
     18        (WebCore::ResourceRequestBase::addHTTPHeaderField):
     19        * platform/network/ResourceRequestBase.h:
     20        * platform/network/ResourceResponseBase.cpp:
     21        (WebCore::ResourceResponseBase::httpHeaderField):
     22        (WebCore::ResourceResponseBase::setHTTPHeaderField):
     23        * platform/network/ResourceResponseBase.h:
     24        * platform/text/StringHash.h:
     25        (WebCore::CaseFoldingHash::hash):
     26        (WebCore::CaseFoldingHash::equal):
     27        * xml/XMLHttpRequest.cpp:
     28        (WebCore::isSetCookieHeader):
     29        (WebCore::XMLHttpRequest::setRequestHeader):
     30        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
     31        (WebCore::XMLHttpRequest::getRequestHeader):
     32        (WebCore::XMLHttpRequest::getResponseHeader):
     33        * xml/XMLHttpRequest.h:
     34
    1352008-12-16  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
    236
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r39321 r39338  
    107107                0F56028F0E4B76580065B038 /* RenderMarquee.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F56028D0E4B76580065B038 /* RenderMarquee.h */; };
    108108                0F5602900E4B76580065B038 /* RenderMarquee.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F56028E0E4B76580065B038 /* RenderMarquee.cpp */; };
    109                 0FC705210EB1815600B90AD8 /* AtomicStringHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FC705200EB1815600B90AD8 /* AtomicStringHash.h */; };
     109                0FC705210EB1815600B90AD8 /* AtomicStringHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FC705200EB1815600B90AD8 /* AtomicStringHash.h */; settings = {ATTRIBUTES = (Private, ); }; };
    110110                0FD723820EC8BD9300CA5DD7 /* FloatQuad.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD723800EC8BD9300CA5DD7 /* FloatQuad.h */; settings = {ATTRIBUTES = (Private, ); }; };
    111111                0FD723830EC8BD9300CA5DD7 /* FloatQuad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FD723810EC8BD9300CA5DD7 /* FloatQuad.cpp */; };
  • trunk/WebCore/inspector/InspectorController.cpp

    r39142 r39338  
    17921792    for (HTTPHeaderMap::const_iterator it = headers.begin(); it != end; ++it) {
    17931793        JSValueRef value = JSValueMakeString(context, jsStringRef(it->second).get());
    1794         JSObjectSetProperty(context, object, jsStringRef(it->first).get(), value, kJSPropertyAttributeNone, exception);
     1794        JSObjectSetProperty(context, object, jsStringRef((it->first).string()).get(), value, kJSPropertyAttributeNone, exception);
    17951795        if (exception && *exception)
    17961796            return;
  • trunk/WebCore/loader/appcache/ApplicationCacheStorage.cpp

    r38418 r39338  
    504504    ASSERT(pos != -1);
    505505   
    506     String headerName = String(header, pos);
     506    AtomicString headerName = AtomicString(header, pos);
    507507    String headerValue = String(header + pos + 1, headerLength - pos - 1);
    508508   
  • trunk/WebCore/platform/network/HTTPHeaderMap.h

    r35900 r39338  
    2727#define HTTPHeaderMap_h
    2828
     29#include "AtomicString.h"
     30#include "AtomicStringHash.h"
    2931#include "StringHash.h"
    3032#include <wtf/HashMap.h>
     
    3234namespace WebCore {
    3335
    34     typedef HashMap<String, String, CaseFoldingHash> HTTPHeaderMap;
     36    typedef HashMap<AtomicString, String, CaseFoldingHash> HTTPHeaderMap;
    3537
    3638} // namespace WebCore
  • trunk/WebCore/platform/network/ResourceRequestBase.cpp

    r39026 r39338  
    135135}
    136136
    137 String ResourceRequestBase::httpHeaderField(const String& name) const
     137String ResourceRequestBase::httpHeaderField(const AtomicString& name) const
    138138{
    139139    updateResourceRequest();
     
    142142}
    143143
    144 void ResourceRequestBase::setHTTPHeaderField(const String& name, const String& value)
     144void ResourceRequestBase::setHTTPHeaderField(const AtomicString& name, const String& value)
    145145{
    146146    updateResourceRequest();
     
    198198}
    199199
    200 void ResourceRequestBase::addHTTPHeaderField(const String& name, const String& value)
     200void ResourceRequestBase::addHTTPHeaderField(const AtomicString& name, const String& value)
    201201{
    202202    updateResourceRequest();
  • trunk/WebCore/platform/network/ResourceRequestBase.h

    r39026 r39338  
    6767       
    6868        const HTTPHeaderMap& httpHeaderFields() const;
    69         String httpHeaderField(const String& name) const;
    70         void setHTTPHeaderField(const String& name, const String& value);
    71         void addHTTPHeaderField(const String& name, const String& value);
     69        String httpHeaderField(const AtomicString& name) const;
     70        void setHTTPHeaderField(const AtomicString& name, const String& value);
     71        void addHTTPHeaderField(const AtomicString& name, const String& value);
    7272        void addHTTPHeaderFields(const HTTPHeaderMap& headerFields);
    7373       
  • trunk/WebCore/platform/network/ResourceResponseBase.cpp

    r38145 r39338  
    146146}
    147147
    148 String ResourceResponseBase::httpHeaderField(const String& name) const
     148String ResourceResponseBase::httpHeaderField(const AtomicString& name) const
    149149{
    150150    lazyInit();
     
    153153}
    154154
    155 void ResourceResponseBase::setHTTPHeaderField(const String& name, const String& value)
     155void ResourceResponseBase::setHTTPHeaderField(const AtomicString& name, const String& value)
    156156{
    157157    lazyInit();
  • trunk/WebCore/platform/network/ResourceResponseBase.h

    r38940 r39338  
    6666    void setHTTPStatusText(const String&);
    6767   
    68     String httpHeaderField(const String& name) const;
    69     void setHTTPHeaderField(const String& name, const String& value);
     68    String httpHeaderField(const AtomicString& name) const;
     69    void setHTTPHeaderField(const AtomicString& name, const String& value);
    7070    const HTTPHeaderMap& httpHeaderFields() const;
    7171
  • trunk/WebCore/platform/text/StringHash.h

    r34891 r39338  
    2222#define StringHash_h
    2323
    24 #include "AtomicStringImpl.h"
     24#include "AtomicString.h"
    2525#include "PlatformString.h"
    2626#include <wtf/HashTraits.h>
     
    200200            return hash(key.impl());
    201201        }
     202        static unsigned hash(const AtomicString& key)
     203        {
     204            return hash(key.impl());
     205        }
    202206        static bool equal(const String& a, const String& b)
    203207        {
    204208            return equal(a.impl(), b.impl());
     209        }
     210        static bool equal(const AtomicString& a, const AtomicString& b)
     211        {
     212            return (a == b) || equal(a.impl(), b.impl());
    205213        }
    206214
  • trunk/WebCore/xml/XMLHttpRequest.cpp

    r39025 r39338  
    174174}
    175175
    176 static bool isSetCookieHeader(const String& name)
     176static bool isSetCookieHeader(const AtomicString& name)
    177177{
    178178    return equalIgnoringCase(name, "set-cookie") || equalIgnoringCase(name, "set-cookie2");
     
    980980}
    981981
    982 void XMLHttpRequest::setRequestHeader(const String& name, const String& value, ExceptionCode& ec)
     982void XMLHttpRequest::setRequestHeader(const AtomicString& name, const String& value, ExceptionCode& ec)
    983983{
    984984    if (m_state != OPENED || m_loader) {
     
    10071007}
    10081008
    1009 void XMLHttpRequest::setRequestHeaderInternal(const String& name, const String& value)
     1009void XMLHttpRequest::setRequestHeaderInternal(const AtomicString& name, const String& value)
    10101010{
    10111011    pair<HTTPHeaderMap::iterator, bool> result = m_requestHeaders.add(name, value);
     
    10201020}
    10211021
    1022 String XMLHttpRequest::getRequestHeader(const String& name) const
     1022String XMLHttpRequest::getRequestHeader(const AtomicString& name) const
    10231023{
    10241024    return m_requestHeaders.get(name);
     
    10591059}
    10601060
    1061 String XMLHttpRequest::getResponseHeader(const String& name, ExceptionCode& ec) const
     1061String XMLHttpRequest::getResponseHeader(const AtomicString& name, ExceptionCode& ec) const
    10621062{
    10631063    if (m_state < LOADING) {
  • trunk/WebCore/xml/XMLHttpRequest.h

    r38931 r39338  
    7070    void send(File*, ExceptionCode&);
    7171    void abort();
    72     void setRequestHeader(const String& name, const String& value, ExceptionCode&);
     72    void setRequestHeader(const AtomicString& name, const String& value, ExceptionCode&);
    7373    void overrideMimeType(const String& override);
    7474    String getAllResponseHeaders(ExceptionCode&) const;
    75     String getResponseHeader(const String& name, ExceptionCode&) const;
     75    String getResponseHeader(const AtomicString& name, ExceptionCode&) const;
    7676    const ScriptString& responseText() const;
    7777    Document* responseXML() const;
     
    140140    bool initSend(ExceptionCode&);
    141141
    142     String getRequestHeader(const String& name) const;
    143     void setRequestHeaderInternal(const String& name, const String& value);
     142    String getRequestHeader(const AtomicString& name) const;
     143    void setRequestHeaderInternal(const AtomicString& name, const String& value);
    144144    bool isSafeRequestHeader(const String&) const;
    145145
Note: See TracChangeset for help on using the changeset viewer.