Title: [128160] trunk/Source/WebKit2
Revision
128160
Author
[email protected]
Date
2012-09-11 02:36:36 -0700 (Tue, 11 Sep 2012)

Log Message

[EFL][WK2] WKEinaSharedString needs a function to adopt eina stringshare.
https://bugs.webkit.org/show_bug.cgi?id=96201

Patch by Byungwoo Lee <[email protected]> on 2012-09-11
Reviewed by Kenneth Rohde Christiansen.

WKEinaSharedString needs a to adopt eina stringshare directly.

With this adopt function, an instance that is directly created with
eina_stringshare_add() can be easily handled by WKEinaSharedString
without calling eina_stringshare_del() for preventing memory leak.

* UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
(WKEinaSharedString::adopt):
* UIProcess/API/cpp/efl/WKEinaSharedString.h:
* UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
(TEST_F):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (128159 => 128160)


--- trunk/Source/WebKit2/ChangeLog	2012-09-11 09:35:13 UTC (rev 128159)
+++ trunk/Source/WebKit2/ChangeLog	2012-09-11 09:36:36 UTC (rev 128160)
@@ -1,3 +1,22 @@
+2012-09-11  Byungwoo Lee  <[email protected]>
+
+        [EFL][WK2] WKEinaSharedString needs a function to adopt eina stringshare.
+        https://bugs.webkit.org/show_bug.cgi?id=96201
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        WKEinaSharedString needs a to adopt eina stringshare directly.
+
+        With this adopt function, an instance that is directly created with
+        eina_stringshare_add() can be easily handled by WKEinaSharedString
+        without calling eina_stringshare_del() for preventing memory leak.
+
+        * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
+        (WKEinaSharedString::adopt):
+        * UIProcess/API/cpp/efl/WKEinaSharedString.h:
+        * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
+        (TEST_F):
+
 2012-09-11  Andras Becsi  <[email protected]>
 
         [Qt][WK2] Fix the build with recent Qt5

Modified: trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.cpp (128159 => 128160)


--- trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.cpp	2012-09-11 09:35:13 UTC (rev 128159)
+++ trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.cpp	2012-09-11 09:36:36 UTC (rev 128160)
@@ -105,3 +105,10 @@
 {
     return (!str || !m_string) ? (str == m_string) : !strcmp(m_string, str);
 }
+
+WKEinaSharedString WKEinaSharedString::adopt(Eina_Stringshare* string)
+{
+    WKEinaSharedString sharedString;
+    sharedString.m_string = static_cast<const char*>(string);
+    return sharedString;
+}

Modified: trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.h (128159 => 128160)


--- trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.h	2012-09-11 09:35:13 UTC (rev 128159)
+++ trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.h	2012-09-11 09:36:36 UTC (rev 128160)
@@ -61,6 +61,8 @@
 
     ALWAYS_INLINE size_t length() const { return m_string ? static_cast<size_t>(eina_stringshare_strlen(m_string)) : 0; }
 
+    static WKEinaSharedString adopt(Eina_Stringshare*);
+
 private:
     const char* m_string;
 };

Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp (128159 => 128160)


--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp	2012-09-11 09:35:13 UTC (rev 128159)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp	2012-09-11 09:36:36 UTC (rev 128160)
@@ -75,6 +75,18 @@
     checkString(string, testUrl);
 }
 
+TEST_F(EWK2UnitTestBase, constructFromEinaStringShare)
+{
+    WKEinaSharedString string(WKEinaSharedString::adopt(eina_stringshare_add(testString)));
+    checkString(string, testString);
+
+    string = WKEinaSharedString::adopt(eina_stringshare_add(anotherTestString));
+    checkString(string, anotherTestString);
+
+    string = string;
+    checkString(string, anotherTestString);
+}
+
 TEST_F(EWK2UnitTestBase, costructCopy)
 {
     WKEinaSharedString string(testString);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to