From 1f8c7b9f4d3d3c00bf545c79f21ef6c4399ff23a Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 17 May 2024 02:45:24 +0300 Subject: [PATCH] kde-menu: keep references to QByteArray objects Signed-off-by: Ivailo Monev --- kde-menu/kde-menu.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/kde-menu/kde-menu.cpp b/kde-menu/kde-menu.cpp index 040fdfe9..7eac036e 100644 --- a/kde-menu/kde-menu.cpp +++ b/kde-menu/kde-menu.cpp @@ -39,18 +39,21 @@ static bool utf8 = false; static bool bPrintMenuId = false; static bool bPrintMenuName = false; +static QByteArray convert(const QString &txt) +{ + return (utf8 ? txt.toUtf8() : txt.toLocal8Bit()); +} + static void result(const QString &txt) { - if (utf8) { - puts(txt.toUtf8()); - } else { - puts(txt.toLocal8Bit()); - } + const QByteArray txtbytes = convert(txt); + puts(txtbytes.constData()); } static void error(int exitCode, const QString &txt) { - qWarning("kde-menu: %s", txt.toLocal8Bit().data()); + const QByteArray txtbytes = convert(txt); + qWarning("kde-menu: %s", txtbytes.constData()); exit(exitCode); } @@ -62,7 +65,7 @@ static void findMenuEntry(KServiceGroup::Ptr parent, const QString &name, const KSycocaEntry::Ptr e = (*it); if (e->isType(KST_KServiceGroup)) { - KServiceGroup::Ptr g = KServiceGroup::Ptr::staticCast( e ); + KServiceGroup::Ptr g = KServiceGroup::Ptr::staticCast(e); findMenuEntry(g, name.isEmpty() ? g->caption() : name + '/' + g->caption(), menuId); } else if (e->isType(KST_KService)) { @@ -80,7 +83,6 @@ static void findMenuEntry(KServiceGroup::Ptr parent, const QString &name, const } } - int main(int argc, char **argv) { const char *description = I18N_NOOP(