From b323da31234c33eca76d446aba960095813d0e6b Mon Sep 17 00:00:00 2001 From: Dave Allie Date: Sun, 21 Dec 2025 15:16:01 +1100 Subject: [PATCH] Remove parser teardown methods --- lib/Epub/Epub.cpp | 14 ++++---------- lib/Epub/Epub/parsers/ContainerParser.cpp | 3 +-- lib/Epub/Epub/parsers/ContainerParser.h | 2 +- lib/Epub/Epub/parsers/ContentOpfParser.cpp | 5 ++--- lib/Epub/Epub/parsers/ContentOpfParser.h | 2 +- lib/Epub/Epub/parsers/TocNcxParser.cpp | 4 ++-- lib/Epub/Epub/parsers/TocNcxParser.h | 2 +- 7 files changed, 12 insertions(+), 20 deletions(-) diff --git a/lib/Epub/Epub.cpp b/lib/Epub/Epub.cpp index 0b55750..2df5a3f 100644 --- a/lib/Epub/Epub.cpp +++ b/lib/Epub/Epub.cpp @@ -30,24 +30,22 @@ bool Epub::findContentOpfFile(std::string* contentOpfFile) const { // Stream read (reusing your existing stream logic) if (!readItemContentsToStream(containerPath, containerParser, 512)) { Serial.printf("[%lu] [EBP] Could not read META-INF/container.xml\n", millis()); - containerParser.teardown(); return false; } // Extract the result if (containerParser.fullPath.empty()) { Serial.printf("[%lu] [EBP] Could not find valid rootfile in container.xml\n", millis()); - containerParser.teardown(); return false; } *contentOpfFile = std::move(containerParser.fullPath); - - containerParser.teardown(); return true; } bool Epub::parseContentOpf(const std::string& contentOpfFilePath) { + Serial.printf("[%lu] [EBP] Parsing content.opf: %s\n", millis(), contentOpfFilePath.c_str()); + size_t contentOpfSize; if (!getItemSize(contentOpfFilePath, &contentOpfSize)) { Serial.printf("[%lu] [EBP] Could not get size of content.opf\n", millis()); @@ -63,7 +61,6 @@ bool Epub::parseContentOpf(const std::string& contentOpfFilePath) { if (!readItemContentsToStream(contentOpfFilePath, opfParser, 1024)) { Serial.printf("[%lu] [EBP] Could not read content.opf\n", millis()); - opfParser.teardown(); return false; } @@ -84,8 +81,6 @@ bool Epub::parseContentOpf(const std::string& contentOpfFilePath) { } Serial.printf("[%lu] [EBP] Successfully parsed content.opf\n", millis()); - - opfParser.teardown(); return true; } @@ -96,6 +91,8 @@ bool Epub::parseTocNcxFile() { return false; } + Serial.printf("[%lu] [EBP] Parsing toc ncx file: %s\n", millis(), tocNcxItem.c_str()); + size_t tocSize; if (!getItemSize(tocNcxItem, &tocSize)) { Serial.printf("[%lu] [EBP] Could not get size of toc ncx\n", millis()); @@ -111,15 +108,12 @@ bool Epub::parseTocNcxFile() { if (!readItemContentsToStream(tocNcxItem, ncxParser, 1024)) { Serial.printf("[%lu] [EBP] Could not read toc ncx stream\n", millis()); - ncxParser.teardown(); return false; } this->toc = std::move(ncxParser.toc); Serial.printf("[%lu] [EBP] Parsed %d TOC items\n", millis(), this->toc.size()); - - ncxParser.teardown(); return true; } diff --git a/lib/Epub/Epub/parsers/ContainerParser.cpp b/lib/Epub/Epub/parsers/ContainerParser.cpp index b7ff5d1..db126f2 100644 --- a/lib/Epub/Epub/parsers/ContainerParser.cpp +++ b/lib/Epub/Epub/parsers/ContainerParser.cpp @@ -14,12 +14,11 @@ bool ContainerParser::setup() { return true; } -bool ContainerParser::teardown() { +ContainerParser::~ContainerParser() { if (parser) { XML_ParserFree(parser); parser = nullptr; } - return true; } size_t ContainerParser::write(const uint8_t data) { return write(&data, 1); } diff --git a/lib/Epub/Epub/parsers/ContainerParser.h b/lib/Epub/Epub/parsers/ContainerParser.h index 07e28ab..3951775 100644 --- a/lib/Epub/Epub/parsers/ContainerParser.h +++ b/lib/Epub/Epub/parsers/ContainerParser.h @@ -23,9 +23,9 @@ class ContainerParser final : public Print { std::string fullPath; explicit ContainerParser(const size_t xmlSize) : remainingSize(xmlSize) {} + ~ContainerParser() override; bool setup(); - bool teardown(); size_t write(uint8_t) override; size_t write(const uint8_t* buffer, size_t size) override; diff --git a/lib/Epub/Epub/parsers/ContentOpfParser.cpp b/lib/Epub/Epub/parsers/ContentOpfParser.cpp index 472d76c..5aa7303 100644 --- a/lib/Epub/Epub/parsers/ContentOpfParser.cpp +++ b/lib/Epub/Epub/parsers/ContentOpfParser.cpp @@ -4,7 +4,7 @@ #include namespace { -constexpr const char MEDIA_TYPE_NCX[] = "application/x-dtbncx+xml"; +constexpr char MEDIA_TYPE_NCX[] = "application/x-dtbncx+xml"; } bool ContentOpfParser::setup() { @@ -20,12 +20,11 @@ bool ContentOpfParser::setup() { return true; } -bool ContentOpfParser::teardown() { +ContentOpfParser::~ContentOpfParser() { if (parser) { XML_ParserFree(parser); parser = nullptr; } - return true; } size_t ContentOpfParser::write(const uint8_t data) { return write(&data, 1); } diff --git a/lib/Epub/Epub/parsers/ContentOpfParser.h b/lib/Epub/Epub/parsers/ContentOpfParser.h index cba4551..a3070fc 100644 --- a/lib/Epub/Epub/parsers/ContentOpfParser.h +++ b/lib/Epub/Epub/parsers/ContentOpfParser.h @@ -34,9 +34,9 @@ class ContentOpfParser final : public Print { explicit ContentOpfParser(const std::string& baseContentPath, const size_t xmlSize) : baseContentPath(baseContentPath), remainingSize(xmlSize) {} + ~ContentOpfParser() override; bool setup(); - bool teardown(); size_t write(uint8_t) override; size_t write(const uint8_t* buffer, size_t size) override; diff --git a/lib/Epub/Epub/parsers/TocNcxParser.cpp b/lib/Epub/Epub/parsers/TocNcxParser.cpp index f02d7c4..4d541f5 100644 --- a/lib/Epub/Epub/parsers/TocNcxParser.cpp +++ b/lib/Epub/Epub/parsers/TocNcxParser.cpp @@ -1,5 +1,6 @@ #include "TocNcxParser.h" +#include #include bool TocNcxParser::setup() { @@ -15,12 +16,11 @@ bool TocNcxParser::setup() { return true; } -bool TocNcxParser::teardown() { +TocNcxParser::~TocNcxParser() { if (parser) { XML_ParserFree(parser); parser = nullptr; } - return true; } size_t TocNcxParser::write(const uint8_t data) { return write(&data, 1); } diff --git a/lib/Epub/Epub/parsers/TocNcxParser.h b/lib/Epub/Epub/parsers/TocNcxParser.h index 6217f3f..5d5df0b 100644 --- a/lib/Epub/Epub/parsers/TocNcxParser.h +++ b/lib/Epub/Epub/parsers/TocNcxParser.h @@ -28,9 +28,9 @@ class TocNcxParser final : public Print { explicit TocNcxParser(const std::string& baseContentPath, const size_t xmlSize) : baseContentPath(baseContentPath), remainingSize(xmlSize) {} + ~TocNcxParser() override; bool setup(); - bool teardown(); size_t write(uint8_t) override; size_t write(const uint8_t* buffer, size_t size) override;