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