summaryrefslogtreecommitdiff
path: root/tools/libglibcodegen.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libglibcodegen.py')
-rw-r--r--tools/libglibcodegen.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tools/libglibcodegen.py b/tools/libglibcodegen.py
index 6cd1a6277..0b703a5a8 100644
--- a/tools/libglibcodegen.py
+++ b/tools/libglibcodegen.py
@@ -170,3 +170,26 @@ def type_to_gtype(s):
# we just don't know ..
raise Exception("don't know the GType for " + s)
+
+
+def copy_into_gvalue(gvaluep, gtype, marshaller, name):
+ if gtype == 'G_TYPE_STRING':
+ return 'g_value_set_string (%s, %s);' % (gvaluep, name)
+ elif marshaller == 'BOXED':
+ return 'g_value_set_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)