From 793f801a5ccc76645e569adb971eeced67e763be Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Tue, 18 Feb 2014 17:41:29 +0100 Subject: removed unreliable CHR2STR() macro * referencing temporaries is unreliable/buggy in GNU C++, at least since v4.7 * in higher optimization levels it resulted in massive memory corruptions * this is responsible for the build issues (PPA build issues) * instead, always declare a buffer on the stack which guarantees that the variable lives long enough * the g_strdup(CHR2STR(x)) idiom has been replaced with String::chrdup(x) --- src/qregisters.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/qregisters.h') diff --git a/src/qregisters.h b/src/qregisters.h index d548179..511d770 100644 --- a/src/qregisters.h +++ b/src/qregisters.h @@ -186,7 +186,8 @@ public: inline QRegister * insert(gchar name) { - return insert(CHR2STR(name)); + gchar buf[] = {name, '\0'}; + return insert(buf); } inline QRegister * @@ -198,7 +199,8 @@ public: inline QRegister * operator [](gchar chr) { - return operator [](CHR2STR(chr)); + gchar buf[] = {chr, '\0'}; + return operator [](buf); } void edit(QRegister *reg); -- cgit v1.2.3