Re: A doube about gvariant
- From: Federico Mena Quintero <federico gnome org>
- To: jiangpengfei <jiang pf neusoft com>
- Cc: desktop-devel-list gnome org
- Subject: Re: A doube about gvariant
- Date: Fri, 26 Apr 2013 13:03:28 -0500
On Tue, 2013-04-23 at 17:21 +0800, jiangpengfei wrote:
I have a doubt about the use of gvariant.
In the source file:
glib-2.34.3/gio/tests/gdbus-test-codegen.c:860,
foo_igen_bar_call_test_primitive_types_sync uses a address of
ret_val_bytestring, which is a local variable which type is gchar *.
After function returns, ret_val_bytestring will be pointed to a memory
section, and I know this section is got from a inner gvariant
variable. But does someone can tell me when and how should I release
this memory?
Just call g_free() on it.
As far as I can tell, this memory is allocated in
g_variant_dup_string(), as called by g_variant_valist_get_nnp(), called
in turn by g_variant_valist_get_leaf().
Normally the lifetime of values inside a GVariant is tied to the variant
itself. But the generated functions from gdbus pull out the values with
g_variant_get() - that duplicates the values for your own use. You can
see those calls to g_variant_get() in gdbus-test-codegen-generated.c
after you build glib.
Federico
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]