prepared deprecation of GMemChunk and GAllocator. added g_slice_*() API to
[platform/upstream/glib.git] / gobject / ChangeLog
index c2d8b48..a35641a 100644 (file)
@@ -1,3 +1,596 @@
+Tue Nov  1 17:07:43 2005  Tim Janik  <timj@imendio.com>
+
+       * gsignal.c: allocate signal handlers and handler match structures
+       via the new g_slice_*() API (get's rid of GList allocation hack).
+
+       * gtype.c: got rid of per-type memchunks. if GTypeInfo.n_preallocs
+       is > 0, objects are allocated via g_slice_*() instead of g_malloc().
+
+2005-10-03  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib-mkenums.in: Really fix #314890.
+
+2005-09-28  Michael Natterer  <mitch@gimp.org>
+
+       * gtype.h (G_IMPLEMENT_INTERFACE): revert last change, it breaks
+       all users of G_IMPLEMENT_INTERFACE() inside
+       G_DEFINE_TYPE_WITH_CODE(), since apparently GCC doesn't like
+       commas enclosed in {}, not (), in nested macro calls.
+
+2005-09-26  DindinX  <dindinx@gimp.org>
+
+       * gobject/gtype.h: initialize all the fields of GInterfaceInfo in the
+       G_IMPLEMENT_INTERFACE macro, to shut up a warning when compiling at -W
+
+2005-09-26  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib-mkenums.in: Don't hang on '{' following a trigraph comment
+       in the same line.  (#314890, Mathias Hasselmann)
+
+Thu Sep 22 12:42:12 2005  Tim Janik  <timj@gtk.org>
+
+       * gparam.c (g_param_spec_internal): fix pspec->name assignment which
+       needs to be strdup()ed for non G_PARAM_STATIC_NAME pspecs. this fixes
+       recently introduced crashes during plugin unloading.
+       also, ensure that static pspec names are canonicalized.
+
+       * gsignal.h: reverted last change from matthias, we don't guarantee
+       that type ids aren't mangled with G_SIGNAL_TYPE_STATIC_SCOPE anywhere.
+
+2005-09-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gsignal.h (struct _GSignalQuery): Remove the misleading comment
+       about G_SIGNAL_TYPE_STATIC_SCOPE, since we don't allow that 
+       on return types.
+
+2005-09-08  Kjartan Maraas  <kmaraas@gnome.org>
+
+       * gclosure.c: (g_closure_set_meta_marshal): Remove some unused
+       code.
+       * gsignal.c: (g_signal_emitv): Same here
+       * gtype.c: (g_type_register_fundamental): And here
+       * testgobject.c: Mark some functions static.
+
+2005-09-05  Matthias Clasen  <mclasen@redhat.com>
+
+       * gsignal.c (struct _SignalNode): Make the name field const.
+       (g_signal_newv): Don't keep an unnecessary extra copy of the 
+       signal name around, and don't forget to free the name if
+       an existing node is reused.     
+
+2005-08-31  Matthias Clasen  <mclasen@redhat.com>
+
+       * gobject.c (g_object_do_class_init): Intern the signal name.
+
+       * gparam.c (g_param_spec_internal): Intern the name here,
+       since we need the quark anyway when sending change notification.
+
+       * gboxed.c: 
+       * gparamspecs.c: 
+       * gtype.c (g_type_init_with_debug_flags): Intern type name
+       before registering the types.
+
+       * gtype.h (G_DEFINE_TYPE_EXTENDED): Intern type name
+       before registering the type.
+
+       * gvaluetypes.c (g_value_types_init): 
+       * gtypeplugin.c (g_type_plugin_get_type): 
+       * gtypemodule.c (g_type_module_get_type): 
+       * gparam.c (g_param_type_init): 
+       * gobject.c (g_object_type_init): 
+       * genums.c (g_enum_types_init): 
+       * gboxed.c (g_boxed_type_init): Intern type names
+       before registering the type to avoid unnecessary
+       copies.
+
+2005-08-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.8.1 ===
+
+2005-08-12  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.8.0 ===
+
+2005-08-09  Matthias Clasen  <mclasen@redhat.com>
+
+       * gvaluetransform.c: Access enum and flags
+       values as v_long/v_ulong, not v_int/v_uint,
+       to make value transformation of such types
+       work on bigendian 64bit machines.  (#312485,
+       Michael Lorenz)
+
+2005-08-05  Matthias Clasen  <mclasen@redhat.com>
+       
+       * abicheck.sh: Also check exported variables
+
+       * === Released 2.7.7 ===
+
+2005-08-03  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.7.6 ===
+
+2005-08-02  Matthias Clasen  <mclasen@redhat.com>
+
+       * gclosure.c (union ClosureInt): Mark the vint member as
+       volatile, which seems to be necessary to make atomic operations
+       work on s390.
+
+       * === Released 2.7.5 ===
+
+Mon Aug  1 23:00:42 2005  Tim Janik  <timj@imendio.com>
+
+       * gclosure.c: turned all modifications to the first 32 integer bits in a 
+       closure into atomic accesses. wrapped write accesses into special macros
+       to keep the atomic modification logic in a single place. comment cleanups.
+
+       * gclosure.h: made all atomicly accessed closure fields volatile.
+
+       * gobject.h: made ref_count field volatile.
+
+Sun Jul 31 02:04:23 2005  Tim Janik  <timj@gtk.org>
+
+       * gobject.c: use g_datalist_set_flags() and g_datalist_unset_flags() to
+       allow proper locking around &qdata modifications.
+
+Sat Jul 30 21:10:26 2005  Tim Janik  <timj@gtk.org>
+
+       * gobject.c: reverted notify_mutex introduction, since this prevents
+       parallelized setting of object properties on different objects, and
+       serves no apparent purpose (to me at least).
+       g_object_real_dispose(): removed non-atomic reference count 
+       modifications.
+       g_object_unref(): make sure the closures array is destroyed when
+       destroying signal handlers.
+
+       * gparam.c: cosmetic changes.
+
+       * gsignal.c: comment fixup. allow 16bit blocking count.
+
+       * gsignal.c: reverted GClosure related changes.
+
+       * gclosure.c: reverted premature commit of atomic reference
+       counting attempt.
+
+2005-07-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.7.4 ===
+
+2005-07-15  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.7.3 ===
+       
+2005-07-15  Matthias Clasen  <mclasen@redhat.com>
+
+       Make refcounting threadsafe by using atomic 
+       operations.  (#166020, Wim Taymans)
+       
+       * gobject.c: Use a recursive lock to protect the 
+       notify queue.
+       (g_object_unref): Get rid of g_object_last_unref and
+       do the last unref handling in g_object_unref.
+       (g_object_ref, g_object_unref): Use atomic operations.
+
+       * gsignal.c (struct _HandlerMatch): Use a full integer
+       for the ref_count field.
+       (handler_ref, handler_unref_R): Use atomic operations.
+
+       * gparam.c (g_param_spec_ref, g_param_spec_unref): 
+       Use atomic operations instead of a lock to make the
+       refcounting threadsafe.
+
+       * gclosure.c (g_closure_ref, g_closure_unref): Use atomic
+       operations. This is more complicated here, since the
+       refcount is stored in a bitfield, so we also have
+       to access all other bitfield members atomically.
+
+       * gsignal.c (handlers_find): Read the meta_marshal flag
+       of the closure atomically.
+
+2005-07-11  Matthias Clasen  <mclasen@redhat.com>
+
+       * gobject.h: 
+       * gobject.symbols: Remove G_GNUC_NULL_TERMINATED from
+       g_object_new again, since that makes gcc warn on calls of 
+       the form g_object_new (some_type, NULL)
+
+2005-07-09  Tor Lillqvist  <tml@novell.com>
+
+       * Makefile.am: Don't use the scripts in build/win32 to compile
+       gobject.rc into a resource object file. (This means we lose the
+       build number increment magic, but I doubt it was that useful
+       anyway.) Instead use windres directly. To pass the normal .o file
+       produced by windres through libtool, which wants .lo files, pass
+       it directly to the linker using a -Wl option.
+
+       * gobject.rc.in: Thus replace BUILDNUMBER with 0.
+
+2005-07-08  Matthias Clasen  <mclasen@redhat.com>
+       
+       * === Released 2.7.2 ===
+
+2005-06-30  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.7.1 ===
+
+2005-06-26  Tor Lillqvist  <tml@novell.com>
+
+       * Makefile.am: libtool installs/uninstalls the import library, no
+       need to do it ourselves. Do still install/uninstall the .def file,
+       though.
+
+2005-06-24  Tor Lillqvist  <tml@novell.com>
+
+       * Makefile.am (install-libtool-import-lib): Current GNU tools do
+       understand the PRIVATE keyword.
+
+2005-06-19  Matthias Clasen  <mclasen@redhat.com>
+
+       * gparam.h (GParamFlags): Avoid a warning.  (#308295,
+       Murray Cumming).
+
+2005-06-13  Matthias Clasen  <mclasen@redhat.com>
+
+       * gparam.h (GParamFlags): Re-add G_PARAM_PRIVATE as a 
+       deprecated name for bit 5, since some language bindings
+       have it bound.
+
+2005-06-10  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.7.0 ===
+
+2005-05-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gvaluetypes.c (g_value_set_string): dup the new value
+       before freeing the old, just in case.  (#172142, Morten
+       Welinder)
+
+2005-05-13  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib-genmarshal.1: Mention 64bit integer types.
+
+2005-05-05  Owen Taylor  <otaylor@redhat.com>
+
+       * gobject.[ch] gobject.symbols: Add
+       g_object_add/remove_toggle_ref() functions to get notification
+       when a reference count is the last remaining reference; this
+       enables better memory management for language bindings.
+       (http://mail.gnome.org/archives/gtk-devel-list/2005-April/msg00095.html)
+
+2005-04-29  Matthias Clasen  <mclasen@redhat.com>
+
+       * gobject.symbols: 
+       * gboxed.h (G_TYPE_DATE): 
+       * gboxed.c: Add a boxed type for GDate. (#301787, Tim-Philipp 
+       Müller)
+
+2005-03-25  Matthias Clasen  <mclasen@redhat.com>
+
+       * gparam.c (param_spec_ht_lookup): Don't do the second
+       lookup if the name was already canonical.  (#171502, Morten
+       Welinder)
+
+Tue Mar 22 14:15:23 2005  Manish Singh <yosh@gimp.org>
+
+       * gparam.c (g_param_spec_internal): cast away any constness on
+       assignment.
+
+2005-03-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib-mkenums.in: Avoid forcing extra newlines when using
+       template files.  (#171005)
+
+2005-03-20  Matthias Clasen  <mclasen@redhat.com>
+
+       * gparam.c (g_param_spec_internal): Don't copy strings
+       which are marked as static. Don't allow non-canonical static 
+       names.
+
+       * gparam.h (GParamFlags): Add G_PARAM_STATIC_{NAME,NICK,BLURB}
+       flags.  (#160655, Ben Maurer)
+       
+2005-03-18  Hans Breuer  <hans@breuer.org>
+
+       * makefile.msc.in : handle gobjectaliasdef.c
+
+2005-03-14  Matthias Clasen  <mclasen@redhat.com>
+
+       Make PLT-reduction work with gcc4, and don't include
+       everything in gobjectalias.h:
+       
+       * gobject.symbols: Group symbols by header and source 
+       file.
+       * makegobjectalias.pl: Protect definitions by the same 
+       preprocessor symbols used to guard the headers. Move
+       the alias declarations to a separate file which is 
+       produced when calling makegalias.pl -def
+       * Makefile.am (gobjectaliasdef.c): Add a rule to 
+       build this file.
+       * *.c: Include gobjectalias.h after the other i
+       GLib headers, include gobjectaliasdef.c at the bottom.
+
+2005-03-08  Matthias Clasen  <mclasen@redhat.com>
+
+       * gobject.symbols: Add the new attributes here, too.
+
+       * gobject.h: Use G_GNUC_NULL_TERMINATED where
+       appropriate.  (#164706, Marc Meissner)
+
+       * gvaluearray.h: Small cleanup (use G_BEGIN/END_DECLS).
+       (#168474, Fabricio Barros Cabral)
+
+2005-02-24  Tor Lillqvist  <tml@novell.com>
+
+       * Makefile.am (EXTRA_DIST): Don't distribute
+       gobject.def. (#167496, J. Ali Harlow)
+
+Sun Feb  6 22:00:46 2005  Manish Singh  <yosh@gimp.org>
+
+       * abicheck.sh: feed the contents of config.h and glibconfig.h
+       into the preprocessor, since glib.symbols could need #defines
+       from them.
+
+2005-01-12  Matthias Clasen  <mclasen@redhat.com>
+
+       Cosmetic fixes (#163792, Benoît Carpentier):
+       
+       * gobject-query.c (main): Remove duplicate lines.
+
+       * gvaluetransform.c: Remove duplicate definitions of
+       value_transform_[u]int64_[u]int64.
+
+2005-01-07  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.6.1 ===
+
+2004-12-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * Makefile.am: Only check the ABI on linux, since
+       the shell script is not portable.  (#161734, Adrian Bunk)
+
+2004-12-16  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.6.0 ===
+       
+2004-12-02  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.7 ===
+       
+2004-11-30  Tor Lillqvist  <tml@iki.fi>
+
+       * Makefile.am (gobject.def): gcc -E complains "linker input file
+       unused because linking not done" if told to preprocess the
+       gobject.symbols file. Use '-' and redirection to pass it as
+       standard input instead.
+
+Sun Nov 28 13:21:12 2004  Manish Singh  <yosh@gimp.org>
+
+       * abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
+
+Sun Nov 28 01:37:54 2004    <timj@birnet.org>
+
+       * gsignal.c: applied patch by sven@gimp.org (#153727) to reduce
+       signal connection complexity from O(n_handlers) to O(1).
+
+Thu Nov 25 14:09:41 2004  Manish Singh  <yosh@gimp.org>
+
+       * abicheck.sh: filter out G_GNUC stuff when doing the compare.
+
+2004-11-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * gobject.symbols: Typo fix.
+
+       Fix a problem with the PLT reduction changes which caused the
+       internal aliases to lose all attributes.
+       
+       * gobject.symbols: Add attribute annotations.
+       * makegobjectalias.pl: Keep attribute annotations, but strip PRIVATE.
+       * Makefile.am (gobject.def): Strip attribute annotations, but keep 
+       PRIVATE.
+
+       * gtypemodule.h (g_type_module_get_type): Mark as const,
+       like all other get_type() functions.
+
+2004-11-12  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.6 ===
+       
+Mon Nov  8 10:47:41 2004  Manish Singh  <yosh@gimp.org>
+
+       * gobject/gsourceclosure.c: removed wrap_g_io_channel_ref() hack,
+       since g_io_channel_ref() has a compatible API now.
+
+2004-11-02  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.5 ===
+
+2004-10-27 Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.4 ===
+
+2004-10-27  Matthias Clasen  <mclasen@redhat.com>
+
+       * abicheck.sh: Strip Win32 specific defs file syntax.
+
+       * Makefile.am (gobjectalias.h): Fix srcdir != builddir 
+       builds.  (#156447, Thomas Fitzsimmons)
+
+2004-10-26  Matthias Clasen  <mclasen@redhat.com>
+
+       * abicheck.sh: Don't include symbols which are just in the 
+       symbols list for .defs file compatibility.
+
+2004-10-23  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtype.h (GTypeInterfaceCheckFunc): Rename first parameter to 
+       check_data, since apparently the system headers on AIX leak a
+       macro named func_data.  (#155178, Andrea Campi)
+
+Wed Oct  6 02:12:44 2004    <timj@birnet.org>
+
+       * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves 
+       Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa
+       pointer without holding the instance_real_class lock.
+
+2004-10-04  Matthias Clasen  <mclasen@redhat.com>
+
+       * gsignal.c (g_signal_add_emission_hook): Improve the warning 
+       if G_SIGNAL_NO_HOOKS is set.  (#154299, Nickolay V. Shmyrev)
+
+2004-09-22  Tor Lillqvist  <tml@iki.fi>
+
+       * Makefile.am (install-libtool-import-lib): [Win32] Add code to
+       remove the bug-compatibility entries (see #134813, and related
+       comments below) from the import library. The PRIVATE keyword in
+       the .def file is supposed to mean that, but it isn't implemented
+       yet by GNU ld.
+
+       * makegobjectalias.pl: In case the symbol is followed by some
+       stuff ("PRIVATE") that's intended for the .def file, use just the
+       actual symbol.
+
+       * gobject.symbols: For binary bug compatibility on Win32, add the
+       g_slist_remove_all and g_unichar_validate symbols inside #ifdef
+       INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
+       below.)
+
+2004-09-18 Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.3 ===
+
+Thu Sep 16 18:42:46 2004  Manish Singh  <yosh@gimp.org>
+
+       * abicheck.sh: don't hardcode lengths for cut, instead split on
+       the third field.
+
+2004-09-16  Matthias Clasen  <mclasen@redhat.com>
+
+       Implement the same PLT reduction technique used in GTK+:
+
+       * Makefile.am: Generate gobjectalias.h from gobject.symbols.
+       (BUILT_SOURCES): Add gobjectalias.h.
+
+       * makegobjectalias.pl: Script to generate gobjectalias.h.
+
+       * *.c: Include gobjectalias.h
+
+2004-09-16  Matthias Clasen  <mclasen@redhat.com>
+
+       Add ABI control using the same technique that is used in GTK+.
+       
+       * gobject.symbols: Master list of symbols.
+
+       * gobject.def: Removed. It is now generated from gobject.symbols.
+
+       * Makefile.am: Generate gobject.def from gobject.symbols.
+       (TESTS): Add abicheck.sh
+       (EXTRA_DIST): Add abicheck.sh
+       (export_symbols): Don't export _-prefixed symbols.
+
+       * gtype.h: 
+       * gtype.c: Move the declarations of the various _init() functions
+       to the header, and mark them as G_GNUC_INTERNAL.
+
+2004-08-25 Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.2 ===
+
+2004-08-01 Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.5.1 ===
+
+2004-07-28  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtype.c (g_type_instance_get_private): Catch cases of 
+       forgotten g_type_add_private().  (#148368, Tommi Komulainen) 
+
+2004-07-21  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib-genmarshal.c (put_marshal_value_getters): Use the 
+       correct fields for enums and flags.  (#145015, Tommi Komulainen) 
+
+Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
+
+       * === Released 2.5.0 ===
+
+2004-07-12  Matthias Clasen  <mclasen@redhat.com>
+
+       * gsignal.c (g_signal_handler_is_connected): Don't
+       choke on a zero handler_id.
+
+Tue Jul  6 00:46:43 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtypemodule.h: 
+       * gtypemodule.c: Fix the declarations of the new 
+       functions to return GType, not void. 
+       Also add missing includes.  (#145508, Morten Welinder)
+
+Tue Jul  6 00:46:43 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtypemodule.h: 
+       * gtypemodule.c (g_type_module_register_flags): 
+       * gtypemodule.c (g_type_module_register_enum): New 
+       functions to register enum and flags types from a 
+       GTypeModule.  (#145396, Sven Neumann)
+
+Wed Jun 23 12:55:34 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtype.h (G_DEFINE_TYPE_EXTENDED): Add an initializer for
+       the g_define_type_info.value_table.  (#144678, Mariano 
+       Suárez-Alvarez) 
+
+Tue Jun 22 21:50:47 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gsignal.c: Fix a couple of typos.
+
+Fri Jun 18 22:53:13 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gsourceclosure.h (__G_SOURCECLOSURE_H__): Actually 
+       define the guard after checking for it.  (#108038, 
+       Morten Welinder)
+
+2004-04-30  Matthias Clasen  <mclasen@redhat.com>
+
+       * === Released 2.4.1 ===
+
+2004-04-22  Matthias Clasen  <mclasen@redhat.com>
+
+       * glib-mkenums.in: Actually convert escape chars in 
+       --vprod.   (#139058, Christophe Saout)
+
+2004-04-15  Matthias Clasen  <mclasen@redhat.com>
+
+       * gparamspecs.c (param_float_init): Correct the initial 
+       minimal value to be -G_MAXFLOAT. The initial values were 
+       inconsistant before, with the initial default being smaller 
+       than the inital minimum.        
+       (param_double_init): Correct the initial minimal value 
+       to be -G_MAXDOUBLE.
+
+Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * === Released 2.4.0 ===
+
+2004-03-10  Tor Lillqvist  <tml@iki.fi>
+
+       * gobject.def: Mark the two entries that shouldn't be in the
+       import library (see below) as PRIVATE.
+
+Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * === Released 2.3.6 ===
+
+2004-03-04  Tor Lillqvist  <tml@iki.fi>
+
+       * gobject.def: Another of the glib DLL's functions was erronously
+       present in the stable branch's gobject.def: g_unichar_validate,
+       and nobody noticed until too late. Thus there are applications
+       deployed that expect it to be found in the gobject DLL, and to
+       keep ABI compatibility, we must keep it there forever. Argh.
+
+Mon Mar  1 16:49:51 2004  Owen Taylor  <otaylor@redhat.com>
+
+       * === Released 2.3.5 ===
+
 2004-03-01  Tor Lillqvist  <tml@iki.fi>
 
        * gobject.def: Add g_slist_remove_all back for ABI
@@ -2001,8 +2594,8 @@ Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
        that gets passed in to closure invocations. added signal details.
        renamed GSignalType to GSignalFlags to comply with conventions.
        quite some cleanups and minor fixes. avoid uneccessary handler list
-       walks upon invokation of after handlers. relookup handler list for
-       restarted emissions. preliminary abort normal handler invokation if
+       walks upon invocation of after handlers. relookup handler list for
+       restarted emissions. preliminary abort normal handler invocation if
        after handler is encountered.
 
        * glib-genmarshal.c: