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