diff --git a/taglib/ogg/oggfile.cpp b/taglib/ogg/oggfile.cpp index 29f1803a..c08ffde8 100644 --- a/taglib/ogg/oggfile.cpp +++ b/taglib/ogg/oggfile.cpp @@ -191,13 +191,16 @@ bool Ogg::File::readPages(unsigned int i) const Page *page = d->pages.back(); packetIndex = nextPacketIndex(page); offset = page->fileOffset() + page->size(); + + // Enough pages have been fetched. + if(packetIndex > i) { + return true; + } + else if(page->header()->lastPageOfStream()) { + return false; + } } - // Enough pages have been fetched. - - if(packetIndex > i) - return true; - // Read the next page and add it to the page list. auto nextPage = new Page(this, offset); @@ -208,9 +211,6 @@ bool Ogg::File::readPages(unsigned int i) nextPage->setFirstPacketIndex(packetIndex); d->pages.append(nextPage); - - if(nextPage->header()->lastPageOfStream()) - return false; } }