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