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
|
gboolean
|
||||||
_g_callable_info_invoke (GIFunctionInfo *info,
|
g_callable_info_invoke (GIFunctionInfo *info,
|
||||||
gpointer function,
|
gpointer function,
|
||||||
const GIArgument *in_args,
|
const GIArgument *in_args,
|
||||||
int n_in_args,
|
int n_in_args,
|
||||||
const GIArgument *out_args,
|
const GIArgument *out_args,
|
||||||
int n_out_args,
|
int n_out_args,
|
||||||
GIArgument *return_value,
|
GIArgument *return_value,
|
||||||
gboolean is_method,
|
gboolean is_method,
|
||||||
gboolean throws,
|
gboolean throws,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
ffi_cif cif;
|
ffi_cif cif;
|
||||||
ffi_type *rtype;
|
ffi_type *rtype;
|
||||||
|
@ -55,6 +55,16 @@ GIArgInfo * g_callable_info_get_arg (GICallableInfo *info,
|
|||||||
void g_callable_info_load_arg (GICallableInfo *info,
|
void g_callable_info_load_arg (GICallableInfo *info,
|
||||||
gint n,
|
gint n,
|
||||||
GIArgInfo *arg);
|
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
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
||||||
|
@ -271,14 +271,14 @@ g_function_info_invoke (GIFunctionInfo *info,
|
|||||||
&& (g_function_info_get_flags (info) & GI_FUNCTION_IS_CONSTRUCTOR) == 0;
|
&& (g_function_info_get_flags (info) & GI_FUNCTION_IS_CONSTRUCTOR) == 0;
|
||||||
throws = g_function_info_get_flags (info) & GI_FUNCTION_THROWS;
|
throws = g_function_info_get_flags (info) & GI_FUNCTION_THROWS;
|
||||||
|
|
||||||
return _g_callable_info_invoke ((GICallableInfo*) info,
|
return g_callable_info_invoke ((GICallableInfo*) info,
|
||||||
func,
|
func,
|
||||||
in_args,
|
in_args,
|
||||||
n_in_args,
|
n_in_args,
|
||||||
out_args,
|
out_args,
|
||||||
n_out_args,
|
n_out_args,
|
||||||
return_value,
|
return_value,
|
||||||
is_method,
|
is_method,
|
||||||
throws,
|
throws,
|
||||||
error);
|
error);
|
||||||
}
|
}
|
||||||
|
@ -108,17 +108,6 @@ GIVFuncInfo * _g_base_info_find_vfunc (GIRealInfo *rinfo,
|
|||||||
gint n_vfuncs,
|
gint n_vfuncs,
|
||||||
const gchar *name);
|
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 *,
|
extern ffi_status ffi_prep_closure_loc (ffi_closure *,
|
||||||
ffi_cif *,
|
ffi_cif *,
|
||||||
void (*fun)(ffi_cif *, void *, void **, void *),
|
void (*fun)(ffi_cif *, void *, void **, void *),
|
||||||
|
@ -308,14 +308,14 @@ g_vfunc_info_invoke (GIVFuncInfo *info,
|
|||||||
if (*error != NULL)
|
if (*error != NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return _g_callable_info_invoke ((GICallableInfo*) info,
|
return g_callable_info_invoke ((GICallableInfo*) info,
|
||||||
func,
|
func,
|
||||||
in_args,
|
in_args,
|
||||||
n_in_args,
|
n_in_args,
|
||||||
out_args,
|
out_args,
|
||||||
n_out_args,
|
n_out_args,
|
||||||
return_value,
|
return_value,
|
||||||
TRUE,
|
TRUE,
|
||||||
FALSE,
|
FALSE,
|
||||||
error);
|
error);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user