summaryrefslogtreecommitdiff
path: root/gi/pygi-cache.h
diff options
context:
space:
mode:
authorSimon Feltman <sfeltman@src.gnome.org>2013-10-11 15:49:32 -0700
committerSimon Feltman <sfeltman@src.gnome.org>2014-02-02 16:02:57 -0800
commit983d0c2252f91e63d5fa0222ef2b67722cb97434 (patch)
tree7f44cd7ea65dcd4ee93fd8a20936e12f3f4530bf /gi/pygi-cache.h
parent0af98aca40fe266d1fd93caaa7256bb92ba1d3e4 (diff)
downloadpygobject-983d0c2252f91e63d5fa0222ef2b67722cb97434.tar.gz
cache refactoring: Separate ArgCache creation and setup
Move PyGIArgCache and PyGIInterfaceCache generic setup into standalone functions: pygi_arg_base_setup and pygi_arg_interface_setup respectively. Shift argument order and move arguments which will eventually be removed from the signature into the tail with comment. Isolate special casing for GI_INFO_TYPE_CALLBACK ArgCache creation to a single location in _arg_cache_new_for_interface. https://bugzilla.gnome.org/show_bug.cgi?id=709700
Diffstat (limited to 'gi/pygi-cache.h')
-rw-r--r--gi/pygi-cache.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gi/pygi-cache.h b/gi/pygi-cache.h
index 745d0a12..7a5be37c 100644
--- a/gi/pygi-cache.h
+++ b/gi/pygi-cache.h
@@ -203,6 +203,21 @@ struct _PyGICallableCache
gssize n_py_required_args;
};
+gboolean
+pygi_arg_base_setup (PyGIArgCache *arg_cache,
+ GITypeInfo *type_info,
+ GIArgInfo *arg_info, /* may be NULL for return arguments */
+ GITransfer transfer,
+ PyGIDirection direction);
+
+gboolean
+pygi_arg_interface_setup (PyGIInterfaceCache *iface_cache,
+ GITypeInfo *type_info,
+ GIArgInfo *arg_info, /* may be NULL for return arguments */
+ GITransfer transfer,
+ PyGIDirection direction,
+ GIInterfaceInfo *iface_info);
+
void _pygi_arg_cache_clear (PyGIArgCache *cache);
void _pygi_callable_cache_free (PyGICallableCache *cache);