Loading...
--- 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();
}