diff --git a/src/add-ons/kernel/file_systems/packagefs/Index.cpp b/src/add-ons/kernel/file_systems/packagefs/Index.cpp index b0ccfb747e..6b0716a37c 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Index.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Index.cpp @@ -49,32 +49,23 @@ Index::Init(Volume* volume, const char* name, uint32 type, bool fixedKeyLength, bool -Index::GetIterator(IndexIterator* iterator) +Index::GetIterator(IndexIterator& iterator) { - bool result = false; - if (iterator) { - AbstractIndexIterator* actualIterator = InternalGetIterator(); - if (actualIterator) { - iterator->SetIterator(actualIterator); - result = true; - } - } - return result; + AbstractIndexIterator* actualIterator = InternalGetIterator(); + iterator.SetIterator(actualIterator); + + return actualIterator != NULL; } bool -Index::Find(const void* key, size_t length, IndexIterator* iterator) +Index::Find(const void* key, size_t length, IndexIterator& iterator) { - bool result = false; - if (key && iterator) { - AbstractIndexIterator* actualIterator = InternalFind(key, length); - if (actualIterator) { - iterator->SetIterator(actualIterator); - result = true; - } - } - return result; + AbstractIndexIterator* actualIterator + = key != NULL ? InternalFind(key, length) : NULL; + iterator.SetIterator(actualIterator); + + return actualIterator != NULL; } diff --git a/src/add-ons/kernel/file_systems/packagefs/Index.h b/src/add-ons/kernel/file_systems/packagefs/Index.h index 53be4c3215..008c8be33e 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Index.h +++ b/src/add-ons/kernel/file_systems/packagefs/Index.h @@ -42,9 +42,9 @@ public: virtual int32 CountEntries() const = 0; - bool GetIterator(IndexIterator* iterator); + bool GetIterator(IndexIterator& iterator); bool Find(const void* key, size_t length, - IndexIterator* iterator); + IndexIterator& iterator); // sets the iterator to the first value // >= key diff --git a/src/add-ons/kernel/file_systems/packagefs/Query.cpp b/src/add-ons/kernel/file_systems/packagefs/Query.cpp index a51bdad153..2f5d39c632 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Query.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Query.cpp @@ -119,7 +119,7 @@ struct Query::QueryPolicy { if (iterator == NULL) return NULL; - if (!index.index->GetIterator(iterator)) { + if (!index.index->GetIterator(*iterator)) { delete iterator; return NULL; } @@ -137,7 +137,7 @@ struct Query::QueryPolicy { static status_t IndexIteratorFind(IndexIterator* indexIterator, const void* value, size_t size) { - if (!indexIterator->index->Find(value, size, indexIterator)) + if (!indexIterator->index->Find(value, size, *indexIterator)) return B_ENTRY_NOT_FOUND; return B_OK;