From 2b0bdfa7ddecc9a714192bea6c247e94cae25994 Mon Sep 17 00:00:00 2001 From: Ryszard Rozak Date: Tue, 20 May 2025 14:38:10 +0200 Subject: [PATCH] Make keyExtract static Signed-off-by: Ryszard Rozak --- src/VlcPoint.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/VlcPoint.h b/src/VlcPoint.h index afb546f46..62d92871f 100644 --- a/src/VlcPoint.h +++ b/src/VlcPoint.h @@ -61,20 +61,22 @@ public: return m_count >= threshi; } // KEY ACCESSORS - string filename() const { return keyExtract(VL_CIK_FILENAME); } - string comment() const { return keyExtract(VL_CIK_COMMENT); } - string hier() const { return keyExtract(VL_CIK_HIER); } - string type() const { return keyExtract(VL_CIK_TYPE); } - string thresh() const { return keyExtract(VL_CIK_THRESH); } // string as maybe "" - string linescov() const { return keyExtract(VL_CIK_LINESCOV); } - int lineno() const { return std::atoi(keyExtract(VL_CIK_LINENO).c_str()); } - int column() const { return std::atoi(keyExtract(VL_CIK_COLUMN).c_str()); } + string filename() const { return keyExtract(VL_CIK_FILENAME, m_name.c_str()); } + string comment() const { return keyExtract(VL_CIK_COMMENT, m_name.c_str()); } + string hier() const { return keyExtract(VL_CIK_HIER, m_name.c_str()); } + string type() const { return keyExtract(VL_CIK_TYPE, m_name.c_str()); } + string thresh() const { + // string as maybe "" + return keyExtract(VL_CIK_THRESH, m_name.c_str()); + } + string linescov() const { return keyExtract(VL_CIK_LINESCOV, m_name.c_str()); } + int lineno() const { return std::atoi(keyExtract(VL_CIK_LINENO, m_name.c_str()).c_str()); } + int column() const { return std::atoi(keyExtract(VL_CIK_COLUMN, m_name.c_str()).c_str()); } // METHODS - string keyExtract(const char* shortKey) const { + static string keyExtract(const char* shortKey, const char* name) { // Hot function const size_t shortLen = std::strlen(shortKey); - const string namestr = name(); - for (const char* cp = namestr.c_str(); *cp; ++cp) { + for (const char* cp = name; *cp; ++cp) { if (*cp == '\001') { if (0 == std::strncmp(cp + 1, shortKey, shortLen) && cp[shortLen + 1] == '\002') { cp += shortLen + 2; // Skip \001+short+\002