From 9d0316d7f11e176190ee4523ecd222f1cd01c4ce Mon Sep 17 00:00:00 2001 From: jpirnay Date: Sun, 29 Mar 2026 09:23:56 +0200 Subject: [PATCH] Review comment --- lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp b/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp index 4e097e1d..27d6badc 100644 --- a/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp +++ b/lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp @@ -191,9 +191,15 @@ void XMLCALL ChapterHtmlSlimParser::startElement(void* userData, const XML_Char* cacheKey += '|'; cacheKey += classAttr; auto it = self->cssStyleCache_.find(cacheKey); - if (it == self->cssStyleCache_.end()) - it = self->cssStyleCache_.emplace(cacheKey, self->cssParser->resolveStyle(name, classAttr)).first; - cssStyle = it->second; + if (it != self->cssStyleCache_.end()) { + cssStyle = it->second; + } else { + CssStyle resolved = self->cssParser->resolveStyle(name, classAttr); + if (resolved.defined.anySet()) + cssStyle = self->cssStyleCache_.emplace(cacheKey, resolved).first->second; + else + cssStyle = resolved; // transient fallback: skip cache so future calls can re-resolve + } } if (!styleAttr.empty()) { auto it = self->inlineStyleCache_.find(styleAttr);