GTypelib *typelib;
guint32 offset;
-
+
guint32 type_is_embedded : 1; /* Used by GITypeInfo */
guint32 reserved : 31;
-
+
gpointer reserved2[4];
};
GIInfoType type,
GIRepository *repository,
GIBaseInfo *container,
- GTypelib *typelib,
+ GTypelib *typelib,
guint32 offset)
{
memset (info, 0, sizeof (GIRealInfo));
g_info_new_full (GIInfoType type,
GIRepository *repository,
GIBaseInfo *container,
- GTypelib *typelib,
+ GTypelib *typelib,
guint32 offset)
{
GIRealInfo *info;
g_return_val_if_fail (container != NULL || repository != NULL, NULL);
info = g_new (GIRealInfo, 1);
-
+
g_info_init (info, type, repository, container, typelib, offset);
info->ref_count = 1;
GIBaseInfo *
g_info_new (GIInfoType type,
GIBaseInfo *container,
- GTypelib *typelib,
+ GTypelib *typelib,
guint32 offset)
{
return g_info_new_full (type, ((GIRealInfo*)container)->repository, container, typelib, offset);
GIInfoType
g_base_info_get_type (GIBaseInfo *info)
{
-
+
return ((GIRealInfo*)info)->type;
}
case GI_INFO_TYPE_FIELD:
{
FieldBlob *blob = (FieldBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return g_typelib_get_string (rinfo->typelib, blob->name);
}
break;
case GI_INFO_TYPE_ARG:
{
ArgBlob *blob = (ArgBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return g_typelib_get_string (rinfo->typelib, blob->name);
}
break;
if (rinfo->type == GI_INFO_TYPE_UNRESOLVED)
{
GIUnresolvedInfo *unresolved = (GIUnresolvedInfo *)info;
-
+
return unresolved->namespace;
}
return g_typelib_get_string (rinfo->typelib, header->namespace);
}
-gboolean
+gboolean
g_base_info_is_deprecated (GIBaseInfo *info)
{
GIRealInfo *rinfo = (GIRealInfo*) info;
default: ;
/* no deprecation flag for these */
}
-
+
return FALSE;
}
{
const AttributeBlob *a = av;
const AttributeBlob *b = bv;
-
+
if (a->offset < b->offset)
return -1;
else if (a->offset == b->offset)
AttributeBlob blob, *first, *res, *previous;
blob.offset = rinfo->offset;
-
+
first = (AttributeBlob *) &rinfo->typelib->data[header->attributes];
res = bsearch (&blob, first, header->n_attributes,
GIFunctionInfoFlags flags;
GIRealInfo *rinfo = (GIRealInfo *)info;
FunctionBlob *blob = (FunctionBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
flags = 0;
/* Make sure we don't flag Constructors as methods */
if (!blob->constructor && !blob->is_static)
flags = flags | GI_FUNCTION_IS_METHOD;
-
+
if (blob->constructor)
flags = flags | GI_FUNCTION_IS_CONSTRUCTOR;
GIRealInfo *rinfo = (GIRealInfo *)info;
FunctionBlob *blob = (FunctionBlob *)&rinfo->typelib->data[rinfo->offset];
GIInterfaceInfo *container = (GIInterfaceInfo *)rinfo->container;
-
- return g_interface_info_get_property (container, blob->index);
+
+ return g_interface_info_get_property (container, blob->index);
}
GIVFuncInfo *
GIRealInfo *rinfo = (GIRealInfo*)info;
FunctionBlob *blob = (FunctionBlob *)&rinfo->typelib->data[rinfo->offset];
GIInterfaceInfo *container = (GIInterfaceInfo *)rinfo->container;
-
- return g_interface_info_get_vfunc (container, blob->index);
+
+ return g_interface_info_get_vfunc (container, blob->index);
}
/* GICallableInfo functions */
{
GIRealInfo *rinfo = (GIRealInfo*)container;
SimpleTypeBlob *type = (SimpleTypeBlob *)&typelib->data[offset];
-
+
g_info_init ((GIRealInfo*)info, GI_INFO_TYPE_TYPE, rinfo->repository, container, typelib,
(type->flags.reserved == 0 && type->flags.reserved2 == 0) ? offset : type->offset);
}
*
* Returns: The number of arguments this callable expects.
*/
-gint
+gint
g_callable_info_get_n_args (GICallableInfo *info)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
gint offset;
offset = signature_offset (info);
-
- return (GIArgInfo *) g_info_new (GI_INFO_TYPE_ARG, (GIBaseInfo*)info, rinfo->typelib,
+
+ return (GIArgInfo *) g_info_new (GI_INFO_TYPE_ARG, (GIBaseInfo*)info, rinfo->typelib,
offset + header->signature_blob_size + n * header->arg_blob_size);
}
gint offset;
offset = signature_offset (info);
-
- g_info_init ((GIRealInfo*)arg, GI_INFO_TYPE_ARG, rinfo->repository, (GIBaseInfo*)info, rinfo->typelib,
- offset + header->signature_blob_size + n * header->arg_blob_size);
+
+ g_info_init ((GIRealInfo*)arg, GI_INFO_TYPE_ARG, rinfo->repository, (GIBaseInfo*)info, rinfo->typelib,
+ offset + header->signature_blob_size + n * header->arg_blob_size);
}
/* GIArgInfo function */
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ArgBlob *blob = (ArgBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (blob->in && blob->out)
return GI_DIRECTION_INOUT;
else if (blob->out)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ArgBlob *blob = (ArgBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->return_value;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ArgBlob *blob = (ArgBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->dipper;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ArgBlob *blob = (ArgBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->optional;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ArgBlob *blob = (ArgBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->allow_none;
}
g_arg_info_get_type (GIArgInfo *info)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
-
+
return g_type_info_new ((GIBaseInfo*)info, rinfo->typelib, rinfo->offset + G_STRUCT_OFFSET (ArgBlob, arg_type));
}
GITypeInfo *type)
{
GIRealInfo *rinfo = (GIRealInfo*) info;
- g_type_info_init (type, (GIBaseInfo*)info, rinfo->typelib, rinfo->offset + G_STRUCT_OFFSET (ArgBlob, arg_type));
+ g_type_info_init (type, (GIBaseInfo*)info, rinfo->typelib, rinfo->offset + G_STRUCT_OFFSET (ArgBlob, arg_type));
}
/* GITypeInfo functions */
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (type->flags.reserved == 0 && type->flags.reserved2 == 0)
return type->flags.pointer;
else
{
InterfaceTypeBlob *iface = (InterfaceTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return iface->pointer;
}
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
{
ParamTypeBlob *param = (ParamTypeBlob *)&rinfo->typelib->data[rinfo->offset];
switch (param->tag)
{
- case GI_TYPE_TAG_ARRAY:
+ case GI_TYPE_TAG_ARRAY:
case GI_TYPE_TAG_GLIST:
case GI_TYPE_TAG_GSLIST:
case GI_TYPE_TAG_GHASH:
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
{
ArrayTypeBlob *blob = (ArrayTypeBlob *)&rinfo->typelib->data[rinfo->offset];
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
{
ArrayTypeBlob *blob = (ArrayTypeBlob *)&rinfo->typelib->data[rinfo->offset];
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
{
ArrayTypeBlob *blob = (ArrayTypeBlob *)&rinfo->typelib->data[rinfo->offset];
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
{
ErrorTypeBlob *blob = (ErrorTypeBlob *)&rinfo->typelib->data[rinfo->offset];
{
GIRealInfo *rinfo = (GIRealInfo *)info;
SimpleTypeBlob *type = (SimpleTypeBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (!(type->flags.reserved == 0 && type->flags.reserved2 == 0))
{
ErrorTypeBlob *blob = (ErrorTypeBlob *)&rinfo->typelib->data[rinfo->offset];
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ErrorDomainBlob *blob = (ErrorDomainBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return (GIInterfaceInfo *) g_info_from_entry (rinfo->repository,
rinfo->typelib, blob->error_codes);
}
-/* GIValueInfo functions */
+/* GIValueInfo functions */
glong
g_value_info_get_value (GIValueInfo *info)
{
{
GIRealInfo *rinfo = (GIRealInfo *)info;
FieldBlob *blob = (FieldBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->bits;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
FieldBlob *blob = (FieldBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->struct_offset;
}
GType (* get_type_func) (void);
GIRealInfo *rinfo = (GIRealInfo*)info;
- type_init = g_registered_type_info_get_type_init (info);
-
+ type_init = g_registered_type_info_get_type_init (info);
+
if (type_init == NULL)
return G_TYPE_NONE;
else if (!strcmp (type_init, "intern"))
return G_TYPE_OBJECT;
-
+
get_type_func = NULL;
if (!g_typelib_symbol (rinfo->typelib,
type_init,
(void**) &get_type_func))
return G_TYPE_NONE;
-
+
return (* get_type_func) ();
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
StructBlob *blob = (StructBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_fields;
}
gint n)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
-
- return (GIFieldInfo *) g_info_new (GI_INFO_TYPE_FIELD, (GIBaseInfo*)info, rinfo->typelib,
+
+ return (GIFieldInfo *) g_info_new (GI_INFO_TYPE_FIELD, (GIBaseInfo*)info, rinfo->typelib,
g_struct_get_field_offset (info, n));
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
StructBlob *blob = (StructBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_methods;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
StructBlob *blob = (StructBlob *)&rinfo->typelib->data[rinfo->offset];
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
gint offset;
offset = g_struct_get_field_offset (info, blob->n_fields) + n * header->function_blob_size;
- return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
+ return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
rinfo->typelib, offset);
}
{
/* FIXME hash */
GIRealInfo *rinfo = (GIRealInfo*)base;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
gint i;
for (i = 0; i < n_methods; i++)
const gchar *fname = (const gchar *)&rinfo->typelib->data[fblob->name];
if (strcmp (name, fname) == 0)
- return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, base,
- rinfo->typelib, offset);
-
+ return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, base,
+ rinfo->typelib, offset);
+
offset += header->function_blob_size;
}
-
+
return NULL;
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
StructBlob *blob = (StructBlob *)&rinfo->typelib->data[rinfo->offset];
offset = rinfo->offset + header->struct_blob_size
/**
* g_struct_info_is_gtype_struct:
* @info: GIStructInfo
- *
+ *
* Return true if this structure represents the "class structure" for some
* #GObject or #GInterface. This function is mainly useful to hide this kind of structure
* from generated public APIs.
gint n)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
gint offset;
- offset = rinfo->offset + header->enum_blob_size
+ offset = rinfo->offset + header->enum_blob_size
+ n * header->value_blob_size;
return (GIValueInfo *) g_info_new (GI_INFO_TYPE_VALUE, (GIBaseInfo*)info, rinfo->typelib, offset);
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->object_blob_size
+ (blob->n_interfaces + blob->n_interfaces % 2) * 2
+ n * header->field_blob_size;
-
+
return (GIFieldInfo *) g_info_new (GI_INFO_TYPE_FIELD, (GIBaseInfo*)info, rinfo->typelib, offset);
}
GIRealInfo *rinfo = (GIRealInfo *)info;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
- return blob->n_properties;
+ return blob->n_properties;
}
GIPropertyInfo *
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->object_blob_size
+ (blob->n_interfaces + blob->n_interfaces % 2) * 2
+ blob->n_fields * header->field_blob_size
+ n * header->property_blob_size;
- return (GIPropertyInfo *) g_info_new (GI_INFO_TYPE_PROPERTY, (GIBaseInfo*)info,
+ return (GIPropertyInfo *) g_info_new (GI_INFO_TYPE_PROPERTY, (GIBaseInfo*)info,
rinfo->typelib, offset);
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->object_blob_size
+ (blob->n_interfaces + blob->n_interfaces % 2) * 2
+ blob->n_fields * header->field_blob_size
+ blob->n_properties * header->property_blob_size
+ n * header->function_blob_size;
- return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+ return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
GIFunctionInfo *
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
offset = rinfo->offset + header->object_blob_size
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->object_blob_size
+ (blob->n_interfaces + blob->n_interfaces % 2) * 2
+ blob->n_fields * header->field_blob_size
+ blob->n_properties * header->property_blob_size
- + blob->n_methods * header->function_blob_size
+ + blob->n_methods * header->function_blob_size
+ n * header->signal_blob_size;
- return (GISignalInfo *) g_info_new (GI_INFO_TYPE_SIGNAL, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+ return (GISignalInfo *) g_info_new (GI_INFO_TYPE_SIGNAL, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
gint
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_vfuncs;
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->object_blob_size
+ (blob->n_interfaces + blob->n_interfaces % 2) * 2
+ blob->n_fields * header->field_blob_size
+ blob->n_properties * header->property_blob_size
- + blob->n_methods * header->function_blob_size
- + blob->n_signals * header->signal_blob_size
+ + blob->n_methods * header->function_blob_size
+ + blob->n_signals * header->signal_blob_size
+ n * header->vfunc_blob_size;
- return (GIVFuncInfo *) g_info_new (GI_INFO_TYPE_VFUNC, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+ return (GIVFuncInfo *) g_info_new (GI_INFO_TYPE_VFUNC, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
static GIVFuncInfo *
{
GIRealInfo *rinfo = (GIRealInfo *)info;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_constants;
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
ObjectBlob *blob = (ObjectBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->object_blob_size
+ (blob->n_interfaces + blob->n_interfaces % 2) * 2
+ blob->n_fields * header->field_blob_size
+ blob->n_properties * header->property_blob_size
- + blob->n_methods * header->function_blob_size
- + blob->n_signals * header->signal_blob_size
- + blob->n_vfuncs * header->vfunc_blob_size
+ + blob->n_methods * header->function_blob_size
+ + blob->n_signals * header->signal_blob_size
+ + blob->n_vfuncs * header->vfunc_blob_size
+ n * header->constant_blob_size;
- return (GIConstantInfo *) g_info_new (GI_INFO_TYPE_CONSTANT, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+ return (GIConstantInfo *) g_info_new (GI_INFO_TYPE_CONSTANT, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
/**
* g_object_info_get_class_struct:
* @info: A #GIObjectInfo to query
- *
+ *
* Every #GObject has two structures; an instance structure and a class
* structure. This function returns the metadata for the class structure.
*
GIRealInfo *rinfo = (GIRealInfo *)info;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
- return blob->n_properties;
+ return blob->n_properties;
}
GIPropertyInfo *
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->interface_blob_size
+ (blob->n_prerequisites + (blob->n_prerequisites % 2)) * 2
+ n * header->property_blob_size;
- return (GIPropertyInfo *) g_info_new (GI_INFO_TYPE_PROPERTY, (GIBaseInfo*)info,
+ return (GIPropertyInfo *) g_info_new (GI_INFO_TYPE_PROPERTY, (GIBaseInfo*)info,
rinfo->typelib, offset);
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->interface_blob_size
+ (blob->n_prerequisites + (blob->n_prerequisites % 2)) * 2
- + blob->n_properties * header->property_blob_size
+ + blob->n_properties * header->property_blob_size
+ n * header->function_blob_size;
-
- return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+
+ return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
GIFunctionInfo *
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
offset = rinfo->offset + header->interface_blob_size
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
-
- offset = rinfo->offset + header->interface_blob_size
+
+ offset = rinfo->offset + header->interface_blob_size
+ (blob->n_prerequisites + (blob->n_prerequisites % 2)) * 2
- + blob->n_properties * header->property_blob_size
- + blob->n_methods * header->function_blob_size
+ + blob->n_properties * header->property_blob_size
+ + blob->n_methods * header->function_blob_size
+ n * header->signal_blob_size;
-
- return (GISignalInfo *) g_info_new (GI_INFO_TYPE_SIGNAL, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+
+ return (GISignalInfo *) g_info_new (GI_INFO_TYPE_SIGNAL, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
gint
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
-
- offset = rinfo->offset + header->interface_blob_size
+
+ offset = rinfo->offset + header->interface_blob_size
+ (blob->n_prerequisites + (blob->n_prerequisites % 2)) * 2
- + blob->n_properties * header->property_blob_size
- + blob->n_methods * header->function_blob_size
+ + blob->n_properties * header->property_blob_size
+ + blob->n_methods * header->function_blob_size
+ blob->n_signals * header->signal_blob_size
+ n * header->vfunc_blob_size;
-
- return (GIVFuncInfo *) g_info_new (GI_INFO_TYPE_VFUNC, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+
+ return (GIVFuncInfo *) g_info_new (GI_INFO_TYPE_VFUNC, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
/**
{
GIRealInfo *rinfo = (GIRealInfo *)info;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_constants;
}
{
gint offset;
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
InterfaceBlob *blob = (InterfaceBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
offset = rinfo->offset + header->interface_blob_size
+ (blob->n_prerequisites + (blob->n_prerequisites % 2)) * 2
+ blob->n_properties * header->property_blob_size
- + blob->n_methods * header->function_blob_size
- + blob->n_signals * header->signal_blob_size
- + blob->n_vfuncs * header->vfunc_blob_size
+ + blob->n_methods * header->function_blob_size
+ + blob->n_signals * header->signal_blob_size
+ + blob->n_vfuncs * header->vfunc_blob_size
+ n * header->constant_blob_size;
- return (GIConstantInfo *) g_info_new (GI_INFO_TYPE_CONSTANT, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+ return (GIConstantInfo *) g_info_new (GI_INFO_TYPE_CONSTANT, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
/**
GParamFlags flags;
GIRealInfo *rinfo = (GIRealInfo *)info;
PropertyBlob *blob = (PropertyBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
flags = 0;
if (blob->readable)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
VFuncBlob *blob = (VFuncBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->struct_offset;
}
if (blob->class_closure)
return g_interface_info_get_signal ((GIInterfaceInfo *)rinfo->container, blob->signal);
-
+
return NULL;
}
g_constant_info_get_type (GIConstantInfo *info)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
-
+
return g_type_info_new ((GIBaseInfo*)info, rinfo->typelib, rinfo->offset + 8);
}
gint
-g_constant_info_get_value (GIConstantInfo *info,
+g_constant_info_get_value (GIConstantInfo *info,
GArgument *value)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
{
GIRealInfo *rinfo = (GIRealInfo *)info;
UnionBlob *blob = (UnionBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_fields;
}
gint n)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
- Header *header = (Header *)rinfo->typelib->data;
-
- return (GIFieldInfo *) g_info_new (GI_INFO_TYPE_FIELD, (GIBaseInfo*)info, rinfo->typelib,
- rinfo->offset + header->union_blob_size +
+ Header *header = (Header *)rinfo->typelib->data;
+
+ return (GIFieldInfo *) g_info_new (GI_INFO_TYPE_FIELD, (GIBaseInfo*)info, rinfo->typelib,
+ rinfo->offset + header->union_blob_size +
n * header->field_blob_size);
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
UnionBlob *blob = (UnionBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->n_functions;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
UnionBlob *blob = (UnionBlob *)&rinfo->typelib->data[rinfo->offset];
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
gint offset;
- offset = rinfo->offset + header->union_blob_size
- + blob->n_fields * header->field_blob_size
+ offset = rinfo->offset + header->union_blob_size
+ + blob->n_fields * header->field_blob_size
+ n * header->function_blob_size;
- return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
+ return (GIFunctionInfo *) g_info_new (GI_INFO_TYPE_FUNCTION, (GIBaseInfo*)info,
rinfo->typelib, offset);
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
UnionBlob *blob = (UnionBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->discriminated;
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
UnionBlob *blob = (UnionBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
return blob->discriminator_offset;
}
g_union_info_get_discriminator_type (GIUnionInfo *info)
{
GIRealInfo *rinfo = (GIRealInfo *)info;
-
+
return g_type_info_new ((GIBaseInfo*)info, rinfo->typelib, rinfo->offset + 24);
}
{
GIRealInfo *rinfo = (GIRealInfo *)info;
UnionBlob *blob = (UnionBlob *)&rinfo->typelib->data[rinfo->offset];
-
+
if (blob->discriminated)
{
- Header *header = (Header *)rinfo->typelib->data;
+ Header *header = (Header *)rinfo->typelib->data;
gint offset;
- offset = rinfo->offset + header->union_blob_size
- + blob->n_fields * header->field_blob_size
+ offset = rinfo->offset + header->union_blob_size
+ + blob->n_fields * header->field_blob_size
+ blob->n_functions * header->function_blob_size
+ n * header->constant_blob_size;
-
- return (GIConstantInfo *) g_info_new (GI_INFO_TYPE_CONSTANT, (GIBaseInfo*)info,
- rinfo->typelib, offset);
+
+ return (GIConstantInfo *) g_info_new (GI_INFO_TYPE_CONSTANT, (GIBaseInfo*)info,
+ rinfo->typelib, offset);
}
return NULL;