Skip to content
Snippets Groups Projects
g_callable_info_invoke-public.patch 6.95 KiB
Newer Older
From 52c3b6b86129907dfb72a3dc394117470791845b Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Sun, 30 Oct 2011 16:31:23 +0100
Subject: [PATCH] Make g_callable_info_invoke public

So it can be used for invoking callbacks

https://bugzilla.gnome.org/show_bug.cgi?id=663052
---
 girepository/gicallableinfo.c       |   20 ++++++++++----------
 girepository/gicallableinfo.h       |   10 ++++++++++
 girepository/gifunctioninfo.c       |   20 ++++++++++----------
 girepository/girepository-private.h |   11 -----------
 girepository/givfuncinfo.c          |   20 ++++++++++----------
 5 files changed, 40 insertions(+), 41 deletions(-)

diff --git a/girepository/gicallableinfo.c b/girepository/gicallableinfo.c
index 475346e..ba5f6c6 100644
--- a/girepository/gicallableinfo.c
+++ b/girepository/gicallableinfo.c
@@ -360,16 +360,16 @@ g_callable_info_iterate_return_attributes (GICallableInfo  *info,
 }
 
 gboolean
-_g_callable_info_invoke (GIFunctionInfo *info,
-                         gpointer          function,
-                         const GIArgument  *in_args,
-                         int               n_in_args,
-                         const GIArgument  *out_args,
-                         int               n_out_args,
-                         GIArgument        *return_value,
-                         gboolean          is_method,
-                         gboolean          throws,
-                         GError          **error)
+g_callable_info_invoke (GIFunctionInfo *info,
+                        gpointer          function,
+                        const GIArgument  *in_args,
+                        int               n_in_args,
+                        const GIArgument  *out_args,
+                        int               n_out_args,
+                        GIArgument        *return_value,
+                        gboolean          is_method,
+                        gboolean          throws,
+                        GError          **error)
 {
   ffi_cif cif;
   ffi_type *rtype;
diff --git a/girepository/gicallableinfo.h b/girepository/gicallableinfo.h
index a1d22c7..bdaa96d 100644
--- a/girepository/gicallableinfo.h
+++ b/girepository/gicallableinfo.h
@@ -54,6 +54,16 @@ GIArgInfo *            g_callable_info_get_arg         (GICallableInfo *info,
 void                   g_callable_info_load_arg        (GICallableInfo *info,
                                                         gint            n,
                                                         GIArgInfo      *arg);
+gboolean               g_callable_info_invoke          (GICallableInfo   *info,
+                                                        gpointer          function,
+                                                        const GIArgument *in_args,
+                                                        int               n_in_args,
+                                                        const GIArgument *out_args,
+                                                        int               n_out_args,
+                                                        GIArgument       *return_value,
+                                                        gboolean          is_method,
+                                                        gboolean          throws,
+                                                        GError          **error);
 G_END_DECLS
 
 
diff --git a/girepository/gifunctioninfo.c b/girepository/gifunctioninfo.c
index 2544cc3..2cf6ddb 100644
--- a/girepository/gifunctioninfo.c
+++ b/girepository/gifunctioninfo.c
@@ -270,14 +270,14 @@ g_function_info_invoke (GIFunctionInfo *info,
     && (g_function_info_get_flags (info) & GI_FUNCTION_IS_CONSTRUCTOR) == 0;
   throws = g_function_info_get_flags (info) & GI_FUNCTION_THROWS;
 
-  return _g_callable_info_invoke ((GICallableInfo*) info,
-                                  func,
-                                  in_args,
-                                  n_in_args,
-                                  out_args,
-                                  n_out_args,
-                                  return_value,
-                                  is_method,
-                                  throws,
-                                  error);
+  return g_callable_info_invoke ((GICallableInfo*) info,
+                                 func,
+                                 in_args,
+                                 n_in_args,
+                                 out_args,
+                                 n_out_args,
+                                 return_value,
+                                 is_method,
+                                 throws,
+                                 error);
 }
diff --git a/girepository/girepository-private.h b/girepository/girepository-private.h
index 52d65b2..897c52c 100644
--- a/girepository/girepository-private.h
+++ b/girepository/girepository-private.h
@@ -108,17 +108,6 @@ GIVFuncInfo * _g_base_info_find_vfunc (GIRealInfo   *rinfo,
 				       gint          n_vfuncs,
 				       const gchar  *name);
 
-gboolean _g_callable_info_invoke (GICallableInfo   *info,
-                                  gpointer          function,
-                                  const GIArgument *in_args,
-                                  int               n_in_args,
-                                  const GIArgument *out_args,
-                                  int               n_out_args,
-                                  GIArgument       *return_value,
-                                  gboolean          is_method,
-                                  gboolean          throws,
-                                  GError          **error);
-
 extern ffi_status ffi_prep_closure_loc (ffi_closure *,
                                         ffi_cif *,
                                         void (*fun)(ffi_cif *, void *, void **, void *),
diff --git a/girepository/givfuncinfo.c b/girepository/givfuncinfo.c
index 332655a..859f5d5 100644
--- a/girepository/givfuncinfo.c
+++ b/girepository/givfuncinfo.c
@@ -304,14 +304,14 @@ g_vfunc_info_invoke (GIVFuncInfo      *info,
   if (*error != NULL)
     return FALSE;
 
-  return _g_callable_info_invoke ((GICallableInfo*) info,
-                                  func,
-                                  in_args,
-                                  n_in_args,
-                                  out_args,
-                                  n_out_args,
-                                  return_value,
-                                  TRUE,
-                                  FALSE,
-                                  error);
+  return g_callable_info_invoke ((GICallableInfo*) info,
+                                 func,
+                                 in_args,
+                                 n_in_args,
+                                 out_args,
+                                 n_out_args,
+                                 return_value,
+                                 TRUE,
+                                 FALSE,
+                                 error);
 }
-- 
1.7.6.4