Clarify docs on the return. Fix a memory leak if a type with a value table
authorOwen Taylor <otaylor@redhat.com>
Mon, 25 Aug 2003 18:23:58 +0000 (18:23 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Mon, 25 Aug 2003 18:23:58 +0000 (18:23 +0000)
Mon Aug 25 14:16:48 2003  Owen Taylor  <otaylor@redhat.com>

        * gtypemodule.c (g_type_module_register_type): Clarify
        docs on the return. Fix a memory leak if a type with a
        value table is reloaded.

docs/reference/gobject/tmpl/gtypemodule.sgml
gobject/ChangeLog
gobject/gtypemodule.c

index b3828a5..d414465 100644 (file)
@@ -111,11 +111,16 @@ Sets the name for a #GTypeModule
 <!-- ##### FUNCTION g_type_module_register_type ##### -->
 <para>
 Looks up or registers a type that is implemented with a particular
-type plugin. If a type with name @type_name is already registered,
+type plugin. If a type with name @type_name was previously registered,
 the #GType identifier for the type is returned, otherwise the type
 is newly registered, and the resulting #GType identifier returned.
 </para>
 <para>
+When reregistering a type (typically because a module is unloaded
+then reloaded, and reinitialized), @module and @parent_type must
+be the same as they were previously.
+</para>
+<para>
 As long as any instances of the type exist, the type plugin will
 not be unloaded.
 </para>
@@ -125,7 +130,7 @@ not be unloaded.
 @type_name:      name for the type
 @type_info:      type information structure
 @flags:          flags field providing details about the type
-@Returns: the type ID for the class.
+@Returns: the new or existing type ID
 
 
 <!-- ##### FUNCTION g_type_module_add_interface ##### -->
index 2e37f1d..81e3983 100644 (file)
@@ -1,3 +1,9 @@
+Mon Aug 25 14:16:48 2003  Owen Taylor  <otaylor@redhat.com>
+       * gtypemodule.c (g_type_module_register_type): Clarify
+       docs on the return. Fix a memory leak if a type with a
+       value table is reloaded.
 Tue Aug 19 05:21:04 2003  Tim Janik  <timj@gtk.org>
 
        * testgobject.c (main): check private instance data after
index e8fd4a7..b80b0c4 100644 (file)
@@ -316,6 +316,9 @@ g_type_module_register_type (GTypeModule     *module,
                     parent_type_name ? parent_type_name : "(unknown)");
          return 0;
        }
+
+      if (module_type_info->info.value_table)
+       g_free (odule_type_info->info.value_table);
     }
   else
     {