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