summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author firewave <firewave@users.noreply.github.com>2018-01-21 00:00:47 +0100
committer firewave <firewave@users.noreply.github.com>2018-01-21 00:00:47 +0100
commite89a090ace6382617f6a5cbb6c404d2addf91fc4 (patch)
treef51888b0687e08d79bb4822ce6635c5aef47f666
parentfef11b90870b786ce0fe01d75d59e200525dde96 (diff)
removed core_strdup() usage from ti99 cartridge code (nw)
-rw-r--r--src/devices/bus/ti99/gromport/cartridges.cpp2
-rw-r--r--src/devices/bus/ti99/gromport/cartridges.h10
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: