Loading...
libkern/c++/OSCollectionIterator.cpp xnu-7195.121.3 xnu-4903.270.47
--- xnu/xnu-7195.121.3/libkern/c++/OSCollectionIterator.cpp
+++ xnu/xnu-4903.270.47/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,21 +43,23 @@
 		return false;
 	}
 
-	collection.reset(inColl, OSRetain);
-	collIterator = NULL;
+	inColl->retain();
+	collection = inColl;
+	collIterator = 0;
 	initialUpdateStamp = 0;
 	valid = false;
 
 	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 0;
 	}
 
 	return me;
@@ -72,10 +71,13 @@
 	if (collIterator) {
 		kfree(collIterator, collection->iteratorSize());
 		OSCONTAINER_ACCUMSIZE(-((size_t) collection->iteratorSize()));
-		collIterator = NULL;
+		collIterator = 0;
 	}
 
-	collection.reset();
+	if (collection) {
+		collection->release();
+		collection = 0;
+	}
 
 	super::free();
 }
@@ -126,9 +128,9 @@
 	bool retVal;
 
 	if (!isValid()) {
-		return NULL;
+		return 0;
 	}
 
 	retVal = collection->getNextObjectForIterator(collIterator, &retObj);
-	return (retVal)? retObj : NULL;
+	return (retVal)? retObj : 0;
 }