diff options
author | Johan Dahlin <johan@gnome.org> | 2010-06-06 23:04:15 -0300 |
---|---|---|
committer | Johan Dahlin <johan@gnome.org> | 2010-06-06 23:04:15 -0300 |
commit | 82df98a74d83e39a7b120269e6cdb2c067c941ba (patch) | |
tree | 6756ff9dfeb45251e6f31b3ce8282130f2b45a08 | |
parent | 93ba28680565896b238c059f0fc4053f9ea94e09 (diff) | |
download | gobject-introspection-82df98a74d83e39a7b120269e6cdb2c067c941ba.tar.gz |
[giregisteredtypeinfo] Document and check parameters
-rw-r--r-- | girepository/giregisteredtypeinfo.c | 61 |
1 files changed, 59 insertions, 2 deletions
diff --git a/girepository/giregisteredtypeinfo.c b/girepository/giregisteredtypeinfo.c index 0f3493f3..3f308d22 100644 --- a/girepository/giregisteredtypeinfo.c +++ b/girepository/giregisteredtypeinfo.c @@ -28,11 +28,40 @@ #include "gitypelib-internal.h" #include "girffi.h" +/** + * SECTION:giregisteredtypeinfo + * @Short_description: Struct representing a struct with a GType + * @Title: GIRegisteredTypeInfo + * + * GIRegisteredTypeInfo represents an entity with a GType associated. Could + * be either a #GIEnumInfo, #GIInterfaceInfo, #GIObjectInfo, #GIStructInfo or a + * #GIUnionInfo. + * + * A registered type info struct has a name and a type function. + * To get the name call g_registered_type_info_get_type_name(). + * Most users want to call g_registered_type_info_get_g_type() and don't worry + * about the rest of the details. + */ + +/** + * g_registered_type_info_get_type_name: + * @info: a #GIRegisteredTypeInfo + * + * Obtain the type name of the struct within the GObject type system. + * This type can be passed to g_type_name() to get a #GType. + * + * Returns: the type name + */ const gchar * g_registered_type_info_get_type_name (GIRegisteredTypeInfo *info) { GIRealInfo *rinfo = (GIRealInfo *)info; - RegisteredTypeBlob *blob = (RegisteredTypeBlob *)&rinfo->typelib->data[rinfo->offset]; + RegisteredTypeBlob *blob; + + g_return_val_if_fail (info != NULL, NULL); + g_return_val_if_fail (GI_IS_REGISTERED_TYPE_INFO (info), NULL); + + blob = (RegisteredTypeBlob *)&rinfo->typelib->data[rinfo->offset]; if (blob->gtype_name) return g_typelib_get_string (rinfo->typelib, blob->gtype_name); @@ -40,11 +69,28 @@ g_registered_type_info_get_type_name (GIRegisteredTypeInfo *info) return NULL; } +/** + * g_registered_type_info_get_type_init: + * @info: a #GIRegisteredTypeInfo + * + * Obtain the type init function for @info. The type init function is the + * function which will register the GType within the GObject type system. + * Usually this is not called by langauge bindings or applications, use + * g_registered_type_info_get_g_type() directly instead. + * + * Returns: the symbol name of the type init function, suitable for + * passing into g_module_symbol(). + */ const gchar * g_registered_type_info_get_type_init (GIRegisteredTypeInfo *info) { GIRealInfo *rinfo = (GIRealInfo *)info; - RegisteredTypeBlob *blob = (RegisteredTypeBlob *)&rinfo->typelib->data[rinfo->offset]; + RegisteredTypeBlob *blob; + + g_return_val_if_fail (info != NULL, NULL); + g_return_val_if_fail (GI_IS_REGISTERED_TYPE_INFO (info), NULL); + + blob = (RegisteredTypeBlob *)&rinfo->typelib->data[rinfo->offset]; if (blob->gtype_init) return g_typelib_get_string (rinfo->typelib, blob->gtype_init); @@ -52,6 +98,14 @@ g_registered_type_info_get_type_init (GIRegisteredTypeInfo *info) return NULL; } +/** + * g_registered_type_info_get_g_type: + * @info: a #GIRegisteredTypeInfo + * + * Obtain the #GType for this registered type. + * + * Returns: the #GType. + */ GType g_registered_type_info_get_g_type (GIRegisteredTypeInfo *info) { @@ -59,6 +113,9 @@ g_registered_type_info_get_g_type (GIRegisteredTypeInfo *info) GType (* get_type_func) (void); GIRealInfo *rinfo = (GIRealInfo*)info; + g_return_val_if_fail (info != NULL, G_TYPE_INVALID); + g_return_val_if_fail (GI_IS_REGISTERED_TYPE_INFO (info), G_TYPE_INVALID); + type_init = g_registered_type_info_get_type_init (info); if (type_init == NULL) |