mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-04-27 17:46:53 +02:00
giroffsets: Use size types for size and alignments
Note that for alignments we should actually use size_t, but this would imply some refactors since this value can be acually set to -1 in our implementation. So we use gssize for now, that at least on gcc is defined.
This commit is contained in:
parent
223acf44ba
commit
b68857e707
@ -261,8 +261,8 @@ struct _GIIrNodeInterface
|
|||||||
GList *interfaces;
|
GList *interfaces;
|
||||||
GList *prerequisites;
|
GList *prerequisites;
|
||||||
|
|
||||||
int alignment;
|
gssize alignment;
|
||||||
int size;
|
size_t size;
|
||||||
|
|
||||||
GList *members;
|
GList *members;
|
||||||
};
|
};
|
||||||
@ -311,8 +311,8 @@ struct _GIIrNodeBoxed
|
|||||||
char *gtype_name;
|
char *gtype_name;
|
||||||
char *gtype_init;
|
char *gtype_init;
|
||||||
|
|
||||||
int alignment;
|
gssize alignment;
|
||||||
int size;
|
size_t size;
|
||||||
|
|
||||||
GList *members;
|
GList *members;
|
||||||
};
|
};
|
||||||
@ -334,8 +334,8 @@ struct _GIIrNodeStruct
|
|||||||
char *copy_func;
|
char *copy_func;
|
||||||
char *free_func;
|
char *free_func;
|
||||||
|
|
||||||
int alignment;
|
gssize alignment;
|
||||||
int size;
|
size_t size;
|
||||||
|
|
||||||
GList *members;
|
GList *members;
|
||||||
};
|
};
|
||||||
@ -355,8 +355,8 @@ struct _GIIrNodeUnion
|
|||||||
char *copy_func;
|
char *copy_func;
|
||||||
char *free_func;
|
char *free_func;
|
||||||
|
|
||||||
int alignment;
|
gssize alignment;
|
||||||
int size;
|
size_t size;
|
||||||
|
|
||||||
int discriminator_offset;
|
int discriminator_offset;
|
||||||
GIIrNodeType *discriminator_type;
|
GIIrNodeType *discriminator_type;
|
||||||
|
@ -148,9 +148,9 @@ compute_enum_storage_type (GIIrNodeEnum *enum_node)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
get_enum_size_alignment (GIIrNodeEnum *enum_node,
|
get_enum_size_alignment (GIIrNodeEnum *enum_node,
|
||||||
int *size,
|
size_t *size,
|
||||||
int *alignment)
|
gssize *alignment)
|
||||||
{
|
{
|
||||||
ffi_type *type_ffi;
|
ffi_type *type_ffi;
|
||||||
|
|
||||||
@ -188,8 +188,8 @@ get_enum_size_alignment (GIIrNodeEnum *enum_node,
|
|||||||
static gboolean
|
static gboolean
|
||||||
get_interface_size_alignment (GIIrTypelibBuild *build,
|
get_interface_size_alignment (GIIrTypelibBuild *build,
|
||||||
GIIrNodeType *type,
|
GIIrNodeType *type,
|
||||||
int *size,
|
size_t *size,
|
||||||
int *alignment,
|
gssize *alignment,
|
||||||
const char *who)
|
const char *who)
|
||||||
{
|
{
|
||||||
GIIrNode *iface;
|
GIIrNode *iface;
|
||||||
@ -265,8 +265,8 @@ get_interface_size_alignment (GIIrTypelibBuild *build,
|
|||||||
static gboolean
|
static gboolean
|
||||||
get_type_size_alignment (GIIrTypelibBuild *build,
|
get_type_size_alignment (GIIrTypelibBuild *build,
|
||||||
GIIrNodeType *type,
|
GIIrNodeType *type,
|
||||||
int *size,
|
size_t *size,
|
||||||
int *alignment,
|
gssize *alignment,
|
||||||
const char *who)
|
const char *who)
|
||||||
{
|
{
|
||||||
ffi_type *type_ffi;
|
ffi_type *type_ffi;
|
||||||
@ -277,7 +277,8 @@ get_type_size_alignment (GIIrTypelibBuild *build,
|
|||||||
}
|
}
|
||||||
else if (type->tag == GI_TYPE_TAG_ARRAY)
|
else if (type->tag == GI_TYPE_TAG_ARRAY)
|
||||||
{
|
{
|
||||||
int elt_size, elt_alignment;
|
size_t elt_size;
|
||||||
|
gssize elt_alignment;
|
||||||
|
|
||||||
if (!type->has_size
|
if (!type->has_size
|
||||||
|| !get_type_size_alignment(build, type->parameter_type1,
|
|| !get_type_size_alignment(build, type->parameter_type1,
|
||||||
@ -333,8 +334,8 @@ static gboolean
|
|||||||
get_field_size_alignment (GIIrTypelibBuild *build,
|
get_field_size_alignment (GIIrTypelibBuild *build,
|
||||||
GIIrNodeField *field,
|
GIIrNodeField *field,
|
||||||
GIIrNode *parent_node,
|
GIIrNode *parent_node,
|
||||||
int *size,
|
size_t *size,
|
||||||
int *alignment)
|
gssize *alignment)
|
||||||
{
|
{
|
||||||
GIIrModule *module = build->module;
|
GIIrModule *module = build->module;
|
||||||
char *who;
|
char *who;
|
||||||
@ -361,8 +362,8 @@ static gboolean
|
|||||||
compute_struct_field_offsets (GIIrTypelibBuild *build,
|
compute_struct_field_offsets (GIIrTypelibBuild *build,
|
||||||
GIIrNode *node,
|
GIIrNode *node,
|
||||||
GList *members,
|
GList *members,
|
||||||
int *size_out,
|
size_t *size_out,
|
||||||
int *alignment_out)
|
gssize *alignment_out)
|
||||||
{
|
{
|
||||||
int size = 0;
|
int size = 0;
|
||||||
int alignment = 1;
|
int alignment = 1;
|
||||||
@ -381,8 +382,8 @@ compute_struct_field_offsets (GIIrTypelibBuild *build,
|
|||||||
|
|
||||||
if (!have_error)
|
if (!have_error)
|
||||||
{
|
{
|
||||||
int member_size;
|
size_t member_size;
|
||||||
int member_alignment;
|
gssize member_alignment;
|
||||||
|
|
||||||
if (get_field_size_alignment (build, field, node,
|
if (get_field_size_alignment (build, field, node,
|
||||||
&member_size, &member_alignment))
|
&member_size, &member_alignment))
|
||||||
@ -428,10 +429,10 @@ static gboolean
|
|||||||
compute_union_field_offsets (GIIrTypelibBuild *build,
|
compute_union_field_offsets (GIIrTypelibBuild *build,
|
||||||
GIIrNode *node,
|
GIIrNode *node,
|
||||||
GList *members,
|
GList *members,
|
||||||
int *size_out,
|
size_t *size_out,
|
||||||
int *alignment_out)
|
gssize *alignment_out)
|
||||||
{
|
{
|
||||||
int size = 0;
|
size_t size = 0;
|
||||||
int alignment = 1;
|
int alignment = 1;
|
||||||
GList *l;
|
GList *l;
|
||||||
gboolean have_error = FALSE;
|
gboolean have_error = FALSE;
|
||||||
@ -448,8 +449,8 @@ compute_union_field_offsets (GIIrTypelibBuild *build,
|
|||||||
|
|
||||||
if (!have_error)
|
if (!have_error)
|
||||||
{
|
{
|
||||||
int member_size;
|
size_t member_size;
|
||||||
int member_alignment;
|
gssize member_alignment;
|
||||||
|
|
||||||
if (get_field_size_alignment (build,field, node,
|
if (get_field_size_alignment (build,field, node,
|
||||||
&member_size, &member_alignment))
|
&member_size, &member_alignment))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user