mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-27 20:52:12 +01:00
Make g_callable_info_invoke public
So it can be used for invoking callbacks https://bugzilla.gnome.org/show_bug.cgi?id=663052 Signed-off-by: Martin Pitt <martinpitt@gnome.org>
This commit is contained in:
parent
b2eef541e9
commit
320fd24734
@ -432,16 +432,16 @@ gi_type_info_extract_ffi_return_value (GITypeInfo *return_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;
|
||||
|
@ -55,6 +55,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
|
||||
|
||||
|
||||
|
@ -271,14 +271,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);
|
||||
}
|
||||
|
@ -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 *),
|
||||
|
@ -308,14 +308,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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user