qstring: add qstring_free()
Similar to g_string_free(), optionally return the underlying char*. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20200110153039.1379601-10-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
a3a162113e
commit
164c374b75
@ -33,6 +33,7 @@ void qstring_append_int(QString *qstring, int64_t value);
|
|||||||
void qstring_append(QString *qstring, const char *str);
|
void qstring_append(QString *qstring, const char *str);
|
||||||
void qstring_append_chr(QString *qstring, int c);
|
void qstring_append_chr(QString *qstring, int c);
|
||||||
bool qstring_is_equal(const QObject *x, const QObject *y);
|
bool qstring_is_equal(const QObject *x, const QObject *y);
|
||||||
|
char *qstring_free(QString *qstring, bool return_str);
|
||||||
void qstring_destroy_obj(QObject *obj);
|
void qstring_destroy_obj(QObject *obj);
|
||||||
|
|
||||||
#endif /* QSTRING_H */
|
#endif /* QSTRING_H */
|
||||||
|
@ -149,16 +149,33 @@ bool qstring_is_equal(const QObject *x, const QObject *y)
|
|||||||
qobject_to(QString, y)->string);
|
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
|
* qstring_destroy_obj(): Free all memory allocated by a QString
|
||||||
* object
|
* object
|
||||||
*/
|
*/
|
||||||
void qstring_destroy_obj(QObject *obj)
|
void qstring_destroy_obj(QObject *obj)
|
||||||
{
|
{
|
||||||
QString *qs;
|
|
||||||
|
|
||||||
assert(obj != NULL);
|
assert(obj != NULL);
|
||||||
qs = qobject_to(QString, obj);
|
qstring_free(qobject_to(QString, obj), FALSE);
|
||||||
g_free(qs->string);
|
|
||||||
g_free(qs);
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user