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