add g_union_info_find_method
authorJohan Bilien <jobi@via.ecp.fr>
Tue, 14 Oct 2008 22:25:13 +0000 (22:25 +0000)
committerJohan Bilien <jobi@src.gnome.org>
Tue, 14 Oct 2008 22:25:13 +0000 (22:25 +0000)
2008-10-14  Johan Bilien  <jobi@via.ecp.fr>

* girepository/ginfo.c, girepository/girepository.h: add
g_union_info_find_method

svn path=/trunk/; revision=706

ChangeLog
girepository/ginfo.c
girepository/girepository.h

index 5fa4fdb..eddb0a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-10-14  Johan Bilien  <jobi@via.ecp.fr>
+
+       * girepository/ginfo.c, girepository/girepository.h: add
+       g_union_info_find_method
+
 2008-10-14  Colin Walters  <walters@verbum.org>
 
        * tests/repository/Makefile.am: Reenable repo test.
index 75ced84..aa03bc3 100644 (file)
@@ -1838,3 +1838,19 @@ g_union_info_get_discriminator (GIUnionInfo *info,
 
   return NULL;
 }
+
+GIFunctionInfo *
+g_union_info_find_method (GIUnionInfo *info,
+                          const gchar *name)
+{
+  gint offset;
+  GIBaseInfo *base = (GIBaseInfo *)info;
+  Header *header = (Header *)base->typelib->data;
+  StructBlob *blob = (UnionBlob *)&base->typelib->data[base->offset];
+
+  offset = base->offset + header->union_blob_size
+    + blob->n_fields * header->field_blob_size;
+
+  return find_method (base, offset, blob->n_methods, name);
+}
+
index 0b28e40..42db8d3 100644 (file)
@@ -362,6 +362,8 @@ gint                   g_union_info_get_discriminator_offset (GIUnionInfo *info)
 GITypeInfo *           g_union_info_get_discriminator_type (GIUnionInfo *info);
 GIConstantInfo *       g_union_info_get_discriminator      (GIUnionInfo *info,
                                                            gint         n);
+GIFunctionInfo *       g_union_info_find_method    (GIUnionInfo *info,
+                                                    const gchar *name);
 
 
 /* GIStructInfo */