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