diff options
author | John (J5) Palmieri <johnp@redhat.com> | 2011-05-23 16:59:57 -0400 |
---|---|---|
committer | John (J5) Palmieri <johnp@redhat.com> | 2011-05-23 16:59:57 -0400 |
commit | dbbcf4a0e76fb572d85843ee31c3798df5cd5cc5 (patch) | |
tree | 44df0ef3ffc757468dc766b553ac289e0e6d961b /gi/pygi-cache.h | |
parent | 198714dc4585f7463f38929f1ca4e4b60a27dadb (diff) | |
download | pygobject-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.h | 7 |
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; |