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