Changeset 179408 in webkit


Ignore:
Timestamp:
Jan 30, 2015 12:46:00 PM (9 years ago)
Author:
Antti Koivisto
Message:

OSObjectPtr does not work with dispatch_data_t on Maverics
https://bugs.webkit.org/show_bug.cgi?id=141081

Reviewed by Pratik Solanki.
Source/WTF:


Trying to use OSObjectPtr<dispatch_data_t> throws

-[OS_dispatch_data _xref_dispose]: unrecognized selector sent to instance 0

  • wtf/OSObjectPtr.h:

(WTF::retainOSObject<dispatch_data_t>):
(WTF::releaseOSObject<dispatch_data_t>):

Add specialization for dispatch_data_t on Maverics.

Tools:

  • TestWebKitAPI/Tests/WTF/darwin/OSObjectPtr.cpp:

(TestWebKitAPI::TEST):

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r179354 r179408  
     12015-01-30  Antti Koivisto  <antti@apple.com>
     2
     3        OSObjectPtr does not work with dispatch_data_t on Maverics
     4        https://bugs.webkit.org/show_bug.cgi?id=141081
     5
     6        Reviewed by Pratik Solanki.
     7       
     8        Trying to use OSObjectPtr<dispatch_data_t> throws
     9       
     10        -[OS_dispatch_data _xref_dispose]: unrecognized selector sent to instance 0
     11
     12        * wtf/OSObjectPtr.h:
     13        (WTF::retainOSObject<dispatch_data_t>):
     14        (WTF::releaseOSObject<dispatch_data_t>):
     15       
     16            Add specialization for dispatch_data_t on Maverics.
     17
    1182015-01-29  Santosh Mahto  <santoshbit2007@gmail.com>
    219
  • trunk/Source/WTF/wtf/OSObjectPtr.h

    r177523 r179408  
    3333#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101000
    3434
     35#include <dispatch/dispatch.h>
    3536#if __has_include(<os/object_private.h>)
    3637#include <os/object_private.h>
     
    8283#endif
    8384}
     85
     86#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101000
     87template<> inline void retainOSObject<dispatch_data_t>(dispatch_data_t ptr)
     88{
     89    dispatch_retain(ptr);
     90}
     91
     92template<> inline void releaseOSObject<dispatch_data_t>(dispatch_data_t ptr)
     93{
     94    dispatch_release(ptr);
     95}
     96#endif
    8497
    8598template<typename T> class OSObjectPtr {
  • trunk/Tools/ChangeLog

    r179405 r179408  
     12015-01-30  Antti Koivisto  <antti@apple.com>
     2
     3        OSObjectPtr does not work with dispatch_data_t on Maverics
     4        https://bugs.webkit.org/show_bug.cgi?id=141081
     5
     6        Reviewed by Pratik Solanki.
     7
     8        * TestWebKitAPI/Tests/WTF/darwin/OSObjectPtr.cpp:
     9        (TestWebKitAPI::TEST):
     10
    1112015-01-30  Brent Fulgham  <bfulgham@apple.com>
    212
  • trunk/Tools/TestWebKitAPI/Tests/WTF/darwin/OSObjectPtr.cpp

    r174809 r179408  
    6464}
    6565
     66TEST(OSObjectPtr, DispatchData)
     67{
     68    uint8_t buffer[1024] { };
     69    OSObjectPtr<dispatch_data_t> foo = adoptOSObject(dispatch_data_create(buffer, 1024, nullptr, DISPATCH_DATA_DESTRUCTOR_DEFAULT));
     70    EXPECT_EQ(1, CFGetRetainCount(foo.get()));
     71    {
     72        OSObjectPtr<dispatch_data_t> foo2 = foo;
     73        EXPECT_EQ(2, CFGetRetainCount(foo.get()));
     74    }
     75    EXPECT_EQ(1, CFGetRetainCount(foo.get()));
     76}
     77
    6678} // namespace TestWebKitAPI
Note: See TracChangeset for help on using the changeset viewer.