Typo.
[platform/upstream/glib.git] / gobject / ChangeLog
1 2005-07-09  Tor Lillqvist  <tml@novell.com>
2
3         * Makefile.am: Don't use the scripts in build/win32 to compile
4         gobject.rc into a resource object file. (This means we lose the
5         build number increment magic, but I doubt it was that useful
6         anyway.) Instead use windres directly. To pass the normal .o file
7         produced by windres through libtool, which wants .lo files, pass
8         it directly to the linker using a -Wl option.
9
10         * gobject.rc.in: Thus replace BUILDNUMBER with 0.
11
12 2005-07-08  Matthias Clasen  <mclasen@redhat.com>
13         
14         * === Released 2.7.2 ===
15
16 2005-06-30  Matthias Clasen  <mclasen@redhat.com>
17
18         * === Released 2.7.1 ===
19
20 2005-06-26  Tor Lillqvist  <tml@novell.com>
21
22         * Makefile.am: libtool installs/uninstalls the import library, no
23         need to do it ourselves. Do still install/uninstall the .def file,
24         though.
25
26 2005-06-24  Tor Lillqvist  <tml@novell.com>
27
28         * Makefile.am (install-libtool-import-lib): Current GNU tools do
29         understand the PRIVATE keyword.
30
31 2005-06-19  Matthias Clasen  <mclasen@redhat.com>
32
33         * gparam.h (GParamFlags): Avoid a warning.  (#308295,
34         Murray Cumming).
35
36 2005-06-13  Matthias Clasen  <mclasen@redhat.com>
37
38         * gparam.h (GParamFlags): Re-add G_PARAM_PRIVATE as a 
39         deprecated name for bit 5, since some language bindings
40         have it bound.
41
42 2005-06-10  Matthias Clasen  <mclasen@redhat.com>
43
44         * === Released 2.7.0 ===
45
46 2005-05-20  Matthias Clasen  <mclasen@redhat.com>
47
48         * gvaluetypes.c (g_value_set_string): dup the new value
49         before freeing the old, just in case.  (#172142, Morten
50         Welinder)
51
52 2005-05-13  Matthias Clasen  <mclasen@redhat.com>
53
54         * glib-genmarshal.1: Mention 64bit integer types.
55
56 2005-05-05  Owen Taylor  <otaylor@redhat.com>
57
58         * gobject.[ch] gobject.symbols: Add
59         g_object_add/remove_toggle_ref() functions to get notification
60         when a reference count is the last remaining reference; this
61         enables better memory management for language bindings.
62         (http://mail.gnome.org/archives/gtk-devel-list/2005-April/msg00095.html)
63
64 2005-04-29  Matthias Clasen  <mclasen@redhat.com>
65
66         * gobject.symbols: 
67         * gboxed.h (G_TYPE_DATE): 
68         * gboxed.c: Add a boxed type for GDate. (#301787, Tim-Philipp 
69         Müller)
70
71 2005-03-25  Matthias Clasen  <mclasen@redhat.com>
72
73         * gparam.c (param_spec_ht_lookup): Don't do the second
74         lookup if the name was already canonical.  (#171502, Morten
75         Welinder)
76
77 Tue Mar 22 14:15:23 2005  Manish Singh <yosh@gimp.org>
78
79         * gparam.c (g_param_spec_internal): cast away any constness on
80         assignment.
81
82 2005-03-21  Matthias Clasen  <mclasen@redhat.com>
83
84         * glib-mkenums.in: Avoid forcing extra newlines when using
85         template files.  (#171005)
86
87 2005-03-20  Matthias Clasen  <mclasen@redhat.com>
88
89         * gparam.c (g_param_spec_internal): Don't copy strings
90         which are marked as static. Don't allow non-canonical static 
91         names.
92
93         * gparam.h (GParamFlags): Add G_PARAM_STATIC_{NAME,NICK,BLURB}
94         flags.  (#160655, Ben Maurer)
95         
96 2005-03-18  Hans Breuer  <hans@breuer.org>
97
98         * makefile.msc.in : handle gobjectaliasdef.c
99
100 2005-03-14  Matthias Clasen  <mclasen@redhat.com>
101
102         Make PLT-reduction work with gcc4, and don't include
103         everything in gobjectalias.h:
104         
105         * gobject.symbols: Group symbols by header and source 
106         file.
107         * makegobjectalias.pl: Protect definitions by the same 
108         preprocessor symbols used to guard the headers. Move
109         the alias declarations to a separate file which is 
110         produced when calling makegalias.pl -def
111         * Makefile.am (gobjectaliasdef.c): Add a rule to 
112         build this file.
113         * *.c: Include gobjectalias.h after the other i
114         GLib headers, include gobjectaliasdef.c at the bottom.
115
116 2005-03-08  Matthias Clasen  <mclasen@redhat.com>
117
118         * gobject.symbols: Add the new attributes here, too.
119
120         * gobject.h: Use G_GNUC_NULL_TERMINATED where
121         appropriate.  (#164706, Marc Meissner)
122
123         * gvaluearray.h: Small cleanup (use G_BEGIN/END_DECLS).
124         (#168474, Fabricio Barros Cabral)
125
126 2005-02-24  Tor Lillqvist  <tml@novell.com>
127
128         * Makefile.am (EXTRA_DIST): Don't distribute
129         gobject.def. (#167496, J. Ali Harlow)
130
131 Sun Feb  6 22:00:46 2005  Manish Singh  <yosh@gimp.org>
132
133         * abicheck.sh: feed the contents of config.h and glibconfig.h
134         into the preprocessor, since glib.symbols could need #defines
135         from them.
136
137 2005-01-12  Matthias Clasen  <mclasen@redhat.com>
138
139         Cosmetic fixes (#163792, Benoît Carpentier):
140         
141         * gobject-query.c (main): Remove duplicate lines.
142
143         * gvaluetransform.c: Remove duplicate definitions of
144         value_transform_[u]int64_[u]int64.
145
146 2005-01-07  Matthias Clasen  <mclasen@redhat.com>
147
148         * === Released 2.6.1 ===
149
150 2004-12-27  Matthias Clasen  <mclasen@redhat.com>
151
152         * Makefile.am: Only check the ABI on linux, since
153         the shell script is not portable.  (#161734, Adrian Bunk)
154
155 2004-12-16  Matthias Clasen  <mclasen@redhat.com>
156
157         * === Released 2.6.0 ===
158         
159 2004-12-02  Matthias Clasen  <mclasen@redhat.com>
160
161         * === Released 2.5.7 ===
162         
163 2004-11-30  Tor Lillqvist  <tml@iki.fi>
164
165         * Makefile.am (gobject.def): gcc -E complains "linker input file
166         unused because linking not done" if told to preprocess the
167         gobject.symbols file. Use '-' and redirection to pass it as
168         standard input instead.
169
170 Sun Nov 28 13:21:12 2004  Manish Singh  <yosh@gimp.org>
171
172         * abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
173
174 Sun Nov 28 01:37:54 2004    <timj@birnet.org>
175
176         * gsignal.c: applied patch by sven@gimp.org (#153727) to reduce
177         signal connection complexity from O(n_handlers) to O(1).
178
179 Thu Nov 25 14:09:41 2004  Manish Singh  <yosh@gimp.org>
180
181         * abicheck.sh: filter out G_GNUC stuff when doing the compare.
182
183 2004-11-23  Matthias Clasen  <mclasen@redhat.com>
184
185         * gobject.symbols: Typo fix.
186
187         Fix a problem with the PLT reduction changes which caused the
188         internal aliases to lose all attributes.
189         
190         * gobject.symbols: Add attribute annotations.
191         * makegobjectalias.pl: Keep attribute annotations, but strip PRIVATE.
192         * Makefile.am (gobject.def): Strip attribute annotations, but keep 
193         PRIVATE.
194
195         * gtypemodule.h (g_type_module_get_type): Mark as const,
196         like all other get_type() functions.
197
198 2004-11-12  Matthias Clasen  <mclasen@redhat.com>
199
200         * === Released 2.5.6 ===
201         
202 Mon Nov  8 10:47:41 2004  Manish Singh  <yosh@gimp.org>
203
204         * gobject/gsourceclosure.c: removed wrap_g_io_channel_ref() hack,
205         since g_io_channel_ref() has a compatible API now.
206
207 2004-11-02  Matthias Clasen  <mclasen@redhat.com>
208
209         * === Released 2.5.5 ===
210
211 2004-10-27 Matthias Clasen  <mclasen@redhat.com>
212
213         * === Released 2.5.4 ===
214
215 2004-10-27  Matthias Clasen  <mclasen@redhat.com>
216
217         * abicheck.sh: Strip Win32 specific defs file syntax.
218
219         * Makefile.am (gobjectalias.h): Fix srcdir != builddir 
220         builds.  (#156447, Thomas Fitzsimmons)
221
222 2004-10-26  Matthias Clasen  <mclasen@redhat.com>
223
224         * abicheck.sh: Don't include symbols which are just in the 
225         symbols list for .defs file compatibility.
226
227 2004-10-23  Matthias Clasen  <mclasen@redhat.com>
228
229         * gtype.h (GTypeInterfaceCheckFunc): Rename first parameter to 
230         check_data, since apparently the system headers on AIX leak a
231         macro named func_data.  (#155178, Andrea Campi)
232
233 Wed Oct  6 02:12:44 2004    <timj@birnet.org>
234
235         * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves 
236         Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa
237         pointer without holding the instance_real_class lock.
238
239 2004-10-04  Matthias Clasen  <mclasen@redhat.com>
240
241         * gsignal.c (g_signal_add_emission_hook): Improve the warning 
242         if G_SIGNAL_NO_HOOKS is set.  (#154299, Nickolay V. Shmyrev)
243
244 2004-09-22  Tor Lillqvist  <tml@iki.fi>
245
246         * Makefile.am (install-libtool-import-lib): [Win32] Add code to
247         remove the bug-compatibility entries (see #134813, and related
248         comments below) from the import library. The PRIVATE keyword in
249         the .def file is supposed to mean that, but it isn't implemented
250         yet by GNU ld.
251
252         * makegobjectalias.pl: In case the symbol is followed by some
253         stuff ("PRIVATE") that's intended for the .def file, use just the
254         actual symbol.
255
256         * gobject.symbols: For binary bug compatibility on Win32, add the
257         g_slist_remove_all and g_unichar_validate symbols inside #ifdef
258         INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
259         below.)
260
261 2004-09-18 Matthias Clasen  <mclasen@redhat.com>
262
263         * === Released 2.5.3 ===
264
265 Thu Sep 16 18:42:46 2004  Manish Singh  <yosh@gimp.org>
266
267         * abicheck.sh: don't hardcode lengths for cut, instead split on
268         the third field.
269
270 2004-09-16  Matthias Clasen  <mclasen@redhat.com>
271
272         Implement the same PLT reduction technique used in GTK+:
273
274         * Makefile.am: Generate gobjectalias.h from gobject.symbols.
275         (BUILT_SOURCES): Add gobjectalias.h.
276
277         * makegobjectalias.pl: Script to generate gobjectalias.h.
278
279         * *.c: Include gobjectalias.h
280
281 2004-09-16  Matthias Clasen  <mclasen@redhat.com>
282
283         Add ABI control using the same technique that is used in GTK+.
284         
285         * gobject.symbols: Master list of symbols.
286
287         * gobject.def: Removed. It is now generated from gobject.symbols.
288
289         * Makefile.am: Generate gobject.def from gobject.symbols.
290         (TESTS): Add abicheck.sh
291         (EXTRA_DIST): Add abicheck.sh
292         (export_symbols): Don't export _-prefixed symbols.
293
294         * gtype.h: 
295         * gtype.c: Move the declarations of the various _init() functions
296         to the header, and mark them as G_GNUC_INTERNAL.
297
298 2004-08-25 Matthias Clasen  <mclasen@redhat.com>
299
300         * === Released 2.5.2 ===
301
302 2004-08-01 Matthias Clasen  <mclasen@redhat.com>
303
304         * === Released 2.5.1 ===
305
306 2004-07-28  Matthias Clasen  <mclasen@redhat.com>
307
308         * gtype.c (g_type_instance_get_private): Catch cases of 
309         forgotten g_type_add_private().  (#148368, Tommi Komulainen) 
310
311 2004-07-21  Matthias Clasen  <mclasen@redhat.com>
312
313         * glib-genmarshal.c (put_marshal_value_getters): Use the 
314         correct fields for enums and flags.  (#145015, Tommi Komulainen) 
315
316 Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>
317
318         * === Released 2.5.0 ===
319
320 2004-07-12  Matthias Clasen  <mclasen@redhat.com>
321
322         * gsignal.c (g_signal_handler_is_connected): Don't
323         choke on a zero handler_id.
324
325 Tue Jul  6 00:46:43 2004  Matthias Clasen  <maclas@gmx.de>
326
327         * gtypemodule.h: 
328         * gtypemodule.c: Fix the declarations of the new 
329         functions to return GType, not void. 
330         Also add missing includes.  (#145508, Morten Welinder)
331
332 Tue Jul  6 00:46:43 2004  Matthias Clasen  <maclas@gmx.de>
333
334         * gtypemodule.h: 
335         * gtypemodule.c (g_type_module_register_flags): 
336         * gtypemodule.c (g_type_module_register_enum): New 
337         functions to register enum and flags types from a 
338         GTypeModule.  (#145396, Sven Neumann)
339
340 Wed Jun 23 12:55:34 2004  Matthias Clasen  <maclas@gmx.de>
341
342         * gtype.h (G_DEFINE_TYPE_EXTENDED): Add an initializer for
343         the g_define_type_info.value_table.  (#144678, Mariano 
344         Suárez-Alvarez) 
345
346 Tue Jun 22 21:50:47 2004  Matthias Clasen  <maclas@gmx.de>
347
348         * gsignal.c: Fix a couple of typos.
349
350 Fri Jun 18 22:53:13 2004  Matthias Clasen  <maclas@gmx.de>
351
352         * gsourceclosure.h (__G_SOURCECLOSURE_H__): Actually 
353         define the guard after checking for it.  (#108038, 
354         Morten Welinder)
355
356 2004-04-30  Matthias Clasen  <mclasen@redhat.com>
357
358         * === Released 2.4.1 ===
359
360 2004-04-22  Matthias Clasen  <mclasen@redhat.com>
361
362         * glib-mkenums.in: Actually convert escape chars in 
363         --vprod.   (#139058, Christophe Saout)
364
365 2004-04-15  Matthias Clasen  <mclasen@redhat.com>
366
367         * gparamspecs.c (param_float_init): Correct the initial 
368         minimal value to be -G_MAXFLOAT. The initial values were 
369         inconsistant before, with the initial default being smaller 
370         than the inital minimum.        
371         (param_double_init): Correct the initial minimal value 
372         to be -G_MAXDOUBLE.
373
374 Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
375
376         * === Released 2.4.0 ===
377
378 2004-03-10  Tor Lillqvist  <tml@iki.fi>
379
380         * gobject.def: Mark the two entries that shouldn't be in the
381         import library (see below) as PRIVATE.
382
383 Tue Mar  9 09:16:11 2004  Owen Taylor  <otaylor@redhat.com>
384
385         * === Released 2.3.6 ===
386
387 2004-03-04  Tor Lillqvist  <tml@iki.fi>
388
389         * gobject.def: Another of the glib DLL's functions was erronously
390         present in the stable branch's gobject.def: g_unichar_validate,
391         and nobody noticed until too late. Thus there are applications
392         deployed that expect it to be found in the gobject DLL, and to
393         keep ABI compatibility, we must keep it there forever. Argh.
394
395 Mon Mar  1 16:49:51 2004  Owen Taylor  <otaylor@redhat.com>
396
397         * === Released 2.3.5 ===
398
399 2004-03-01  Tor Lillqvist  <tml@iki.fi>
400
401         * gobject.def: Add g_slist_remove_all back for ABI
402         compatibility. That entry point actually is in the glib DLL, but
403         it was at some time many years ago by mistake added to
404         gobject.def. Thus there presumably are executables out there that
405         expect it to be exported from the gobject DLL. We don't want to
406         break those. (#134813, J. Ali Harlow)
407
408 Fri Feb 27 01:49:22 2004  Matthias Clasen  <maclas@gmx.de>
409
410         * glib-mkenums.in: Support parsing of intializers containing
411         macros with arguments.  (#129717)
412
413 2003-02-28  Hans Breuer  <hans@breuer.org>
414
415         * gobject.def : added g_strv_get_type
416
417 Tue Feb 24 14:09:21 2004  Owen Taylor  <otaylor@redhat.com>
418
419         * === Released 2.3.3 ===
420
421 Fri Feb 20 02:44:54 2004  Tim Janik  <timj@gtk.org>
422
423         * gtype.h (G_DEFINE_TYPE_EXTENDED): added (GTypeFlags) cast needed by C++.
424
425 Tue Feb  3 21:24:01 2004  Tim Janik  <timj@gtk.org>
426
427         * gtype.h (_G_TYPE_CVH): provide a short-cut version for
428         this macro in case value->g_type==checked_type for gcc, similar
429         to instance and class check short-cuts. this speeds up code that
430         makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).
431
432         * gtype.c (type_data_last_unref_Wm): don't call class-cache functions
433         for the uncached case, this rendered g_type_class_unref_uncached()
434         useless. pointed out by Stefan Westerfeld.
435
436 Sat Jan 24 18:20:13 2004  Tim Janik  <timj@gtk.org>
437
438         * gtype.h: prefixed the parent_class variable defined by G_DEFINE_TYPE()
439         with type_name. removed type_parent_class argument
440         from G_DEFINE_TYPE_EXTENDED().
441
442 2004-01-24  Tor Lillqvist  <tml@iki.fi>
443
444         * gobject.def: Add a missing entry.
445
446 Sun Jan 11 15:34:35 2004  Manish Singh  <yosh@gimp.org>
447
448         * gsourceclosure.c: wrap g_io_channel_ref in a function that returns
449         the passed in GIOChannel, so we aren't abusing GBoxedCopyFunc
450         semantics. Fixes bug #131076.
451
452 Sat Jan 10 23:55:42 2004  Matthias Clasen  <maclas@gmx.de>
453
454         * glib-mkenums.1: Document the lowercase_name trigraph option.
455
456 Sat Jan 10 02:43:20 2004  Tim Janik  <timj@gtk.org>
457
458         * gtype.h: made G_DEFINE_TYPE_INTERNAL() public by renaming it to
459         G_DEFINE_TYPE_EXTENDED() and moving it into the appropriate section.
460
461 Fri Jan  9 23:41:00 2004  Matthias Clasen  <maclas@gmx.de>
462
463         * gboxed.h:
464         * gboxed.c (g_strv_get_type): Add a boxed type for nul-terminated
465         string arrays.  (#110528)
466
467 Fri Jan  9 15:34:15 2004  Tim Janik  <timj@gtk.org>
468
469         * gtype.h: added convenience macros G_IMPLEMENT_INTERFACE() and
470         G_DEFINE_TYPE() plus variants.
471
472 Fri Dec 26 01:34:01 2003  Matthias Clasen  <maclas@gmx.de>
473
474         * gtype.c (g_type_class_peek_parent): Don't acquire a read lock 
475         here.  (#106433, Owen Taylor)
476
477 Wed Dec 17 23:29:17 2003  Matthias Clasen  <maclas@gmx.de>
478
479         * gvalue.c (g_value_peek_pointer): Use g_assert() instead of
480         g_return_val_if_fail(), suggested by Sheldon Simms.
481
482 2003-12-13  Hans Breuer  <hans@breuer.org>
483
484         gobject.def : update externals
485
486 Sat Nov 29 14:57:20 2003  Tim Janik  <timj@gtk.org>
487
488         * gobject.c: fix g_object_set() within _init() implementations
489         not working for construct-only properties.
490         (g_object_init): make the object enter a construct_objects list.
491         (g_object_newv): remove object from construct_objects after creation.
492         (g_object_set_valist):
493         (g_object_set_property): allow construct-only properties for
494         objects which are in construct_objects.
495
496 Thu Nov 27 17:53:52 2003  Tim Janik  <timj@gtk.org>
497
498         * gtype.[hc]:
499         (g_type_class_peek_static): variant of class_peek() which works for
500         static types only.
501
502         * gobject.c:
503         (g_object_do_class_init): make ::notify a run-action signal.
504         (g_object_newv): use g_type_class_peek_static() by default to
505         speed up common code path (trades two write-locks for one read-lock).
506         (g_object_disconnect):
507         (g_object_connect): allow signal specification words to be
508         seperated by '-'.
509         (g_object_set_valist):
510         (g_object_new_valist): don't leak values.
511         (g_object_get_property): check property for readability.
512         (g_object_set_property): check property for writability and to
513         not be construct-only.
514         (g_object_set_valist): check property to not be construct-only.
515
516 Sat Oct 25 01:09:17 2003  Matthias Clasen  <maclas@gmx.de>
517
518         * gparam.h (struct _GParamSpecClass): Add /*< private >*/ 
519         marker for documentation purposes.
520
521 Tue Oct 21 23:17:06 2003  Matthias Clasen  <maclas@gmx.de>
522
523         * genums.h (struct _GEnumClass): 
524         * genums.h (struct _GFlagsClass): 
525         * gtypemodule.h (struct _GTypeModuleClass):
526         * gtypemodule.h (struct _GTypeModule): Add /*< public >*/ 
527         and /*< private >*/ markers for documentation purposes.
528
529 Tue Oct 14 17:40:19 2003  Owen Taylor  <otaylor@redhat.com>
530
531         * gparamspecs.[ch]: Add a new GParamSpecOverride type
532         that is a pointer to a different paramspec in a parent
533         class or interface.
534
535         * gparam.[ch]: Add g_paramspec_get_redirect_target()
536         which follows GParamSpecOverride to the real property.
537         Make g_param_spec_pool_list() hand redirections, 
538         properties on interfaces.
539
540         * gobject.[ch] gobjectnotifyqueue.c: Add
541         g_object_interface_install_property,
542         g_object_interface_find_property,
543         g_object_interface_list_properties(). Redirect virtually all
544         publically exposed GParamSpec's to the redirect target if
545         any. (->constructor is the exception.)
546         (#105894)
547
548 Mon Oct 20 22:06:12 2003  Matthias Clasen  <maclas@gmx.de>
549
550         * gobject.h (struct  _GObjectClass): Add /*< public >*/
551         and /*< private >*/ markers for documentation purposes.
552
553 Sat Oct 18 01:24:14 2003  Matthias Clasen  <maclas@gmx.de>
554
555         * gtypeplugin.h (struct _GTypePluginClass): Add /*< public >*/
556         and /*< private >*/ markers for documentation purposes.
557
558 Thu Oct  2 07:37:12 2003  Tim Janik  <timj@gtk.org>
559
560         * gtype.c: fix post class_init interface initialization logic
561         for child types.
562
563 Thu Oct  2 01:16:50 2003  Owen Taylor  <otaylor@redhat.com>
564
565         * gtype.[ch]: Add g_type_add/remove_interface_check(),
566         which allows inserting a post-interface-initialization
567         check.
568
569         * testgobject.c: Fix a deprecated usage.
570
571 Mon Sep 29 10:51:01 2003  Owen Taylor  <otaylor@redhat.com>
572
573         * gtype.[ch]: Add g_type_default_interface_ref/peek/unref
574         for accessing the default vtable of an interface.
575
576 Fri Sep 26 17:24:53 2003  Owen Taylor  <otaylor@redhat.com>
577
578         * gtype.c (g_type_instance_get_private): You can
579         have instance_real_class_bsa be non-NULL, but still 
580         the class not be in the bsa. (Found by Kris Rietveld)
581
582 2003-09-15  Matthias Clasen  <maclas@gmx.de>
583
584         * glib-genmarshal.c (complete_out_arg): Don't generate code 
585         using deprecated APIs.  (#122292, Christian Persch)
586
587 Fri Sep 12 16:31:40 2003  Owen Taylor  <otaylor@redhat.com>
588
589         * gsignal.[ch]: Add g_signal_accumulator_true_handled(), to
590         do TRUE-stops-emit signals. (#80487, Ron Steinke)
591
592         * Makefile.am: Move testoverride.c and testifaceinit.c to
593         tests/gobject.
594
595 2003-09-12  Matthias Clasen  <maclas@gmx.de>
596
597         Make the g_value_set_x_take_ownership() functions "official"
598         part of the API (#100948):
599         
600         * gvaluetypes.[hc]: Add g_value_take_string() (synonym to the
601         now deprecated g_value_set_string_take_ownership()).  
602
603         * gparam.[hc]: Add g_value_take_param() (synonym to the
604         now deprecated g_value_set_param_take_ownership()).  
605
606         * gobject.[hc]: Add g_value_take_object() (synonym to the
607         now deprecated g_value_set_object_take_ownership()).  
608
609         * gboxed.[hc]: Add g_value_take_boxed() (synonym to the
610         now deprecated g_value_set_boxed_take_ownership()).  
611
612 Tue Sep  2 19:37:21 2003  Tim Janik  <timj@gtk.org>
613
614         * gtype.[hc]: added support for a "default vtable" per interface,
615         that interface vtables are initialized from.
616         the default vtable is initialized and finalized through class_init,
617         class_finalize and class_data from the interfaces GTypeInfo struct.
618         (type_data_last_unref_Wm): unload child plugin before unreffing
619         parent type.
620
621         testifaceinit.c: minor fixups. fixed up base_init() assertions, since
622         with a default vtable, base_init() may be called multiple times.
623         added default initializer to iface1.
624
625 Tue Sep  2 14:53:41 2003  Tim Janik  <timj@gtk.org>
626
627         * gobject-query.c (main): fix iterating over fundamental types.
628
629         * gtype.c: applied patch from owen which keeps internal
630         class initialization state to maintain class and interface
631         initialization happen in the order of:
632         1. class' base_init
633         2. interface' base_init
634         =  interfaces added after here are immediately base_init-ialized
635         3. class_init
636         4. Interface_init
637         =  interfaces added here are immediately Interface_init-ialized
638
639 Wed Aug 27 19:53:26 2003  Manish Singh  <yosh@gimp.org>
640
641         * gobject.c: removed stray change from previous commit.
642
643 Wed Aug 27 01:25:40 2003  Owen Taylor  <otaylor@redhat.com>
644
645         * Makefile.am testifaceinit.c: Add a detailed test case
646         for interface initialization, testing the ability to
647         add interfaces during class initialization and the ordering
648         of interface base_init, class init, and interface_init.
649         (Expected to fail at the moment.)
650
651 Mon Aug 25 14:51:46 2003  Manish Singh  <yosh@gimp.org>
652
653         * gtypemodule.c (g_type_module_register_type): fix typo in last
654         commit, cast to GTypeValueTable * to get rid of const warning.
655
656 Mon Aug 25 14:16:48 2003  Owen Taylor  <otaylor@redhat.com>
657  
658         * gtypemodule.c (g_type_module_register_type): Clarify
659         docs on the return. Fix a memory leak if a type with a
660         value table is reloaded. (#112439, Daniel Yacob)
661  
662 Tue Aug 19 05:21:04 2003  Tim Janik  <timj@gtk.org>
663
664         * testgobject.c (main): check private instance data after
665         initialization.
666
667         * gtype.c: for instances with private data, store the real class
668         pointer in a bsearch array during class initialization.
669         (g_type_instance_get_private): fetch the real class of
670         an instance from the bsearch array if necessary.
671
672 Tue Aug 19 04:08:14 2003  Tim Janik  <timj@gtk.org>
673
674         * gvalue.c: adapt to new gbsearcharray.h code.
675         (g_value_register_transform_func): turn transform function
676         replacement into a valid operation.
677
678         * gsignal.c: adapt to new gbsearcharray.h code.
679         
680         * gboxed.c: adapt to new gbsearcharray.h code.
681
682 Tue Aug 19 01:31:28 2003  Tim Janik  <timj@gtk.org>
683
684         * gsignal.c: added optimizations to skip NOP signal emissions.
685
686 2003-08-08  Matthias Clasen  <maclas@gmx.de>
687
688         * gobject.c (object_set_property): Improve the wording of the warning for invalid 
689         values.  (#117246, Mariano Suarez-Alvarez)
690         
691 Wed Aug  6 09:57:14 2003  Owen Taylor  <otaylor@redhat.com>
692
693         * testgobject.c (test_signal_accumulator): Add check
694         for instance private usage within in instance_init.
695         (Currently will fail.)
696
697 2003-07-20  Hans Breuer  <hans@breuer.org>
698
699         * gobject.def : updated externals
700
701 Tue Jul  8 22:29:31 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
702
703         * gtype.c (type_class_init_Wm): Only access node->data->instance
704         when the node is instantiable.
705
706 Tue Jul  8 14:55:27 2003  Owen Taylor  <otaylor@redhat.com>
707
708         * gtype.c (type_class_init_Wm): Initialize
709         node->data->instance.private_size here rather than
710         in type_data_make_W() since the class init for the parent
711         class may have changed pnode->data->instance.private_size.
712         (#116921, reported by Soeren Sandmann)
713
714 2003-06-18  Matthias Clasen  <maclas@gmx.de>
715
716         * Makefile.am (man_MANS): Removed, these are now installed from
717         docs/reference/gobject.
718
719 Fri May 30 14:42:24 2003  Owen Taylor  <otaylor@redhat.com>
720  
721         * gobject.c (g_value_set_object): Order refs/unrefs
722         so setting the same object back is safe. (#112861,
723         Morten Welinder)
724  
725 2003-03-24  Sven Neumann  <sven@gimp.org>
726
727         * gtype.c (type_data_finalize_class_ifaces_Wm): removed leftover
728         debugging message (bug #109093).
729
730 Thu Feb 27 17:33:19 2003  Owen Taylor  <otaylor@redhat.com>
731
732         * gtype.[ch] testgobject.c: Add support for instance-private data. 
733         g_type_class_add_private(), g_type_instance_get_private(),
734         G_TYPE_INSTANCE_GET_PRIVATE(). (#101959, patch partly by
735         Mark McLoughlin, extensive feedback from Tim Janik.)
736
737 2003-03-06  Matthias Clasen  <maclas@gmx.de>
738
739         * gsignal.c (g_signal_handlers_block_matched): 
740         (g_signal_handlers_unblock_matched): 
741         (g_signal_handlers_disconnect_matched): Fix 0/FALSE confusion.
742         (#107662, Morten Welinder)
743
744 Mon Feb 17 20:59:47 2003  Tim Janik  <timj@gtk.org>
745
746         * gvalue.c (g_value_register_transform_func): don't assert the types
747         passed in to have value tables. this prevents dynamic types from
748         registering transform functions.
749
750 Sun Feb  9 13:44:01 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
751
752         * gboxed.c (boxed_proxy_value_init): remove lookup of unused
753         BoxedNode.
754
755 2003-02-07  Matthias Clasen  <maclas@gmx.de>
756
757         * gtypemodule.c: 
758         * gtype.c: 
759         * gsourceclosure.c: 
760         * gparamspecs.c: 
761         * gparam.c: 
762         * gobject.c: 
763         * gsignal.c: Remove all docs from gobject at Tims
764         request. Documentation is only for weenies anyway...    
765
766 2003-01-12  Tor Lillqvist  <tml@iki.fi>
767
768         * gobject.def: Add g_type_interface_prerequisites. Thanks to
769         Kenichi SUTO.
770
771 2002-12-18  Matthias Clasen  <maclas@gmx.de>
772
773         * gobject.c: Add docs.
774
775 2002-12-18  Michael Natterer  <mitch@gimp.org>
776
777         * gobject/gtype.c (type_data_finalize_class_ifaces_Wm): applied
778         patch I got from Tim Janik for testing which fixes bug #101521.
779         (restart iterating the interface enties each time we finalized one
780         because they might have been modified).
781
782 2002-12-17  Matthias Clasen  <maclas@gmx.de>
783
784         * gparam.c (g_param_spec_internal): Remove markup from doc
785         comment, as GObject doesn't use --sgml-mode yet.
786
787 2002-12-15  Matthias Clasen  <maclas@gmx.de>
788
789         * gsignal.c (g_signal_new): Typo fix.
790
791         * gparamspecs.c:  
792         * gparam.c (g_param_spec_internal): 
793         * gobject.c (g_object_class_install_property): Add docs.
794
795 2002-12-13  Matthias Clasen  <maclas@gmx.de>
796
797         * glib-genmarshal.c, gobject-query.c: Use g_printf() instead of 
798         system printf.  (#99319)
799
800 Thu Dec 12 15:00:10 2002  Manish Singh  <yosh@gimp.org>
801
802         * gvaluetransform.c: use G_G[U]INT64_FORMAT unconditionally,
803         since we'll always have it now.
804
805 2002-12-07  Matthias Clasen  <maclas@gmx.de>
806
807         * gparam.c (canonalize_key): Rename to canonicalize_key. Adjust
808         all callers.
809
810 2002-12-05  Matthias Clasen  <maclas@gmx.de>
811
812         * gsignal.c (g_signal_new): Explain allowed signal names in more
813         detail.
814
815 2002-12-04  Matthias Clasen  <maclas@gmx.de>
816
817         * gsignal.h (g_signal_add_emission_hook): 
818         * gtype.h (g_type_interface_get_plugin): Sync parameter names with
819         docs and implementation.
820
821         * gtype.c (g_type_add_interface_dynamic): 
822         (g_type_interface_get_plugin): 
823         (g_type_interface_peek_parent): 
824         (g_type_query): Add docs.
825
826 2002-12-03  Matthias Clasen  <maclas@gmx.de>
827
828         * gtype.c (g_type_get_qdata): 
829         (g_type_set_qdata): 
830         (g_type_interface_add_prerequisite): Add docs.
831
832 2002-12-02  Matthias Clasen  <maclas@gmx.de>
833
834         * gobject.c (g_signal_connect_object): Add docs.
835
836 2002-11-30  Matthias Clasen  <maclas@gmx.de>
837
838         * gsignal.c: More docs.
839
840 2002-11-28  Matthias Clasen  <maclas@gmx.de>
841
842         * gtype.c (g_type_interface_prerequisites): Document as 2.2 
843         API addition.
844
845 Thu Nov 21 16:05:50 2002  Owen Taylor  <otaylor@redhat.com>
846
847         * gtype.c (g_type_check_instance_cast): Allow
848         NULL to be cast to any type. (Frequently requested,
849         most recently #99023, Lars Clausen.)
850
851 Mon Nov  4 14:42:36 2002  Owen Taylor  <otaylor@redhat.com>
852  
853         * gtype.c gsignal.c gvaluearray.c: Include config.h
854         so DISABLE_MEMPOOLS actually has an effect.
855         (#96437, Morten Welinder)
856  
857         * gsignal.c: Conditionalize definition of g_handler_ts
858         on DISABLE_MEM_POOLS (#96437)
859         
860 2002-10-20  Matthias Clasen  <maclas@gmx.de>
861
862         * gtype.c (g_type_interface_prerequisites): Report only the most
863         specific instantiatable prerequisite, filter out all supertypes of
864         this one (the supertypes are added to the prerequisites array for
865         technical reasons).
866
867 2002-10-16  Matthias Clasen  <maclas@gmx.de>
868
869         * glib-mkenums.in: Support for template files.
870         
871         * glib-mkenums.1: Document --template.
872
873 2002-10-15  Matthias Clasen  <maclas@gmx.de>
874
875         * gtype.c (g_type_interface_prerequisites): New function to obtain
876         the prerequisites of an interface type.
877
878 Sat Oct 12 22:02:32 2002  Tim Janik  <timj@gtk.org>
879
880         * merged up from 2.0:
881
882         * testgobject.c: test creation of new fundamental types.
883
884         * gtype.c (g_type_fundamental_next), (type_node_fundamental_new_W):
885         account for static_fundamental_next storing non-shifted fundamental
886         IDs. this fixes g_type_fundamental_next() not returning a new usable
887         fundamental ID.
888
889 Wed Sep 11 16:50:20 2002  Dom Lachowicz <cinamod@hotmail.com>
890
891         * gtype.h: Fix problems with excessive C++ warnings: "ISO C++ forbids nested groups within expressions"
892         
893 Fri Jul 26 15:46:36 2002  Owen Taylor  <otaylor@redhat.com>
894
895         * gvaluetransform.c: Fix problems with excess ';'
896         by addition of strategic 'extern void glib_dummy_decl (void)'
897         (#83272, David L. Cooper II)
898
899 Thu Jul 25 20:34:39 2002  Owen Taylor  <otaylor@redhat.com>
900
901         * gtype.c (g_type_interface_add_prerequisite): When
902         adding ancestral prerequisites, add the grandparents,
903         not the siblings. (Problem found by Jon Trowbridge, patch from 
904         Dave Camp, #86879)
905
906 2002-07-05  Anders Carlsson  <andersca@gnu.org>
907
908         * gobject.c (g_object_base_class_finalize): Remove debugging
909         message, approved by Tim Janik.
910
911 2002-06-11  Anders Carlsson  <andersca@gnu.org>
912
913         * gtypemodule.c: (g_type_module_complete_interface_info):
914         * gtypeplugin.h:
915         Fix argument order. Fixes #82806.
916         
917 Mon May 20 15:57:47 2002  Owen Taylor  <otaylor@redhat.com>
918
919         * gsignal.c: When printing errors, handle NULL
920         returns from g_type_debug(). (#73559, Laszlo Peter)
921
922         * gtype.c (type_descriptive_name_I): De-inline,
923         since it's only used for debugging.
924
925 Tue May  7 15:03:02 2002  Owen Taylor  <otaylor@redhat.com>
926
927         * glib-genmarshal.c: Fix include order for config.h (#71704,
928         Morten Welinder)
929
930 2002-05-07  Michael Natterer  <mitch@gimp.org>
931
932         * Makefile.am: use the glib-genmarshal found at configure time
933         if CROSS_COMPILING is set, use the one which was just built
934         otherwise.
935
936 Mon May  6 16:06:23 2002  Owen Taylor  <otaylor@redhat.com>
937
938         [ merged from stable ]
939
940         * gobject.c: Remove PROPERTIES_CHANGED enumeration
941         value that wasn't used any more. (#78833, 
942         Matthias Clasen)
943
944         * gboxed.c (g_boxed_copy): Remove check on data[2]
945         that no longer exists. (#80814, Daniel Elstner)
946
947 Tue Mar 26 15:21:47 2002  Owen Taylor  <otaylor@redhat.com>
948
949         * gsignal.h (g_signal_handlers_*_by_func): Add explicit
950         cast of G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA to
951         GSignalMatchType so that these macros work for C++.
952         (#76454, Damien Sandras)
953
954 Mon Mar 25 17:51:05 2002  Owen Taylor  <otaylor@redhat.com>
955
956         * glib-mkenums.in (parse_entries): Fix various bugs and
957         excessive stack usage that crept in the conversion from
958         gtk-mkenums. (#74431)
959
960 Mon Mar 25 17:25:57 2002  Owen Taylor  <otaylor@redhat.com>
961
962         * gtype.c (g_type_free_instance): Wrap setting freed instance
963         memory to 0xaa in #ifdef G_ENABLE_DEBUG
964
965 Thu Mar 21 01:28:14 2002  Tim Janik  <timj@gtk.org>
966
967         * gsignal.[hc]:
968         * gobject.[hc]: fix extraneous include.
969
970 Tue Mar 19 18:57:12 2002  Tim Janik  <timj@gtk.org>
971
972         * gtype.c (check_add_interface_L): applied patch from Matthias Clasen
973         <maclas@gmx.de> to check for prerequisite of interfaces, fixes #74427.
974         fixed mutex recursion in his patch (we can't call g_type_is_a() while
975         holding a read lock).
976
977         * gparam.c (canonalize_key): cleanup.
978
979 2002-03-13  Alexander Larsson  <alla@lysator.liu.se>
980
981         * gparam.c (canonalize_key):
982         Function to canonicalize parameter names. Faster than
983         using g_strcanon().
984         (g_param_spec_internal, param_spec_ht_lookup):
985         Use canonalize_key.
986
987 2002-03-13  Erwann Chenede  <erwann.chenede@sun.com>
988         * gobject/gclosure.c  
989         * gobject/gobject.c 
990         * gobject/gsignal.c: fixed cast problems with function pointer
991         to avoid warnings (with forte compiler) (#73898)
992         
993 2002-03-05  Sven Neumann  <sven@gimp.org>
994
995         * gvaluetransform.c (g_value_transforms_init): don't try to 
996         register undeclared value transform functions if G_GINT64_FORMAT
997         or G_GUINT64_FORMAT are undefined (#73586).
998
999 2002-03-03  Tor Lillqvist  <tml@iki.fi>
1000
1001         * makefile.msc.in
1002         * makefile.mingw.in: Rename testgruntime to testgobject here, too.
1003
1004 Sun Mar  3 04:11:58 2002  Tim Janik  <timj@gtk.org>
1005
1006         * gobject.c: placed a comment about not changing CArray until we have
1007         g_object_list_watched_closures().
1008
1009         * gparam.h (struct _GParamSpecClass): added padding.
1010
1011         * gobjectnotifyqueue.c (struct _GObjectNotifyQueue): abuse
1012         g_list_alloc() to allocate GObjectNotifyQueue to et rid
1013         of locking issues.
1014
1015 Tue Feb 26 10:51:00 2002  Owen Taylor  <otaylor@redhat.com>
1016
1017         * Makefile.am (testgobject_LDADD): Rename testgruntime
1018         to testgobject.
1019
1020 Sun Feb 24 22:08:29 2002  Owen Taylor  <otaylor@redhat.com>
1021
1022         * gtypemodule.[ch] (g_type_module_add_interface): Make
1023         GInterfaceInfo paramter const to correspond to the
1024         conventions for the g_type_add_interface() functions.
1025         (#72461, Miroslaw Dobrzanski-Neumann)
1026
1027 Sat Feb 23 13:28:56 2002  Owen Taylor  <otaylor@redhat.com>
1028
1029         * gtypeplugin.h (struct _GTypePluginClass): Add some
1030         padding to the class.
1031
1032         * gclosure.h (struct _GClosure): Fix typo in comment.
1033
1034 2002-02-20  Tor Lillqvist  <tml@iki.fi>
1035
1036         * gobject.def: Add g_value_set_object_take_ownership and
1037         g_value_set_param_take_ownership.
1038
1039 Wed Feb 20 22:55:15 2002  Owen Taylor  <otaylor@redhat.com>
1040
1041         * gobject.c: Fix implicit conversions between void * and 
1042         function pointer (Miroslaw Dobrzanski-Neumann, #71963)
1043
1044 Sun Feb 16 22:08:48 2002  Tim Janik  <timj@gtk.org>
1045
1046         * gobject.[hc]:
1047         * gparam.[hc]: provide marshaller specific value_set_*_take_ownership()
1048         variants.
1049
1050         * gvalue.h: shrink GValue's data contents to 2 unions.
1051
1052         * glib-genmarshal.c: fix release and realeas_check hackage by always
1053         using _take_ownership() variants. directly access value contents if
1054         G_ENABLE_DEBUG is not defined.
1055
1056         * gobject.h: add padding pointers to the class struct.
1057
1058 Wed Feb 13 17:22:37 2002  Tim Janik  <timj@gtk.org>
1059
1060         * gtype.c (g_type_value_table_peek): fixed a check for node not being NULL.
1061
1062 Wed Feb 13 06:53:50 2002  Tim Janik  <timj@gtk.org>
1063
1064         * gparam.c: remove extraneous redefinition of G_PARAM_SPEC_CLASS().
1065
1066 Wed Feb 13 06:29:51 2002  Tim Janik  <timj@gtk.org>
1067
1068         * gvaluetransform.c: cosmetic cleanups, fixed [u]int64->string
1069         conversions.
1070
1071         * ChangeLog: added entry from owen which went into the wrong
1072         file.
1073
1074 Fri Feb  8 23:52:27 2002  Owen Taylor  <otaylor@redhat.com>
1075
1076         * gobject/gvaluetransform.c: Register transformations for
1077         gint64, guint64. (#70780, patch from Andy Wingo)
1078
1079 2002-02-10  Hans Breuer  <hans@breuer.org>
1080
1081         * gvaluetransform.c : msvc 5.0 can't cast from uint64 to
1082         double. Disable respective transform_func than.
1083
1084         * makefile.msc.in : build test programs
1085
1086 Thu Jan 24 07:39:56 2002  Tim Janik  <timj@gtk.org>
1087
1088         * gobject.c (g_signal_connect_object): return gulong instead
1089         of guint.
1090
1091 Fri Jan 11 12:26:36 2002  Tim Janik  <timj@gtk.org>
1092
1093         * gparamspecs.c: fixed param_value_array_values_cmp(),
1094         param_value_array_validate() and
1095         param_value_array_set_default() to deal with NULL value
1096         arrays.
1097
1098 Wed Jan  9 05:23:27 2002  Tim Janik  <timj@gtk.org>
1099
1100         * gobject.h (G_OBJECT_WARN_INVALID_PROPERTY_ID): cosmetic fix.
1101
1102 2002-01-05  Hans Breuer  <hans@breuer.org>
1103
1104         * makefile.msc.in : use -FImsvc_recommended_pragmas.h
1105
1106 Fri Jan  4 04:36:46 2002  Tim Janik  <timj@gtk.org>
1107
1108         * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): turn this into a GType,
1109         so negating it works on 64bit platforms.
1110
1111 2001-12-21  Tor Lillqvist  <tml@iki.fi>
1112
1113         * gobject.def: Add g_signal_get_invocation_hint.
1114
1115 Tue Dec 18 21:39:57 2001  Tim Janik  <timj@gtk.org>
1116
1117         * testoverride.c: added some assertions to test
1118         g_signal_get_invocation_hint().
1119
1120         * gsignal.[hc]: remove signal_id argument from
1121         g_signal_chain_from_overridden(), the parameters are assumed to match
1122         the innermost signal currently in emission for this instance.
1123         added g_signal_get_invocation_hint() to figure the invocation hint
1124         of the innermost signal emission of an instance.
1125
1126         * gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
1127         access a bsearch array and not a pointer to it (discovered by
1128         Sven Neumann).
1129
1130 2001-12-17  Anders Carlsson  <andersca@gnu.org>
1131
1132         * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): Set the reserved bit
1133         to (1 << 0) instead of (1 << 30). 
1134
1135 2001-12-14  James Henstridge  <james@daa.com.au>
1136
1137         * Makefile.am: add rules to build it.
1138
1139         * testoverride.c: test program for closure override/chaining.
1140
1141 Thu Dec 13 08:03:17 2001  Tim Janik  <timj@gtk.org>
1142
1143         * gsignal.c: implemented closure chaining.
1144
1145 2001-12-08  Christopher Blizzard  <blizzard@redhat.com>
1146
1147         * gsignal.h (g_signal_connect): Explicitly add a cast to the last
1148         argument so that the macro will work from C++.
1149
1150 2001-12-06  Tor Lillqvist  <tml@iki.fi>
1151
1152         * makefile.mingw.in (gobject_OBJECTS): Add gsourceclosure.o.
1153
1154 Mon Nov 26 09:55:12 2001  Tim Janik  <timj@gtk.org>
1155
1156         * gtype.h: typedef GType to gulong instead of gsize, if possible.
1157
1158         * gtype.c: fixups for GType being sizeof(long) wide (changed
1159         UINT casts).
1160         * gsignal.c:
1161         * gclosure.c:
1162         * gparam.c: likewise.
1163
1164 Sun Nov 25 22:33:32 2001  Tim Janik  <timj@gtk.org>
1165
1166         * gtype.h: removed enum GTypeFundamentals. use macros
1167         to provide the constant fundamental type IDs, so they
1168         all return numbers of type GType, and not int.
1169         sizeof(GTypeFundamentals) < sizeof(GType) problem reported
1170         and fix sugegsted by Havoc.
1171
1172 2001-11-23  Hans Breuer  <hans@breuer.org>
1173
1174         * gobject.def : updated externals
1175
1176 Mon Nov 19 14:35:56 2001  Owen Taylor  <otaylor@redhat.com>
1177  
1178         * *.h: Improve the detection of invalid includes by moving
1179         the test outside the duplicate include guards.
1180  
1181         * gsourceclosure.c (g_source_set_closure): Doc fix.
1182
1183 Thu Nov 22 03:30:57 2001  Tim Janik  <timj@gtk.org>
1184
1185         * gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
1186         instead of g_type_value_table_peek().
1187
1188         * gtype.[hc] (type_check_is_value_type_U): speed up check
1189         LOCK-less by caching lookups in node->mutatable_has_value_table.
1190
1191         * gtype.[hc]: removed locks where possible. partly based on
1192         patches from owen and alex.
1193
1194 Thu Nov 22 00:26:26 2001  Tim Janik  <timj@gtk.org>
1195
1196         * gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
1197         g_type_fundamental_next() to return next usable fundamental
1198         type. use TypeNode pointers as type IDs.
1199         
1200 2001-11-22  Tor Lillqvist  <tml@iki.fi>
1201
1202         * makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
1203
1204         * gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
1205         makes sense only when building libglib. GOBJECT_VAR is similar for
1206         libgobject.
1207
1208         * gobject.def: Add g_param_spec_types, remove
1209         g_type_fundamental_branch_last.
1210
1211 Wed Nov 21 17:23:33 2001  Tim Janik  <timj@gtk.org>
1212
1213         * gparamspecs.[hc]: put newly created param spec types into a
1214         global array.
1215
1216         * gboxed.[hc]: moved boxed types with _get_type() function here,
1217         for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
1218         G_TYPE_GSTRING.
1219
1220         * gtype.h: removed fundamental branch APIs and derived enum
1221         values. define GType as gsize.
1222
1223 2001-11-19  jacob berkman  <jacob@ximian.com>
1224
1225         * gobjectnotifyqueue.c: include glib-object.h rather than
1226         gobject/gobject.h
1227
1228 2001-11-16  Mark McLoughlin  <mark@skynet.ie>
1229
1230         * glib-mkenums.in: allow the enums name to not be on the same
1231         line as the trailing '}'. (#64714)
1232
1233 2001-11-18  Hans Breuer  <hans@breuer.org>
1234
1235         * makefile.msc.in : remove g_log_domain_gruntime usage
1236
1237 Sat Nov 17 18:14:40 2001  Owen Taylor  <otaylor@redhat.com>
1238
1239         * glib-genmarshal.c: Exit with non-zero exit status if
1240         any errors were encountered.
1241
1242         * glib-genmarshal.c: Instead of generating gobject/gmarshal.h
1243         #include only for the header, generate glib-object.h 
1244         #include for both the header and body. (#63834)
1245
1246         * glib-genmarshal.c: Generate include guards around the 
1247         content unless --nostdinc is specified.
1248
1249 2001-11-17  Tor Lillqvist  <tml@iki.fi>
1250
1251         * gobject.def: Add g_pointer_type_register_static.
1252
1253 2001-11-15  Tor Lillqvist  <tml@iki.fi>
1254
1255         * gobject.def: Reflect recent changes.
1256
1257 Tue Nov 13 23:18:10 2001  Tim Janik  <timj@gtk.org>
1258
1259         * gsignal.[hc]: add API for chaining:
1260         g_signal_chain_from_overridden() and g_signal_override_class_closure(),
1261         implementation yet to come.
1262
1263         * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
1264         
1265         * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
1266         get_name and get_blurb, to be consistent with the rest of the
1267         g_param_spec_*() functions.
1268         
1269         * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
1270         G_TYPE_CLOSURE is a boxed type already.
1271         
1272 Tue Nov 13 22:16:41 2001  Tim Janik  <timj@gtk.org>
1273
1274         * gtype.[hc]: API cleanups.
1275         remove g_type_check_flags(), provide g_type_test_flags() as
1276         a *private* function.
1277         s/g_type_check_is_a/g_type_check_class_is_a/, private function.
1278         s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
1279
1280 Tue Nov 13 20:02:47 2001  Tim Janik  <timj@gtk.org>
1281
1282         * gparam.h: fix standard type macros.
1283
1284 Wed Nov  7 00:56:00 2001  Tim Janik  <timj@gtk.org>
1285
1286         * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
1287         to walk the notifier list (puhh, black magic, stay-away-warning ;).
1288
1289 Mon Nov  5 18:59:08 2001  Tim Janik  <timj@gtk.org>
1290
1291         * gobject.h: 
1292         * gsignal.h: we need signal.h for G_BREAKPOINT().
1293
1294 Sun Nov  4 14:01:23 2001  Owen Taylor  <otaylor@redhat.com>
1295
1296         * gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
1297         to register a type derived from G_TYPE_POINTER.
1298
1299 2001-11-03  Hans Breuer  <hans@breuer.org>
1300
1301         * makefile.msc.in : gobject-query needs gmarshal.[hc,stings]
1302         so build it after them. Add gsourceclosure.obj. 
1303
1304         * gobject.def : removed duplicates, added mising
1305
1306 Mon Oct 29 11:05:15 2001  Owen Taylor  <otaylor@redhat.com>
1307
1308         * glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in, 
1309         substituting in path to perl.  (#63093, Dan Winship)
1310
1311         * Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
1312         from srcdir.
1313
1314 2001-10-26  Tor Lillqvist  <tml@iki.fi>
1315
1316         * makefile.mingw.in: When running glib-genmarshal, set PATH to
1317         include ../glib.
1318
1319 2001-10-23  Tor Lillqvist  <tml@iki.fi>
1320
1321         * Makefile.am: (Win32): If we have built the MSVC import library,
1322         install it. Install the gcc import library. Also support
1323         uninstall.
1324
1325 2001-10-13  Matthias Clasen  <matthiasc@poet.de>
1326
1327         * glib-genmarshal.1, glib-mkenums.1: Typo fixes.
1328
1329 Fri Oct 12 18:40:18 2001  Tim Janik  <timj@gtk.org>
1330
1331         * cosmetic fixups.
1332
1333 Wed Oct 10 17:25:22 2001  Joshua N Pritikin  <vishnu@pobox.com>
1334
1335         * glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
1336         gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
1337         gint64 & guint64 (#59254).
1338         
1339         * Unconditionalize same (compile with or without G_HAVE_INT64).
1340
1341 Wed Oct 10 15:38:58 2001  Joshua N Pritikin  <vishnu@pobox.com>
1342
1343         * gparamspecs.h (G_IS_PARAM_SPEC_FLAGS): Fix order of
1344         *_PARAM_SPEC_ULONG defines.
1345
1346 Thu Oct  4 01:10:52 2001  Owen Taylor  <otaylor@redhat.com>
1347
1348         * gparamspecs.h: Add missing G_HAVE_GINT64 conditionalization.
1349
1350 Wed Oct  3 16:02:24 2001  Owen Taylor  <otaylor@redhat.com>
1351
1352         * glib-genmarshal.c gparamspecs.[ch] gvalue.h 
1353         gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
1354         and storing it in GValue (Patch from Mathieu Lacage, #59254.)
1355
1356 2001-10-03  jacob berkman  <jacob@ximian.com>
1357
1358         * gtype.c (type_iface_retrieve_holder_info_Wm): 
1359         (type_iface_vtable_init_Wm): 
1360         (type_iface_vtable_finalize_Wm): 
1361         (g_type_class_ref): 
1362
1363         * gobject.c (g_object_get_property): s/retrive/retrieve/
1364
1365 2001-09-25  Tor Lillqvist  <tml@iki.fi>
1366
1367         * Makefile.am: Use new macros for .def file, and check for
1368         MS_LIB_AVAILABLE, new rule to build MS import library.
1369
1370         * makefile.msc.in: Use same DLL and import library names as
1371         libtool.
1372         
1373 2001-09-21  Hans Breuer  <hans@breuer.org>
1374
1375         * gobject.def : updated externals
1376
1377 2001-09-19  Tor Lillqvist  <tml@iki.fi>
1378
1379         * gobject.rc.in: Correct InternalName and OriginalFilename to
1380         match what we actually produce.
1381
1382 Tue Sep 18 23:09:02 2001  Tim Janik  <timj@gtk.org>
1383
1384         * gparam.[hc]: rename *nick and *blurb fields to catch
1385         direct accesses in third party code.
1386         provide g_param_get_nick(), g_param_get_blurb() and
1387         g_param_get_name() accessors.
1388
1389 Mon Sep 10 20:31:37 2001  Tim Janik  <timj@gtk.org>
1390
1391         * gobject.[hc]: removed extraneous GObject* returns from a
1392         couple functions that are very unlikely to be used in nested.
1393         changed gpointer->GObject* for a couple return values/arguments.
1394         this fixes #50206.
1395
1396 Mon Sep 10 19:27:47 2001  Tim Janik  <timj@gtk.org>
1397
1398         * gtype.[hc]:
1399         g_type_add_interface*(): implement the ability to add an interface to
1400         a type whose parents already conform to this interface.
1401         such "overriding" interfaces, when initialized, are not just initialized
1402         with 0, but with a copy of the interface they override.
1403         g_type_interface_peek_parent(): new function, return the interface
1404         that this interface "overrides", if any.
1405
1406         * testgruntime.c: test new interface stuff.
1407
1408 2001-09-10  Alex Larsson  <alexl@redhat.com>
1409
1410         * gobject/gboxed.[ch]:
1411         * gobject/gsourceclosure.c:
1412         Removed is_refcounted and GBoxedInitFunc from
1413         g_boxed_type_register_static().
1414
1415 Sat Sep  8 14:13:57 2001  Owen Taylor  <otaylor@redhat.com>
1416
1417         * gobject/Makefile.am: Move gbsearcharray.[ch] to glib
1418         as a private ininstalled header.
1419
1420 Tue Sep  4 22:24:48 2001  Matthias Clasen  <matthiasc@poet.de>
1421
1422         * gobject.c (g_object_base_class_finalize): typo fix.
1423
1424 Tue Sep  4 01:49:18 2001  Tim Janik  <timj@gtk.org>
1425
1426         * gsourceclosure.c: make closure_callback_funcs static,
1427         added some g_return_if_fail() statements.
1428
1429 Mon Aug 27 14:55:27 2001  Owen Taylor  <otaylor@redhat.com>
1430
1431         * gsourceclosure.[ch] (g_source_set_closure): Implement.
1432
1433         * gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
1434
1435 2001-08-17  James Henstridge  <james@daa.com.au>
1436
1437         * gobject.c (WeakRefStack): add an object member to the structure.
1438         (weak_refs_notify): pass wstack->object as extra argument to
1439         notify functions.
1440         (g_object_weak_ref): set wstack->object when initialising
1441         WeakRefStack.
1442
1443         * gobject.h (GWeakNotify): add second argument to prototype which
1444         gives the pointer to where the object that is being disposed of
1445         was.
1446
1447 Wed Jul 18 19:42:31 2001  Tim Janik  <timj@gtk.org>
1448
1449         * gtype.h: if __GNUC__ is defined, inline a test for an exact type
1450         match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
1451         G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
1452
1453 Sun Aug 12 02:07:10 2001  Tim Janik  <timj@gtk.org>
1454
1455         * gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
1456         properly, group value allocations.
1457         (g_value_array_new): fix semantic of n_prealloced argument, so it's
1458         really just about preallocation space.
1459
1460 2001-07-23  Padraig O'Briain <Padraig.Obriain@Sun.COM>
1461         
1462         * gobject/gobjectnotifyqueue.c: fix unconditional check of
1463         first GParamSpec in g_object_notify_queue_thaw(); to prevent
1464         property notification being lost.
1465
1466 2001-08-06  Sven Neumann  <sven@gimp.org>
1467
1468         * gobject.[ch]: 
1469         added new functions g_object_[add|remove]_weak_pointer().
1470
1471 2001-08-01  Sven Neumann  <sven@gimp.org>
1472
1473         * gsignal.h: added convenience macro g_signal_connect_after().
1474
1475 2001-07-29  Hans Breuer  <hans@breuer.org>
1476
1477         * gobject.def : updated externals
1478
1479 2001-07-20  Hans Breuer  <hans@breuer.org>
1480
1481         * gobject.def : updated externals
1482
1483         * makefile.msc.in : reflect glib move
1484
1485 Tue Jul 10 18:50:16 2001  Tim Janik  <timj@gtk.org>
1486
1487         * gsignal.h (struct _GSignalQuery): fix misplaced comment.
1488
1489 Mon Jul  2 07:17:47 2001  Tim Janik  <timj@gtk.org>
1490
1491         * gobject.c (g_object_weak_ref): 
1492         (g_object_watch_closure): congrats tim, introducing of-by-one
1493         errors like on my very first day of C programming.
1494
1495 Sat Jun 30 11:07:00 2001  Tim Janik  <timj@gtk.org>
1496
1497         * gobject.[hc]: provide weak_ref/weak_unref functions,
1498         invoked from ->dispose. renamed ->shutdown() to ->dispose(),
1499         provide "public" API entry here: g_object_run_dispose(), this
1500         fucntion should _only_ be called from object system implementations
1501         (e.g. gtkobject.c) if at all.
1502
1503         * gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
1504
1505         * gsignal.h: removed compat aliases.
1506
1507         * gobject.c (g_object_connect): support data objects.
1508         
1509 Sat Jun 30 13:17:12 2001  Owen Taylor  <otaylor@redhat.com>
1510
1511         * testgruntime.c (test_object_class_init)
1512           gobject.c (g_object_do_class_init): 
1513           g_signal_newc() => g_signal_new().
1514
1515 Thu Jun 28 22:49:40 2001  Owen Taylor  <otaylor@redhat.com>
1516
1517         * gtype.[ch] gobject-query.c testgruntime.c: Remove
1518         debug flag argument to g_type_init() and add
1519         g_type_init_with_debug_flags().
1520
1521 Thu Jun 28 16:42:49 2001  Tim Janik  <timj@gtk.org>
1522
1523         * gsignal.c (g_signal_lookup): 
1524         (g_signal_list_ids): give elaborate warnings about invalid types,
1525         non-instantiatable types and unloaded types that we can't operate on.
1526
1527         * gparam.[hc]: g_param_spec_pool_belongings() ->
1528         g_param_spec_pool_list_owned().
1529
1530         * gsignal.[hc]: renamed:
1531         g_signal_newc -> g_signal_new
1532         g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
1533         g_signal_block_by_func -> g_signal_handlers_block_by_func
1534         g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
1535         added GConnectType to simplify (..gboolean swapped, gboolean after)
1536         args.
1537
1538         * gobject.[hc]: changed prototypes accordingly.
1539
1540 2001-06-22  Hans Breuer  <hans@breuer.org>
1541
1542         * gobject.def : updated externals
1543
1544         * gobjectnotifyqueue.c : include <string.h> for memset ()
1545
1546 Thu Jun 21 02:43:10 2001  Tim Janik  <timj@gtk.org>
1547
1548         * gparamspecs.h: s/long/int/ for default_value in enum and flags
1549         pspecs.
1550
1551 Wed Jun 20 03:59:42 2001  Tim Janik  <timj@gtk.org>
1552
1553         * gtype.[hc]: added debugging variants g_type_name_from_class(),
1554         g_type_name_from_instance().
1555
1556 Mon Jun 11 17:07:06 2001  Tim Janik  <timj@gtk.org>
1557
1558         * gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
1559
1560         * gobjectnotifyqueue.c: moved property notify queue implementation
1561         bits into this function.
1562
1563         * gparam.[hc]: added g_param_spec_pool_belongings(), completed
1564         g_param_spec_pool_list(). added GParameter for _setv() functions.
1565
1566         * gobject.[hc]: use gobjectnotifyqueue.h implementation now.
1567         got rid of properties_changed signal.
1568         new functions g_object_newv(), g_object_class_list_properties().
1569         removed "properties_changed" signal.
1570
1571         * gtype.[hc]: added g_type_depth() to figure number of parent
1572         types + 1 for a type.
1573
1574         * gsignal.h: add g_signal_connect() (as per owen's request) and
1575         g_signal_connect_swapped().
1576
1577 2001-06-13  Havoc Pennington  <hp@redhat.com>
1578
1579         * Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
1580         since an installed libgobject was somehow being found; think 
1581         it's a libtool bug, but this workaround should do for now.
1582
1583 2001-06-12  Havoc Pennington  <hp@redhat.com>
1584
1585         * Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
1586         bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
1587         in bin_SCRIPTS and cp it into builddir
1588
1589 Thu May 31 17:56:47 2001  Owen Taylor  <otaylor@redhat.com>
1590
1591         * gobject-query.c: Fix mispelling in help output.
1592         (#53952, Skip Montanaro)
1593
1594 2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1595
1596         * Makefile.am (EXTRA_DIST): Really distribute glib-mkenums, now
1597         that bin_SCRIPTS doesn't seem to care about doing so anymore.
1598
1599 Mon May 28 06:51:24 2001  Tim Janik  <timj@gtk.org>
1600
1601         * gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
1602         to release signal lock when restarting emissions.
1603
1604 Sun May 27 04:52:28 2001  Tim Janik  <timj@gtk.org>
1605
1606         * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
1607         to stop signal emissions through a detailed_signal string.
1608
1609         * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
1610         the fact that g_value_* functions may cause signal emissons by
1611         unlocking the global signal system lock around g_value_* functions.
1612         (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
1613         that this functions acquires the lock on its own now.
1614
1615 2001-05-24  Hans Breuer  <hans@breuer.org>
1616
1617         * makefile.msc.in : changed depndencies to build glib-genmarshal
1618         first and statically linked with glib, which makes it independent
1619         from the installed glib version. Added new object files to build.
1620
1621         * gobject.def : updated
1622
1623 Thu May 24 08:52:02 2001  Owen Taylor  <otaylor@redhat.com>
1624
1625         * gobject.[ch] (g_value_set_object): gpointer, not
1626         gpointer *.
1627
1628 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1629
1630         * Makefile.am (bin_SCRIPTS): made 'make distcheck' happy.
1631
1632         * gobject.def: Removed g_param_spec_stringc.
1633
1634 Tue May 22 02:46:13 2001  Tim Janik  <timj@gtk.org>
1635
1636         * gobject.c (g_value_set_object): make g_value_set_object()
1637         take a gpointer v_object so people don't need to G_OBJECT()
1638         cast NULL pointers (C code convenience).
1639
1640 Mon May 14 01:49:01 2001  Tim Janik  <timj@gtk.org>
1641
1642         * gsignal.[hc] (g_signal_handler_is_connected): new function
1643         to check whether a handler is still connected to an instance
1644         (by handler id).
1645
1646 Thu May 10 14:00:48 2001  Tim Janik  <timj@gtk.org>
1647
1648         * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
1649         evidence of public need.
1650
1651         * gsignal.h: added g_signal_disconnect_by_func(),
1652         g_signal_block_by_func() and g_signal_unblock_by_func() convenience
1653         macros as per owen's request.
1654
1655         * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
1656         to size of longs and pointers.
1657
1658 2001-05-05  James Henstridge  <james@daa.com.au>
1659
1660         * Makefile.am: glib-mkenums is not a compiled program, so shouldn't
1661         be in the bin_PROGRAMS primary.  Put it in bin_SCRIPTS instead, and
1662         removed the glib_mkenums_SOURCES var.
1663
1664 Thu May  3 06:10:23 2001  Owen Taylor  <otaylor@redhat.com>
1665
1666         * gobject.c (g_object_set_[q]data_full): Make types of ternary
1667         operator correspond. (Fixes compilation errors with Sun CC,
1668         #52230)
1669
1670 Mon Apr 30 20:03:56 2001  Tim Janik  <timj@gtk.org>
1671
1672         * glib-mkenums (usage): removed \v escaping, newer perl versions don't
1673         support this, and it'S probably useless anyways.
1674
1675 Sat Apr 28 23:39:42 2001  Tim Janik  <timj@gtk.org>
1676
1677         * gsignal.[hc]: made signal handler and emission hook ids gulongs.
1678         (signal_handlers_foreach_matched_R): only invoke callback for handlers
1679         that are not disconnected (id>0).
1680         (signal_emit_R): prevent invocation of signal handlers during the
1681         emission they were connected within.
1682         
1683         * glib-mkenums: publically installed perl-script to parse C code
1684         enums and generate descriptions thereof.
1685         * glib-mkenums.1: assorted man page.
1686         
1687 2001-04-19  Havoc Pennington  <hp@redhat.com>
1688
1689         * gobject.c (g_object_get_valist): We were returning junk memory
1690         here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
1691         passed to G_VALUE_LCOPY) and then we freed the GValue immediately
1692         after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
1693         G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
1694
1695 Wed Apr 18 09:46:56 2001  Owen Taylor  <otaylor@redhat.com>
1696
1697         * gobject.c gsignal.c: Change C++ comments for FIXME's to
1698         C comments. (Patch from Andres Salomon)
1699
1700 2001-04-14  Hans Breuer  <hans@breuer.org>
1701
1702         * gobject.def : updated
1703
1704 Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
1705
1706         * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
1707         we're valid (about to actually do marshalling).
1708
1709 Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
1710
1711         * NEWS: updates.
1712
1713 Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
1714
1715         * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
1716         owner_type. the pspecs are not referenced, so the caller is
1717         supposed to have some idea about owner_type not randomly
1718         nuking his pspec's. if this is going to provide problems in
1719         the future, we can either auto-ref the pspecs, or add a
1720         _foreach variant, though the latter would have to invoke
1721         the callback while pspec's mutex is acquired, so i just
1722         went for the _list variant for now.
1723
1724         * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
1725
1726 Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
1727
1728         * gtype.h:
1729         * gparamspecs.[hc]: applied patch from owen to implement
1730         GParamSpecUnichar.
1731
1732 Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
1733
1734         * gtype.c (type_iface_retrive_holder_info_Wm): 
1735         * gtypeplugin.c (g_type_plugin_complete_interface_info): 
1736         * gtypemodule.c (g_type_module_complete_interface_info): 
1737         change order of instance_type and interface_type so they match
1738         the g_type_add_interface_*() API.
1739
1740         * gsignal.c (g_signal_emit_valist): always assign C return value
1741         location, people depending on unaltered return values after emissions
1742         that had no handlers to run need to use g_signal_emitv().
1743
1744         * gtype.[hc] (g_type_query): new function to allow querying of
1745         class and object size (semantics like g_signal_query()).
1746         currently the implementation is better held conservative so as to
1747         only support types that are classed and static.
1748
1749 2001-03-29  Tor Lillqvist  <tml@iki.fi>
1750
1751         * gobject.def: Updates.
1752
1753 Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
1754
1755         * gobject.c (object_queue_property): only queue readable properties
1756         for notification changes.
1757
1758 Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
1759
1760         * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
1761
1762 2001-03-21  Martin Baulig  <baulig@suse.de>
1763
1764         * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
1765         argument.
1766
1767 2001-03-18  Tor Lillqvist  <tml@iki.fi>
1768
1769         * gobject.def: Correct some renamed functions.
1770
1771 Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
1772
1773         * gobject.c (g_object_get_property): minor bug-fix.
1774
1775         * gbsearcharray.[hc]: provide a macro for static initialization and
1776         functions g_bsearch_array_new() and g_bsearch_array_destroy() for
1777         dynamic allocations.
1778         
1779         * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
1780         
1781         * gclosure.[hc]: naming corrections.
1782
1783 Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
1784
1785         * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
1786         a public function (was static in gobject.c before). it's a bit odd
1787         to have that function here, especially since it requires extra includes,
1788         but then it doesn't very well fit somewhere else either.
1789
1790         * gparamspecs.c: added default/max/min checks to param spec creation
1791         functions.
1792
1793 2001-03-10  Tor Lillqvist  <tml@iki.fi>
1794
1795         * gobject.def: Add a couple of missing entries.
1796
1797         * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
1798
1799 Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
1800
1801         * testgruntime.c: test program. covers run first/last/cleanup signal
1802         handlers, return value accumulator, signal string returns, and
1803         interface types in signal arguments.
1804
1805         * gtype.c (g_type_value_table_peek): for interface types without
1806         value table, try looking up a value table from an instantiatable
1807         prerequisite type (this is safe as an interface may only have
1808         one instantiatable prerequisiste).
1809         (type_check_is_value_type_U): same here.
1810
1811         * gsignal.c (g_signal_newv): assert that return types never have
1812         G_SIGNAL_TYPE_STATIC_SCOPE set.
1813         (g_signal_newc): only create class closure if the class_offset is not
1814         0.
1815
1816 Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
1817
1818         * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
1819         for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
1820         that wouldn't allow interface types.
1821
1822         * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
1823         with bad implications and an off-by-one error.
1824
1825 Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
1826
1827         * gvaluetransform.c: Include <string.h> for memcpy.
1828
1829         * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
1830         and ANSI-illegal ## token pasting.
1831
1832 Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
1833
1834         * gsignal.c: eek, fixed old hook detail storage code.
1835
1836 Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
1837
1838         * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
1839
1840         * gsignal.[hc]: fixed accumulator invocation, implemented emission
1841         hooks. and no, neither of these callbacks are called via a closure,
1842         language bindings can wrap the accumulator and emission hook
1843         interface, they already get parameters marshalled into a GValue array.
1844         (g_signal_connect): removed this function as its C specific, doesn't
1845         cover the swapped argument, is too close to its broken original
1846         gtk_signal_connect() and creates demand for _swapped, _after and
1847         _swapped_after variants <brrr>.
1848         (g_signal_connectc): convenience macro to connect a C handler
1849         func with data, like the old g_signal_connect() plus swapped
1850         argument.
1851
1852         * gtype.h:
1853         * gboxed.c: added G_TYPE_VALUE boxed type.
1854
1855 Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
1856
1857         * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
1858         to an ancestor of a child that already conforms to this interface.
1859         currently we spew a warning here, should we be silent?
1860         (g_type_interface_add_prerequisite): new function to add a prerequisite
1861         type to an interface, that must succeed an instance is_a prerequisite
1862         type check before the interface can be added to an instance. the
1863         prerequisite types are also suuported in is_a checks of the interface.
1864         (g_type_instance_is_a):
1865         (g_type_check_instance_cast):
1866         (g_type_check_instance): cleanups and optimizations.
1867         (g_type_class_is_a):
1868         (g_type_check_class_cast): same, also prevented these from accepting
1869         interface types, as class structures don't nest interfaces.
1870
1871 2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1872
1873         * Makefile.am: Avoid rebuilding everything everytime.
1874
1875 Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
1876
1877         * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
1878         to contain an optional init function and a hint at whether the
1879         boxed structure uses ref counting internally.
1880         added g_value_set_boxed_take_ownership().
1881         made G_TYPE_BOXED an abstract value type.
1882
1883         * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
1884         types.
1885
1886         * glib-genmarshal.c: argument type changes, preparation for third-party
1887         arg specification.
1888
1889         * gobject.[hc]: cleaned up get/set property code.
1890         added g_strdup_value_contents() to improve warnings.
1891
1892         * gparam.[hc]: added g_param_value_convert(), taking over responsibility
1893         of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
1894         validation alterations may be valid a part of the property setting
1895         process.
1896
1897         * gparamspecs.[hc]: made value comparisons stable (for sort applications).
1898         added GParamSpecValueArray, a param spec for value arrays and
1899         GParamSpecClosure. nuked the value exchange functions and
1900         GParamSpecCCallback.
1901
1902         * gtype.[hc]: catch unintialized usages of the type system with
1903         g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
1904         to flag types that introduce a value table, but can't be used for
1905         g_value_init(). cleaned up reserved type ids.
1906
1907         * gvalue.[hc]: code cleanups and saner checking.
1908         nuked the value exchange API. implemented value transformations, we
1909         can't really "convert" values, rather transforms are an anylogy to
1910         C casts, real conversions need a param spec for validation, which is
1911         why g_param_value_convert() does real conversions now.
1912
1913         * gvaluearray.[hc]: new files that implement a GValueArray, a struct
1914         that can hold inhomogeneous arrays of value (to that extend that it
1915         also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
1916         this is exposed to the type system as a boxed type.
1917
1918         * gvaluetransform.c: new file implementing most of the former value
1919         exchange functions as single-sided transformations.
1920
1921         * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
1922         g_value_set_string_take_ownership().
1923
1924         * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
1925
1926         * *.[hc]: many fixes and cleanups.
1927
1928         * many warning improvements.
1929
1930 Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
1931
1932         * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
1933         into G_VALUE_LCOPY(), this needs proper documenting.
1934
1935         * gparam.c: fixed G_PARAM_USER_MASK.
1936
1937         * gtype.c (type_data_make_W): 
1938         (type_data_last_unref_Wm): fixed invalid memory freeing.
1939
1940         * gobject.c (g_object_last_unref): destroy signal handlers associated
1941         with object, right before finalization.
1942
1943         * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
1944         that don't actually support details.
1945
1946         * gobject.[hc]: got rid of property trailers. nuked GObject
1947         properties "data" and the "signal" variants.
1948         (g_object_connect): new convenience function to do multiple
1949         signal connections at once.
1950         (g_object_disconnect): likewise, for disconnections.
1951
1952         * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
1953
1954         * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
1955         as private (the latter got renamed from g_value_get_as_pointer()).
1956
1957 2001-02-21  Tor Lillqvist  <tml@iki.fi>
1958
1959         * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
1960
1961         * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
1962         libtool with -no-undefined for Win32 and Cygwin.
1963
1964 Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
1965
1966         * gsignal.h (g_signal_connect): Add g_signal_connect define to
1967         make porting from gtk_signal_connect easy.
1968
1969         * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
1970         (instance) instead of node->itype when initting the value.
1971
1972 2001-02-17  Havoc Pennington  <hp@pobox.com>
1973
1974         Applied patch from Soeren Sandmann:
1975         
1976         * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
1977
1978         * gtype.c (g_type_name): G_CONST_RETURN
1979
1980         * gsignal.c (g_signal_name): G_CONST_RETURN
1981
1982         * gobject-query.c (main): const fix
1983
1984 Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
1985
1986         * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
1987         G_ENUM_CLASS_TYPE() macro.
1988
1989 Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
1990
1991         * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
1992         lcopy_value() in the GTypeValueTable. the collect functions are now
1993         called only once per value, collect_format/lcopy_format are strings
1994         that enlist all necessary GTypeCValues to be varargs-collected.
1995
1996         * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
1997         a value shouldn't copy its contents.
1998
1999         * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
2000         macros to carry an additional argument (flags) that can be used
2001         to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
2002
2003         * *.c: adapted collect_value() and lcopy_value() functions to the new
2004         prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
2005
2006         * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
2007         be passed along (ORed) with the parameter types, indicating that the
2008         emission arguments are to be considered static for the scope of the
2009         emission. should be used with care and only if the caller knows that
2010         a parameter cannot be destroyed/freed from signal handlers connected
2011         to an emission.
2012
2013 Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
2014
2015         * gclosure.c:
2016         (g_closure_ref):
2017         (g_closure_sink): make closure sinking explicit.
2018
2019         * gsignal.c:
2020         (g_signal_connect_data): 
2021         (g_signal_connect_closure): 
2022         (g_signal_connect_closure_by_id): 
2023         (g_signal_newv): perform explicit closure sinking.
2024
2025 Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
2026
2027         * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
2028
2029 2001-02-04  Tor Lillqvist  <tml@iki.fi>
2030
2031         * gobject.def: Remove glib_debug_objects.
2032
2033 Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
2034
2035         * gtype.[hc]: changed g_type_init() to take debugging flags
2036         initially, a combination of G_TYPE_DEBUG_OBJECTS and
2037         G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
2038         here, but basically g_type_int() serves as initialization
2039         fucntion for all of GType, GObject, GSignal, so what the heck.
2040
2041         * gobject.c: special case debugging code properly.
2042         changed glib_trap_object_ref to g_trap_object_ref.
2043
2044         * gsignal.c: add signal emission debugging abilities, along with
2045         a new trap object g_trap_instance_signals.
2046
2047 2001-02-04  Tor Lillqvist  <tml@iki.fi>
2048
2049         * Makefile.am (progs_LDADD): Change order of libs to libgobject
2050         first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
2051
2052 Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
2053
2054         * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
2055
2056         * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
2057         number that's supposed to be left untouched (preserved mainly
2058         for the signal code).
2059
2060         * *.c: added thread safety code, based on an old patch from sebastian.
2061         the remaining thread safety issues are now datalists on pspecs (to be
2062         solved im gdataset.c) and gvalue.c where locking concerns value exchange
2063         functionality only, and that's soon to be revised.
2064
2065 2001-01-27  Tor Lillqvist  <tml@iki.fi>
2066
2067         * makefile.msc.in: Don't try to compile gmarshal.c on its own.
2068
2069 2001-01-24    <alexl@redhat.com>
2070
2071         * gclosure.c (g_closure_unref):
2072         Don't leak closure->notifiers.
2073
2074 2001-01-05  Havoc Pennington  <hp@redhat.com>
2075
2076         * gparamspecs.c (g_param_spec_enum): set the value_type in the
2077         param spec; closes bug 40210
2078         (g_param_spec_flags): ditto for flags
2079
2080 2001-01-03  Alexander Larsson  <alexl@redhat.com>
2081
2082         * gobject.c:
2083         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
2084
2085 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
2086
2087         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
2088         fucntionality if DISABLE_MEM_POOLS is defined.
2089
2090         * gtype.c: honour DISABLE_MEM_POOLS.
2091
2092         * gsignal.c (g_signal_init): flag signal key bsearch array with
2093         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
2094         DISABLE_MEM_POOLS.
2095
2096         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
2097                                                        G_PARAM_WRITABLE).
2098
2099 2000-12-15  Tor Lillqvist  <tml@iki.fi>
2100
2101         * gobject.def: Update.
2102
2103 2000-12-15  Havoc Pennington  <hp@pobox.com>
2104
2105         * gobject.c (g_object_do_class_init): use g_signal_newc
2106
2107         * gsignal.c (g_signal_newc): convenience function for signals
2108         created from C
2109         (g_signal_new_valist): added
2110         (g_signal_new): removed
2111
2112 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
2113
2114         * gparam.[hc]: add an instance member value_type so the default
2115         value of the pspec class can be overridden.
2116
2117 2000-12-14  Tor Lillqvist  <tml@iki.fi>
2118
2119         * makefile.mingw.in: Update, include parts from Makefile.am to
2120         build gmarshal.[ch]. Some day, we won't need these separate
2121         makefiles for Win32 compilation. I hope.
2122
2123         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
2124         here, it would require Unixish tools. MSVC users building from CVS
2125         sources are out of luck.
2126         
2127         * gobject.def: Update.
2128
2129 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
2130
2131         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
2132
2133         * gobject.[hc]: minor fixes.
2134
2135 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
2136
2137         * Makefile.am: _never_ touch oldest-source-stamp.
2138         
2139         * gobject.[hc]: construct property handling fixes/improvements.
2140         fixed trailer handling in get/set property.
2141         
2142         * gparam.[hc]: implement param spec pool, got rid of param spec
2143         hashtable. the most prominent change is that e deal with type
2144         prefixes here.
2145         
2146 2000-12-12  Elliot Lee  <sopwith@redhat.com>
2147
2148         * Makefile.am:
2149           . You have to 'touch oldest-source-stamp' if you want to avoid having
2150           the Makefile constantly rebuild itself.
2151           . Fix marshaller generation rules to work with srcdir != builddir
2152             (there were issues with trying to run "./glib-genmarshal", etc.)
2153
2154 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
2155
2156         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
2157         
2158         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
2159         convenience macro.
2160         
2161         * Makefile.am: cleanups, marshaller generation rules.
2162         
2163         * gmarshal.[hc]: new files with GRuntime standard marshallers.
2164         
2165         * glib-genmarshal.c: fix log domain, support gruntime standard 
2166         marshallers, suport G_TYPE_PARAM, come with extern "C" and
2167         #include gmarshal.h.
2168         
2169         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
2170         
2171         * gobject.[hc]: implement object constructor. rework parameter
2172         changed notification queueing, we support queue freezes now and
2173         don't dispatch from an idle handler anymore.
2174         parameter->property rename hassle.
2175         implemented ::properties_changed and ::notify::* signals for
2176         property change notification (the later supports property names
2177         as details). added signal connection and named data properties.
2178         (g_signal_connect_object): new function to setup while_alive
2179         connections.
2180         (g_object_class_install_property): sink properties now, since they
2181         are initially floating.
2182         (g_object_steal_data):
2183         (g_object_set_data_full):
2184         (g_object_set_data):
2185         (g_object_get_data): set/get data by using g_datalist_*() functions
2186         directly.
2187         (g_object_queue_param_changed): nuked.
2188         (g_object_freeze_notify): start queueing of property changes (freeze/
2189         thaw calls stack).
2190         (g_object_notify): announce changes of a certain property directly.
2191         (g_object_thaw_notify): process queue of property changes, therefore
2192         emitting GObject::notify::detail with detail being the changed
2193         properties names.
2194         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
2195         G_WARN_INVALID_PARAM_ID().
2196         
2197         * gparam.[hc]: param specs are now initially floating and need to be
2198         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
2199         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
2200         required by GObjectClass.constructor().
2201         
2202         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
2203         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
2204         and G_TYPE_CCALLBACK respectively.
2205         
2206         * gsignal.[hc]: cleanups.
2207         (signal_id_lookup): after walking the anchestry, try interfaces as well.
2208         (g_signal_new): new function to create signals from varargs type list.
2209         (g_signal_connect_closure): closure connection variant that works from
2210         signal name+detail.
2211         (g_signal_connect_data): c handler connection variant that works from
2212         signal name+detail.
2213         (g_signal_emit_valist): emit signal for an instance with paraneters
2214         collected from a va_list.
2215         (g_signal_emit): emit signal, taking parameters from varargs list.
2216         (g_signal_emit_by_name): same as g_signal_emit, working from
2217         signal name+detail.
2218         (signal_emit_R): return whether return_value needs to be altered.
2219         
2220         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
2221         the points that need to reflect the upcoming rename.
2222         melt g_type_conforms_to() functionality into g_type_is_a(), as that
2223         is what we really want (liskov substitution principle).
2224         assorted changes to other files due to conforms_to->is_a.
2225
2226         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
2227         from an instantiatable type via the value_table's collect_value()
2228         function (based on an idea from James Henstridge <james@daa.com.au>).
2229         cleanups/fixes.
2230         
2231         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
2232
2233 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
2234
2235         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
2236         NULL nodes if C handlers are searched for specific signals.
2237
2238 2000-11-28  Elliot Lee  <sopwith@redhat.com>
2239
2240         * gsignal.c: Fix warnings about possible use of uninitialized
2241         variables, and fix logic that would leave 'node' unset in cases
2242         that it might be used in.
2243
2244         * glib-genmarshal.c: Fix warning about printf format.
2245
2246 2000-11-28  Tor Lillqvist  <tml@iki.fi>
2247
2248         * gboxed.c: Include <string.h> for memset ().
2249
2250 2000-11-22  Tor Lillqvist  <tml@iki.fi>
2251
2252         * gobject.def: Update.
2253
2254 2000-11-20  Havoc Pennington  <hp@redhat.com>
2255
2256         * gobject.c (g_object_get_data)
2257         (g_object_set_data)
2258         (g_object_set_data_full)
2259         (g_object_steal_data): More convenient data-setting functions
2260
2261 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
2262
2263         * gtypemodule.c (g_type_module_use): If loading the
2264         module fails, don't increment the use count.
2265
2266 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
2267
2268         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
2269         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
2270         Zeeman <maas@wanadoo.nl>.
2271
2272 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
2273
2274         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
2275
2276 2000-11-11  Tor Lillqvist  <tml@iki.fi>
2277
2278         * gtypemodule.c: Include stdlib.h for exit().
2279
2280         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
2281
2282         * gobject.def: Add missing functions.
2283
2284 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
2285
2286         * Makefile.am gtypemodule.[ch]: New basic implementation of
2287         GTypePlugin interface as a GObject. Dynamically loaded modules can
2288         register any number of types and interface on the module.
2289
2290 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
2291
2292         * gsignal.c (handlers_find): When appending handlers and
2293         not matching on signal_id, use hlist->signal_id instead of 
2294         signal_id. Having the correct signal_id when unreffing
2295         the handlers makes things work a lot better.
2296
2297 2000-11-05  Tor Lillqvist  <tml@iki.fi>
2298
2299         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
2300
2301         * gobject.def: Update.
2302
2303 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
2304
2305         * gsignal.c:
2306         fixed a bag full of subtle bugs of immensive screw-up potential in
2307         handlers_find(), luckily no one found out about them yet ;)
2308         fixed signal_handlers_foreach_matched_R() so it operates on an
2309         initial handler list snapshot provided by handlers_find() to work
2310         around general reentrancy problems and to avoid multiple callback()
2311         invocations on the same handlers.
2312         this code is now officially 80% bug free (10% remaining for interface
2313         types, and 10% remaining for destroyed signals ;)
2314         
2315 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
2316
2317         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
2318
2319         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
2320         implementation that provides the API required by GType to deal with
2321         dynamically loadable types.
2322
2323         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
2324
2325 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
2326
2327         * gsignal.[hc]: prefix internal functions with '_'. renamed
2328         g_signal_connect_closure() to g_signal_connect_closure_by_id().
2329         added g_signal_parse_name() to retrive signal_id and detail quark
2330         from a signal name (internal).
2331
2332 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
2333
2334         * gobject.c (g_object_base_class_finalize): destroy all signals that
2335         the finalized obejct type introduced.
2336
2337         * gsignal.c (g_signals_destroy): don't require itype to have
2338         signals.
2339
2340         * gobject.c (g_object_do_finalize): make sure all signal handlers
2341         are destroyed.
2342
2343         * gsignal.[hc]:
2344         (g_signal_handler_find): only match on non-0 masks.
2345         (g_signal_handlers_block_matched):
2346         (g_signal_handlers_unblock_matched):
2347         (g_signal_handlers_disconnect_matched): new functions to block/unblock
2348         or disconnect handlers in groups.
2349
2350 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2351
2352         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
2353         made both functions return gboolean just for the little extra
2354         standard conformance now that GEqualFunc is introduced.
2355
2356 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
2357
2358         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
2359         added, the doc system would ignore it anyways (for some reason not
2360         aparent to me).
2361
2362 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
2363
2364         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
2365         added required mutex locks.
2366
2367 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
2368
2369         * gsignal.c (g_type_signals): Fix problem where signals
2370         with "_" in them appeared twice in the result array.
2371
2372 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
2373
2374         * gsignal.h: Add g_type_signals() - a function to list
2375         all signals for a given type.
2376
2377 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
2378
2379         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
2380         for post_marshal guard which was off at 0.
2381
2382 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
2383
2384         * gobject.[hc]: doh, fix argument order in for
2385         g_cclosure_new_object_swap and g_cclosure_new_object.
2386
2387 2000-10-28  Tor Lillqvist  <tml@iki.fi>
2388
2389         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
2390
2391         * glib-genmarshal.c: Conditionalise include of unistd.h.
2392         Include <io.h> on Win32.
2393
2394         * gobject.def: Add some missing entry points.
2395
2396 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
2397
2398         * gsignal.[hc]: publically define GSignalInvocationHint structure
2399         that gets passed in to closure invocations. added signal details.
2400         renamed GSignalType to GSignalFlags to comply with conventions.
2401         quite some cleanups and minor fixes. avoid uneccessary handler list
2402         walks upon invokation of after handlers. relookup handler list for
2403         restarted emissions. preliminary abort normal handler invokation if
2404         after handler is encountered.
2405
2406         * glib-genmarshal.c:
2407         * gclosure.[hc]: moved invocation_hint to the end of the
2408         g_closure_invoke() arguments as sugegsted by kenelson.
2409         also made it a gpointer to be more generic. the invocation_hint
2410         is a caller specific thing that can be used to pass additional
2411         data in to closure invocations as documented with the caller
2412         invoking the closure.
2413
2414 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
2415
2416         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
2417         by havoc.
2418
2419         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
2420         g_signal_lookup() would be called with the signal lock being
2421         held. reported by james henstridge.
2422
2423         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
2424         reported by owen.
2425
2426 2000-10-26  Tor Lillqvist  <tml@iki.fi>
2427
2428         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
2429         arithmetic on void pointer, label without statement following.
2430
2431         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
2432         result of sizeof operator, it can be unsigned. Cast first to
2433         gssize.
2434
2435         * gobject.def: Add new functions.
2436
2437         * makefile.{mingw,msc}.in: Add new objects.
2438
2439 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2440
2441         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
2442         prevents 'make dist' from working.
2443
2444 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
2445
2446         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
2447         casts from void * since this will get included from C++ too
2448         at times.
2449         
2450 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
2451
2452         * gvaluetypes.[hc]: added g_value_set_static_string().
2453
2454         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
2455
2456 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
2457
2458         * gtype.c (g_type_free_instance): for the moment, freeing object
2459         structures will fill their memory portion with 0xAA. there's a
2460         FIXME there, remove this line at a later point.
2461
2462 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
2463
2464         * glib-genmarshal.1:
2465         * glib-genmarshal.c: added publically installed marshaller generator.
2466
2467         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
2468         interface VTable from instances.
2469
2470 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
2471
2472         * gobject.[hc]: new functions for closure maintenance:
2473         (g_object_watch_closure): maintain validity of the object and
2474         the closure for objects that are used as data part of a closure.
2475         (g_cclosure_new_object): convenience function to create C closures
2476         that have an object as data argument.
2477         (g_closure_new_object): convenience function to create closures
2478         that have an object as data argument.
2479
2480         * gclosure.[hc]: implementation of GClosure mechanism.
2481         a closure is basically an encapsulation of a callback function
2482         and its environment. ideally, most places supporting callback
2483         functions will simply take a GClosure* pointer and thus unify
2484         callback environments wrg destroy notification etc.
2485         GClosure provides destroy notifiers for arbitrary data pointers,
2486         reference counting, invalidation notification (it can be invalidated
2487         which is merely a deactivate state) and a marshallinbg abstraction.
2488         GCClosure is also provided in these files, they present a specialized
2489         GClosure implementation for C language callbacks.
2490
2491         * genum.c: macro cleanups.
2492         
2493         * gboxed.[hc]: new files, for boxed type abstraction.
2494         (g_boxed_copy): copy a boxed structure
2495         (g_boxed_free): free a boxed structure
2496         (g_value_set_boxed):
2497         (g_value_get_boxed): standard GValue functions for boxed types
2498         (g_boxed_type_register_static): convenience function for easy
2499         introduction of new G_TYPE_BOXED derivatives.
2500
2501         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
2502         for creation of new GParamSpec derived types.
2503
2504         * gtype.[hc]: many fixes, introduced ability to flag individual
2505         type nodes as ABSTRACT upon registration, added value_peek_pointer()
2506         to the value table to peek at GValue contents as a pointer for types
2507         that support this. fixed up GValue checks.
2508
2509         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
2510         to peek at the value contents as pointer.
2511
2512         * *.[hc]: adaptions to type macro fixes and changes in the type
2513         registration API.
2514
2515         * many const corrections over the place.
2516
2517 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
2518
2519         * gtype.c (g_type_conforms_to): this function basically behaves like
2520         and is_a check, except that it _additionally_ features interfaces
2521         for instantiatable types. enforce this in the second branch as well
2522         (`type' conforms_to `type') even if `type' is not an interface type.
2523
2524 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
2525
2526         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
2527
2528         * gtype.[hc]:
2529         * gobject.c:
2530         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
2531         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
2532         and G_TYPE_POINTER.
2533
2534 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
2535
2536         * gbsearcharray.[hc]: long standing needed generic implementation
2537         of a binary searchable, sorted and dynamically sized array.
2538
2539 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
2540
2541         * Makefile.am (BUILT_EXTRA_DIST): New variable.
2542         (dist-hook): Handle $(BUILT_EXTRA_DIST).
2543         (*): Remove traces of @STRIP_{BEGIN,END}@.
2544         
2545 2000-09-29  Martin Baulig  <baulig@suse.de>
2546         
2547         Several minor ANSI C fixes.
2548
2549         Added missing casts:
2550         * gtype.c (type_class_init): 
2551         `(gpointer) bnode->data->class.class_init_base'
2552         in call to g_slist_prepend() and
2553         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
2554
2555         * gobject.c: Put text following #endif into comments.
2556
2557 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2558
2559         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
2560         dist from working.
2561
2562 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
2563
2564         * gobject.c (g_object_last_unref): Move call to
2565         g_type_free_instance() here from g_object_do_finalize,
2566         since g_type_free_instance() can unload the object's
2567         implementation.
2568
2569 2000-07-27  Tor Lillqvist  <tml@iki.fi>
2570
2571         * gobject.c: No, don't mark glib_debug_objects for export here,
2572         it's handled specially in gtktypeutils.c.
2573
2574         * gobject.def: Export g_type_fundamental_last (the function).
2575
2576 2000-07-26  Tor Lillqvist  <tml@iki.fi>
2577
2578         * gobject.def
2579         * gobject.c: Mark glib_debug_objects for export/import as it is
2580         used by GTK+.
2581
2582 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
2583
2584         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
2585         that extern variable clutter and avoiding further problems with thread
2586         safety.
2587
2588 2000-07-19  Tor Lillqvist  <tml@iki.fi>
2589
2590         * gparam.h
2591         * gvalue.h
2592         * gparam.c
2593         * gtype.c: Shut up Sun's picky compiler.
2594
2595 2000-07-14  Tor Lillqvist  <tml@iki.fi>
2596
2597         * gobject.def: Add g_type_get_plugin.
2598
2599 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
2600
2601         * gparam.c (g_param_value_defaults): default initialize the temporary
2602         default value, instead of nuking the caller's value contents.
2603
2604 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
2605
2606         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
2607
2608 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
2609
2610         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
2611
2612 2000-07-10  Tor Lillqvist  <tml@iki.fi>
2613
2614         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
2615         to guard inclusion of <unistd.h>.
2616
2617         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
2618         variable for export. Call the macro GOBJECT_VAR.
2619
2620         * gtype.c: Declare _g_type_fundamental_last for export here, too.
2621         (type_node_any_new): Use only constant expressions for sizeof
2622         operator (for instance MSVC requires this).
2623
2624         * makefile.mingw.in: Define GOBJECT_COMPILATION.
2625
2626 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
2627
2628         * genums.c: Move string.h include into the .c file
2629         instead of where it was in the .h file by mistake.
2630
2631 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
2632
2633         * Makefile.am (EXTRA_DIST): dist fixes.
2634
2635         * gobject.c: Add a global variable glib_debug_objects
2636         (not in header file) to control object tracing.
2637
2638 2000-07-01  Tor Lillqvist  <tml@iki.fi>
2639
2640         * gobject.def: Update added and renamed entry points.
2641
2642         * makefile.mingw.in: Add gvaluetypes.o.
2643
2644 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
2645
2646         * gobject.c:include string.h for memset
2647         * genums.h: include string.h for strcpy
2648         * gvalue.c: include string.h for memset, memcpy.
2649
2650 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
2651
2652         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
2653         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
2654         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
2655         added a GTypeValueTable* pointer to GTypeInfo structure for types
2656         to implement GValue handling functions.
2657         GTypeValueTable contains the following members:
2658           value_init(): initialize a GValue structure.
2659           value_free(): free GValue structure contents (optional).
2660           value_copy(): copy one GValue contents to another GValue structure of
2661           collect_type: varargs collection type for the first variable argument
2662           to be collected by collect_value().
2663           collect_value(): variable arguments collection function (optional).
2664           lcopy_type: varargs collection type for the first variable argument
2665           to be location copyied by lcopy_value().
2666           lcopy_value(): variable arguments location copy function (optional).
2667         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
2668         for a type node. ValueTables get inherited from parent types, unless
2669         overridden through the GTypeInfo structure. internally, GTypeValueTable
2670         support means an added overhead of one pointer per static or used
2671         dynamic type node.
2672         g_type_add_class_cache_func(): provide a cache_func/data pair to be
2673         called  prior to a type nodes last_unref() function, this can be used
2674         to prevent premature class destruction. multiple installed cache_func()
2675         will be chained upon last_unref() untill one of them returns TRUE.
2676         the cache_func()s have to check the class id passed in to figure whether
2677         they actually want to cache the class of this type (since all classes
2678         are routed through the cache_func() chain).
2679         g_type_remove_class_cache_func(): remove a previously installed
2680         cache_func/data pair. the cache maintained by this function has to be
2681         clear when calling g_type_remove_class_cache_func() to avoid leaks.
2682         g_type_class_unref_uncached(): class unref function for cache_func()
2683         implementations, unreferences a class omitting the cache chain (and
2684         therefore unref->cache->unref->... loops).
2685
2686         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
2687         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
2688         double and string.
2689
2690         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
2691         GTypeValueTable is provided for this type.
2692         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
2693         g_value_set_default() and g_values_cmp() as these are supplied by the
2694         GParamSpec API now.
2695         moved g_values_exchange() into the "implementation details" section,
2696         since it just provides the underlying functionality for
2697         g_value_convert().
2698
2699         * gvaluecollector.h: renamed the varargs value container from
2700         GParamCValue to GTypeCValue as the value collection methods are
2701         supplied by the type system now.
2702         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
2703         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
2704         GParamSpec structure now.
2705
2706         * genums.h: macros cleanups/fixes.
2707
2708         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
2709         and assorted g_value_{s|g}et_{enum|flags}() implementations.
2710
2711         * gobject.[hc]:
2712         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
2713         and g_value_{s|g}et_object().
2714
2715         * gparam.[hc]: reduced class to value_set_default(),
2716         value_validate() and values_cmp(). also parameters now need to fill
2717         in a GType value_type; field to indicate the GValue type they
2718         are handling. provide g_param_value_set_default(),
2719         g_param_value_defaults(), g_param_value_validate() and
2720         g_param_values_cmp().
2721
2722         * gparamspecs.[hc]: got rid of the g_value_* functions and
2723         the G_IS_VALUE_* macros. adapted param spec implementations
2724         according to the GParamSpecClass changes.
2725
2726 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
2727
2728         * gtype.c (type_class_init): fetch the nth iface entry of the
2729         type node in the nth loop iteration, not alwys the first.
2730         bug discovered by Walt Pohl <cher@suitware.com>.
2731         (type_data_finalize_class_ifaces): same here, cut and paste
2732         rulez.
2733
2734 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
2735
2736         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
2737         is found properly when build srcdir != builddir. (Patch from
2738         Eric Lemings)
2739
2740 2000-05-13  Tor Lillqvist  <tml@iki.fi>
2741
2742         * makefile.mingw.in
2743         * gobject.def
2744         * gobject.rc.in: New files, for Win32 (mingw) build.
2745
2746         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
2747         corresponding non-*.in files.
2748
2749         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
2750         export/import from DLL.
2751
2752 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
2753
2754         * gtype.h: add reserved fundamental ids for gtk types (for transition
2755         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
2756
2757 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
2758
2759         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
2760         n_params prior to destructing them.
2761
2762 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
2763
2764         * fixed a couple of bugs in the initial parameter/object
2765         implementations, after getting beast running on GObject and GValue.
2766
2767 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
2768
2769         * glib-gobject.[hc]: completed parameter set/get implementations,
2770         along with asyncronous parameter changed notification queue.
2771
2772 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
2773
2774         * glib-gobject.[hc]: GObject implementation, that is facilities
2775         for setting/getting quarked data and reference counting.
2776
2777         * glib-gparamspecs.[hc]: first actuall parameter implementations
2778         for GLib, so far we have: char, uchar, bool, int, uint, long,
2779         ulong, enum, flags, float, double, string and object. each of these
2780         GParamSpecs is a new instantiatable type in its own respect,
2781         so the .c file derives 13 new types from G_TYPE_PARAM and
2782         defines over 50 (*2) conversion facilities.
2783
2784         * glib-gvaluecollector.h: generic varargs handling stubs for
2785         GParamSpecs, private header file (does get installed for
2786         inclusion into user code though).
2787
2788         * glib-gvalue.[hc]: GValue functionality implementation.
2789
2790         * glib-gparam.[hc]: basis GParamSpec implementation for
2791         the virtual base type G_TYPE_PARAM.
2792
2793         * glib-genums.[hc]: enum/flags type implementation, based on
2794         bseenum.[hc].
2795
2796         * glib-gtype.[hc]: GLib Type System implementation, heavily
2797         based on BSE's dynamic type system.