summaryrefslogtreecommitdiff
path: root/gi/pygi-invoke-state-struct.h
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2011-01-11 17:20:43 -0500
committerJohn (J5) Palmieri <johnp@redhat.com>2011-01-11 17:20:43 -0500
commit3b0eff80d2ee35e0417476f0a170b9e178e3d1ee (patch)
tree42b4e97c06961ff81871e65b7d97174157d94e35 /gi/pygi-invoke-state-struct.h
parentc5c149be171895d292852df364541f14f0ec423a (diff)
downloadpygobject-3b0eff80d2ee35e0417476f0a170b9e178e3d1ee.tar.gz
[gi] implement out arg handling
Diffstat (limited to 'gi/pygi-invoke-state-struct.h')
-rw-r--r--gi/pygi-invoke-state-struct.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/gi/pygi-invoke-state-struct.h b/gi/pygi-invoke-state-struct.h
index 1c9bf3e6..22ac8ea9 100644
--- a/gi/pygi-invoke-state-struct.h
+++ b/gi/pygi-invoke-state-struct.h
@@ -14,7 +14,20 @@ typedef struct _PyGIInvokeState
GIArgument **args;
GIArgument *in_args;
+
+ /* Out args and out values
+ * In order to pass a parameter and get something back out in C
+ * we need to pass a pointer to the value, e.g.
+ * int *out_integer;
+ *
+ * so while out_args == out_integer, out_value == *out_integer
+ * or in other words out_args = &out_values
+ *
+ * We do all of our processing on out_values but we pass out_args to
+ * the actual function.
+ */
GIArgument *out_args;
+ GIArgument *out_values;
GIArgument return_arg;