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