Export gi_type_tag_get_ffi_type

This is needed by the offsets code, and is generally useful.  We
need to export it for a future patch which won't export symbols
with a leading _.
This commit is contained in:
Colin Walters 2010-11-09 17:06:29 -05:00
parent 307843c55f
commit e6bb30500c
4 changed files with 14 additions and 7 deletions

View File

@ -108,8 +108,6 @@ GIVFuncInfo * _g_base_info_find_vfunc (GIRealInfo *rinfo,
gint n_vfuncs, gint n_vfuncs,
const gchar *name); const gchar *name);
ffi_type * _gi_type_tag_get_ffi_type (GITypeTag type_tag, gboolean is_pointer);
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 *),

View File

@ -30,8 +30,15 @@
#include "girepository.h" #include "girepository.h"
#include "girepository-private.h" #include "girepository-private.h"
/**
* gi_type_tag_get_ffi_type:
* @tag: A #GITypeTag
* @is_pointer: Whether or not this is a pointer type
*
* Returns: A #ffi_type corresponding to the platform default C ABI for @tag and @is_pointer.
*/
ffi_type * ffi_type *
_gi_type_tag_get_ffi_type (GITypeTag tag, gi_type_tag_get_ffi_type (GITypeTag tag,
gboolean is_pointer) gboolean is_pointer)
{ {
switch (tag) switch (tag)
@ -96,7 +103,7 @@ _gi_type_tag_get_ffi_type (GITypeTag tag,
ffi_type * ffi_type *
g_type_info_get_ffi_type (GITypeInfo *info) g_type_info_get_ffi_type (GITypeInfo *info)
{ {
return _gi_type_tag_get_ffi_type (g_type_info_get_tag (info), g_type_info_is_pointer (info)); return gi_type_tag_get_ffi_type (g_type_info_get_tag (info), g_type_info_is_pointer (info));
} }
/** /**

View File

@ -45,6 +45,8 @@ struct _GIFunctionInvoker {
gpointer padding[3]; gpointer padding[3];
}; };
ffi_type * gi_type_tag_get_ffi_type (GITypeTag type_tag, gboolean is_pointer);
ffi_type * g_type_info_get_ffi_type (GITypeInfo *info); ffi_type * g_type_info_get_ffi_type (GITypeInfo *info);
gboolean g_function_info_prep_invoker (GIFunctionInfo *info, gboolean g_function_info_prep_invoker (GIFunctionInfo *info,

View File

@ -18,7 +18,7 @@
* Boston, MA 02111-1307, USA. * Boston, MA 02111-1307, USA.
*/ */
#include "girepository-private.h" #include "girffi.h"
#include "girnode.h" #include "girnode.h"
#include <string.h> #include <string.h>
@ -296,7 +296,7 @@ get_type_size_alignment (GIrTypelibBuild *build,
} }
else else
{ {
type_ffi = _gi_type_tag_get_ffi_type (type->tag, type->is_pointer); type_ffi = gi_type_tag_get_ffi_type (type->tag, type->is_pointer);
if (type_ffi == &ffi_type_void) if (type_ffi == &ffi_type_void)
{ {