mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Should return std::string
This is only used in C++, so there is no need to g_strdup in here. Also, this fixes a memory leak in KvpFrameImpl.
This commit is contained in:
parent
048b8e37a1
commit
a9cc488cbf
@ -35,7 +35,7 @@ test_kvp_get_slot (int run,
|
||||
{
|
||||
gchar* tmp;
|
||||
failure_args (msg, __FILE__, __LINE__, "run=%d", run);
|
||||
printf (" Value is %s\n", test_val2->to_string ());
|
||||
printf (" Value is %s\n", test_val2->to_string ().c_str ());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -149,16 +149,8 @@ struct to_string_visitor : boost::static_visitor<void>
|
||||
/*Since val is passed by value, we can modify it*/
|
||||
for (;val; val = val->next)
|
||||
{
|
||||
gchar *tmp3;
|
||||
auto realvalue = static_cast<const KvpValue *>(val->data);
|
||||
tmp3 = realvalue->to_string();
|
||||
output << ' ';
|
||||
if (tmp3)
|
||||
{
|
||||
output << tmp3;
|
||||
g_free(tmp3);
|
||||
}
|
||||
output << ',';
|
||||
output << ' ' << realvalue->to_string() << ',';
|
||||
}
|
||||
|
||||
output << " ]";
|
||||
@ -207,7 +199,7 @@ struct to_string_visitor : boost::static_visitor<void>
|
||||
}
|
||||
};
|
||||
|
||||
char *
|
||||
std::string
|
||||
KvpValueImpl::to_string() const noexcept
|
||||
{
|
||||
std::ostringstream ret;
|
||||
@ -215,7 +207,7 @@ KvpValueImpl::to_string() const noexcept
|
||||
boost::apply_visitor(visitor, datastore);
|
||||
|
||||
/*We still use g_strdup since the return value will be freed by g_free*/
|
||||
return g_strdup(ret.str().c_str());
|
||||
return ret.str();
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -137,7 +137,7 @@ struct KvpValueImpl
|
||||
|
||||
KvpValueImpl::Type get_type() const noexcept;
|
||||
|
||||
char * to_string() const noexcept;
|
||||
std::string to_string() const noexcept;
|
||||
|
||||
template <typename T>
|
||||
T get() const noexcept;
|
||||
|
Loading…
Reference in New Issue
Block a user