[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
weinig at apple.com
weinig at apple.com
Wed Dec 22 12:20:07 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 479107548348e7c0d1d85262d410b000f8e0adb7
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Aug 19 15:47:52 2010 +0000
Add ability to get all the keys from a WKDictionaryRef
https://bugs.webkit.org/show_bug.cgi?id=44221
Reviewed by Adam Roben.
* Shared/ImmutableDictionary.cpp:
(WebKit::ImmutableDictionary::keys):
* Shared/ImmutableDictionary.h:
Add keys function.
* UIProcess/API/C/WKDictionary.cpp:
(WKDictionaryCopyKeys):
* UIProcess/API/C/WKDictionary.h:
Wrap keys function.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65675 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 8488080..5e0bd93 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,22 @@
2010-08-18 Sam Weinig <sam at webkit.org>
+ Reviewed by Adam Roben.
+
+ Add ability to get all the keys from a WKDictionaryRef
+ https://bugs.webkit.org/show_bug.cgi?id=44221
+
+ * Shared/ImmutableDictionary.cpp:
+ (WebKit::ImmutableDictionary::keys):
+ * Shared/ImmutableDictionary.h:
+ Add keys function.
+
+ * UIProcess/API/C/WKDictionary.cpp:
+ (WKDictionaryCopyKeys):
+ * UIProcess/API/C/WKDictionary.h:
+ Wrap keys function.
+
+2010-08-18 Sam Weinig <sam at webkit.org>
+
Reviewed by Jon Honeycutt.
Add ability to set custom userAgent for WebKit2
diff --git a/WebKit2/Shared/ImmutableDictionary.cpp b/WebKit2/Shared/ImmutableDictionary.cpp
index 4a8adf2..facc4ad 100644
--- a/WebKit2/Shared/ImmutableDictionary.cpp
+++ b/WebKit2/Shared/ImmutableDictionary.cpp
@@ -25,6 +25,9 @@
#include "ImmutableDictionary.h"
+#include "ImmutableArray.h"
+#include "WebString.h"
+
namespace WebKit {
ImmutableDictionary::ImmutableDictionary()
@@ -40,4 +43,20 @@ ImmutableDictionary::~ImmutableDictionary()
{
}
+PassRefPtr<ImmutableArray> ImmutableDictionary::keys() const
+{
+ if (m_map.isEmpty())
+ return ImmutableArray::create();
+
+ size_t size = m_map.size();
+ APIObject** array = new APIObject*[size];
+
+ MapType::const_iterator::Keys it = m_map.begin().keys();
+ MapType::const_iterator::Keys end = m_map.end().keys();
+ for (unsigned i = 0; it != end; ++it, ++i)
+ array[i] = WebString::create(*it).releaseRef();
+
+ return ImmutableArray::adopt(array, size);
+}
+
} // namespace WebKit
diff --git a/WebKit2/Shared/ImmutableDictionary.h b/WebKit2/Shared/ImmutableDictionary.h
index 4aabf25..e5e7dc7 100644
--- a/WebKit2/Shared/ImmutableDictionary.h
+++ b/WebKit2/Shared/ImmutableDictionary.h
@@ -34,6 +34,8 @@
namespace WebKit {
+class ImmutableArray;
+
// ImmutableDictionary - An immutable dictionary type suitable for vending to an API.
class ImmutableDictionary : public APIObject {
@@ -70,6 +72,8 @@ public:
return m_map.get(key).get();
}
+ PassRefPtr<ImmutableArray> keys() const;
+
size_t size() { return m_map.size(); }
private:
diff --git a/WebKit2/UIProcess/API/C/WKDictionary.cpp b/WebKit2/UIProcess/API/C/WKDictionary.cpp
index 5093175..31859bb 100644
--- a/WebKit2/UIProcess/API/C/WKDictionary.cpp
+++ b/WebKit2/UIProcess/API/C/WKDictionary.cpp
@@ -25,6 +25,7 @@
#include "WKDictionary.h"
+#include "ImmutableArray.h"
#include "ImmutableDictionary.h"
#include "WKAPICast.h"
@@ -45,6 +46,12 @@ size_t WKDictionaryGetSize(WKDictionaryRef dictionaryRef)
return toWK(dictionaryRef)->size();
}
+WKArrayRef WKDictionaryCopyKeys(WKDictionaryRef dictionaryRef)
+{
+ RefPtr<ImmutableArray> keys = toWK(dictionaryRef)->keys();
+ return toRef(keys.release().releaseRef());
+}
+
WKDictionaryRef WKDictionaryRetain(WKDictionaryRef dictionaryRef)
{
toWK(dictionaryRef)->ref();
diff --git a/WebKit2/UIProcess/API/C/WKDictionary.h b/WebKit2/UIProcess/API/C/WKDictionary.h
index 30f91d8..5449062 100644
--- a/WebKit2/UIProcess/API/C/WKDictionary.h
+++ b/WebKit2/UIProcess/API/C/WKDictionary.h
@@ -39,6 +39,8 @@ WK_EXPORT WKTypeID WKDictionaryGetTypeID();
WK_EXPORT WKTypeRef WKDictionaryGetItemForKey(WKDictionaryRef dictionary, WKStringRef key);
WK_EXPORT size_t WKDictionaryGetSize(WKDictionaryRef dictionary);
+WK_EXPORT WKArrayRef WKDictionaryCopyKeys(WKDictionaryRef dictionary);
+
WK_EXPORT WKDictionaryRef WKDictionaryRetain(WKDictionaryRef dictionary);
WK_EXPORT void WKDictionaryRelease(WKDictionaryRef dictionary);
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list