Loading...
libkern/c++/OSCollectionIterator.cpp xnu-7195.141.2 xnu-6153.41.3
--- xnu/xnu-7195.141.2/libkern/c++/OSCollectionIterator.cpp
+++ xnu/xnu-6153.41.3/libkern/c++/OSCollectionIterator.cpp
@@ -27,13 +27,10 @@
  */
 /* IOArray.h created by rsulack on Thu 11-Sep-1997 */
 
-#define IOKIT_ENABLE_SHARED_PTR
-
+#include <libkern/c++/OSCollectionIterator.h>
+#include <libkern/c++/OSCollection.h>
 #include <libkern/c++/OSArray.h>
-#include <libkern/c++/OSCollection.h>
-#include <libkern/c++/OSCollectionIterator.h>
 #include <libkern/c++/OSLib.h>
-#include <libkern/c++/OSSharedPtr.h>
 
 #define super OSIterator
 
@@ -46,7 +43,8 @@
 		return false;
 	}
 
-	collection.reset(inColl, OSRetain);
+	inColl->retain();
+	collection = inColl;
 	collIterator = NULL;
 	initialUpdateStamp = 0;
 	valid = false;
@@ -54,13 +52,14 @@
 	return true;
 }
 
-OSSharedPtr<OSCollectionIterator>
+OSCollectionIterator *
 OSCollectionIterator::withCollection(const OSCollection *inColl)
 {
-	OSSharedPtr<OSCollectionIterator> me = OSMakeShared<OSCollectionIterator>();
+	OSCollectionIterator *me = new OSCollectionIterator;
 
 	if (me && !me->initWithCollection(inColl)) {
-		return nullptr;
+		me->release();
+		return NULL;
 	}
 
 	return me;
@@ -75,7 +74,10 @@
 		collIterator = NULL;
 	}
 
-	collection.reset();
+	if (collection) {
+		collection->release();
+		collection = NULL;
+	}
 
 	super::free();
 }