diff options
Diffstat (limited to 'tools/libglibcodegen.py')
-rw-r--r-- | tools/libglibcodegen.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/libglibcodegen.py b/tools/libglibcodegen.py index 0b703a5a8..5c76f07d6 100644 --- a/tools/libglibcodegen.py +++ b/tools/libglibcodegen.py @@ -171,6 +171,27 @@ def type_to_gtype(s): # we just don't know .. raise Exception("don't know the GType for " + s) +def move_into_gvalue(gvaluep, gtype, marshaller, name): + if gtype == 'G_TYPE_STRING': + return 'g_value_take_string (%s, %s);' % (gvaluep, name) + elif marshaller == 'BOXED': + return 'g_value_take_boxed (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_UCHAR': + return 'g_value_set_uchar (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_BOOLEAN': + return 'g_value_set_boolean (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_INT': + return 'g_value_set_int (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_UINT': + return 'g_value_set_uint (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_INT64': + return 'g_value_set_int (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_UINT64': + return 'g_value_set_uint64 (%s, %s);' % (gvaluep, name) + elif gtype == 'G_TYPE_DOUBLE': + return 'g_value_set_double (%s, %s);' % (gvaluep, name) + else: + raise AssertionError("Don't know how to put %s in a GValue" % gtype) def copy_into_gvalue(gvaluep, gtype, marshaller, name): if gtype == 'G_TYPE_STRING': |