Remove page cache, proper 64 bit filesize and apply upstream 1648
This commit is contained in:
+3
-19
@@ -14,14 +14,11 @@
|
||||
bool Xtc::load() {
|
||||
LOG_DBG("XTC", "Loading XTC: %s", filepath.c_str());
|
||||
|
||||
// Ensure the per-book cache exists before the parser tries to create page_table.bin.
|
||||
setupCacheDir();
|
||||
|
||||
// Initialize parser
|
||||
parser.reset(new xtc::XtcParser());
|
||||
|
||||
// Open XTC file and initialize its cache-backed page table
|
||||
xtc::XtcError err = parser->open(filepath.c_str(), cachePath.c_str());
|
||||
// Open XTC file
|
||||
xtc::XtcError err = parser->open(filepath.c_str());
|
||||
if (err != xtc::XtcError::OK) {
|
||||
LOG_ERR("XTC", "Failed to load: %s", xtc::errorToString(err));
|
||||
parser.reset();
|
||||
@@ -106,7 +103,7 @@ bool Xtc::hasChapters() const {
|
||||
return parser->hasChapters();
|
||||
}
|
||||
|
||||
const std::vector<xtc::ChapterInfo>& Xtc::getChapters() const {
|
||||
const std::vector<xtc::ChapterInfo>& Xtc::getChapters() {
|
||||
static const std::vector<xtc::ChapterInfo> kEmpty;
|
||||
if (!loaded || !parser) {
|
||||
return kEmpty;
|
||||
@@ -202,7 +199,6 @@ bool Xtc::generateCoverBmp() const {
|
||||
uint8_t* rowBuffer = static_cast<uint8_t*>(malloc(dstRowSize));
|
||||
if (!rowBuffer) {
|
||||
free(pageBuffer);
|
||||
coverBmp.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -258,7 +254,6 @@ bool Xtc::generateCoverBmp() const {
|
||||
}
|
||||
}
|
||||
|
||||
coverBmp.close();
|
||||
free(pageBuffer);
|
||||
|
||||
LOG_DBG("XTC", "Generated cover BMP: %s", getCoverBmpPath().c_str());
|
||||
@@ -319,9 +314,7 @@ bool Xtc::generateThumbBmp(int height) const {
|
||||
size_t bytesRead = src.read(buffer, sizeof(buffer));
|
||||
dst.write(buffer, bytesRead);
|
||||
}
|
||||
dst.close();
|
||||
}
|
||||
src.close();
|
||||
}
|
||||
LOG_DBG("XTC", "Copied cover to thumb (no scaling needed)");
|
||||
return Storage.exists(getThumbBmpPath(height).c_str());
|
||||
@@ -375,7 +368,6 @@ bool Xtc::generateThumbBmp(int height) const {
|
||||
uint8_t* rowBuffer = static_cast<uint8_t*>(malloc(rowSize));
|
||||
if (!rowBuffer) {
|
||||
free(pageBuffer);
|
||||
thumbBmp.close();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -482,7 +474,6 @@ bool Xtc::generateThumbBmp(int height) const {
|
||||
}
|
||||
|
||||
free(rowBuffer);
|
||||
thumbBmp.close();
|
||||
free(pageBuffer);
|
||||
|
||||
LOG_DBG("XTC", "Generated thumb BMP (%dx%d): %s", thumbWidth, thumbHeight, getThumbBmpPath(height).c_str());
|
||||
@@ -545,11 +536,4 @@ xtc::XtcError Xtc::getLastError() const {
|
||||
return xtc::XtcError::FILE_NOT_FOUND;
|
||||
}
|
||||
return parser->getLastError();
|
||||
}
|
||||
|
||||
void Xtc::prefetchPages(uint32_t pageIndex) const {
|
||||
if (!loaded || !parser) {
|
||||
return;
|
||||
}
|
||||
parser->prefetchWindow(pageIndex);
|
||||
}
|
||||
Reference in New Issue
Block a user