Loading...
iokit/Kernel/IOTimerEventSource.cpp xnu-12377.101.15 xnu-7195.141.2
--- xnu/xnu-12377.101.15/iokit/Kernel/IOTimerEventSource.cpp
+++ xnu/xnu-7195.141.2/iokit/Kernel/IOTimerEventSource.cpp
@@ -187,9 +187,8 @@
 			wl->openGate();
 		}
 	}
-	if (me->reserved->workLoop) {
-		me->reserved->workLoop->release();
-	}
+
+	me->reserved->workLoop->release();
 	me->release();
 }
 
@@ -235,7 +234,7 @@
 
 	// reserved != 0 means IOTimerEventSource::timeoutAndRelease is being used,
 	// not a subclassed implementation
-	reserved = IOMallocType(ExpansionData);
+	reserved = IONewZero(ExpansionData, 1);
 
 	reserved->calloutGenerationSignaled = ~reserved->calloutGeneration;
 	// make use of an existing ivar for parameter passing
@@ -376,7 +375,7 @@
 	}
 
 	if (reserved) {
-		IOFreeType(reserved, ExpansionData);
+		IODelete(reserved, ExpansionData, 1);
 	}
 
 	super::free();