Changeset 159123 in webkit


Ignore:
Timestamp:
Nov 12, 2013 10:32:53 AM (10 years ago)
Author:
andersca@apple.com
Message:

Add ImmutableArray::createStringArray
https://bugs.webkit.org/show_bug.cgi?id=124210

Reviewed by Andreas Kling.

Creating an ImmutableArray of WebStrings is a common operation, so add a
helper function to ImmutableArray that does this from a Vector of Strings.

  • Shared/ImmutableArray.cpp:

(WebKit::ImmutableArray::createStringArray):

  • Shared/ImmutableArray.h:
  • Shared/ImmutableDictionary.cpp:

(WebKit::ImmutableDictionary::keys):

  • Shared/WebOpenPanelParameters.cpp:

(WebKit::WebOpenPanelParameters::acceptMIMETypes):
(WebKit::WebOpenPanelParameters::selectedFileNames):

  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::didGetSitesWithData):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):

  • UIProcess/WebMediaCacheManagerProxy.cpp:

(WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):

Location:
trunk/Source/WebKit2
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r159118 r159123  
     12013-11-12  Anders Carlsson  <andersca@apple.com>
     2
     3        Add ImmutableArray::createStringArray
     4        https://bugs.webkit.org/show_bug.cgi?id=124210
     5
     6        Reviewed by Andreas Kling.
     7
     8        Creating an ImmutableArray of WebStrings is a common operation, so add a
     9        helper function to ImmutableArray that does this from a Vector of Strings.
     10
     11        * Shared/ImmutableArray.cpp:
     12        (WebKit::ImmutableArray::createStringArray):
     13        * Shared/ImmutableArray.h:
     14        * Shared/ImmutableDictionary.cpp:
     15        (WebKit::ImmutableDictionary::keys):
     16        * Shared/WebOpenPanelParameters.cpp:
     17        (WebKit::WebOpenPanelParameters::acceptMIMETypes):
     18        (WebKit::WebOpenPanelParameters::selectedFileNames):
     19        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
     20        (WebKit::WebPluginSiteDataManager::didGetSitesWithData):
     21        * UIProcess/WebCookieManagerProxy.cpp:
     22        (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):
     23        * UIProcess/WebMediaCacheManagerProxy.cpp:
     24        (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):
     25        * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
     26        (WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):
     27
    1282013-11-12  Csaba Osztrogonác  <ossy@webkit.org>
    229
  • trunk/Source/WebKit2/Shared/ImmutableArray.cpp

    r149848 r159123  
    2727#include "ImmutableArray.h"
    2828
     29#include "WebString.h"
     30
    2931namespace WebKit {
     32
     33PassRefPtr<ImmutableArray> ImmutableArray::createStringArray(const Vector<String>& strings)
     34{
     35    Vector<RefPtr<APIObject>> elements;
     36    elements.reserveInitialCapacity(strings.size());
     37
     38    for (const auto& string : strings)
     39        elements.uncheckedAppend(WebString::create(string));
     40
     41    return adopt(elements);
     42}
    3043
    3144ImmutableArray::ImmutableArray()
  • trunk/Source/WebKit2/Shared/ImmutableArray.h

    r158805 r159123  
    2828
    2929#include "APIObject.h"
     30#include <wtf/Forward.h>
    3031#include <wtf/PassRefPtr.h>
    3132#include <wtf/Vector.h>
     
    5556        return adoptRef(new ImmutableArray(entries));
    5657    }
     58
     59    static PassRefPtr<ImmutableArray> createStringArray(const Vector<String>&);
    5760
    5861    virtual ~ImmutableArray();
  • trunk/Source/WebKit2/Shared/ImmutableDictionary.cpp

    r149848 r159123  
    5050        return ImmutableArray::create();
    5151
    52     Vector<RefPtr<APIObject>> vector;
    53     vector.reserveInitialCapacity(m_map.size());
     52    Vector<RefPtr<APIObject>> keys;
     53    keys.reserveInitialCapacity(m_map.size());
    5454
    55     MapType::const_iterator::Keys it = m_map.begin().keys();
    56     MapType::const_iterator::Keys end = m_map.end().keys();
    57     for (; it != end; ++it)
    58         vector.uncheckedAppend(WebString::create(*it));
     55    for (const auto& key : m_map.keys())
     56        keys.uncheckedAppend(WebString::create(key));
    5957
    60     return ImmutableArray::adopt(vector);
     58    return ImmutableArray::adopt(keys);
    6159}
    6260
  • trunk/Source/WebKit2/Shared/WebOpenPanelParameters.cpp

    r159117 r159123  
    5252PassRefPtr<ImmutableArray> WebOpenPanelParameters::acceptMIMETypes() const
    5353{
    54     Vector<RefPtr<APIObject>> vector;
    55     vector.reserveInitialCapacity(m_settings.acceptMIMETypes.size());
    56 
    57     for (const auto& mimeType : m_settings.acceptMIMETypes)
    58         vector.uncheckedAppend(WebString::create(mimeType));
    59 
    60     return ImmutableArray::adopt(vector);
     54    return ImmutableArray::createStringArray(m_settings.acceptMIMETypes);
    6155}
    6256
     
    6963
    7064PassRefPtr<ImmutableArray> WebOpenPanelParameters::selectedFileNames() const
    71 {   
    72     Vector<RefPtr<APIObject>> vector;
    73     vector.reserveInitialCapacity(m_settings.selectedFiles.size());
    74 
    75     for (const auto& selectedFile : m_settings.selectedFiles)
    76         vector.uncheckedAppend(WebString::create(selectedFile));
    77 
    78     return ImmutableArray::adopt(vector);
     65{
     66    return ImmutableArray::createStringArray(m_settings.selectedFiles);
    7967}
    8068
  • trunk/Source/WebKit2/UIProcess/Plugins/WebPluginSiteDataManager.cpp

    r159117 r159123  
    166166    }
    167167
    168     Vector<RefPtr<APIObject>> sitesArray;
    169     sitesArray.reserveInitialCapacity(sites.size());
    170 
    171     for (const auto& site : sites)
    172         sitesArray.uncheckedAppend(WebString::create(site));
    173 
    174     callback->performCallbackWithReturnValue(ImmutableArray::adopt(sitesArray).get());
     168    callback->performCallbackWithReturnValue(ImmutableArray::createStringArray(sites).get());
    175169}
    176170
  • trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp

    r159117 r159123  
    116116    }
    117117
    118     Vector<RefPtr<APIObject>> hostnameStrings;
    119     hostnameStrings.reserveInitialCapacity(hostnames.size());
    120 
    121     for (const auto& hostname : hostnames)
    122         hostnameStrings.uncheckedAppend(WebString::create(hostname));
    123 
    124     callback->performCallbackWithReturnValue(ImmutableArray::adopt(hostnameStrings).get());
     118    callback->performCallbackWithReturnValue(ImmutableArray::createStringArray(hostnames).get());
    125119}
    126120
  • trunk/Source/WebKit2/UIProcess/WebMediaCacheManagerProxy.cpp

    r159117 r159123  
    9999    }
    100100
    101     Vector<RefPtr<APIObject>> hostnamesArray;
    102     hostnamesArray.reserveInitialCapacity(hostnames.size());
    103 
    104     for (const auto& hostname : hostnames)
    105         hostnamesArray.uncheckedAppend(WebString::create(hostname));
    106 
    107     callback->performCallbackWithReturnValue(ImmutableArray::adopt(hostnamesArray).get());
     101    callback->performCallbackWithReturnValue(ImmutableArray::createStringArray(hostnames).get());
    108102}
    109103
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp

    r159117 r159123  
    342342        return;
    343343
    344     Vector<RefPtr<APIObject>> featureStrings;
    345     featureStrings.reserveInitialCapacity(features.size());
    346 
    347     for (const auto& feature : features)
    348         featureStrings.uncheckedAppend(WebString::create(feature));
    349 
    350     return m_client.featuresUsedInPage(toAPI(page), toAPI(ImmutableArray::adopt(featureStrings).get()), m_client.clientInfo);
     344    return m_client.featuresUsedInPage(toAPI(page), toAPI(ImmutableArray::createStringArray(features).get()), m_client.clientInfo);
    351345}
    352346
Note: See TracChangeset for help on using the changeset viewer.