Skip to content
Snippets Groups Projects
Commit 164c374b authored by Marc-André Lureau's avatar Marc-André Lureau Committed by Paolo Bonzini
Browse files

qstring: add qstring_free()


Similar to g_string_free(), optionally return the underlying char*.

Signed-off-by: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20200110153039.1379601-10-marcandre.lureau@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent a3a16211
No related branches found
No related tags found
No related merge requests found
......@@ -33,6 +33,7 @@ void qstring_append_int(QString *qstring, int64_t value);
void qstring_append(QString *qstring, const char *str);
void qstring_append_chr(QString *qstring, int c);
bool qstring_is_equal(const QObject *x, const QObject *y);
char *qstring_free(QString *qstring, bool return_str);
void qstring_destroy_obj(QObject *obj);
#endif /* QSTRING_H */
......@@ -149,16 +149,33 @@ bool qstring_is_equal(const QObject *x, const QObject *y)
qobject_to(QString, y)->string);
}
/**
* qstring_free(): Free the memory allocated by a QString object
*
* Return: if @return_str, return the underlying string, to be
* g_free(), otherwise NULL is returned.
*/
char *qstring_free(QString *qstring, bool return_str)
{
char *rv = NULL;
if (return_str) {
rv = qstring->string;
} else {
g_free(qstring->string);
}
g_free(qstring);
return rv;
}
/**
* qstring_destroy_obj(): Free all memory allocated by a QString
* object
*/
void qstring_destroy_obj(QObject *obj)
{
QString *qs;
assert(obj != NULL);
qs = qobject_to(QString, obj);
g_free(qs->string);
g_free(qs);
qstring_free(qobject_to(QString, obj), FALSE);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment