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