Loading...
--- xnu/xnu-4903.270.47/libkern/c++/OSCollectionIterator.cpp
+++ xnu/xnu-7195.121.3/libkern/c++/OSCollectionIterator.cpp
@@ -27,10 +27,13 @@
*/
/* IOArray.h created by rsulack on Thu 11-Sep-1997 */
+#define IOKIT_ENABLE_SHARED_PTR
+
+#include <libkern/c++/OSArray.h>
+#include <libkern/c++/OSCollection.h>
#include <libkern/c++/OSCollectionIterator.h>
-#include <libkern/c++/OSCollection.h>
-#include <libkern/c++/OSArray.h>
#include <libkern/c++/OSLib.h>
+#include <libkern/c++/OSSharedPtr.h>
#define super OSIterator
@@ -43,23 +46,21 @@
return false;
}
- inColl->retain();
- collection = inColl;
- collIterator = 0;
+ collection.reset(inColl, OSRetain);
+ collIterator = NULL;
initialUpdateStamp = 0;
valid = false;
return true;
}
-OSCollectionIterator *
+OSSharedPtr<OSCollectionIterator>
OSCollectionIterator::withCollection(const OSCollection *inColl)
{
- OSCollectionIterator *me = new OSCollectionIterator;
+ OSSharedPtr<OSCollectionIterator> me = OSMakeShared<OSCollectionIterator>();
if (me && !me->initWithCollection(inColl)) {
- me->release();
- return 0;
+ return nullptr;
}
return me;
@@ -71,13 +72,10 @@
if (collIterator) {
kfree(collIterator, collection->iteratorSize());
OSCONTAINER_ACCUMSIZE(-((size_t) collection->iteratorSize()));
- collIterator = 0;
+ collIterator = NULL;
}
- if (collection) {
- collection->release();
- collection = 0;
- }
+ collection.reset();
super::free();
}
@@ -128,9 +126,9 @@
bool retVal;
if (!isValid()) {
- return 0;
+ return NULL;
}
retVal = collection->getNextObjectForIterator(collIterator, &retObj);
- return (retVal)? retObj : 0;
+ return (retVal)? retObj : NULL;
}