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