diff --git a/src/kits/tracker/EntryIterator.cpp b/src/kits/tracker/EntryIterator.cpp index e48d141628..7069aae270 100644 --- a/src/kits/tracker/EntryIterator.cpp +++ b/src/kits/tracker/EntryIterator.cpp @@ -32,8 +32,10 @@ names are registered trademarks or trademarks of their respective holders. All rights reserved. */ + #include #include +#include #include #include @@ -41,7 +43,9 @@ All rights reserved. #include "EntryIterator.h" #include "NodeWalker.h" -#include "ObjectList.h" + + +// #pragma mark - TWalkerWrapper TWalkerWrapper::TWalkerWrapper(BTrackerPrivate::TWalker* walker) @@ -69,6 +73,7 @@ status_t TWalkerWrapper::GetNextEntry(BEntry* entry, bool traverse) { fStatus = fWalker->GetNextEntry(entry, traverse); + return fStatus; } @@ -77,6 +82,7 @@ status_t TWalkerWrapper::GetNextRef(entry_ref* ref) { fStatus = fWalker->GetNextRef(ref); + return fStatus; } @@ -87,6 +93,7 @@ TWalkerWrapper::GetNextDirents(struct dirent* buffer, size_t length, { int32 result = fWalker->GetNextDirents(buffer, length, count); fStatus = result < B_OK ? result : (result ? B_OK : B_ENTRY_NOT_FOUND); + return result; } @@ -105,11 +112,12 @@ TWalkerWrapper::CountEntries() } -// #pragma mark - +// #pragma mark - EntryListBase EntryListBase::EntryListBase() - : fStatus(B_OK) + : + fStatus(B_OK) { } @@ -128,11 +136,11 @@ EntryListBase::Next(dirent* ent) } -// #pragma mark - +// #pragma mark - CachedEntryIterator CachedEntryIterator::CachedEntryIterator(BEntryList* iterator, - int32 numEntries, bool sortInodes) + int32 numEntries, bool sortInodes) : fIterator(iterator), fEntryRefBuffer(NULL), @@ -163,10 +171,11 @@ CachedEntryIterator::GetNextEntry(BEntry* result, bool traverse) ASSERT(!fDirentBuffer); ASSERT(!fEntryRefBuffer); - if (!fEntryBuffer) { + if (fEntryBuffer == NULL) { fEntryBuffer = new BEntry [fCacheSize]; ASSERT(fIndex == 0 && fNumEntries == 0); } + if (fIndex >= fNumEntries) { // fill up the buffer or stop if error; keep error around // and return it when appropriate @@ -179,6 +188,7 @@ CachedEntryIterator::GetNextEntry(BEntry* result, bool traverse) } fIndex = 0; } + *result = fEntryBuffer[fIndex++]; if (fIndex > fNumEntries) { // we are at the end of the cache we loaded up, time to return @@ -193,10 +203,10 @@ CachedEntryIterator::GetNextEntry(BEntry* result, bool traverse) status_t CachedEntryIterator::GetNextRef(entry_ref* ref) { - ASSERT(!fDirentBuffer); - ASSERT(!fEntryBuffer); + ASSERT(fDirentBuffer == NULL); + ASSERT(fEntryBuffer == NULL); - if (!fEntryRefBuffer) { + if (fEntryRefBuffer == NULL) { fEntryRefBuffer = new entry_ref[fCacheSize]; ASSERT(fIndex == 0 && fNumEntries == 0); } @@ -212,11 +222,13 @@ CachedEntryIterator::GetNextRef(entry_ref* ref) } fIndex = 0; } + *ref = fEntryRefBuffer[fIndex++]; - if (fIndex > fNumEntries) + if (fIndex > fNumEntries) { // we are at the end of the cache we loaded up, time to return // an error, if we had one return fStatus; + } return B_OK; } @@ -227,6 +239,7 @@ CachedEntryIterator::_CompareInodes(const dirent* ent1, const dirent* ent2) { if (ent1->d_ino < ent2->d_ino) return -1; + if (ent1->d_ino == ent2->d_ino) return 0; @@ -238,14 +251,14 @@ int32 CachedEntryIterator::GetNextDirents(struct dirent* ent, size_t size, int32 count) { - ASSERT(!fEntryRefBuffer); - if (!fDirentBuffer) { + ASSERT(fEntryRefBuffer == NULL); + if (fDirentBuffer == NULL) { fDirentBuffer = (dirent*)malloc(kDirentBufferSize); ASSERT(fIndex == 0 && fNumEntries == 0); ASSERT(size > sizeof(dirent) + B_FILE_NAME_LENGTH); } - if (!count) + if (count == 0) return 0; if (fIndex >= fNumEntries) { @@ -346,11 +359,12 @@ CachedEntryIterator::SetTo(BEntryList* iterator) } -// #pragma mark - +// #pragma mark - CachedDirectoryEntryList CachedDirectoryEntryList::CachedDirectoryEntryList(const BDirectory &dir) - : CachedEntryIterator(0, 40, true), + : + CachedEntryIterator(0, 40, true), fDir(dir) { fStatus = fDir.InitCheck(); @@ -363,7 +377,7 @@ CachedDirectoryEntryList::~CachedDirectoryEntryList() } -// #pragma mark - +// #pragma mark - DirectoryEntryList DirectoryEntryList::DirectoryEntryList(const BDirectory &dir) @@ -414,7 +428,7 @@ DirectoryEntryList::CountEntries() } -// #pragma mark - +// #pragma mark - EntryIteratorList EntryIteratorList::EntryIteratorList() @@ -535,11 +549,12 @@ EntryIteratorList::CountEntries() } -// #pragma mark - +// #pragma mark - CachedEntryIteratorList CachedEntryIteratorList::CachedEntryIteratorList(bool sortInodes) - : CachedEntryIterator(NULL, 10, sortInodes) + : + CachedEntryIterator(NULL, 10, sortInodes) { fStatus = B_OK; SetTo(&fIteratorList); diff --git a/src/kits/tracker/EntryIterator.h b/src/kits/tracker/EntryIterator.h index 08c5e6385b..b741060405 100644 --- a/src/kits/tracker/EntryIterator.h +++ b/src/kits/tracker/EntryIterator.h @@ -31,19 +31,19 @@ of Be Incorporated in the United States and other countries. Other brand product names are registered trademarks or trademarks of their respective holders. All rights reserved. */ -#ifndef __ENTRY_ITERATOR__ -#define __ENTRY_ITERATOR__ - // A lot of the code in here wouldn't be needed if the destructor // for BEntryList was virtual // TODO: get rid of all BEntryList API's in here, replace them with // EntryListBase ones +#ifndef _ENTRY_ITERATOR_H +#define _ENTRY_ITERATOR_H #include -#include "ObjectList.h" +#include + #include "NodeWalker.h" @@ -207,4 +207,5 @@ protected: using namespace BPrivate; -#endif + +#endif // _ENTRY_ITERATOR_H