field->declaration = field_declaration;
/* Keep index in hash rather than pointer, because array can relocate */
g_hash_table_insert(untagged_variant_declaration->fields_by_tag,
field->declaration = field_declaration;
/* Keep index in hash rather than pointer, because array can relocate */
g_hash_table_insert(untagged_variant_declaration->fields_by_tag,
/*
* Alignment of variant is based on the alignment of its currently
* selected choice, so we leave variant alignment as-is (statically
/*
* Alignment of variant is based on the alignment of its currently
* selected choice, so we leave variant alignment as-is (statically
found = g_hash_table_lookup_extended(
untagged_variant_declaration->fields_by_tag,
found = g_hash_table_lookup_extended(
untagged_variant_declaration->fields_by_tag,
- return &g_array_index(untagged_variant_declaration->fields, struct declaration_field, (unsigned long)index);
+ return &g_array_index(untagged_variant_declaration->fields, struct declaration_field, GPOINTER_TO_UINT(index));
assert(tag_array->len == 1);
tag = g_array_index(tag_array, GQuark, 0);
if (!g_hash_table_lookup_extended(variant_declaration->untagged_variant->fields_by_tag,
assert(tag_array->len == 1);
tag = g_array_index(tag_array, GQuark, 0);
if (!g_hash_table_lookup_extended(variant_declaration->untagged_variant->fields_by_tag,
variant->current_field = g_ptr_array_index(variant->fields, index);
return variant->current_field;
}
variant->current_field = g_ptr_array_index(variant->fields, index);
return variant->current_field;
}