Changeset 128160 in webkit


Ignore:
Timestamp:
Sep 11, 2012 2:36:36 AM (12 years ago)
Author:
commit-queue@webkit.org
Message:

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

Patch by Byungwoo Lee <bw80.lee@samsung.com> 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):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r128158 r128160  
     12012-09-11  Byungwoo Lee  <bw80.lee@samsung.com>
     2
     3        [EFL][WK2] WKEinaSharedString needs a function to adopt eina stringshare.
     4        https://bugs.webkit.org/show_bug.cgi?id=96201
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        WKEinaSharedString needs a to adopt eina stringshare directly.
     9
     10        With this adopt function, an instance that is directly created with
     11        eina_stringshare_add() can be easily handled by WKEinaSharedString
     12        without calling eina_stringshare_del() for preventing memory leak.
     13
     14        * UIProcess/API/cpp/efl/WKEinaSharedString.cpp:
     15        (WKEinaSharedString::adopt):
     16        * UIProcess/API/cpp/efl/WKEinaSharedString.h:
     17        * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp:
     18        (TEST_F):
     19
    1202012-09-11  Andras Becsi  <andras.becsi@nokia.com>
    221
  • trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.cpp

    r125671 r128160  
    106106    return (!str || !m_string) ? (str == m_string) : !strcmp(m_string, str);
    107107}
     108
     109WKEinaSharedString WKEinaSharedString::adopt(Eina_Stringshare* string)
     110{
     111    WKEinaSharedString sharedString;
     112    sharedString.m_string = static_cast<const char*>(string);
     113    return sharedString;
     114}
  • trunk/Source/WebKit2/UIProcess/API/cpp/efl/WKEinaSharedString.h

    r125671 r128160  
    6262    ALWAYS_INLINE size_t length() const { return m_string ? static_cast<size_t>(eina_stringshare_strlen(m_string)) : 0; }
    6363
     64    static WKEinaSharedString adopt(Eina_Stringshare*);
     65
    6466private:
    6567    const char* m_string;
  • trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp

    r126019 r128160  
    7676}
    7777
     78TEST_F(EWK2UnitTestBase, constructFromEinaStringShare)
     79{
     80    WKEinaSharedString string(WKEinaSharedString::adopt(eina_stringshare_add(testString)));
     81    checkString(string, testString);
     82
     83    string = WKEinaSharedString::adopt(eina_stringshare_add(anotherTestString));
     84    checkString(string, anotherTestString);
     85
     86    string = string;
     87    checkString(string, anotherTestString);
     88}
     89
    7890TEST_F(EWK2UnitTestBase, costructCopy)
    7991{
Note: See TracChangeset for help on using the changeset viewer.