From e89a090ace6382617f6a5cbb6c404d2addf91fc4 Mon Sep 17 00:00:00 2001 From: firewave Date: Sun, 21 Jan 2018 00:00:47 +0100 Subject: removed core_strdup() usage from ti99 cartridge code (nw) --- src/devices/bus/ti99/gromport/cartridges.cpp | 2 +- src/devices/bus/ti99/gromport/cartridges.h | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/devices/bus/ti99/gromport/cartridges.cpp b/src/devices/bus/ti99/gromport/cartridges.cpp index d2d84cdbf47..4b80aa2d272 100644 --- a/src/devices/bus/ti99/gromport/cartridges.cpp +++ b/src/devices/bus/ti99/gromport/cartridges.cpp @@ -239,7 +239,7 @@ image_init_result ti99_cartridge_device::call_load() } catch (rpk_exception& err) { - logerror("Failed to load cartridge '%s': %s\n", basename(), err.to_string()); + logerror("Failed to load cartridge '%s': %s\n", basename(), err.to_string().c_str()); m_rpk = nullptr; m_err = IMAGE_ERROR_INVALIDIMAGE; return image_init_result::FAIL; diff --git a/src/devices/bus/ti99/gromport/cartridges.h b/src/devices/bus/ti99/gromport/cartridges.h index dd7a4752862..501e97faba3 100644 --- a/src/devices/bus/ti99/gromport/cartridges.h +++ b/src/devices/bus/ti99/gromport/cartridges.h @@ -119,12 +119,12 @@ private: rpk_exception(rpk_open_error value): m_err(value), m_detail(nullptr) { } rpk_exception(rpk_open_error value, const char* detail) : m_err(value), m_detail(detail) { } - const char* to_string() + std::string to_string() { - // FIXME: this leaks memory - in some cases it returns a new buffer, in other cases it returns a pointer to a static string, so the caller can't know whether it needs to be cleaned up - if (m_detail==nullptr) return error_text[(int)m_err]; - std::string errormsg = std::string(error_text[(int)m_err]).append(": ").append(m_detail); - return core_strdup(errormsg.c_str()); + std::string errmsg(error_text[(int)m_err]); + if (m_detail==nullptr) + return errmsg; + return errmsg.append(": ").append(m_detail); } private: -- cgit v1.2.3