summaryrefslogtreecommitdiff
path: root/gi/pygi-cache.h
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2011-05-23 16:59:57 -0400
committerJohn (J5) Palmieri <johnp@redhat.com>2011-05-23 16:59:57 -0400
commitdbbcf4a0e76fb572d85843ee31c3798df5cd5cc5 (patch)
tree44df0ef3ffc757468dc766b553ac289e0e6d961b /gi/pygi-cache.h
parent198714dc4585f7463f38929f1ca4e4b60a27dadb (diff)
downloadpygobject-dbbcf4a0e76fb572d85843ee31c3798df5cd5cc5.tar.gz
[gi-invoke-ng] revamp cleanup framework to be orthogonal to cache setup
* cleanup now has symmetry with setup so there are now in and out cleanups for each type that needs to be cleaned up * no longer use state machine but instead call different cleanup functions at different stages of invoke, making it easier to understand what happens at each stage
Diffstat (limited to 'gi/pygi-cache.h')
-rw-r--r--gi/pygi-cache.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gi/pygi-cache.h b/gi/pygi-cache.h
index 64b5e19d..046881d1 100644
--- a/gi/pygi-cache.h
+++ b/gi/pygi-cache.h
@@ -46,7 +46,8 @@ typedef PyObject *(*PyGIMarshalOutFunc) (PyGIInvokeState *state,
typedef void (*PyGIMarshalCleanupFunc) (PyGIInvokeState *state,
PyGIArgCache *arg_cache,
- gpointer *data);
+ gpointer data,
+ gboolean was_processed);
typedef enum {
/* Not an AUX type */
PYGI_AUX_TYPE_NONE = 0,
@@ -72,7 +73,9 @@ struct _PyGIArgCache
PyGIMarshalInFunc in_marshaller;
PyGIMarshalOutFunc out_marshaller;
- PyGIMarshalCleanupFunc cleanup;
+ PyGIMarshalCleanupFunc in_cleanup;
+ PyGIMarshalCleanupFunc out_cleanup;
+
GDestroyNotify destroy_notify;
gssize c_arg_index;