diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2018-02-15 23:32:20 +0100 |
---|---|---|
committer | Mathieu Duponchelle <mathieu@centricular.com> | 2018-02-16 17:56:16 +0100 |
commit | b1d1c8d9d8820fe405bddd8e9dea88b5ec2fcce2 (patch) | |
tree | c6004b09bea7cba115790ebf888f5442d4175850 /gi/pygi-cache.h | |
parent | 26b7fc3fee55870cc944b0f718da8a75c75f4eae (diff) | |
download | pygobject-b1d1c8d9d8820fe405bddd8e9dea88b5ec2fcce2.tar.gz |
Revert "Revert "to python marshalling: collect cleanup data""
This reverts commit fa555767464fbe551b14cfbc121febc5290b1371.
Diffstat (limited to 'gi/pygi-cache.h')
-rw-r--r-- | gi/pygi-cache.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gi/pygi-cache.h b/gi/pygi-cache.h index 4dfabd86..574563b6 100644 --- a/gi/pygi-cache.h +++ b/gi/pygi-cache.h @@ -50,14 +50,21 @@ typedef gboolean (*PyGIMarshalFromPyFunc) (PyGIInvokeState *state, typedef PyObject *(*PyGIMarshalToPyFunc) (PyGIInvokeState *state, PyGICallableCache *callable_cache, PyGIArgCache *arg_cache, - GIArgument *arg); + GIArgument *arg, + gpointer *cleanup_data); typedef void (*PyGIMarshalCleanupFunc) (PyGIInvokeState *state, PyGIArgCache *arg_cache, - PyObject *py_arg, /* always NULL for to_py cleanup */ + PyObject *py_arg, gpointer data, gboolean was_processed); +typedef void (*PyGIMarshalToPyCleanupFunc) (PyGIInvokeState *state, + PyGIArgCache *arg_cache, + gpointer cleanup_data, + gpointer data, + gboolean was_processed); + /* Argument meta types denote how we process the argument: * - PYGI_META_ARG_TYPE_PARENT - parents may or may not have children * but are always processed via the normal marshaller for their @@ -118,7 +125,7 @@ struct _PyGIArgCache PyGIMarshalToPyFunc to_py_marshaller; PyGIMarshalCleanupFunc from_py_cleanup; - PyGIMarshalCleanupFunc to_py_cleanup; + PyGIMarshalToPyCleanupFunc to_py_cleanup; GDestroyNotify destroy_notify; |