From 15ceda12338f73a35df923e2aced3027bf0773d6 Mon Sep 17 00:00:00 2001 From: Exzap <13877693+Exzap@users.noreply.github.com> Date: Thu, 23 Apr 2026 02:05:24 +0200 Subject: [PATCH] GfxPack: Log line number for errors caused by malformed expressions --- src/Cafe/GraphicPack/GraphicPack2Patches.h | 10 +++++++--- src/Cafe/GraphicPack/GraphicPack2PatchesApply.cpp | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Cafe/GraphicPack/GraphicPack2Patches.h b/src/Cafe/GraphicPack/GraphicPack2Patches.h index 34750533..45505062 100644 --- a/src/Cafe/GraphicPack/GraphicPack2Patches.h +++ b/src/Cafe/GraphicPack/GraphicPack2Patches.h @@ -59,6 +59,8 @@ public: PatchEntry() {}; virtual ~PatchEntry() {}; + virtual sint32 getLineNumber() { return -1; } + // apply relocation or evaluate any expressions for this entry virtual PATCH_RESOLVE_RESULT resolve(PatchContext_t& ctx) = 0; }; @@ -74,7 +76,7 @@ public: m_expressionString.assign(expressionStr, expressionLen); } - sint32 getLineNumber() { return m_lineNumber; } + sint32 getLineNumber() override { return m_lineNumber; } PATCH_RESOLVE_RESULT resolve(PatchContext_t& ctx) override; @@ -109,7 +111,7 @@ public: m_expressionString.assign(expressionStr, expressionLen); } - sint32 getLineNumber() { return m_lineNumber; } + sint32 getLineNumber() override { return m_lineNumber; } PATCH_RESOLVE_RESULT resolve(PatchContext_t& ctx) override; @@ -134,7 +136,7 @@ public: m_symbolName.assign(symbolName, symbolNameLen); } - sint32 getLineNumber() { return m_lineNumber; } + sint32 getLineNumber() override { return m_lineNumber; } PATCH_RESOLVE_RESULT resolve(PatchContext_t& ctx) override; @@ -179,6 +181,8 @@ public: delete[] m_dataBackup; } + sint32 getLineNumber() override { return m_lineNumber; } + uint32 getAddr() const { return m_addr; diff --git a/src/Cafe/GraphicPack/GraphicPack2PatchesApply.cpp b/src/Cafe/GraphicPack/GraphicPack2PatchesApply.cpp index 10e9743b..69d7be4f 100644 --- a/src/Cafe/GraphicPack/GraphicPack2PatchesApply.cpp +++ b/src/Cafe/GraphicPack/GraphicPack2PatchesApply.cpp @@ -606,7 +606,8 @@ bool _resolverPass(PatchContext_t& patchContext, std::vectorgetLineNumber(); + patchContext.errorHandler.printError(resolverState.currentGroup, lineNumber, "Unable to parse expression or other internal error"); it++; } }