X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/cb3231590a3c94ab4375e2228bd5e86b0cf1ad7e..c3c9b80d004dbbfdf763edeb97968c6997e3b45b:/iokit/Kernel/IOFilterInterruptEventSource.cpp diff --git a/iokit/Kernel/IOFilterInterruptEventSource.cpp b/iokit/Kernel/IOFilterInterruptEventSource.cpp index 5e3371a10..a5d36fe37 100644 --- a/iokit/Kernel/IOFilterInterruptEventSource.cpp +++ b/iokit/Kernel/IOFilterInterruptEventSource.cpp @@ -26,6 +26,8 @@ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ +#define IOKIT_ENABLE_SHARED_PTR + #include #include #include @@ -78,7 +80,7 @@ IOFilterInterruptEventSource::init(OSObject *inOwner, return false; } -IOInterruptEventSource * +OSSharedPtr IOFilterInterruptEventSource::interruptEventSource(OSObject *inOwner, Action inAction, IOService *inProvider, @@ -109,7 +111,7 @@ IOFilterInterruptEventSource::init(OSObject *inOwner, return true; } -IOFilterInterruptEventSource * +OSSharedPtr IOFilterInterruptEventSource ::filterInterruptEventSource(OSObject *inOwner, Action inAction, @@ -117,19 +119,18 @@ IOFilterInterruptEventSource IOService *inProvider, int inIntIndex) { - IOFilterInterruptEventSource *me = new IOFilterInterruptEventSource; + OSSharedPtr me = OSMakeShared(); if (me && !me->init(inOwner, inAction, inFilterAction, inProvider, inIntIndex)) { - me->release(); - return NULL; + return nullptr; } return me; } -IOFilterInterruptEventSource * +OSSharedPtr IOFilterInterruptEventSource ::filterInterruptEventSource(OSObject *inOwner, IOService *inProvider, @@ -137,19 +138,17 @@ IOFilterInterruptEventSource ActionBlock inAction, FilterBlock inFilterAction) { - IOFilterInterruptEventSource *me = new IOFilterInterruptEventSource; + OSSharedPtr me = OSMakeShared(); FilterBlock filter = Block_copy(inFilterAction); if (!filter) { - OSSafeReleaseNULL(me); - return NULL; + return nullptr; } if (me && !me->init(inOwner, (Action) NULL, (Filter) filter, inProvider, inIntIndex)) { - me->release(); Block_release(filter); - return NULL; + return nullptr; } me->flags |= kFilterBlock; me->setActionBlock((IOEventSource::ActionBlock) inAction);