1 2008-10-16 Matthias Clasen <mclasen@redhat.com>
3 * === Released 2.19.0 ===
5 2008-09-26 Dan Winship <danw@gnome.org>
7 * gobject.c (g_object_ref, g_object_unref)
8 (g_object_freeze_notify, g_object_notify, g_object_thaw_notify):
9 * gparam.c (g_param_spec_ref, g_param_spec_unref):
10 * gsignal.c (handler_ref, handler_unref_R): add uint* -> int*
11 casts in g_atomic_int calls to avoid gcc warnings
13 2008-09-17 Matthias Clasen <mclasen@redhat.com>
15 * === Released 2.18.1 ===
17 2008-09-02 Matthias Clasen <mclasen@redhat.com>
19 * === Released 2.18.0 ===
21 2008-08-21 Johan Dahlin <johan@gnome.org>
24 Mark g_object_get_type function as const, it's
25 a fundamental type and can safely marked as const,
26 as opposed to traditionally *_get_type functions.
28 2008-08-21 Johan Dahlin <johan@gnome.org>
30 Bug 548800 – Missing a g_object_get_type function
32 * gobject.c (g_object_get_type):
37 2008-08-18 Matthias Clasen <mclasen@redhat.com>
39 * === Released 2.17.7 ===
41 2008-08-04 Matthias Clasen <mclasen@redhat.com>
43 * === Released 2.17.6 ===
45 2008-08-04 Matthias Clasen <mclasen@redhat.com>
47 * === Released 2.17.5 ===
49 2008-08-01 Matthias Clasen <mclasen@redhat.com>
51 Bug 545395 – Language tweak for g_value_set_string* docs
53 * gvaluetypes.c: Clarify the docs of some GValue setters.
54 Proposed by Erik Walthinsen
56 2008-07-27 Tor Lillqvist <tml@novell.com>
59 * gtype.c: Revert my change from 2008-07-24. No G_TYPE_FORMAT is
60 needed. Just use G_GSIZE_FORMAT always when printing GType values.
62 2008-07-27 Tor Lillqvist <tml@novell.com>
64 * Makefile.am (gobject-2.0.lib): Pass appropriate -machine flag to lib.exe.
66 2008-07-24 Tor Lillqvist <tml@novell.com>
68 * gtype.h: Define G_TYPE_FORMAT as the printf format for a GType
69 value. Either G_GSIZE_FORMAT or "lu".
71 * gtype.c: Use it instead of the C99 zu.
73 2008-07-23 Matthias Clasen <mclasen2redhat.com>
75 544177 - Fix trivial cut and paste error in documentation
77 * gtype.h: Fix a typo. Pointed out by Paul Bolle.
79 2008-07-21 Matthias Clasen <mclasen2redhat.com>
81 * === Released 2.17.4 ===
83 2008-07-21 Michael Natterer <mitch@imendio.com>
85 Reviewed by Tim Janik:
87 * gsignal.c (g_signal_chain_from_overridden_handler): allocate
88 the temp GValue array with GSLice.
90 (g_signal_emit_valist): dito. Remove optimization/obfuscation of
91 allocating up to 16 GValues on the stack and always use GSLice.
93 2008-07-05 Matthias Clasen <mclasen@redhat.com>
95 Bug 539229 – gobject-query calls itself query
97 * gobject-query.c: Use the right binary name in help output.
98 Patch by Hiroyuki Ikezoe.
100 2008-07-04 Michael Natterer <mitch@imendio.com>
102 * gobject.c: remove unused #define PREALLOC_CPARAMS.
104 2008-07-04 Michael Natterer <mitch@imendio.com>
106 Bug 541208 – Functions to easily install and use signals without
110 * gsignal.[ch] (g_signal_new_class_handler): the same as
111 _gtk_binding_signal_new(), to install signals with a callback
112 instead of a class struct slot as class closure.
114 The next two functions are C convenience and much easier to use
115 than the generic overriding and chaining APIs which are intended
116 primarily for language bindings:
118 (g_signal_override_class_handler): to override a signal with a
119 callback instead of a class struct slot.
121 (g_signal_chain_from_overridden_handler): to chain up from a
122 signal without class struct slot. The API is similar to
125 2008-07-02 Matthias Clasen <mclasen@redhat.com>
127 * === Released 2.17.3 ===
129 2008-07-01 Matthias Clasen <mclasen@redhat.com>
131 * *.c: Fix up section comments far enough to avoid regressions.
133 2008-06-27 Hans Breuer <hans@breuer.org>
135 * glib-genmarshal.c : move G_OS_WIN32 inclusion of <io.h> down to
136 where G_OS_WIN32 will be defined (#540047, Kazuki IWAMOTO)
138 2008-06-22 Michael Natterer <mitch@imendio.com>
140 * *.c: remove trailing whitespace from newly added gtk-doc
141 comments and reformatted some where they contained overly long or
144 2008-06-22 Michael Natterer <mitch@imendio.com>
146 * *.c: moved includes back to the top of the files (before gtk-doc
147 SECTION comments). Add "config.h" in all files and move system
148 included before glib includes. Remove trailing whitespace from
149 SECTION comments and did some reformatting where lines were overly
150 long, no documentation content was changed.
152 2008-06-22 Stefan Kost <ensonic@users.sf.net>
154 * docs/reference/gobject/tmpl/gobject-unused.sgml:
158 Move some content for gobject-unused.sgml and cleared empty entries.
159 The remaining 4 ones should be checked by some else. If they are not
160 needed. The file can be removed.
162 2008-06-22 Stefan Kost <ensonic@users.sf.net>
164 * docs/reference/gobject/tmpl/value_collection.sgml:
165 * gobject/gvaluecollector.h:
168 2008-06-22 Stefan Kost <ensonic@users.sf.net>
170 * docs/reference/gobject/tmpl/value_arrays.sgml:
171 * gobject/gvaluearray.c:
172 * gobject/gvaluearray.h:
175 2008-06-22 Stefan Kost <ensonic@users.sf.net>
178 Fix compiler warning in format string check.
180 2008-06-22 Stefan Kost <ensonic@users.sf.net>
182 * docs/reference/gobject/tmpl/signals.sgml:
183 * gobject/gclosure.c:
189 2008-06-22 Stefan Kost <ensonic@users.sf.net>
191 * docs/reference/gobject/Makefile.am:
192 Help poor little gtkdoc a bit and tell that it can ignore
193 G_GNUC_INTERNAL. Also disable including the unit-test header as this
194 causes warnings and we don't need it here.
196 2008-06-22 Stefan Kost <ensonic@users.sf.net>
198 * docs/reference/gobject/tmpl/param_value_types.sgml:
207 * gobject/gparamspecs.c:
208 * gobject/gparamspecs.h:
209 * gobject/gvaluetypes.c:
210 * gobject/gvaluetypes.h:
213 2008-06-21 Stefan Kost <ensonic@users.sf.net>
215 * docs/reference/gobject/tmpl/objects.sgml:
221 2008-06-21 Stefan Kost <ensonic@users.sf.net>
223 * docs/reference/gobject/tmpl/gtypeplugin.sgml:
224 * gobject/gtypeplugin.c:
225 * gobject/gtypeplugin.h:
228 2008-06-21 Stefan Kost <ensonic@users.sf.net>
230 * docs/reference/gobject/Makefile.am:
231 Add --sgml-mode to allow sgml in doc-fragments (which somehow works
235 * gobject/gclosure.c:
239 Convert character entities back. Fix some broken sgml.
241 2008-06-21 Stefan Kost <ensonic@users.sf.net>
243 * docs/reference/gobject/tmpl/gtypemodule.sgml:
244 * gobject/gtypemodule.c:
245 * gobject/gtypemodule.h:
248 2008-06-21 Stefan Kost <ensonic@users.sf.net>
251 * gobject/gclosure.c:
255 Add titles back from tmpl.
257 2008-06-21 Stefan Kost <ensonic@users.sf.net>
259 * docs/reference/gobject/tmpl/gtype.sgml:
262 * gobject/gvaluetypes.h:
265 2008-06-21 Stefan Kost <ensonic@users.sf.net>
267 * gobject/gclosure.h:
269 Add one missing ':' and reformate GParamFlags docs.
271 2008-06-21 Stefan Kost <ensonic@users.sf.net>
273 * docs/reference/gobject/tmpl/gparamspec.sgml:
278 2008-06-21 Stefan Kost <ensonic@users.sf.net>
281 * gobject/gclosure.c:
284 Use file-names from the section file for SECTION: comments.
286 2008-06-21 Stefan Kost <ensonic@users.sf.net>
288 * docs/reference/gobject/tmpl/generic_values.sgml:
293 * gobject/gvaluetypes.c:
296 2008-06-21 Stefan Kost <ensonic@users.sf.net>
299 Fix documentation for return values.
301 2008-06-21 Stefan Kost <ensonic@users.sf.net>
303 * docs/reference/gobject/tmpl/gclosure.sgml:
305 * gobject/gclosure.c:
306 * gobject/gclosure.h:
308 * gobject/gsourceclosure.c:
309 * gobject/gsourceclosure.h:
312 2008-06-21 Tor Lillqvist <tml@novell.com>
314 * glib/gstdio.c: Improve Windows-specific parts of
315 documentation. Mention the different C library issue in more
318 2008-06-21 Stefan Kost <ensonic@users.sf.net>
320 * docs/reference/gobject/gobject-sections.txt:
321 Remove duplicated entries. They are documented and should be shown.
323 2008-06-21 Stefan Kost <ensonic@users.sf.net>
325 * docs/reference/gobject/tmpl/enumerations_flags.sgml:
330 2008-06-21 Stefan Kost <ensonic@users.sf.net>
332 * docs/reference/gobject/tmpl/gboxed.sgml:
335 * gobject/gvaluetypes.c:
338 2008-06-12 Matthias Clasen <mclasen@redhat.com>
340 * === Released 2.17.2 ===
342 2008-06-12 Matthias Clasen <mclasen@redhat.com>
344 * === Released 2.17.1 ===
346 2008-06-10 13:34:01 Tim Janik <timj@imendio.com>
348 * tests/threadtests.c: added race condition tester from Michael Meeks
349 with a couple fixes so it's not triggering development warnings. From:
350 Bug 537555 - GObject instantiation not thread safe ...
352 2008-06-10 13:15:29 Tim Janik <timj@imendio.com>
354 * gtype.c (g_type_class_ref): fixed race condition where references to
355 partially initialized classes could be handed out.
357 2008-05-28 Michael Natterer <mitch@imendio.com>
359 * Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
360 the global CPPFLAGS now.
362 2008-05-27 Matthias Clasen <mclasen@redhat.com>
364 * === Released 2.17.0 ===
366 2008-05-05 Michael Natterer <mitch@imendio.com>
368 * Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
369 code from being checked in that breaks the build of applications
370 which use G_DISABLE_SINGLE_INCLUDES.
372 2008-03-16 Tor Lillqvist <tml@novell.com>
374 * Makefile.am: Define gobject_def locally here instead of using an
377 2008-03-10 Matthias Clasen <mclasen@redhat.com>
379 * === Released 2.16.1 ===
381 2008-03-10 Matthias Clasen <mclasen@redhat.com>
383 * === Released 2.16.0 ===
385 2008-02-25 Matthias Clasen <mclasen@redhat.com>
387 * === Released 2.15.6 ===
389 2008-02-11 Matthias Clasen <mclasen@redhat.com>
391 * === Released 2.15.5 ===
393 2008-02-06 Benjamin Otte <otte@gnome.org>
395 * gparamspecs.c: (param_gtype_set_default), (param_gtype_validate):
396 make GParamGType require the set type during construction instead of
397 using G_TYPE_NONE, which causes issues when setting.
398 Bug 513073 - g_param_spec_gtype breaks with G_PARAM_CONSTRUCT
400 2008-02-05 18:52:07 Tim Janik <timj@imendio.com>
402 * gtype.c: added recursive mutex to protect class initialization,
403 default interface initialization and per-class interface construction.
404 a lock to this recursive mutex is held during user callback invocations
405 such as initializers or finalizers, effectively allowing only one thread
406 to run class/interface initializers/finalizers at a time.
407 also made misc fixups. this fixes:
408 Bug 64764 - Class initialization isn't thread safe.
410 2008-02-05 18:41:22 Tim Janik <timj@imendio.com>
412 * Makefile.am: integrate tests/.
414 * tests/: new directory for libgobject tests.
416 * tests/Makefile.am: build and run threadtests.
418 * tests/threadtests.c: test multi-threaded initializers for
419 object classes and interfaces.
421 2008-01-28 Matthias Clasen <mclasen@redhat.com>
423 * === Released 2.15.4 ===
425 2008-01-21 Matthias Clasen <mclasen@redhat.com>
427 * === Released 2.15.3 ===
429 2008-01-14 Matthias Clasen <mclasen@redhat.com>
431 * === Released 2.15.2 ===
433 008-01-07 Matthias Clasen <mclasen@redhat.com>
435 * === Released 2.15.1 ===
437 2007-12-26 Behdad Esfahbod <behdad@gnome.org>
439 * gclosure.h (G_CCLOSURE_SWAP_DATA): Fix macro argument.
440 (#505674, Areg Beketovski)
442 2007-12-20 Matthias Clasen <mclasen@redhat.com>
444 * === Released 2.15.0 ===
446 2007-11-11 Mathias Hasselmann <mathias@openismus.com>
448 Always exit with non-zero error code when printing warnings.
450 * gobject/glib-genmarshal.c: Add global exit_status variable, and use
451 it in pad() and process_signature() to return with non-zero error code
452 when printing warnings. (#495294)
454 2007-11-08 Matthias Clasen <mclasen@redhat.com>
456 * glib-mkenums.in: Don't shift ARGV[0] to undefined.
457 (#466557, Aidan Delaney)
459 2007-11-07 Matthias Clasen <mclasen@redhat.com>
461 * === Released 2.14.3 ===
463 2007-10-16 Matthias Clasen <mclasen@redhat.com>
465 * === Released 2.14.2 ===
467 2007-09-20 Carlos Garnacho <carlos@imendio.com>
469 * gtypemodule.h: make sure we define GType g_define_type_id in
470 G_G_DEFINE_DYNAMIC_TYPE_EXTENDED so it works together with
471 G_IMPLEMENT_INTERFACE. (#478459)
473 2007-09-19 Matthias Clasen <mclasen@redhat.com>
475 * === Released 2.14.1 ===
477 2007-08-03 Matthias Clasen <mclasen@redhat.com>
479 * === Released 2.14.0 ===
481 2007-07-12 Matthias Clasen <mclasen@redhat.com>
483 * === Released 2.13.7 ===
485 Tue Jul 10 12:31:50 2007 Tim Janik <timj@imendio.com>
487 * gtype.h: use g_once_init_enter/g_once_init_leave to guard critical
488 initialization section of *_get_type implementations in G_DEFINE_TYPE,
491 Fri Jun 29 2007 Matthias Clasen <mclasen@redhat.com>
493 * === Released 2.13.6 ===
495 Fri Jun 22 11:31:27 2007 Tim Janik <timj@gtk.org>
497 * gtype.h: reintroduce typedef gulong GType; for C++, to avoid
498 C++ specific ABI breakage.
500 2007-06-18 Matthias Clasen <mclasen@redhat.com>
502 * === Released 2.13.5 ===
504 Thu Jun 14 23:32:00 2007 Tim Janik <timj@gtk.org>
506 * gtype.h: always define GType unconditionally in terms of gsize,
507 there's no need to jump through a glong hoop ever and this fixes
508 the printf modifier to %zu.
510 Thu Jun 14 22:33:11 2007 Tim Janik <timj@imendio.com>
512 * gparamspecs.c (g_param_spec_types_init): work around SGI IDO cc,
515 2007-06-05 Matthias Clasen <mclasen@redhat.com>
517 * === Released 2.13.4 ===
519 2007-06-04 Matthias Clasen <mclasen@redhat.com>
521 * === Released 2.13.3 ===
523 2007-05-22 Matthias Clasen <mclasen@redhat.com>
525 * === Released 2.13.2 ===
527 2007-05-17 Matthias Clasen <mclasen@redhat.com>
529 * gtype.h: Move G_GNUC_INTERNAL before function
530 declarations to fix compilation with sun studio. (#438873,
533 2007-05-03 Matthias Clasen <mclasen@redhat.com>
535 * === Released 2.13.1 ===
537 2007-04-25 Michael Natterer <mitch@imendio.com>
539 * gparamspecs.c (param_string_validate): also clear the
540 NOCOPY_CONTENTS flag when replacing NULL with the empty string.
542 2007-04-24 Michael Natterer <mitch@imendio.com>
544 * gparamspecs.c (param_string_validate): don't free or modify
545 static strings, dup them when needed and clear the
546 G_VALUE_NOCOPY_CONTENTS flag. Fixes bug #432895.
548 Tue Apr 3 12:34:14 2007 Tim Janik <timj@gtk.org>
550 * gobject.[hc]: invoke GObjectClass.constructed() only for newly
551 constructed objects, and invoke it while the notify queue is
552 still being frozen, after all CONSTRUCT* properties have been
553 set and before random other properties are being set.
555 * applied modified patch from Ryan Lortie to implement
556 GObjectClass.constructed() to fix #425324.
558 2007-04-02 Ryan Lortie <desrt@desrt.ca>
560 * gobject/gobject.h: Add 'constructed' vcall to GObjectClass.
561 * gobject/gobject.c (g_object_newv): call ->constructed() as last
562 step of object construction.
564 2007-03-16 Matthias Clasen <mclasen@redhat.com>
566 * === Released 2.13.0 ===
568 2007-03-15 Matthias Clasen <mclasen@redhat.com>
570 * gvaluearray.c: Use g_slice. (#404430, Chris Wilson)
572 2007-03-14 Stefan Kost <ensonic@users.sf.net>
575 Add G_PARAM_STATIC_STRINGS define (fixes #418021).
577 Mon Mar 12 13:30:20 2007 Tim Janik <timj@gtk.org>
579 * gtype.h: marked purely functional g_type accessors as PURE or CONST,
582 2007-01-02 Tor Lillqvist <tml@novell.com>
584 * glib-genmarshal.c (main): Handle "/dev/stdin" by dup()ing fd 0
585 so that it works on Win32 and other systems without
586 /dev/stdin. (#407431)
588 2006-12-29 Matthias Clasen <mclasen@redhat.com>
590 * gtypemodule.h: Define G_DEFINE_DYNAMIC_TYPE and
591 and _EXTENDED variant. (#334437)
593 Fri Dec 15 2006 Matthias Clasen <mclasen@redhat.com>
595 * gtype.c (instance_real_class_get): Dereference the pointer
596 before dropping the lock. (#378078, Jonathan Matthew)
598 Tue Oct 10 12:06:08 2006 Tim Janik <timj@gtk.org>
601 * glib-mkenums.1: applied patch from David Necas which introduces
602 an underscore_name option and fixes #358734.
604 Mon Oct 2 15:50:16 2006 Tim Janik <timj@gtk.org>
606 * gvalue.c (g_value_peek_pointer): reverted a change to have an
607 assert instead of a g_return_val_if_fail() here. libraries (and
608 programs) should only ever g_assert or g_error if there is no way
609 to carry on with the current program state. that's clearly not
612 * ChangeLog: added missing changelog entry for 2003-12-30.
614 Sat Sep 30 2006 Matthias Clasen <mclasen@redhat.com>
616 * pltcheck.sh: Script to check PLT entries.
618 * Makefile.am (TESTS): Run pltcheck.sh
623 * gvaluetypes.c: Move all includes before gobjectalias.h.
624 (#3545422, Behdad Esfahbod)
626 Fri Sep 22 13:41:02 2006 Tim Janik <timj@imendio.com>
628 * gtype.h: applied patch from Behdad with slight optimization,
631 * gobjectnotifyqueue.c: fixed include-guard macro name.
633 Mon Sep 11 12:12:45 2006 Tim Janik <timj@imendio.com>
635 * gparam.c (g_param_spec_sink): reimplemented floating flag handling by
636 atomically accessing a reserved GData bit, fixes #330556.
638 Tue Aug 29 13:27:33 2006 Tim Janik <timj@gtk.org>
640 * glib-mkenums.in: fixed to print usage and version info on STDOUT
643 * gobject.c (g_initially_unowned_init): restore ; after G_DEFINE_TYPE.
645 2006-08-26 Matthias Clasen <mclasen@redhat.com>
647 * gobject.c: Remove ; after G_DEFINE_TYPE. (#351741, Kjartan Maraas)
649 Wed Aug 23 10:35:32 2006 Tim Janik <timj@gtk.org>
651 * gobject.[hc]: changed return value of g_value_dup_object(), fixes #343292.
653 2006-08-23 Sven Neumann <sven@gimp.org>
655 * gobject/glib-genmarshal.[c1]: added new command-line option
656 "--internal" that can be used to let glib-genmarshal generate
657 internal functions using the G_GNUC_INTERNAL attribute (bug #346647).
659 Wed Aug 16 13:55:08 2006 Tim Janik <timj@imendio.com>
661 * gobject.c: conditionally thaw the notify queue after construction,
662 so we don't trigger warnings when trying to thaw an unfrozen singleton.
664 2006-08-15 Matthias Clasen <mclasen@redhat.com>
666 * === Released 2.12.2 ===
668 2006-08-05 Matthias Clasen <mclasen@redhat.com>
670 * gparamspecs.c (g_param_spec_types_init): Don't initialize
671 struct members with function calls. (#349952)
673 2006-07-22 Matthias Clasen <mclasen@redhat.com>
675 * === Released 2.12.1 ===
677 2006-07-21 Matthias Clasen <mclasen@redhat.com>
679 * gtypemodule.c (g_type_module_register_type): Copy the complete
680 value table, not just the first 4 bytes. (#348136, Coverity)
682 2006-07-02 Matthias Clasen <mclasen@redhat.com>
684 * === Released 2.12.0 ===
686 2006-06-20 Matthias Clasen <mclasen@redhat.com>
688 * === Released 2.11.4 ===
690 2006-06-15 Federico Mena Quintero <federico@novell.com>
692 * gtype.c (g_type_instance_get_private): Fix the error message so
693 that it mentions the right functions:
694 "g_type_instance_get_private() requires a prior call to
695 g_type_class_add_private()".
697 2006-06-12 Matthias Clasen <mclasen@redhat.com>
699 * === Released 2.11.3 ===
701 2006-06-05 Matthias Clasen <mclasen@redhat.com>
703 * === Released 2.11.2 ===
705 2006-06-02 Behdad Esfahbod <behdad@gnome.org>
707 * gobject/genum.h: Make value_name and value_nick const in structs
708 _GEnumValue and _GFlagValue. (#317793)
710 Tue May 16 14:01:43 2006 Tim Janik <timj@imendio.com>
712 * gtype.h (G_IMPLEMENT_INTERFACE): turn off compiler warnings, #337129.
714 2006-05-15 Matthias Clasen <mclasen@redhat.com>
716 * === Released 2.11.1 ===
718 2006-05-02 Matthias Clasen <mclasen@redhat.com>
720 * === Released 2.11.0 ===
722 Tue May 2 14:51:03 2006 Tim Janik <timj@gtk.org>
724 * gtype.h: split up G_DEFINE_*TYPE macro definitions so C CODE arguments
725 are not passed on to nested macro calls. patch mostly courtesy of Behdad
726 Esfahbod, fixes #337128.
728 2006-04-23 Matthias Clasen <mclasen@redhat.com>
730 * gobject.symbols: Fix a typo.
732 * gtype.c: (g_type_register_static_simple): Add a
735 * gtype.h: Silence warnings from G_DEFINE_TYPE.
737 2006-04-21 Matthias Clasen <mclasen@redhat.com>
740 * gtype.[hc]: Add a g_type_register_static_simple
741 variant of g_type_register_static that does not take
742 a relocation-causing GTypeInfo struct, and use it
745 2006-03-07 Matthias Clasen <mclasen@redhat.com>
747 * === Released 2.10.1 ===
749 Tue Mar 7 17:09:07 2006 Tim Janik <timj@gtk.org>
751 * gobject.c (g_object_compat_control): added case3 to hand out the
752 original floating flag handler. required by gtk+ >= 2.10.
754 2006-02-24 Matthias Clasen <mclasen@redhat.com>
756 * === Released 2.10.0 ===
758 2006-02-10 Matthias Clasen <mclasen@redhat.com>
760 * === Released 2.9.6 ===
762 2006-01-29 Matthias Clasen <mclasen@redhat.com>
764 * gclosure.c: Remove C++ comment.
766 2006-01-27 Matthias Clasen <mclasen@redhat.com>
768 * === Released 2.9.5 ===
770 2006-01-18 Matthias Clasen <mclasen@redhat.com>
772 * === Released 2.9.4 ===
774 2006-01-18 Matthias Clasen <mclasen@redhat.com>
776 * gobject.h: Make g_object_compat_control() visible
777 for GTK+ compilation, to avoid segfaults on 64bit
780 2006-01-16 Matthias Clasen <mclasen@redhat.com>
782 * === Released 2.9.3 ===
784 2006-01-05 Matthias Clasen <mclasen@redhat.com>
786 * === Released 2.9.2 ===
788 2006-01-04 Matthias Clasen <mclasen@redhat.com>
790 * gobject.symbols: Add g_initially_unowned_get_type.
792 2005-12-30 Matthias Clasen <mclasen@redhat.com>
794 * gsignal.c: Remove the handler trash stack, which
796 (g_signal_init): Remove the restriction that HandlerMatch
797 must be the same size as GList, and obsolete comments
798 referring to mem chunks.
800 2005-12-24 Matthias Clasen <mclasen@redhat.com>
802 * gobject.symbols: Add new functions.
804 Thu Dec 22 18:53:14 2005 Tim Janik <timj@gtk.org>
806 * gobject.[hc]: renamed GUnowned to GInitiallyUnowned.
808 Thu Dec 22 14:59:24 2005 Tim Janik <timj@imendio.com>
810 * gvaluetypes.[hc]: implemented G_TYPE_GTPYE. applied patch
811 from matthias which implements GType accessors for GValue.
813 * gparamspecs.[hc]: applied patch from matthias which
814 implements G_TYPE_PARAM_GTYPE.
817 GUnowned: introduced a new object type that has an initially
819 g_object_compat_control(): allow setting of a floating flag handler.
821 2005-12-09 Matthias Clasen <mclasen@redhat.com>
823 * === Released 2.9.1 ===
825 2005-12-05 Matthias Clasen <mclasen@redhat.com>
827 * genums.h (G_FLAGS_CLASS_TYPE_NAME): Use G_FLAGS_CLASS_TYPE.
828 (#323273, Kalle Vahlman)
830 Thu Dec 1 12:53:26 2005 Tim Janik <timj@imendio.com>
832 * gtype.c: use g_slic_* for all object allocations.
834 2005-11-28 Matthias Clasen <mclasen@redhat.com>
836 * gobjectnotifyqueue.c (g_object_notify_queue_thaw):
837 * gobject-query.c (main): Silence compiler warnings.
839 * glib-genmarshal.c (main): Use G_N_ELEMENTS.
841 2005-11-27 Matthias Clasen <mclasen@redhat.com>
843 * gboxed.h: Declare g_hash_table_get_type.
845 Wed Nov 23 18:01:46 2005 Tim Janik <timj@imendio.com>
847 * gobject.[hc]: added floating reference count.
848 g_object_is_floating():
849 g_object_ref_sink(): new functions to deal with floating references.
850 g_object_force_floating(): new funciton for object implementations
851 to set the floating flag.
853 * gobject.c (g_object_init): make objects initially floating.
855 Wed Nov 23 17:58:13 2005 Tim Janik <timj@gtk.org>
857 * gparam.[hc]: added g_param_spec_ref_sink().
859 Wed Nov 23 13:36:02 2005 Tim Janik <timj@gtk.org>
861 * gboxed.[hc]: minor cleanups, implemented G_TYPE_HASH_TABLE.
863 2005-11-17 Matthias Clasen <mclasen@redhat.com>
865 * === Released 2.9.0 ===
867 2005-11-17 Matthias Clasen <mclasen@redhat.com>
869 * glib-genmarshal.c: const correctness fixes, found
870 by Arjan van de Ven and gcc.
872 Tue Nov 1 17:07:43 2005 Tim Janik <timj@imendio.com>
874 * gsignal.c: allocate signal handlers and handler match structures
875 via the new g_slice_*() API (get's rid of GList allocation hack).
877 * gtype.c: got rid of per-type memchunks. if GTypeInfo.n_preallocs
878 is > 0, objects are allocated via g_slice_*() instead of g_malloc().
880 2005-10-03 Matthias Clasen <mclasen@redhat.com>
882 * glib-mkenums.in: Really fix #314890.
884 2005-09-28 Michael Natterer <mitch@gimp.org>
886 * gtype.h (G_IMPLEMENT_INTERFACE): revert last change, it breaks
887 all users of G_IMPLEMENT_INTERFACE() inside
888 G_DEFINE_TYPE_WITH_CODE(), since apparently GCC doesn't like
889 commas enclosed in {}, not (), in nested macro calls.
891 2005-09-26 DindinX <dindinx@gimp.org>
893 * gobject/gtype.h: initialize all the fields of GInterfaceInfo in the
894 G_IMPLEMENT_INTERFACE macro, to shut up a warning when compiling at -W
896 2005-09-26 Matthias Clasen <mclasen@redhat.com>
898 * glib-mkenums.in: Don't hang on '{' following a trigraph comment
899 in the same line. (#314890, Mathias Hasselmann)
901 Thu Sep 22 12:42:12 2005 Tim Janik <timj@gtk.org>
903 * gparam.c (g_param_spec_internal): fix pspec->name assignment which
904 needs to be strdup()ed for non G_PARAM_STATIC_NAME pspecs. this fixes
905 recently introduced crashes during plugin unloading.
906 also, ensure that static pspec names are canonicalized.
908 * gsignal.h: reverted last change from matthias, we don't guarantee
909 that type ids aren't mangled with G_SIGNAL_TYPE_STATIC_SCOPE anywhere.
911 2005-09-20 Matthias Clasen <mclasen@redhat.com>
913 * gsignal.h (struct _GSignalQuery): Remove the misleading comment
914 about G_SIGNAL_TYPE_STATIC_SCOPE, since we don't allow that
917 2005-09-08 Kjartan Maraas <kmaraas@gnome.org>
919 * gclosure.c: (g_closure_set_meta_marshal): Remove some unused
921 * gsignal.c: (g_signal_emitv): Same here
922 * gtype.c: (g_type_register_fundamental): And here
923 * testgobject.c: Mark some functions static.
925 2005-09-05 Matthias Clasen <mclasen@redhat.com>
927 * gsignal.c (struct _SignalNode): Make the name field const.
928 (g_signal_newv): Don't keep an unnecessary extra copy of the
929 signal name around, and don't forget to free the name if
930 an existing node is reused.
932 2005-08-31 Matthias Clasen <mclasen@redhat.com>
934 * gobject.c (g_object_do_class_init): Intern the signal name.
936 * gparam.c (g_param_spec_internal): Intern the name here,
937 since we need the quark anyway when sending change notification.
941 * gtype.c (g_type_init_with_debug_flags): Intern type name
942 before registering the types.
944 * gtype.h (G_DEFINE_TYPE_EXTENDED): Intern type name
945 before registering the type.
947 * gvaluetypes.c (g_value_types_init):
948 * gtypeplugin.c (g_type_plugin_get_type):
949 * gtypemodule.c (g_type_module_get_type):
950 * gparam.c (g_param_type_init):
951 * gobject.c (g_object_type_init):
952 * genums.c (g_enum_types_init):
953 * gboxed.c (g_boxed_type_init): Intern type names
954 before registering the type to avoid unnecessary
957 2005-08-23 Matthias Clasen <mclasen@redhat.com>
959 * === Released 2.8.1 ===
961 2005-08-12 Matthias Clasen <mclasen@redhat.com>
963 * === Released 2.8.0 ===
965 2005-08-09 Matthias Clasen <mclasen@redhat.com>
967 * gvaluetransform.c: Access enum and flags
968 values as v_long/v_ulong, not v_int/v_uint,
969 to make value transformation of such types
970 work on bigendian 64bit machines. (#312485,
973 2005-08-05 Matthias Clasen <mclasen@redhat.com>
975 * abicheck.sh: Also check exported variables
977 * === Released 2.7.7 ===
979 2005-08-03 Matthias Clasen <mclasen@redhat.com>
981 * === Released 2.7.6 ===
983 2005-08-02 Matthias Clasen <mclasen@redhat.com>
985 * gclosure.c (union ClosureInt): Mark the vint member as
986 volatile, which seems to be necessary to make atomic operations
989 * === Released 2.7.5 ===
991 Mon Aug 1 23:00:42 2005 Tim Janik <timj@imendio.com>
993 * gclosure.c: turned all modifications to the first 32 integer bits in a
994 closure into atomic accesses. wrapped write accesses into special macros
995 to keep the atomic modification logic in a single place. comment cleanups.
997 * gclosure.h: made all atomicly accessed closure fields volatile.
999 * gobject.h: made ref_count field volatile.
1001 Sun Jul 31 02:04:23 2005 Tim Janik <timj@gtk.org>
1003 * gobject.c: use g_datalist_set_flags() and g_datalist_unset_flags() to
1004 allow proper locking around &qdata modifications.
1006 Sat Jul 30 21:10:26 2005 Tim Janik <timj@gtk.org>
1008 * gobject.c: reverted notify_mutex introduction, since this prevents
1009 parallelized setting of object properties on different objects, and
1010 serves no apparent purpose (to me at least).
1011 g_object_real_dispose(): removed non-atomic reference count
1013 g_object_unref(): make sure the closures array is destroyed when
1014 destroying signal handlers.
1016 * gparam.c: cosmetic changes.
1018 * gsignal.c: comment fixup. allow 16bit blocking count.
1020 * gsignal.c: reverted GClosure related changes.
1022 * gclosure.c: reverted premature commit of atomic reference
1025 2005-07-21 Matthias Clasen <mclasen@redhat.com>
1027 * === Released 2.7.4 ===
1029 2005-07-15 Matthias Clasen <mclasen@redhat.com>
1031 * === Released 2.7.3 ===
1033 2005-07-15 Matthias Clasen <mclasen@redhat.com>
1035 Make refcounting threadsafe by using atomic
1036 operations. (#166020, Wim Taymans)
1038 * gobject.c: Use a recursive lock to protect the
1040 (g_object_unref): Get rid of g_object_last_unref and
1041 do the last unref handling in g_object_unref.
1042 (g_object_ref, g_object_unref): Use atomic operations.
1044 * gsignal.c (struct _HandlerMatch): Use a full integer
1045 for the ref_count field.
1046 (handler_ref, handler_unref_R): Use atomic operations.
1048 * gparam.c (g_param_spec_ref, g_param_spec_unref):
1049 Use atomic operations instead of a lock to make the
1050 refcounting threadsafe.
1052 * gclosure.c (g_closure_ref, g_closure_unref): Use atomic
1053 operations. This is more complicated here, since the
1054 refcount is stored in a bitfield, so we also have
1055 to access all other bitfield members atomically.
1057 * gsignal.c (handlers_find): Read the meta_marshal flag
1058 of the closure atomically.
1060 2005-07-11 Matthias Clasen <mclasen@redhat.com>
1063 * gobject.symbols: Remove G_GNUC_NULL_TERMINATED from
1064 g_object_new again, since that makes gcc warn on calls of
1065 the form g_object_new (some_type, NULL)
1067 2005-07-09 Tor Lillqvist <tml@novell.com>
1069 * Makefile.am: Don't use the scripts in build/win32 to compile
1070 gobject.rc into a resource object file. (This means we lose the
1071 build number increment magic, but I doubt it was that useful
1072 anyway.) Instead use windres directly. To pass the normal .o file
1073 produced by windres through libtool, which wants .lo files, pass
1074 it directly to the linker using a -Wl option.
1076 * gobject.rc.in: Thus replace BUILDNUMBER with 0.
1078 2005-07-08 Matthias Clasen <mclasen@redhat.com>
1080 * === Released 2.7.2 ===
1082 2005-06-30 Matthias Clasen <mclasen@redhat.com>
1084 * === Released 2.7.1 ===
1086 2005-06-26 Tor Lillqvist <tml@novell.com>
1088 * Makefile.am: libtool installs/uninstalls the import library, no
1089 need to do it ourselves. Do still install/uninstall the .def file,
1092 2005-06-24 Tor Lillqvist <tml@novell.com>
1094 * Makefile.am (install-libtool-import-lib): Current GNU tools do
1095 understand the PRIVATE keyword.
1097 2005-06-19 Matthias Clasen <mclasen@redhat.com>
1099 * gparam.h (GParamFlags): Avoid a warning. (#308295,
1102 2005-06-13 Matthias Clasen <mclasen@redhat.com>
1104 * gparam.h (GParamFlags): Re-add G_PARAM_PRIVATE as a
1105 deprecated name for bit 5, since some language bindings
1108 2005-06-10 Matthias Clasen <mclasen@redhat.com>
1110 * === Released 2.7.0 ===
1112 2005-05-20 Matthias Clasen <mclasen@redhat.com>
1114 * gvaluetypes.c (g_value_set_string): dup the new value
1115 before freeing the old, just in case. (#172142, Morten
1118 2005-05-13 Matthias Clasen <mclasen@redhat.com>
1120 * glib-genmarshal.1: Mention 64bit integer types.
1122 2005-05-05 Owen Taylor <otaylor@redhat.com>
1124 * gobject.[ch] gobject.symbols: Add
1125 g_object_add/remove_toggle_ref() functions to get notification
1126 when a reference count is the last remaining reference; this
1127 enables better memory management for language bindings.
1128 (http://mail.gnome.org/archives/gtk-devel-list/2005-April/msg00095.html)
1130 2005-04-29 Matthias Clasen <mclasen@redhat.com>
1133 * gboxed.h (G_TYPE_DATE):
1134 * gboxed.c: Add a boxed type for GDate. (#301787, Tim-Philipp
1137 2005-03-25 Matthias Clasen <mclasen@redhat.com>
1139 * gparam.c (param_spec_ht_lookup): Don't do the second
1140 lookup if the name was already canonical. (#171502, Morten
1143 Tue Mar 22 14:15:23 2005 Manish Singh <yosh@gimp.org>
1145 * gparam.c (g_param_spec_internal): cast away any constness on
1148 2005-03-21 Matthias Clasen <mclasen@redhat.com>
1150 * glib-mkenums.in: Avoid forcing extra newlines when using
1151 template files. (#171005)
1153 2005-03-20 Matthias Clasen <mclasen@redhat.com>
1155 * gparam.c (g_param_spec_internal): Don't copy strings
1156 which are marked as static. Don't allow non-canonical static
1159 * gparam.h (GParamFlags): Add G_PARAM_STATIC_{NAME,NICK,BLURB}
1160 flags. (#160655, Ben Maurer)
1162 2005-03-18 Hans Breuer <hans@breuer.org>
1164 * makefile.msc.in : handle gobjectaliasdef.c
1166 2005-03-14 Matthias Clasen <mclasen@redhat.com>
1168 Make PLT-reduction work with gcc4, and don't include
1169 everything in gobjectalias.h:
1171 * gobject.symbols: Group symbols by header and source
1173 * makegobjectalias.pl: Protect definitions by the same
1174 preprocessor symbols used to guard the headers. Move
1175 the alias declarations to a separate file which is
1176 produced when calling makegalias.pl -def
1177 * Makefile.am (gobjectaliasdef.c): Add a rule to
1179 * *.c: Include gobjectalias.h after the other i
1180 GLib headers, include gobjectaliasdef.c at the bottom.
1182 2005-03-08 Matthias Clasen <mclasen@redhat.com>
1184 * gobject.symbols: Add the new attributes here, too.
1186 * gobject.h: Use G_GNUC_NULL_TERMINATED where
1187 appropriate. (#164706, Marc Meissner)
1189 * gvaluearray.h: Small cleanup (use G_BEGIN/END_DECLS).
1190 (#168474, Fabricio Barros Cabral)
1192 2005-02-24 Tor Lillqvist <tml@novell.com>
1194 * Makefile.am (EXTRA_DIST): Don't distribute
1195 gobject.def. (#167496, J. Ali Harlow)
1197 Sun Feb 6 22:00:46 2005 Manish Singh <yosh@gimp.org>
1199 * abicheck.sh: feed the contents of config.h and glibconfig.h
1200 into the preprocessor, since glib.symbols could need #defines
1203 2005-01-12 Matthias Clasen <mclasen@redhat.com>
1205 Cosmetic fixes (#163792, Benoît Carpentier):
1207 * gobject-query.c (main): Remove duplicate lines.
1209 * gvaluetransform.c: Remove duplicate definitions of
1210 value_transform_[u]int64_[u]int64.
1212 2005-01-07 Matthias Clasen <mclasen@redhat.com>
1214 * === Released 2.6.1 ===
1216 2004-12-27 Matthias Clasen <mclasen@redhat.com>
1218 * Makefile.am: Only check the ABI on linux, since
1219 the shell script is not portable. (#161734, Adrian Bunk)
1221 2004-12-16 Matthias Clasen <mclasen@redhat.com>
1223 * === Released 2.6.0 ===
1225 2004-12-02 Matthias Clasen <mclasen@redhat.com>
1227 * === Released 2.5.7 ===
1229 2004-11-30 Tor Lillqvist <tml@iki.fi>
1231 * Makefile.am (gobject.def): gcc -E complains "linker input file
1232 unused because linking not done" if told to preprocess the
1233 gobject.symbols file. Use '-' and redirection to pass it as
1234 standard input instead.
1236 Sun Nov 28 13:21:12 2004 Manish Singh <yosh@gimp.org>
1238 * abicheck.sh: filter G_GNUC before PRIVATE so $ is still true.
1240 Sun Nov 28 01:37:54 2004 <timj@birnet.org>
1242 * gsignal.c: applied patch by sven@gimp.org (#153727) to reduce
1243 signal connection complexity from O(n_handlers) to O(1).
1245 Thu Nov 25 14:09:41 2004 Manish Singh <yosh@gimp.org>
1247 * abicheck.sh: filter out G_GNUC stuff when doing the compare.
1249 2004-11-23 Matthias Clasen <mclasen@redhat.com>
1251 * gobject.symbols: Typo fix.
1253 Fix a problem with the PLT reduction changes which caused the
1254 internal aliases to lose all attributes.
1256 * gobject.symbols: Add attribute annotations.
1257 * makegobjectalias.pl: Keep attribute annotations, but strip PRIVATE.
1258 * Makefile.am (gobject.def): Strip attribute annotations, but keep
1261 * gtypemodule.h (g_type_module_get_type): Mark as const,
1262 like all other get_type() functions.
1264 2004-11-12 Matthias Clasen <mclasen@redhat.com>
1266 * === Released 2.5.6 ===
1268 Mon Nov 8 10:47:41 2004 Manish Singh <yosh@gimp.org>
1270 * gobject/gsourceclosure.c: removed wrap_g_io_channel_ref() hack,
1271 since g_io_channel_ref() has a compatible API now.
1273 2004-11-02 Matthias Clasen <mclasen@redhat.com>
1275 * === Released 2.5.5 ===
1277 2004-10-27 Matthias Clasen <mclasen@redhat.com>
1279 * === Released 2.5.4 ===
1281 2004-10-27 Matthias Clasen <mclasen@redhat.com>
1283 * abicheck.sh: Strip Win32 specific defs file syntax.
1285 * Makefile.am (gobjectalias.h): Fix srcdir != builddir
1286 builds. (#156447, Thomas Fitzsimmons)
1288 2004-10-26 Matthias Clasen <mclasen@redhat.com>
1290 * abicheck.sh: Don't include symbols which are just in the
1291 symbols list for .defs file compatibility.
1293 2004-10-23 Matthias Clasen <mclasen@redhat.com>
1295 * gtype.h (GTypeInterfaceCheckFunc): Rename first parameter to
1296 check_data, since apparently the system headers on AIX leak a
1297 macro named func_data. (#155178, Andrea Campi)
1299 Wed Oct 6 02:12:44 2004 <timj@birnet.org>
1301 * gtype.c (g_type_instance_get_private): applied patch from Jean-Yves
1302 Lefort <jylefort@brutele.be> to not access the instance_real_class_bsa
1303 pointer without holding the instance_real_class lock.
1305 2004-10-04 Matthias Clasen <mclasen@redhat.com>
1307 * gsignal.c (g_signal_add_emission_hook): Improve the warning
1308 if G_SIGNAL_NO_HOOKS is set. (#154299, Nickolay V. Shmyrev)
1310 2004-09-22 Tor Lillqvist <tml@iki.fi>
1312 * Makefile.am (install-libtool-import-lib): [Win32] Add code to
1313 remove the bug-compatibility entries (see #134813, and related
1314 comments below) from the import library. The PRIVATE keyword in
1315 the .def file is supposed to mean that, but it isn't implemented
1318 * makegobjectalias.pl: In case the symbol is followed by some
1319 stuff ("PRIVATE") that's intended for the .def file, use just the
1322 * gobject.symbols: For binary bug compatibility on Win32, add the
1323 g_slist_remove_all and g_unichar_validate symbols inside #ifdef
1324 INCLUDE_INTERNAL_SYMBOLS. (See #134813 and log entries from March
1327 2004-09-18 Matthias Clasen <mclasen@redhat.com>
1329 * === Released 2.5.3 ===
1331 Thu Sep 16 18:42:46 2004 Manish Singh <yosh@gimp.org>
1333 * abicheck.sh: don't hardcode lengths for cut, instead split on
1336 2004-09-16 Matthias Clasen <mclasen@redhat.com>
1338 Implement the same PLT reduction technique used in GTK+:
1340 * Makefile.am: Generate gobjectalias.h from gobject.symbols.
1341 (BUILT_SOURCES): Add gobjectalias.h.
1343 * makegobjectalias.pl: Script to generate gobjectalias.h.
1345 * *.c: Include gobjectalias.h
1347 2004-09-16 Matthias Clasen <mclasen@redhat.com>
1349 Add ABI control using the same technique that is used in GTK+.
1351 * gobject.symbols: Master list of symbols.
1353 * gobject.def: Removed. It is now generated from gobject.symbols.
1355 * Makefile.am: Generate gobject.def from gobject.symbols.
1356 (TESTS): Add abicheck.sh
1357 (EXTRA_DIST): Add abicheck.sh
1358 (export_symbols): Don't export _-prefixed symbols.
1361 * gtype.c: Move the declarations of the various _init() functions
1362 to the header, and mark them as G_GNUC_INTERNAL.
1364 2004-08-25 Matthias Clasen <mclasen@redhat.com>
1366 * === Released 2.5.2 ===
1368 2004-08-01 Matthias Clasen <mclasen@redhat.com>
1370 * === Released 2.5.1 ===
1372 2004-07-28 Matthias Clasen <mclasen@redhat.com>
1374 * gtype.c (g_type_instance_get_private): Catch cases of
1375 forgotten g_type_add_private(). (#148368, Tommi Komulainen)
1377 2004-07-21 Matthias Clasen <mclasen@redhat.com>
1379 * glib-genmarshal.c (put_marshal_value_getters): Use the
1380 correct fields for enums and flags. (#145015, Tommi Komulainen)
1382 Sun Jul 18 18:03:08 2004 Soeren Sandmann <sandmann@daimi.au.dk>
1384 * === Released 2.5.0 ===
1386 2004-07-12 Matthias Clasen <mclasen@redhat.com>
1388 * gsignal.c (g_signal_handler_is_connected): Don't
1389 choke on a zero handler_id.
1391 Tue Jul 6 00:46:43 2004 Matthias Clasen <maclas@gmx.de>
1394 * gtypemodule.c: Fix the declarations of the new
1395 functions to return GType, not void.
1396 Also add missing includes. (#145508, Morten Welinder)
1398 Tue Jul 6 00:46:43 2004 Matthias Clasen <maclas@gmx.de>
1401 * gtypemodule.c (g_type_module_register_flags):
1402 * gtypemodule.c (g_type_module_register_enum): New
1403 functions to register enum and flags types from a
1404 GTypeModule. (#145396, Sven Neumann)
1406 Wed Jun 23 12:55:34 2004 Matthias Clasen <maclas@gmx.de>
1408 * gtype.h (G_DEFINE_TYPE_EXTENDED): Add an initializer for
1409 the g_define_type_info.value_table. (#144678, Mariano
1412 Tue Jun 22 21:50:47 2004 Matthias Clasen <maclas@gmx.de>
1414 * gsignal.c: Fix a couple of typos.
1416 Fri Jun 18 22:53:13 2004 Matthias Clasen <maclas@gmx.de>
1418 * gsourceclosure.h (__G_SOURCECLOSURE_H__): Actually
1419 define the guard after checking for it. (#108038,
1422 2004-04-30 Matthias Clasen <mclasen@redhat.com>
1424 * === Released 2.4.1 ===
1426 2004-04-22 Matthias Clasen <mclasen@redhat.com>
1428 * glib-mkenums.in: Actually convert escape chars in
1429 --vprod. (#139058, Christophe Saout)
1431 2004-04-15 Matthias Clasen <mclasen@redhat.com>
1433 * gparamspecs.c (param_float_init): Correct the initial
1434 minimal value to be -G_MAXFLOAT. The initial values were
1435 inconsistant before, with the initial default being smaller
1436 than the inital minimum.
1437 (param_double_init): Correct the initial minimal value
1440 Tue Mar 9 09:16:11 2004 Owen Taylor <otaylor@redhat.com>
1442 * === Released 2.4.0 ===
1444 2004-03-10 Tor Lillqvist <tml@iki.fi>
1446 * gobject.def: Mark the two entries that shouldn't be in the
1447 import library (see below) as PRIVATE.
1449 Tue Mar 9 09:16:11 2004 Owen Taylor <otaylor@redhat.com>
1451 * === Released 2.3.6 ===
1453 2004-03-04 Tor Lillqvist <tml@iki.fi>
1455 * gobject.def: Another of the glib DLL's functions was erronously
1456 present in the stable branch's gobject.def: g_unichar_validate,
1457 and nobody noticed until too late. Thus there are applications
1458 deployed that expect it to be found in the gobject DLL, and to
1459 keep ABI compatibility, we must keep it there forever. Argh.
1461 Mon Mar 1 16:49:51 2004 Owen Taylor <otaylor@redhat.com>
1463 * === Released 2.3.5 ===
1465 2004-03-01 Tor Lillqvist <tml@iki.fi>
1467 * gobject.def: Add g_slist_remove_all back for ABI
1468 compatibility. That entry point actually is in the glib DLL, but
1469 it was at some time many years ago by mistake added to
1470 gobject.def. Thus there presumably are executables out there that
1471 expect it to be exported from the gobject DLL. We don't want to
1472 break those. (#134813, J. Ali Harlow)
1474 Fri Feb 27 01:49:22 2004 Matthias Clasen <maclas@gmx.de>
1476 * glib-mkenums.in: Support parsing of intializers containing
1477 macros with arguments. (#129717)
1479 2003-02-28 Hans Breuer <hans@breuer.org>
1481 * gobject.def : added g_strv_get_type
1483 Tue Feb 24 14:09:21 2004 Owen Taylor <otaylor@redhat.com>
1485 * === Released 2.3.3 ===
1487 Fri Feb 20 02:44:54 2004 Tim Janik <timj@gtk.org>
1489 * gtype.h (G_DEFINE_TYPE_EXTENDED): added (GTypeFlags) cast needed by C++.
1491 Tue Feb 3 21:24:01 2004 Tim Janik <timj@gtk.org>
1493 * gtype.h (_G_TYPE_CVH): provide a short-cut version for
1494 this macro in case value->g_type==checked_type for gcc, similar
1495 to instance and class check short-cuts. this speeds up code that
1496 makes frequent use of G_VALUE_HOLDS_*() (e.g. setters/getters).
1498 * gtype.c (type_data_last_unref_Wm): don't call class-cache functions
1499 for the uncached case, this rendered g_type_class_unref_uncached()
1500 useless. pointed out by Stefan Westerfeld.
1502 Sat Jan 24 18:20:13 2004 Tim Janik <timj@gtk.org>
1504 * gtype.h: prefixed the parent_class variable defined by G_DEFINE_TYPE()
1505 with type_name. removed type_parent_class argument
1506 from G_DEFINE_TYPE_EXTENDED().
1508 2004-01-24 Tor Lillqvist <tml@iki.fi>
1510 * gobject.def: Add a missing entry.
1512 Sun Jan 11 15:34:35 2004 Manish Singh <yosh@gimp.org>
1514 * gsourceclosure.c: wrap g_io_channel_ref in a function that returns
1515 the passed in GIOChannel, so we aren't abusing GBoxedCopyFunc
1516 semantics. Fixes bug #131076.
1518 Sat Jan 10 23:55:42 2004 Matthias Clasen <maclas@gmx.de>
1520 * glib-mkenums.1: Document the lowercase_name trigraph option.
1522 Sat Jan 10 02:43:20 2004 Tim Janik <timj@gtk.org>
1524 * gtype.h: made G_DEFINE_TYPE_INTERNAL() public by renaming it to
1525 G_DEFINE_TYPE_EXTENDED() and moving it into the appropriate section.
1527 Fri Jan 9 23:41:00 2004 Matthias Clasen <maclas@gmx.de>
1530 * gboxed.c (g_strv_get_type): Add a boxed type for nul-terminated
1531 string arrays. (#110528)
1533 Fri Jan 9 15:34:15 2004 Tim Janik <timj@gtk.org>
1535 * gtype.h: added convenience macros G_IMPLEMENT_INTERFACE() and
1536 G_DEFINE_TYPE() plus variants.
1538 2003-12-30 Murray Cumming <murrayc@usa.net>
1540 * gobject/glib-mkenums.in: Added a lowercase_name option, to be used
1541 next to the enum declaration, where the flag option is already used,
1542 when it is not possible to guess where to put the underscores in the
1543 _get_type() function name, for instance for GNOMEVFSURIHide.
1545 Fri Dec 26 01:34:01 2003 Matthias Clasen <maclas@gmx.de>
1547 * gtype.c (g_type_class_peek_parent): Don't acquire a read lock
1548 here. (#106433, Owen Taylor)
1550 Wed Dec 17 23:29:17 2003 Matthias Clasen <maclas@gmx.de>
1552 * gvalue.c (g_value_peek_pointer): Use g_assert() instead of
1553 g_return_val_if_fail(), suggested by Sheldon Simms.
1555 2003-12-13 Hans Breuer <hans@breuer.org>
1557 gobject.def : update externals
1559 Sat Nov 29 14:57:20 2003 Tim Janik <timj@gtk.org>
1561 * gobject.c: fix g_object_set() within _init() implementations
1562 not working for construct-only properties.
1563 (g_object_init): make the object enter a construct_objects list.
1564 (g_object_newv): remove object from construct_objects after creation.
1565 (g_object_set_valist):
1566 (g_object_set_property): allow construct-only properties for
1567 objects which are in construct_objects.
1569 Thu Nov 27 17:53:52 2003 Tim Janik <timj@gtk.org>
1572 (g_type_class_peek_static): variant of class_peek() which works for
1576 (g_object_do_class_init): make ::notify a run-action signal.
1577 (g_object_newv): use g_type_class_peek_static() by default to
1578 speed up common code path (trades two write-locks for one read-lock).
1579 (g_object_disconnect):
1580 (g_object_connect): allow signal specification words to be
1582 (g_object_set_valist):
1583 (g_object_new_valist): don't leak values.
1584 (g_object_get_property): check property for readability.
1585 (g_object_set_property): check property for writability and to
1586 not be construct-only.
1587 (g_object_set_valist): check property to not be construct-only.
1589 Sat Oct 25 01:09:17 2003 Matthias Clasen <maclas@gmx.de>
1591 * gparam.h (struct _GParamSpecClass): Add /*< private >*/
1592 marker for documentation purposes.
1594 Tue Oct 21 23:17:06 2003 Matthias Clasen <maclas@gmx.de>
1596 * genums.h (struct _GEnumClass):
1597 * genums.h (struct _GFlagsClass):
1598 * gtypemodule.h (struct _GTypeModuleClass):
1599 * gtypemodule.h (struct _GTypeModule): Add /*< public >*/
1600 and /*< private >*/ markers for documentation purposes.
1602 Tue Oct 14 17:40:19 2003 Owen Taylor <otaylor@redhat.com>
1604 * gparamspecs.[ch]: Add a new GParamSpecOverride type
1605 that is a pointer to a different paramspec in a parent
1608 * gparam.[ch]: Add g_paramspec_get_redirect_target()
1609 which follows GParamSpecOverride to the real property.
1610 Make g_param_spec_pool_list() hand redirections,
1611 properties on interfaces.
1613 * gobject.[ch] gobjectnotifyqueue.c: Add
1614 g_object_interface_install_property,
1615 g_object_interface_find_property,
1616 g_object_interface_list_properties(). Redirect virtually all
1617 publically exposed GParamSpec's to the redirect target if
1618 any. (->constructor is the exception.)
1621 Mon Oct 20 22:06:12 2003 Matthias Clasen <maclas@gmx.de>
1623 * gobject.h (struct _GObjectClass): Add /*< public >*/
1624 and /*< private >*/ markers for documentation purposes.
1626 Sat Oct 18 01:24:14 2003 Matthias Clasen <maclas@gmx.de>
1628 * gtypeplugin.h (struct _GTypePluginClass): Add /*< public >*/
1629 and /*< private >*/ markers for documentation purposes.
1631 Thu Oct 2 07:37:12 2003 Tim Janik <timj@gtk.org>
1633 * gtype.c: fix post class_init interface initialization logic
1636 Thu Oct 2 01:16:50 2003 Owen Taylor <otaylor@redhat.com>
1638 * gtype.[ch]: Add g_type_add/remove_interface_check(),
1639 which allows inserting a post-interface-initialization
1642 * testgobject.c: Fix a deprecated usage.
1644 Mon Sep 29 10:51:01 2003 Owen Taylor <otaylor@redhat.com>
1646 * gtype.[ch]: Add g_type_default_interface_ref/peek/unref
1647 for accessing the default vtable of an interface.
1649 Fri Sep 26 17:24:53 2003 Owen Taylor <otaylor@redhat.com>
1651 * gtype.c (g_type_instance_get_private): You can
1652 have instance_real_class_bsa be non-NULL, but still
1653 the class not be in the bsa. (Found by Kris Rietveld)
1655 2003-09-15 Matthias Clasen <maclas@gmx.de>
1657 * glib-genmarshal.c (complete_out_arg): Don't generate code
1658 using deprecated APIs. (#122292, Christian Persch)
1660 Fri Sep 12 16:31:40 2003 Owen Taylor <otaylor@redhat.com>
1662 * gsignal.[ch]: Add g_signal_accumulator_true_handled(), to
1663 do TRUE-stops-emit signals. (#80487, Ron Steinke)
1665 * Makefile.am: Move testoverride.c and testifaceinit.c to
1668 2003-09-12 Matthias Clasen <maclas@gmx.de>
1670 Make the g_value_set_x_take_ownership() functions "official"
1671 part of the API (#100948):
1673 * gvaluetypes.[hc]: Add g_value_take_string() (synonym to the
1674 now deprecated g_value_set_string_take_ownership()).
1676 * gparam.[hc]: Add g_value_take_param() (synonym to the
1677 now deprecated g_value_set_param_take_ownership()).
1679 * gobject.[hc]: Add g_value_take_object() (synonym to the
1680 now deprecated g_value_set_object_take_ownership()).
1682 * gboxed.[hc]: Add g_value_take_boxed() (synonym to the
1683 now deprecated g_value_set_boxed_take_ownership()).
1685 Tue Sep 2 19:37:21 2003 Tim Janik <timj@gtk.org>
1687 * gtype.[hc]: added support for a "default vtable" per interface,
1688 that interface vtables are initialized from.
1689 the default vtable is initialized and finalized through class_init,
1690 class_finalize and class_data from the interfaces GTypeInfo struct.
1691 (type_data_last_unref_Wm): unload child plugin before unreffing
1694 testifaceinit.c: minor fixups. fixed up base_init() assertions, since
1695 with a default vtable, base_init() may be called multiple times.
1696 added default initializer to iface1.
1698 Tue Sep 2 14:53:41 2003 Tim Janik <timj@gtk.org>
1700 * gobject-query.c (main): fix iterating over fundamental types.
1702 * gtype.c: applied patch from owen which keeps internal
1703 class initialization state to maintain class and interface
1704 initialization happen in the order of:
1706 2. interface' base_init
1707 = interfaces added after here are immediately base_init-ialized
1710 = interfaces added here are immediately Interface_init-ialized
1712 Wed Aug 27 19:53:26 2003 Manish Singh <yosh@gimp.org>
1714 * gobject.c: removed stray change from previous commit.
1716 Wed Aug 27 01:25:40 2003 Owen Taylor <otaylor@redhat.com>
1718 * Makefile.am testifaceinit.c: Add a detailed test case
1719 for interface initialization, testing the ability to
1720 add interfaces during class initialization and the ordering
1721 of interface base_init, class init, and interface_init.
1722 (Expected to fail at the moment.)
1724 Mon Aug 25 14:51:46 2003 Manish Singh <yosh@gimp.org>
1726 * gtypemodule.c (g_type_module_register_type): fix typo in last
1727 commit, cast to GTypeValueTable * to get rid of const warning.
1729 Mon Aug 25 14:16:48 2003 Owen Taylor <otaylor@redhat.com>
1731 * gtypemodule.c (g_type_module_register_type): Clarify
1732 docs on the return. Fix a memory leak if a type with a
1733 value table is reloaded. (#112439, Daniel Yacob)
1735 Tue Aug 19 05:21:04 2003 Tim Janik <timj@gtk.org>
1737 * testgobject.c (main): check private instance data after
1740 * gtype.c: for instances with private data, store the real class
1741 pointer in a bsearch array during class initialization.
1742 (g_type_instance_get_private): fetch the real class of
1743 an instance from the bsearch array if necessary.
1745 Tue Aug 19 04:08:14 2003 Tim Janik <timj@gtk.org>
1747 * gvalue.c: adapt to new gbsearcharray.h code.
1748 (g_value_register_transform_func): turn transform function
1749 replacement into a valid operation.
1751 * gsignal.c: adapt to new gbsearcharray.h code.
1753 * gboxed.c: adapt to new gbsearcharray.h code.
1755 Tue Aug 19 01:31:28 2003 Tim Janik <timj@gtk.org>
1757 * gsignal.c: added optimizations to skip NOP signal emissions.
1759 2003-08-08 Matthias Clasen <maclas@gmx.de>
1761 * gobject.c (object_set_property): Improve the wording of the warning for invalid
1762 values. (#117246, Mariano Suarez-Alvarez)
1764 Wed Aug 6 09:57:14 2003 Owen Taylor <otaylor@redhat.com>
1766 * testgobject.c (test_signal_accumulator): Add check
1767 for instance private usage within in instance_init.
1768 (Currently will fail.)
1770 2003-07-20 Hans Breuer <hans@breuer.org>
1772 * gobject.def : updated externals
1774 Tue Jul 8 22:29:31 2003 Soeren Sandmann <sandmann@daimi.au.dk>
1776 * gtype.c (type_class_init_Wm): Only access node->data->instance
1777 when the node is instantiable.
1779 Tue Jul 8 14:55:27 2003 Owen Taylor <otaylor@redhat.com>
1781 * gtype.c (type_class_init_Wm): Initialize
1782 node->data->instance.private_size here rather than
1783 in type_data_make_W() since the class init for the parent
1784 class may have changed pnode->data->instance.private_size.
1785 (#116921, reported by Soeren Sandmann)
1787 2003-06-18 Matthias Clasen <maclas@gmx.de>
1789 * Makefile.am (man_MANS): Removed, these are now installed from
1790 docs/reference/gobject.
1792 Fri May 30 14:42:24 2003 Owen Taylor <otaylor@redhat.com>
1794 * gobject.c (g_value_set_object): Order refs/unrefs
1795 so setting the same object back is safe. (#112861,
1798 2003-03-24 Sven Neumann <sven@gimp.org>
1800 * gtype.c (type_data_finalize_class_ifaces_Wm): removed leftover
1801 debugging message (bug #109093).
1803 Thu Feb 27 17:33:19 2003 Owen Taylor <otaylor@redhat.com>
1805 * gtype.[ch] testgobject.c: Add support for instance-private data.
1806 g_type_class_add_private(), g_type_instance_get_private(),
1807 G_TYPE_INSTANCE_GET_PRIVATE(). (#101959, patch partly by
1808 Mark McLoughlin, extensive feedback from Tim Janik.)
1810 2003-03-06 Matthias Clasen <maclas@gmx.de>
1812 * gsignal.c (g_signal_handlers_block_matched):
1813 (g_signal_handlers_unblock_matched):
1814 (g_signal_handlers_disconnect_matched): Fix 0/FALSE confusion.
1815 (#107662, Morten Welinder)
1817 Mon Feb 17 20:59:47 2003 Tim Janik <timj@gtk.org>
1819 * gvalue.c (g_value_register_transform_func): don't assert the types
1820 passed in to have value tables. this prevents dynamic types from
1821 registering transform functions.
1823 Sun Feb 9 13:44:01 2003 Soeren Sandmann <sandmann@daimi.au.dk>
1825 * gboxed.c (boxed_proxy_value_init): remove lookup of unused
1828 2003-02-07 Matthias Clasen <maclas@gmx.de>
1836 * gsignal.c: Remove all docs from gobject at Tims
1837 request. Documentation is only for weenies anyway...
1839 2003-01-12 Tor Lillqvist <tml@iki.fi>
1841 * gobject.def: Add g_type_interface_prerequisites. Thanks to
1844 2002-12-18 Matthias Clasen <maclas@gmx.de>
1846 * gobject.c: Add docs.
1848 2002-12-18 Michael Natterer <mitch@gimp.org>
1850 * gobject/gtype.c (type_data_finalize_class_ifaces_Wm): applied
1851 patch I got from Tim Janik for testing which fixes bug #101521.
1852 (restart iterating the interface enties each time we finalized one
1853 because they might have been modified).
1855 2002-12-17 Matthias Clasen <maclas@gmx.de>
1857 * gparam.c (g_param_spec_internal): Remove markup from doc
1858 comment, as GObject doesn't use --sgml-mode yet.
1860 2002-12-15 Matthias Clasen <maclas@gmx.de>
1862 * gsignal.c (g_signal_new): Typo fix.
1865 * gparam.c (g_param_spec_internal):
1866 * gobject.c (g_object_class_install_property): Add docs.
1868 2002-12-13 Matthias Clasen <maclas@gmx.de>
1870 * glib-genmarshal.c, gobject-query.c: Use g_printf() instead of
1871 system printf. (#99319)
1873 Thu Dec 12 15:00:10 2002 Manish Singh <yosh@gimp.org>
1875 * gvaluetransform.c: use G_G[U]INT64_FORMAT unconditionally,
1876 since we'll always have it now.
1878 2002-12-07 Matthias Clasen <maclas@gmx.de>
1880 * gparam.c (canonalize_key): Rename to canonicalize_key. Adjust
1883 2002-12-05 Matthias Clasen <maclas@gmx.de>
1885 * gsignal.c (g_signal_new): Explain allowed signal names in more
1888 2002-12-04 Matthias Clasen <maclas@gmx.de>
1890 * gsignal.h (g_signal_add_emission_hook):
1891 * gtype.h (g_type_interface_get_plugin): Sync parameter names with
1892 docs and implementation.
1894 * gtype.c (g_type_add_interface_dynamic):
1895 (g_type_interface_get_plugin):
1896 (g_type_interface_peek_parent):
1897 (g_type_query): Add docs.
1899 2002-12-03 Matthias Clasen <maclas@gmx.de>
1901 * gtype.c (g_type_get_qdata):
1903 (g_type_interface_add_prerequisite): Add docs.
1905 2002-12-02 Matthias Clasen <maclas@gmx.de>
1907 * gobject.c (g_signal_connect_object): Add docs.
1909 2002-11-30 Matthias Clasen <maclas@gmx.de>
1911 * gsignal.c: More docs.
1913 2002-11-28 Matthias Clasen <maclas@gmx.de>
1915 * gtype.c (g_type_interface_prerequisites): Document as 2.2
1918 Thu Nov 21 16:05:50 2002 Owen Taylor <otaylor@redhat.com>
1920 * gtype.c (g_type_check_instance_cast): Allow
1921 NULL to be cast to any type. (Frequently requested,
1922 most recently #99023, Lars Clausen.)
1924 Mon Nov 4 14:42:36 2002 Owen Taylor <otaylor@redhat.com>
1926 * gtype.c gsignal.c gvaluearray.c: Include config.h
1927 so DISABLE_MEMPOOLS actually has an effect.
1928 (#96437, Morten Welinder)
1930 * gsignal.c: Conditionalize definition of g_handler_ts
1931 on DISABLE_MEM_POOLS (#96437)
1933 2002-10-20 Matthias Clasen <maclas@gmx.de>
1935 * gtype.c (g_type_interface_prerequisites): Report only the most
1936 specific instantiatable prerequisite, filter out all supertypes of
1937 this one (the supertypes are added to the prerequisites array for
1940 2002-10-16 Matthias Clasen <maclas@gmx.de>
1942 * glib-mkenums.in: Support for template files.
1944 * glib-mkenums.1: Document --template.
1946 2002-10-15 Matthias Clasen <maclas@gmx.de>
1948 * gtype.c (g_type_interface_prerequisites): New function to obtain
1949 the prerequisites of an interface type.
1951 Sat Oct 12 22:02:32 2002 Tim Janik <timj@gtk.org>
1953 * merged up from 2.0:
1955 * testgobject.c: test creation of new fundamental types.
1957 * gtype.c (g_type_fundamental_next), (type_node_fundamental_new_W):
1958 account for static_fundamental_next storing non-shifted fundamental
1959 IDs. this fixes g_type_fundamental_next() not returning a new usable
1962 Wed Sep 11 16:50:20 2002 Dom Lachowicz <cinamod@hotmail.com>
1964 * gtype.h: Fix problems with excessive C++ warnings: "ISO C++ forbids nested groups within expressions"
1966 Fri Jul 26 15:46:36 2002 Owen Taylor <otaylor@redhat.com>
1968 * gvaluetransform.c: Fix problems with excess ';'
1969 by addition of strategic 'extern void glib_dummy_decl (void)'
1970 (#83272, David L. Cooper II)
1972 Thu Jul 25 20:34:39 2002 Owen Taylor <otaylor@redhat.com>
1974 * gtype.c (g_type_interface_add_prerequisite): When
1975 adding ancestral prerequisites, add the grandparents,
1976 not the siblings. (Problem found by Jon Trowbridge, patch from
1979 2002-07-05 Anders Carlsson <andersca@gnu.org>
1981 * gobject.c (g_object_base_class_finalize): Remove debugging
1982 message, approved by Tim Janik.
1984 2002-06-11 Anders Carlsson <andersca@gnu.org>
1986 * gtypemodule.c: (g_type_module_complete_interface_info):
1988 Fix argument order. Fixes #82806.
1990 Mon May 20 15:57:47 2002 Owen Taylor <otaylor@redhat.com>
1992 * gsignal.c: When printing errors, handle NULL
1993 returns from g_type_debug(). (#73559, Laszlo Peter)
1995 * gtype.c (type_descriptive_name_I): De-inline,
1996 since it's only used for debugging.
1998 Tue May 7 15:03:02 2002 Owen Taylor <otaylor@redhat.com>
2000 * glib-genmarshal.c: Fix include order for config.h (#71704,
2003 2002-05-07 Michael Natterer <mitch@gimp.org>
2005 * Makefile.am: use the glib-genmarshal found at configure time
2006 if CROSS_COMPILING is set, use the one which was just built
2009 Mon May 6 16:06:23 2002 Owen Taylor <otaylor@redhat.com>
2011 [ merged from stable ]
2013 * gobject.c: Remove PROPERTIES_CHANGED enumeration
2014 value that wasn't used any more. (#78833,
2017 * gboxed.c (g_boxed_copy): Remove check on data[2]
2018 that no longer exists. (#80814, Daniel Elstner)
2020 Tue Mar 26 15:21:47 2002 Owen Taylor <otaylor@redhat.com>
2022 * gsignal.h (g_signal_handlers_*_by_func): Add explicit
2023 cast of G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA to
2024 GSignalMatchType so that these macros work for C++.
2025 (#76454, Damien Sandras)
2027 Mon Mar 25 17:51:05 2002 Owen Taylor <otaylor@redhat.com>
2029 * glib-mkenums.in (parse_entries): Fix various bugs and
2030 excessive stack usage that crept in the conversion from
2031 gtk-mkenums. (#74431)
2033 Mon Mar 25 17:25:57 2002 Owen Taylor <otaylor@redhat.com>
2035 * gtype.c (g_type_free_instance): Wrap setting freed instance
2036 memory to 0xaa in #ifdef G_ENABLE_DEBUG
2038 Thu Mar 21 01:28:14 2002 Tim Janik <timj@gtk.org>
2041 * gobject.[hc]: fix extraneous include.
2043 Tue Mar 19 18:57:12 2002 Tim Janik <timj@gtk.org>
2045 * gtype.c (check_add_interface_L): applied patch from Matthias Clasen
2046 <maclas@gmx.de> to check for prerequisite of interfaces, fixes #74427.
2047 fixed mutex recursion in his patch (we can't call g_type_is_a() while
2048 holding a read lock).
2050 * gparam.c (canonalize_key): cleanup.
2052 2002-03-13 Alexander Larsson <alla@lysator.liu.se>
2054 * gparam.c (canonalize_key):
2055 Function to canonicalize parameter names. Faster than
2057 (g_param_spec_internal, param_spec_ht_lookup):
2060 2002-03-13 Erwann Chenede <erwann.chenede@sun.com>
2061 * gobject/gclosure.c
2063 * gobject/gsignal.c: fixed cast problems with function pointer
2064 to avoid warnings (with forte compiler) (#73898)
2066 2002-03-05 Sven Neumann <sven@gimp.org>
2068 * gvaluetransform.c (g_value_transforms_init): don't try to
2069 register undeclared value transform functions if G_GINT64_FORMAT
2070 or G_GUINT64_FORMAT are undefined (#73586).
2072 2002-03-03 Tor Lillqvist <tml@iki.fi>
2075 * makefile.mingw.in: Rename testgruntime to testgobject here, too.
2077 Sun Mar 3 04:11:58 2002 Tim Janik <timj@gtk.org>
2079 * gobject.c: placed a comment about not changing CArray until we have
2080 g_object_list_watched_closures().
2082 * gparam.h (struct _GParamSpecClass): added padding.
2084 * gobjectnotifyqueue.c (struct _GObjectNotifyQueue): abuse
2085 g_list_alloc() to allocate GObjectNotifyQueue to et rid
2088 Tue Feb 26 10:51:00 2002 Owen Taylor <otaylor@redhat.com>
2090 * Makefile.am (testgobject_LDADD): Rename testgruntime
2093 Sun Feb 24 22:08:29 2002 Owen Taylor <otaylor@redhat.com>
2095 * gtypemodule.[ch] (g_type_module_add_interface): Make
2096 GInterfaceInfo paramter const to correspond to the
2097 conventions for the g_type_add_interface() functions.
2098 (#72461, Miroslaw Dobrzanski-Neumann)
2100 Sat Feb 23 13:28:56 2002 Owen Taylor <otaylor@redhat.com>
2102 * gtypeplugin.h (struct _GTypePluginClass): Add some
2103 padding to the class.
2105 * gclosure.h (struct _GClosure): Fix typo in comment.
2107 2002-02-20 Tor Lillqvist <tml@iki.fi>
2109 * gobject.def: Add g_value_set_object_take_ownership and
2110 g_value_set_param_take_ownership.
2112 Wed Feb 20 22:55:15 2002 Owen Taylor <otaylor@redhat.com>
2114 * gobject.c: Fix implicit conversions between void * and
2115 function pointer (Miroslaw Dobrzanski-Neumann, #71963)
2117 Sun Feb 16 22:08:48 2002 Tim Janik <timj@gtk.org>
2120 * gparam.[hc]: provide marshaller specific value_set_*_take_ownership()
2123 * gvalue.h: shrink GValue's data contents to 2 unions.
2125 * glib-genmarshal.c: fix release and realeas_check hackage by always
2126 using _take_ownership() variants. directly access value contents if
2127 G_ENABLE_DEBUG is not defined.
2129 * gobject.h: add padding pointers to the class struct.
2131 Wed Feb 13 17:22:37 2002 Tim Janik <timj@gtk.org>
2133 * gtype.c (g_type_value_table_peek): fixed a check for node not being NULL.
2135 Wed Feb 13 06:53:50 2002 Tim Janik <timj@gtk.org>
2137 * gparam.c: remove extraneous redefinition of G_PARAM_SPEC_CLASS().
2139 Wed Feb 13 06:29:51 2002 Tim Janik <timj@gtk.org>
2141 * gvaluetransform.c: cosmetic cleanups, fixed [u]int64->string
2144 * ChangeLog: added entry from owen which went into the wrong
2147 Fri Feb 8 23:52:27 2002 Owen Taylor <otaylor@redhat.com>
2149 * gobject/gvaluetransform.c: Register transformations for
2150 gint64, guint64. (#70780, patch from Andy Wingo)
2152 2002-02-10 Hans Breuer <hans@breuer.org>
2154 * gvaluetransform.c : msvc 5.0 can't cast from uint64 to
2155 double. Disable respective transform_func than.
2157 * makefile.msc.in : build test programs
2159 Thu Jan 24 07:39:56 2002 Tim Janik <timj@gtk.org>
2161 * gobject.c (g_signal_connect_object): return gulong instead
2164 Fri Jan 11 12:26:36 2002 Tim Janik <timj@gtk.org>
2166 * gparamspecs.c: fixed param_value_array_values_cmp(),
2167 param_value_array_validate() and
2168 param_value_array_set_default() to deal with NULL value
2171 Wed Jan 9 05:23:27 2002 Tim Janik <timj@gtk.org>
2173 * gobject.h (G_OBJECT_WARN_INVALID_PROPERTY_ID): cosmetic fix.
2175 2002-01-05 Hans Breuer <hans@breuer.org>
2177 * makefile.msc.in : use -FImsvc_recommended_pragmas.h
2179 Fri Jan 4 04:36:46 2002 Tim Janik <timj@gtk.org>
2181 * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): turn this into a GType,
2182 so negating it works on 64bit platforms.
2184 2001-12-21 Tor Lillqvist <tml@iki.fi>
2186 * gobject.def: Add g_signal_get_invocation_hint.
2188 Tue Dec 18 21:39:57 2001 Tim Janik <timj@gtk.org>
2190 * testoverride.c: added some assertions to test
2191 g_signal_get_invocation_hint().
2193 * gsignal.[hc]: remove signal_id argument from
2194 g_signal_chain_from_overridden(), the parameters are assumed to match
2195 the innermost signal currently in emission for this instance.
2196 added g_signal_get_invocation_hint() to figure the invocation hint
2197 of the innermost signal emission of an instance.
2199 * gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
2200 access a bsearch array and not a pointer to it (discovered by
2203 2001-12-17 Anders Carlsson <andersca@gnu.org>
2205 * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): Set the reserved bit
2206 to (1 << 0) instead of (1 << 30).
2208 2001-12-14 James Henstridge <james@daa.com.au>
2210 * Makefile.am: add rules to build it.
2212 * testoverride.c: test program for closure override/chaining.
2214 Thu Dec 13 08:03:17 2001 Tim Janik <timj@gtk.org>
2216 * gsignal.c: implemented closure chaining.
2218 2001-12-08 Christopher Blizzard <blizzard@redhat.com>
2220 * gsignal.h (g_signal_connect): Explicitly add a cast to the last
2221 argument so that the macro will work from C++.
2223 2001-12-06 Tor Lillqvist <tml@iki.fi>
2225 * makefile.mingw.in (gobject_OBJECTS): Add gsourceclosure.o.
2227 Mon Nov 26 09:55:12 2001 Tim Janik <timj@gtk.org>
2229 * gtype.h: typedef GType to gulong instead of gsize, if possible.
2231 * gtype.c: fixups for GType being sizeof(long) wide (changed
2235 * gparam.c: likewise.
2237 Sun Nov 25 22:33:32 2001 Tim Janik <timj@gtk.org>
2239 * gtype.h: removed enum GTypeFundamentals. use macros
2240 to provide the constant fundamental type IDs, so they
2241 all return numbers of type GType, and not int.
2242 sizeof(GTypeFundamentals) < sizeof(GType) problem reported
2243 and fix sugegsted by Havoc.
2245 2001-11-23 Hans Breuer <hans@breuer.org>
2247 * gobject.def : updated externals
2249 Mon Nov 19 14:35:56 2001 Owen Taylor <otaylor@redhat.com>
2251 * *.h: Improve the detection of invalid includes by moving
2252 the test outside the duplicate include guards.
2254 * gsourceclosure.c (g_source_set_closure): Doc fix.
2256 Thu Nov 22 03:30:57 2001 Tim Janik <timj@gtk.org>
2258 * gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
2259 instead of g_type_value_table_peek().
2261 * gtype.[hc] (type_check_is_value_type_U): speed up check
2262 LOCK-less by caching lookups in node->mutatable_has_value_table.
2264 * gtype.[hc]: removed locks where possible. partly based on
2265 patches from owen and alex.
2267 Thu Nov 22 00:26:26 2001 Tim Janik <timj@gtk.org>
2269 * gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
2270 g_type_fundamental_next() to return next usable fundamental
2271 type. use TypeNode pointers as type IDs.
2273 2001-11-22 Tor Lillqvist <tml@iki.fi>
2275 * makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
2277 * gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
2278 makes sense only when building libglib. GOBJECT_VAR is similar for
2281 * gobject.def: Add g_param_spec_types, remove
2282 g_type_fundamental_branch_last.
2284 Wed Nov 21 17:23:33 2001 Tim Janik <timj@gtk.org>
2286 * gparamspecs.[hc]: put newly created param spec types into a
2289 * gboxed.[hc]: moved boxed types with _get_type() function here,
2290 for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
2293 * gtype.h: removed fundamental branch APIs and derived enum
2294 values. define GType as gsize.
2296 2001-11-19 jacob berkman <jacob@ximian.com>
2298 * gobjectnotifyqueue.c: include glib-object.h rather than
2301 2001-11-16 Mark McLoughlin <mark@skynet.ie>
2303 * glib-mkenums.in: allow the enums name to not be on the same
2304 line as the trailing '}'. (#64714)
2306 2001-11-18 Hans Breuer <hans@breuer.org>
2308 * makefile.msc.in : remove g_log_domain_gruntime usage
2310 Sat Nov 17 18:14:40 2001 Owen Taylor <otaylor@redhat.com>
2312 * glib-genmarshal.c: Exit with non-zero exit status if
2313 any errors were encountered.
2315 * glib-genmarshal.c: Instead of generating gobject/gmarshal.h
2316 #include only for the header, generate glib-object.h
2317 #include for both the header and body. (#63834)
2319 * glib-genmarshal.c: Generate include guards around the
2320 content unless --nostdinc is specified.
2322 2001-11-17 Tor Lillqvist <tml@iki.fi>
2324 * gobject.def: Add g_pointer_type_register_static.
2326 2001-11-15 Tor Lillqvist <tml@iki.fi>
2328 * gobject.def: Reflect recent changes.
2330 Tue Nov 13 23:18:10 2001 Tim Janik <timj@gtk.org>
2332 * gsignal.[hc]: add API for chaining:
2333 g_signal_chain_from_overridden() and g_signal_override_class_closure(),
2334 implementation yet to come.
2336 * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
2338 * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
2339 get_name and get_blurb, to be consistent with the rest of the
2340 g_param_spec_*() functions.
2342 * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
2343 G_TYPE_CLOSURE is a boxed type already.
2345 Tue Nov 13 22:16:41 2001 Tim Janik <timj@gtk.org>
2347 * gtype.[hc]: API cleanups.
2348 remove g_type_check_flags(), provide g_type_test_flags() as
2349 a *private* function.
2350 s/g_type_check_is_a/g_type_check_class_is_a/, private function.
2351 s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
2353 Tue Nov 13 20:02:47 2001 Tim Janik <timj@gtk.org>
2355 * gparam.h: fix standard type macros.
2357 Wed Nov 7 00:56:00 2001 Tim Janik <timj@gtk.org>
2359 * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
2360 to walk the notifier list (puhh, black magic, stay-away-warning ;).
2362 Mon Nov 5 18:59:08 2001 Tim Janik <timj@gtk.org>
2365 * gsignal.h: we need signal.h for G_BREAKPOINT().
2367 Sun Nov 4 14:01:23 2001 Owen Taylor <otaylor@redhat.com>
2369 * gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
2370 to register a type derived from G_TYPE_POINTER.
2372 2001-11-03 Hans Breuer <hans@breuer.org>
2374 * makefile.msc.in : gobject-query needs gmarshal.[hc,stings]
2375 so build it after them. Add gsourceclosure.obj.
2377 * gobject.def : removed duplicates, added mising
2379 Mon Oct 29 11:05:15 2001 Owen Taylor <otaylor@redhat.com>
2381 * glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in,
2382 substituting in path to perl. (#63093, Dan Winship)
2384 * Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
2387 2001-10-26 Tor Lillqvist <tml@iki.fi>
2389 * makefile.mingw.in: When running glib-genmarshal, set PATH to
2392 2001-10-23 Tor Lillqvist <tml@iki.fi>
2394 * Makefile.am: (Win32): If we have built the MSVC import library,
2395 install it. Install the gcc import library. Also support
2398 2001-10-13 Matthias Clasen <matthiasc@poet.de>
2400 * glib-genmarshal.1, glib-mkenums.1: Typo fixes.
2402 Fri Oct 12 18:40:18 2001 Tim Janik <timj@gtk.org>
2406 Wed Oct 10 17:25:22 2001 Joshua N Pritikin <vishnu@pobox.com>
2408 * glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
2409 gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
2410 gint64 & guint64 (#59254).
2412 * Unconditionalize same (compile with or without G_HAVE_INT64).
2414 Wed Oct 10 15:38:58 2001 Joshua N Pritikin <vishnu@pobox.com>
2416 * gparamspecs.h (G_IS_PARAM_SPEC_FLAGS): Fix order of
2417 *_PARAM_SPEC_ULONG defines.
2419 Thu Oct 4 01:10:52 2001 Owen Taylor <otaylor@redhat.com>
2421 * gparamspecs.h: Add missing G_HAVE_GINT64 conditionalization.
2423 Wed Oct 3 16:02:24 2001 Owen Taylor <otaylor@redhat.com>
2425 * glib-genmarshal.c gparamspecs.[ch] gvalue.h
2426 gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
2427 and storing it in GValue (Patch from Mathieu Lacage, #59254.)
2429 2001-10-03 jacob berkman <jacob@ximian.com>
2431 * gtype.c (type_iface_retrieve_holder_info_Wm):
2432 (type_iface_vtable_init_Wm):
2433 (type_iface_vtable_finalize_Wm):
2436 * gobject.c (g_object_get_property): s/retrive/retrieve/
2438 2001-09-25 Tor Lillqvist <tml@iki.fi>
2440 * Makefile.am: Use new macros for .def file, and check for
2441 MS_LIB_AVAILABLE, new rule to build MS import library.
2443 * makefile.msc.in: Use same DLL and import library names as
2446 2001-09-21 Hans Breuer <hans@breuer.org>
2448 * gobject.def : updated externals
2450 2001-09-19 Tor Lillqvist <tml@iki.fi>
2452 * gobject.rc.in: Correct InternalName and OriginalFilename to
2453 match what we actually produce.
2455 Tue Sep 18 23:09:02 2001 Tim Janik <timj@gtk.org>
2457 * gparam.[hc]: rename *nick and *blurb fields to catch
2458 direct accesses in third party code.
2459 provide g_param_get_nick(), g_param_get_blurb() and
2460 g_param_get_name() accessors.
2462 Mon Sep 10 20:31:37 2001 Tim Janik <timj@gtk.org>
2464 * gobject.[hc]: removed extraneous GObject* returns from a
2465 couple functions that are very unlikely to be used in nested.
2466 changed gpointer->GObject* for a couple return values/arguments.
2469 Mon Sep 10 19:27:47 2001 Tim Janik <timj@gtk.org>
2472 g_type_add_interface*(): implement the ability to add an interface to
2473 a type whose parents already conform to this interface.
2474 such "overriding" interfaces, when initialized, are not just initialized
2475 with 0, but with a copy of the interface they override.
2476 g_type_interface_peek_parent(): new function, return the interface
2477 that this interface "overrides", if any.
2479 * testgruntime.c: test new interface stuff.
2481 2001-09-10 Alex Larsson <alexl@redhat.com>
2483 * gobject/gboxed.[ch]:
2484 * gobject/gsourceclosure.c:
2485 Removed is_refcounted and GBoxedInitFunc from
2486 g_boxed_type_register_static().
2488 Sat Sep 8 14:13:57 2001 Owen Taylor <otaylor@redhat.com>
2490 * gobject/Makefile.am: Move gbsearcharray.[ch] to glib
2491 as a private ininstalled header.
2493 Tue Sep 4 22:24:48 2001 Matthias Clasen <matthiasc@poet.de>
2495 * gobject.c (g_object_base_class_finalize): typo fix.
2497 Tue Sep 4 01:49:18 2001 Tim Janik <timj@gtk.org>
2499 * gsourceclosure.c: make closure_callback_funcs static,
2500 added some g_return_if_fail() statements.
2502 Mon Aug 27 14:55:27 2001 Owen Taylor <otaylor@redhat.com>
2504 * gsourceclosure.[ch] (g_source_set_closure): Implement.
2506 * gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
2508 2001-08-17 James Henstridge <james@daa.com.au>
2510 * gobject.c (WeakRefStack): add an object member to the structure.
2511 (weak_refs_notify): pass wstack->object as extra argument to
2513 (g_object_weak_ref): set wstack->object when initialising
2516 * gobject.h (GWeakNotify): add second argument to prototype which
2517 gives the pointer to where the object that is being disposed of
2520 Wed Jul 18 19:42:31 2001 Tim Janik <timj@gtk.org>
2522 * gtype.h: if __GNUC__ is defined, inline a test for an exact type
2523 match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
2524 G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
2526 Sun Aug 12 02:07:10 2001 Tim Janik <timj@gtk.org>
2528 * gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
2529 properly, group value allocations.
2530 (g_value_array_new): fix semantic of n_prealloced argument, so it's
2531 really just about preallocation space.
2533 2001-07-23 Padraig O'Briain <Padraig.Obriain@Sun.COM>
2535 * gobject/gobjectnotifyqueue.c: fix unconditional check of
2536 first GParamSpec in g_object_notify_queue_thaw(); to prevent
2537 property notification being lost.
2539 2001-08-06 Sven Neumann <sven@gimp.org>
2542 added new functions g_object_[add|remove]_weak_pointer().
2544 2001-08-01 Sven Neumann <sven@gimp.org>
2546 * gsignal.h: added convenience macro g_signal_connect_after().
2548 2001-07-29 Hans Breuer <hans@breuer.org>
2550 * gobject.def : updated externals
2552 2001-07-20 Hans Breuer <hans@breuer.org>
2554 * gobject.def : updated externals
2556 * makefile.msc.in : reflect glib move
2558 Tue Jul 10 18:50:16 2001 Tim Janik <timj@gtk.org>
2560 * gsignal.h (struct _GSignalQuery): fix misplaced comment.
2562 Mon Jul 2 07:17:47 2001 Tim Janik <timj@gtk.org>
2564 * gobject.c (g_object_weak_ref):
2565 (g_object_watch_closure): congrats tim, introducing of-by-one
2566 errors like on my very first day of C programming.
2568 Sat Jun 30 11:07:00 2001 Tim Janik <timj@gtk.org>
2570 * gobject.[hc]: provide weak_ref/weak_unref functions,
2571 invoked from ->dispose. renamed ->shutdown() to ->dispose(),
2572 provide "public" API entry here: g_object_run_dispose(), this
2573 fucntion should _only_ be called from object system implementations
2574 (e.g. gtkobject.c) if at all.
2576 * gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
2578 * gsignal.h: removed compat aliases.
2580 * gobject.c (g_object_connect): support data objects.
2582 Sat Jun 30 13:17:12 2001 Owen Taylor <otaylor@redhat.com>
2584 * testgruntime.c (test_object_class_init)
2585 gobject.c (g_object_do_class_init):
2586 g_signal_newc() => g_signal_new().
2588 Thu Jun 28 22:49:40 2001 Owen Taylor <otaylor@redhat.com>
2590 * gtype.[ch] gobject-query.c testgruntime.c: Remove
2591 debug flag argument to g_type_init() and add
2592 g_type_init_with_debug_flags().
2594 Thu Jun 28 16:42:49 2001 Tim Janik <timj@gtk.org>
2596 * gsignal.c (g_signal_lookup):
2597 (g_signal_list_ids): give elaborate warnings about invalid types,
2598 non-instantiatable types and unloaded types that we can't operate on.
2600 * gparam.[hc]: g_param_spec_pool_belongings() ->
2601 g_param_spec_pool_list_owned().
2603 * gsignal.[hc]: renamed:
2604 g_signal_newc -> g_signal_new
2605 g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
2606 g_signal_block_by_func -> g_signal_handlers_block_by_func
2607 g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
2608 added GConnectType to simplify (..gboolean swapped, gboolean after)
2611 * gobject.[hc]: changed prototypes accordingly.
2613 2001-06-22 Hans Breuer <hans@breuer.org>
2615 * gobject.def : updated externals
2617 * gobjectnotifyqueue.c : include <string.h> for memset ()
2619 Thu Jun 21 02:43:10 2001 Tim Janik <timj@gtk.org>
2621 * gparamspecs.h: s/long/int/ for default_value in enum and flags
2624 Wed Jun 20 03:59:42 2001 Tim Janik <timj@gtk.org>
2626 * gtype.[hc]: added debugging variants g_type_name_from_class(),
2627 g_type_name_from_instance().
2629 Mon Jun 11 17:07:06 2001 Tim Janik <timj@gtk.org>
2631 * gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
2633 * gobjectnotifyqueue.c: moved property notify queue implementation
2634 bits into this function.
2636 * gparam.[hc]: added g_param_spec_pool_belongings(), completed
2637 g_param_spec_pool_list(). added GParameter for _setv() functions.
2639 * gobject.[hc]: use gobjectnotifyqueue.h implementation now.
2640 got rid of properties_changed signal.
2641 new functions g_object_newv(), g_object_class_list_properties().
2642 removed "properties_changed" signal.
2644 * gtype.[hc]: added g_type_depth() to figure number of parent
2645 types + 1 for a type.
2647 * gsignal.h: add g_signal_connect() (as per owen's request) and
2648 g_signal_connect_swapped().
2650 2001-06-13 Havoc Pennington <hp@redhat.com>
2652 * Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
2653 since an installed libgobject was somehow being found; think
2654 it's a libtool bug, but this workaround should do for now.
2656 2001-06-12 Havoc Pennington <hp@redhat.com>
2658 * Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
2659 bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
2660 in bin_SCRIPTS and cp it into builddir
2662 Thu May 31 17:56:47 2001 Owen Taylor <otaylor@redhat.com>
2664 * gobject-query.c: Fix mispelling in help output.
2665 (#53952, Skip Montanaro)
2667 2001-05-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
2669 * Makefile.am (EXTRA_DIST): Really distribute glib-mkenums, now
2670 that bin_SCRIPTS doesn't seem to care about doing so anymore.
2672 Mon May 28 06:51:24 2001 Tim Janik <timj@gtk.org>
2674 * gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
2675 to release signal lock when restarting emissions.
2677 Sun May 27 04:52:28 2001 Tim Janik <timj@gtk.org>
2679 * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
2680 to stop signal emissions through a detailed_signal string.
2682 * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
2683 the fact that g_value_* functions may cause signal emissons by
2684 unlocking the global signal system lock around g_value_* functions.
2685 (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
2686 that this functions acquires the lock on its own now.
2688 2001-05-24 Hans Breuer <hans@breuer.org>
2690 * makefile.msc.in : changed depndencies to build glib-genmarshal
2691 first and statically linked with glib, which makes it independent
2692 from the installed glib version. Added new object files to build.
2694 * gobject.def : updated
2696 Thu May 24 08:52:02 2001 Owen Taylor <otaylor@redhat.com>
2698 * gobject.[ch] (g_value_set_object): gpointer, not
2701 2001-05-22 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
2703 * Makefile.am (bin_SCRIPTS): made 'make distcheck' happy.
2705 * gobject.def: Removed g_param_spec_stringc.
2707 Tue May 22 02:46:13 2001 Tim Janik <timj@gtk.org>
2709 * gobject.c (g_value_set_object): make g_value_set_object()
2710 take a gpointer v_object so people don't need to G_OBJECT()
2711 cast NULL pointers (C code convenience).
2713 Mon May 14 01:49:01 2001 Tim Janik <timj@gtk.org>
2715 * gsignal.[hc] (g_signal_handler_is_connected): new function
2716 to check whether a handler is still connected to an instance
2719 Thu May 10 14:00:48 2001 Tim Janik <timj@gtk.org>
2721 * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
2722 evidence of public need.
2724 * gsignal.h: added g_signal_disconnect_by_func(),
2725 g_signal_block_by_func() and g_signal_unblock_by_func() convenience
2726 macros as per owen's request.
2728 * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
2729 to size of longs and pointers.
2731 2001-05-05 James Henstridge <james@daa.com.au>
2733 * Makefile.am: glib-mkenums is not a compiled program, so shouldn't
2734 be in the bin_PROGRAMS primary. Put it in bin_SCRIPTS instead, and
2735 removed the glib_mkenums_SOURCES var.
2737 Thu May 3 06:10:23 2001 Owen Taylor <otaylor@redhat.com>
2739 * gobject.c (g_object_set_[q]data_full): Make types of ternary
2740 operator correspond. (Fixes compilation errors with Sun CC,
2743 Mon Apr 30 20:03:56 2001 Tim Janik <timj@gtk.org>
2745 * glib-mkenums (usage): removed \v escaping, newer perl versions don't
2746 support this, and it'S probably useless anyways.
2748 Sat Apr 28 23:39:42 2001 Tim Janik <timj@gtk.org>
2750 * gsignal.[hc]: made signal handler and emission hook ids gulongs.
2751 (signal_handlers_foreach_matched_R): only invoke callback for handlers
2752 that are not disconnected (id>0).
2753 (signal_emit_R): prevent invocation of signal handlers during the
2754 emission they were connected within.
2756 * glib-mkenums: publically installed perl-script to parse C code
2757 enums and generate descriptions thereof.
2758 * glib-mkenums.1: assorted man page.
2760 2001-04-19 Havoc Pennington <hp@redhat.com>
2762 * gobject.c (g_object_get_valist): We were returning junk memory
2763 here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
2764 passed to G_VALUE_LCOPY) and then we freed the GValue immediately
2765 after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
2766 G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
2768 Wed Apr 18 09:46:56 2001 Owen Taylor <otaylor@redhat.com>
2770 * gobject.c gsignal.c: Change C++ comments for FIXME's to
2771 C comments. (Patch from Andres Salomon)
2773 2001-04-14 Hans Breuer <hans@breuer.org>
2775 * gobject.def : updated
2777 Mon Apr 9 18:56:15 2001 Tim Janik <timj@gtk.org>
2779 * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
2780 we're valid (about to actually do marshalling).
2782 Tue Apr 3 20:23:24 2001 Tim Janik <timj@gtk.org>
2786 Tue Apr 3 14:06:00 2001 Tim Janik <timj@gtk.org>
2788 * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
2789 owner_type. the pspecs are not referenced, so the caller is
2790 supposed to have some idea about owner_type not randomly
2791 nuking his pspec's. if this is going to provide problems in
2792 the future, we can either auto-ref the pspecs, or add a
2793 _foreach variant, though the latter would have to invoke
2794 the callback while pspec's mutex is acquired, so i just
2795 went for the _list variant for now.
2797 * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
2799 Sat Mar 31 23:55:58 2001 Tim Janik <timj@gtk.org>
2802 * gparamspecs.[hc]: applied patch from owen to implement
2805 Fri Mar 30 07:34:02 2001 Tim Janik <timj@gtk.org>
2807 * gtype.c (type_iface_retrive_holder_info_Wm):
2808 * gtypeplugin.c (g_type_plugin_complete_interface_info):
2809 * gtypemodule.c (g_type_module_complete_interface_info):
2810 change order of instance_type and interface_type so they match
2811 the g_type_add_interface_*() API.
2813 * gsignal.c (g_signal_emit_valist): always assign C return value
2814 location, people depending on unaltered return values after emissions
2815 that had no handlers to run need to use g_signal_emitv().
2817 * gtype.[hc] (g_type_query): new function to allow querying of
2818 class and object size (semantics like g_signal_query()).
2819 currently the implementation is better held conservative so as to
2820 only support types that are classed and static.
2822 2001-03-29 Tor Lillqvist <tml@iki.fi>
2824 * gobject.def: Updates.
2826 Wed Mar 28 17:04:06 2001 Tim Janik <timj@gtk.org>
2828 * gobject.c (object_queue_property): only queue readable properties
2829 for notification changes.
2831 Thu Mar 22 13:36:50 2001 Tim Janik <timj@gtk.org>
2833 * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
2835 2001-03-21 Martin Baulig <baulig@suse.de>
2837 * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
2840 2001-03-18 Tor Lillqvist <tml@iki.fi>
2842 * gobject.def: Correct some renamed functions.
2844 Sat Mar 17 23:18:36 2001 Tim Janik <timj@gtk.org>
2846 * gobject.c (g_object_get_property): minor bug-fix.
2848 * gbsearcharray.[hc]: provide a macro for static initialization and
2849 functions g_bsearch_array_new() and g_bsearch_array_destroy() for
2850 dynamic allocations.
2852 * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
2854 * gclosure.[hc]: naming corrections.
2856 Fri Mar 9 16:42:08 2001 Tim Janik <timj@gtk.org>
2858 * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
2859 a public function (was static in gobject.c before). it's a bit odd
2860 to have that function here, especially since it requires extra includes,
2861 but then it doesn't very well fit somewhere else either.
2863 * gparamspecs.c: added default/max/min checks to param spec creation
2866 2001-03-10 Tor Lillqvist <tml@iki.fi>
2868 * gobject.def: Add a couple of missing entries.
2870 * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
2872 Fri Mar 9 14:57:17 2001 Tim Janik <timj@gtk.org>
2874 * testgruntime.c: test program. covers run first/last/cleanup signal
2875 handlers, return value accumulator, signal string returns, and
2876 interface types in signal arguments.
2878 * gtype.c (g_type_value_table_peek): for interface types without
2879 value table, try looking up a value table from an instantiatable
2880 prerequisite type (this is safe as an interface may only have
2881 one instantiatable prerequisiste).
2882 (type_check_is_value_type_U): same here.
2884 * gsignal.c (g_signal_newv): assert that return types never have
2885 G_SIGNAL_TYPE_STATIC_SCOPE set.
2886 (g_signal_newc): only create class closure if the class_offset is not
2889 Fri Mar 9 10:14:00 2001 Tim Janik <timj@gtk.org>
2891 * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
2892 for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
2893 that wouldn't allow interface types.
2895 * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
2896 with bad implications and an off-by-one error.
2898 Thu Mar 8 16:34:22 2001 Owen Taylor <otaylor@redhat.com>
2900 * gvaluetransform.c: Include <string.h> for memcpy.
2902 * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
2903 and ANSI-illegal ## token pasting.
2905 Thu Mar 8 18:11:52 2001 Tim Janik <timj@gtk.org>
2907 * gsignal.c: eek, fixed old hook detail storage code.
2909 Thu Mar 8 16:35:48 2001 Tim Janik <timj@gtk.org>
2911 * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
2913 * gsignal.[hc]: fixed accumulator invocation, implemented emission
2914 hooks. and no, neither of these callbacks are called via a closure,
2915 language bindings can wrap the accumulator and emission hook
2916 interface, they already get parameters marshalled into a GValue array.
2917 (g_signal_connect): removed this function as its C specific, doesn't
2918 cover the swapped argument, is too close to its broken original
2919 gtk_signal_connect() and creates demand for _swapped, _after and
2920 _swapped_after variants <brrr>.
2921 (g_signal_connectc): convenience macro to connect a C handler
2922 func with data, like the old g_signal_connect() plus swapped
2926 * gboxed.c: added G_TYPE_VALUE boxed type.
2928 Wed Mar 7 19:02:51 2001 Tim Janik <timj@gtk.org>
2930 * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
2931 to an ancestor of a child that already conforms to this interface.
2932 currently we spew a warning here, should we be silent?
2933 (g_type_interface_add_prerequisite): new function to add a prerequisite
2934 type to an interface, that must succeed an instance is_a prerequisite
2935 type check before the interface can be added to an instance. the
2936 prerequisite types are also suuported in is_a checks of the interface.
2937 (g_type_instance_is_a):
2938 (g_type_check_instance_cast):
2939 (g_type_check_instance): cleanups and optimizations.
2940 (g_type_class_is_a):
2941 (g_type_check_class_cast): same, also prevented these from accepting
2942 interface types, as class structures don't nest interfaces.
2944 2001-03-07 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
2946 * Makefile.am: Avoid rebuilding everything everytime.
2948 Wed Mar 7 09:36:33 2001 Tim Janik <timj@gtk.org>
2950 * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
2951 to contain an optional init function and a hint at whether the
2952 boxed structure uses ref counting internally.
2953 added g_value_set_boxed_take_ownership().
2954 made G_TYPE_BOXED an abstract value type.
2956 * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
2959 * glib-genmarshal.c: argument type changes, preparation for third-party
2962 * gobject.[hc]: cleaned up get/set property code.
2963 added g_strdup_value_contents() to improve warnings.
2965 * gparam.[hc]: added g_param_value_convert(), taking over responsibility
2966 of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
2967 validation alterations may be valid a part of the property setting
2970 * gparamspecs.[hc]: made value comparisons stable (for sort applications).
2971 added GParamSpecValueArray, a param spec for value arrays and
2972 GParamSpecClosure. nuked the value exchange functions and
2973 GParamSpecCCallback.
2975 * gtype.[hc]: catch unintialized usages of the type system with
2976 g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
2977 to flag types that introduce a value table, but can't be used for
2978 g_value_init(). cleaned up reserved type ids.
2980 * gvalue.[hc]: code cleanups and saner checking.
2981 nuked the value exchange API. implemented value transformations, we
2982 can't really "convert" values, rather transforms are an anylogy to
2983 C casts, real conversions need a param spec for validation, which is
2984 why g_param_value_convert() does real conversions now.
2986 * gvaluearray.[hc]: new files that implement a GValueArray, a struct
2987 that can hold inhomogeneous arrays of value (to that extend that it
2988 also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
2989 this is exposed to the type system as a boxed type.
2991 * gvaluetransform.c: new file implementing most of the former value
2992 exchange functions as single-sided transformations.
2994 * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
2995 g_value_set_string_take_ownership().
2997 * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
2999 * *.[hc]: many fixes and cleanups.
3001 * many warning improvements.
3003 Tue Feb 27 18:35:15 2001 Tim Janik <timj@gtk.org>
3005 * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
3006 into G_VALUE_LCOPY(), this needs proper documenting.
3008 * gparam.c: fixed G_PARAM_USER_MASK.
3010 * gtype.c (type_data_make_W):
3011 (type_data_last_unref_Wm): fixed invalid memory freeing.
3013 * gobject.c (g_object_last_unref): destroy signal handlers associated
3014 with object, right before finalization.
3016 * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
3017 that don't actually support details.
3019 * gobject.[hc]: got rid of property trailers. nuked GObject
3020 properties "data" and the "signal" variants.
3021 (g_object_connect): new convenience function to do multiple
3022 signal connections at once.
3023 (g_object_disconnect): likewise, for disconnections.
3025 * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
3027 * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
3028 as private (the latter got renamed from g_value_get_as_pointer()).
3030 2001-02-21 Tor Lillqvist <tml@iki.fi>
3032 * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
3034 * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
3035 libtool with -no-undefined for Win32 and Cygwin.
3037 Wed Feb 21 18:31:46 2001 Jonathan Blandford <jrb@redhat.com>
3039 * gsignal.h (g_signal_connect): Add g_signal_connect define to
3040 make porting from gtk_signal_connect easy.
3042 * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
3043 (instance) instead of node->itype when initting the value.
3045 2001-02-17 Havoc Pennington <hp@pobox.com>
3047 Applied patch from Soeren Sandmann:
3049 * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
3051 * gtype.c (g_type_name): G_CONST_RETURN
3053 * gsignal.c (g_signal_name): G_CONST_RETURN
3055 * gobject-query.c (main): const fix
3057 Sat Feb 17 07:58:46 2001 Tim Janik <timj@gtk.org>
3059 * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
3060 G_ENUM_CLASS_TYPE() macro.
3062 Sat Feb 17 04:55:35 2001 Tim Janik <timj@gtk.org>
3064 * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
3065 lcopy_value() in the GTypeValueTable. the collect functions are now
3066 called only once per value, collect_format/lcopy_format are strings
3067 that enlist all necessary GTypeCValues to be varargs-collected.
3069 * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
3070 a value shouldn't copy its contents.
3072 * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
3073 macros to carry an additional argument (flags) that can be used
3074 to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
3076 * *.c: adapted collect_value() and lcopy_value() functions to the new
3077 prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
3079 * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
3080 be passed along (ORed) with the parameter types, indicating that the
3081 emission arguments are to be considered static for the scope of the
3082 emission. should be used with care and only if the caller knows that
3083 a parameter cannot be destroyed/freed from signal handlers connected
3086 Fri Feb 16 07:10:44 2001 Tim Janik <timj@gtk.org>
3090 (g_closure_sink): make closure sinking explicit.
3093 (g_signal_connect_data):
3094 (g_signal_connect_closure):
3095 (g_signal_connect_closure_by_id):
3096 (g_signal_newv): perform explicit closure sinking.
3098 Thu Feb 8 00:31:45 2001 Tim Janik <timj@gtk.org>
3100 * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
3102 2001-02-04 Tor Lillqvist <tml@iki.fi>
3104 * gobject.def: Remove glib_debug_objects.
3106 Sun Feb 4 07:30:53 2001 Tim Janik <timj@gtk.org>
3108 * gtype.[hc]: changed g_type_init() to take debugging flags
3109 initially, a combination of G_TYPE_DEBUG_OBJECTS and
3110 G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
3111 here, but basically g_type_int() serves as initialization
3112 fucntion for all of GType, GObject, GSignal, so what the heck.
3114 * gobject.c: special case debugging code properly.
3115 changed glib_trap_object_ref to g_trap_object_ref.
3117 * gsignal.c: add signal emission debugging abilities, along with
3118 a new trap object g_trap_instance_signals.
3120 2001-02-04 Tor Lillqvist <tml@iki.fi>
3122 * Makefile.am (progs_LDADD): Change order of libs to libgobject
3123 first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
3125 Wed Jan 31 06:19:49 2001 Tim Janik <timj@gtk.org>
3127 * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
3129 * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
3130 number that's supposed to be left untouched (preserved mainly
3131 for the signal code).
3133 * *.c: added thread safety code, based on an old patch from sebastian.
3134 the remaining thread safety issues are now datalists on pspecs (to be
3135 solved im gdataset.c) and gvalue.c where locking concerns value exchange
3136 functionality only, and that's soon to be revised.
3138 2001-01-27 Tor Lillqvist <tml@iki.fi>
3140 * makefile.msc.in: Don't try to compile gmarshal.c on its own.
3142 2001-01-24 <alexl@redhat.com>
3144 * gclosure.c (g_closure_unref):
3145 Don't leak closure->notifiers.
3147 2001-01-05 Havoc Pennington <hp@redhat.com>
3149 * gparamspecs.c (g_param_spec_enum): set the value_type in the
3150 param spec; closes bug 40210
3151 (g_param_spec_flags): ditto for flags
3153 2001-01-03 Alexander Larsson <alexl@redhat.com>
3156 Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
3158 Thu Dec 28 11:36:44 2000 Tim Janik <timj@gtk.org>
3160 * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
3161 fucntionality if DISABLE_MEM_POOLS is defined.
3163 * gtype.c: honour DISABLE_MEM_POOLS.
3165 * gsignal.c (g_signal_init): flag signal key bsearch array with
3166 G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
3169 * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
3172 2000-12-15 Tor Lillqvist <tml@iki.fi>
3174 * gobject.def: Update.
3176 2000-12-15 Havoc Pennington <hp@pobox.com>
3178 * gobject.c (g_object_do_class_init): use g_signal_newc
3180 * gsignal.c (g_signal_newc): convenience function for signals
3182 (g_signal_new_valist): added
3183 (g_signal_new): removed
3185 Fri Dec 15 04:40:23 2000 Tim Janik <timj@gtk.org>
3187 * gparam.[hc]: add an instance member value_type so the default
3188 value of the pspec class can be overridden.
3190 2000-12-14 Tor Lillqvist <tml@iki.fi>
3192 * makefile.mingw.in: Update, include parts from Makefile.am to
3193 build gmarshal.[ch]. Some day, we won't need these separate
3194 makefiles for Win32 compilation. I hope.
3196 * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
3197 here, it would require Unixish tools. MSVC users building from CVS
3198 sources are out of luck.
3200 * gobject.def: Update.
3202 Wed Dec 13 09:31:26 2000 Tim Janik <timj@gtk.org>
3204 * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
3206 * gobject.[hc]: minor fixes.
3208 Tue Dec 12 23:38:02 2000 Tim Janik <timj@gtk.org>
3210 * Makefile.am: _never_ touch oldest-source-stamp.
3212 * gobject.[hc]: construct property handling fixes/improvements.
3213 fixed trailer handling in get/set property.
3215 * gparam.[hc]: implement param spec pool, got rid of param spec
3216 hashtable. the most prominent change is that e deal with type
3219 2000-12-12 Elliot Lee <sopwith@redhat.com>
3222 . You have to 'touch oldest-source-stamp' if you want to avoid having
3223 the Makefile constantly rebuild itself.
3224 . Fix marshaller generation rules to work with srcdir != builddir
3225 (there were issues with trying to run "./glib-genmarshal", etc.)
3227 Mon Dec 11 04:44:11 2000 Tim Janik <timj@gtk.org>
3229 * gboxed.c: fixed dealing with collection/lcopy of NULL values.
3231 * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
3234 * Makefile.am: cleanups, marshaller generation rules.
3236 * gmarshal.[hc]: new files with GRuntime standard marshallers.
3238 * glib-genmarshal.c: fix log domain, support gruntime standard
3239 marshallers, suport G_TYPE_PARAM, come with extern "C" and
3240 #include gmarshal.h.
3242 * glib-genmarshal.1: reflect glib-genmarshal.c updates.
3244 * gobject.[hc]: implement object constructor. rework parameter
3245 changed notification queueing, we support queue freezes now and
3246 don't dispatch from an idle handler anymore.
3247 parameter->property rename hassle.
3248 implemented ::properties_changed and ::notify::* signals for
3249 property change notification (the later supports property names
3250 as details). added signal connection and named data properties.
3251 (g_signal_connect_object): new function to setup while_alive
3253 (g_object_class_install_property): sink properties now, since they
3254 are initially floating.
3255 (g_object_steal_data):
3256 (g_object_set_data_full):
3257 (g_object_set_data):
3258 (g_object_get_data): set/get data by using g_datalist_*() functions
3260 (g_object_queue_param_changed): nuked.
3261 (g_object_freeze_notify): start queueing of property changes (freeze/
3263 (g_object_notify): announce changes of a certain property directly.
3264 (g_object_thaw_notify): process queue of property changes, therefore
3265 emitting GObject::notify::detail with detail being the changed
3267 (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
3268 G_WARN_INVALID_PARAM_ID().
3270 * gparam.[hc]: param specs are now initially floating and need to be
3271 sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
3272 added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
3273 required by GObjectClass.constructor().
3275 * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
3276 GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
3277 and G_TYPE_CCALLBACK respectively.
3279 * gsignal.[hc]: cleanups.
3280 (signal_id_lookup): after walking the anchestry, try interfaces as well.
3281 (g_signal_new): new function to create signals from varargs type list.
3282 (g_signal_connect_closure): closure connection variant that works from
3284 (g_signal_connect_data): c handler connection variant that works from
3286 (g_signal_emit_valist): emit signal for an instance with paraneters
3287 collected from a va_list.
3288 (g_signal_emit): emit signal, taking parameters from varargs list.
3289 (g_signal_emit_by_name): same as g_signal_emit, working from
3291 (signal_emit_R): return whether return_value needs to be altered.
3293 * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
3294 the points that need to reflect the upcoming rename.
3295 melt g_type_conforms_to() functionality into g_type_is_a(), as that
3296 is what we really want (liskov substitution principle).
3297 assorted changes to other files due to conforms_to->is_a.
3299 * gvalue.[hc]: implemented g_value_set_instance() that sets a value
3300 from an instantiatable type via the value_table's collect_value()
3301 function (based on an idea from James Henstridge <james@daa.com.au>).
3304 * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
3306 Wed Nov 29 13:30:05 2000 Tim Janik <timj@gtk.org>
3308 * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
3309 NULL nodes if C handlers are searched for specific signals.
3311 2000-11-28 Elliot Lee <sopwith@redhat.com>
3313 * gsignal.c: Fix warnings about possible use of uninitialized
3314 variables, and fix logic that would leave 'node' unset in cases
3315 that it might be used in.
3317 * glib-genmarshal.c: Fix warning about printf format.
3319 2000-11-28 Tor Lillqvist <tml@iki.fi>
3321 * gboxed.c: Include <string.h> for memset ().
3323 2000-11-22 Tor Lillqvist <tml@iki.fi>
3325 * gobject.def: Update.
3327 2000-11-20 Havoc Pennington <hp@redhat.com>
3329 * gobject.c (g_object_get_data)
3331 (g_object_set_data_full)
3332 (g_object_steal_data): More convenient data-setting functions
3334 Wed Nov 15 20:58:05 2000 Owen Taylor <otaylor@redhat.com>
3336 * gtypemodule.c (g_type_module_use): If loading the
3337 module fails, don't increment the use count.
3339 Thu Nov 9 01:49:43 2000 Tim Janik <timj@gtk.org>
3341 * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
3342 s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
3343 Zeeman <maas@wanadoo.nl>.
3345 Mon Nov 13 00:48:39 2000 Owen Taylor <otaylor@redhat.com>
3347 * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
3349 2000-11-11 Tor Lillqvist <tml@iki.fi>
3351 * gtypemodule.c: Include stdlib.h for exit().
3353 * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
3355 * gobject.def: Add missing functions.
3357 Sun Nov 5 13:21:28 2000 Owen Taylor <otaylor@redhat.com>
3359 * Makefile.am gtypemodule.[ch]: New basic implementation of
3360 GTypePlugin interface as a GObject. Dynamically loaded modules can
3361 register any number of types and interface on the module.
3363 Sun Nov 5 10:25:40 2000 Owen Taylor <otaylor@redhat.com>
3365 * gsignal.c (handlers_find): When appending handlers and
3366 not matching on signal_id, use hlist->signal_id instead of
3367 signal_id. Having the correct signal_id when unreffing
3368 the handlers makes things work a lot better.
3370 2000-11-05 Tor Lillqvist <tml@iki.fi>
3372 * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
3374 * gobject.def: Update.
3376 Sun Nov 5 05:22:55 2000 Tim Janik <timj@gtk.org>
3379 fixed a bag full of subtle bugs of immensive screw-up potential in
3380 handlers_find(), luckily no one found out about them yet ;)
3381 fixed signal_handlers_foreach_matched_R() so it operates on an
3382 initial handler list snapshot provided by handlers_find() to work
3383 around general reentrancy problems and to avoid multiple callback()
3384 invocations on the same handlers.
3385 this code is now officially 80% bug free (10% remaining for interface
3386 types, and 10% remaining for destroyed signals ;)
3388 Sat Nov 4 02:01:33 2000 Tim Janik <timj@gtk.org>
3390 * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
3392 * gtypeplugin.[hc]: new files holding a GTypePlugin interface
3393 implementation that provides the API required by GType to deal with
3394 dynamically loadable types.
3396 * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
3398 Fri Nov 3 07:35:00 2000 Tim Janik <timj@gtk.org>
3400 * gsignal.[hc]: prefix internal functions with '_'. renamed
3401 g_signal_connect_closure() to g_signal_connect_closure_by_id().
3402 added g_signal_parse_name() to retrive signal_id and detail quark
3403 from a signal name (internal).
3405 Wed Nov 1 03:36:54 2000 Tim Janik <timj@gtk.org>
3407 * gobject.c (g_object_base_class_finalize): destroy all signals that
3408 the finalized obejct type introduced.
3410 * gsignal.c (g_signals_destroy): don't require itype to have
3413 * gobject.c (g_object_do_finalize): make sure all signal handlers
3417 (g_signal_handler_find): only match on non-0 masks.
3418 (g_signal_handlers_block_matched):
3419 (g_signal_handlers_unblock_matched):
3420 (g_signal_handlers_disconnect_matched): new functions to block/unblock
3421 or disconnect handlers in groups.
3423 2000-10-30 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
3425 * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
3426 made both functions return gboolean just for the little extra
3427 standard conformance now that GEqualFunc is introduced.
3429 Mon Oct 30 05:52:45 2000 Tim Janik <timj@gtk.org>
3431 * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
3432 added, the doc system would ignore it anyways (for some reason not
3435 Mon Oct 30 03:00:07 2000 Tim Janik <timj@gtk.org>
3437 * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
3438 added required mutex locks.
3440 Sun Oct 29 02:31:03 2000 Owen Taylor <otaylor@redhat.com>
3442 * gsignal.c (g_type_signals): Fix problem where signals
3443 with "_" in them appeared twice in the result array.
3445 Sun Oct 29 01:58:44 2000 Owen Taylor <otaylor@redhat.com>
3447 * gsignal.h: Add g_type_signals() - a function to list
3448 all signals for a given type.
3450 Sat Oct 28 00:28:09 2000 Tim Janik <timj@gtk.org>
3452 * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
3453 for post_marshal guard which was off at 0.
3455 Fri Oct 27 21:49:31 2000 Tim Janik <timj@gtk.org>
3457 * gobject.[hc]: doh, fix argument order in for
3458 g_cclosure_new_object_swap and g_cclosure_new_object.
3460 2000-10-28 Tor Lillqvist <tml@iki.fi>
3462 * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
3464 * glib-genmarshal.c: Conditionalise include of unistd.h.
3465 Include <io.h> on Win32.
3467 * gobject.def: Add some missing entry points.
3469 Fri Oct 27 16:33:41 2000 Tim Janik <timj@gtk.org>
3471 * gsignal.[hc]: publically define GSignalInvocationHint structure
3472 that gets passed in to closure invocations. added signal details.
3473 renamed GSignalType to GSignalFlags to comply with conventions.
3474 quite some cleanups and minor fixes. avoid uneccessary handler list
3475 walks upon invocation of after handlers. relookup handler list for
3476 restarted emissions. preliminary abort normal handler invocation if
3477 after handler is encountered.
3479 * glib-genmarshal.c:
3480 * gclosure.[hc]: moved invocation_hint to the end of the
3481 g_closure_invoke() arguments as sugegsted by kenelson.
3482 also made it a gpointer to be more generic. the invocation_hint
3483 is a caller specific thing that can be used to pass additional
3484 data in to closure invocations as documented with the caller
3485 invoking the closure.
3487 Fri Oct 27 05:35:14 2000 Tim Janik <timj@gtk.org>
3489 * gobject.c (g_object_watch_closure): fixed realloc bug, reported
3492 * gsignal.c (g_signal_newv): fixed deadlock scenarion where
3493 g_signal_lookup() would be called with the signal lock being
3494 held. reported by james henstridge.
3496 * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
3499 2000-10-26 Tor Lillqvist <tml@iki.fi>
3501 * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
3502 arithmetic on void pointer, label without statement following.
3504 * gtype.c (type_node_fundamental_info): Don't apply unary minus to
3505 result of sizeof operator, it can be unsigned. Cast first to
3508 * gobject.def: Add new functions.
3510 * makefile.{mingw,msc}.in: Add new objects.
3512 2000-10-26 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
3514 * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
3515 prevents 'make dist' from working.
3517 Wed Oct 25 19:11:03 2000 Owen Taylor <otaylor@redhat.com>
3519 * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
3520 casts from void * since this will get included from C++ too
3523 Thu Oct 26 00:30:27 2000 Tim Janik <timj@gtk.org>
3525 * gvaluetypes.[hc]: added g_value_set_static_string().
3527 * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
3529 Wed Oct 25 20:27:02 2000 Tim Janik <timj@gtk.org>
3531 * gtype.c (g_type_free_instance): for the moment, freeing object
3532 structures will fill their memory portion with 0xAA. there's a
3533 FIXME there, remove this line at a later point.
3535 Tue Oct 24 23:10:26 2000 Tim Janik <timj@gtk.org>
3537 * glib-genmarshal.1:
3538 * glib-genmarshal.c: added publically installed marshaller generator.
3540 * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
3541 interface VTable from instances.
3543 Mon Oct 23 08:28:15 2000 Tim Janik <timj@gtk.org>
3545 * gobject.[hc]: new functions for closure maintenance:
3546 (g_object_watch_closure): maintain validity of the object and
3547 the closure for objects that are used as data part of a closure.
3548 (g_cclosure_new_object): convenience function to create C closures
3549 that have an object as data argument.
3550 (g_closure_new_object): convenience function to create closures
3551 that have an object as data argument.
3553 * gclosure.[hc]: implementation of GClosure mechanism.
3554 a closure is basically an encapsulation of a callback function
3555 and its environment. ideally, most places supporting callback
3556 functions will simply take a GClosure* pointer and thus unify
3557 callback environments wrg destroy notification etc.
3558 GClosure provides destroy notifiers for arbitrary data pointers,
3559 reference counting, invalidation notification (it can be invalidated
3560 which is merely a deactivate state) and a marshallinbg abstraction.
3561 GCClosure is also provided in these files, they present a specialized
3562 GClosure implementation for C language callbacks.
3564 * genum.c: macro cleanups.
3566 * gboxed.[hc]: new files, for boxed type abstraction.
3567 (g_boxed_copy): copy a boxed structure
3568 (g_boxed_free): free a boxed structure
3569 (g_value_set_boxed):
3570 (g_value_get_boxed): standard GValue functions for boxed types
3571 (g_boxed_type_register_static): convenience function for easy
3572 introduction of new G_TYPE_BOXED derivatives.
3574 * gparam.[hc]: introduced g_param_type_register_static(), a short hand
3575 for creation of new GParamSpec derived types.
3577 * gtype.[hc]: many fixes, introduced ability to flag individual
3578 type nodes as ABSTRACT upon registration, added value_peek_pointer()
3579 to the value table to peek at GValue contents as a pointer for types
3580 that support this. fixed up GValue checks.
3582 * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
3583 to peek at the value contents as pointer.
3585 * *.[hc]: adaptions to type macro fixes and changes in the type
3588 * many const corrections over the place.
3590 Sat Oct 21 02:49:56 2000 Tim Janik <timj@gtk.org>
3592 * gtype.c (g_type_conforms_to): this function basically behaves like
3593 and is_a check, except that it _additionally_ features interfaces
3594 for instantiatable types. enforce this in the second branch as well
3595 (`type' conforms_to `type') even if `type' is not an interface type.
3597 Fri Oct 20 15:31:04 2000 Tim Janik <timj@gtk.org>
3599 * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
3603 * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
3604 suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
3607 Mon Aug 21 04:13:37 2000 Tim Janik <timj@gtk.org>
3609 * gbsearcharray.[hc]: long standing needed generic implementation
3610 of a binary searchable, sorted and dynamically sized array.
3612 2000-10-15 Raja R Harinath <harinath@cs.umn.edu>
3614 * Makefile.am (BUILT_EXTRA_DIST): New variable.
3615 (dist-hook): Handle $(BUILT_EXTRA_DIST).
3616 (*): Remove traces of @STRIP_{BEGIN,END}@.
3618 2000-09-29 Martin Baulig <baulig@suse.de>
3620 Several minor ANSI C fixes.
3622 Added missing casts:
3623 * gtype.c (type_class_init):
3624 `(gpointer) bnode->data->class.class_init_base'
3625 in call to g_slist_prepend() and
3626 'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
3628 * gobject.c: Put text following #endif into comments.
3630 2000-09-25 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
3632 * Makefile.am: Remove empty SUBDIRS line, as that prevents make
3635 Sat Sep 9 20:04:13 2000 Owen Taylor <otaylor@redhat.com>
3637 * gobject.c (g_object_last_unref): Move call to
3638 g_type_free_instance() here from g_object_do_finalize,
3639 since g_type_free_instance() can unload the object's
3642 2000-07-27 Tor Lillqvist <tml@iki.fi>
3644 * gobject.c: No, don't mark glib_debug_objects for export here,
3645 it's handled specially in gtktypeutils.c.
3647 * gobject.def: Export g_type_fundamental_last (the function).
3649 2000-07-26 Tor Lillqvist <tml@iki.fi>
3652 * gobject.c: Mark glib_debug_objects for export/import as it is
3655 Sun Jul 23 17:23:35 2000 Tim Janik <timj@gtk.org>
3657 * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
3658 that extern variable clutter and avoiding further problems with thread
3661 2000-07-19 Tor Lillqvist <tml@iki.fi>
3666 * gtype.c: Shut up Sun's picky compiler.
3668 2000-07-14 Tor Lillqvist <tml@iki.fi>
3670 * gobject.def: Add g_type_get_plugin.
3672 Thu Jul 13 02:07:54 2000 Tim Janik <timj@gtk.org>
3674 * gparam.c (g_param_value_defaults): default initialize the temporary
3675 default value, instead of nuking the caller's value contents.
3677 2000-07-11 Raja R Harinath <harinath@cs.umn.edu>
3679 * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
3681 Tue Jul 11 02:48:13 2000 Tim Janik <timj@gtk.org>
3683 * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
3685 2000-07-10 Tor Lillqvist <tml@iki.fi>
3687 * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
3688 to guard inclusion of <unistd.h>.
3690 * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
3691 variable for export. Call the macro GOBJECT_VAR.
3693 * gtype.c: Declare _g_type_fundamental_last for export here, too.
3694 (type_node_any_new): Use only constant expressions for sizeof
3695 operator (for instance MSVC requires this).
3697 * makefile.mingw.in: Define GOBJECT_COMPILATION.
3699 Sun Jul 9 21:21:46 2000 Owen Taylor <otaylor@redhat.com>
3701 * genums.c: Move string.h include into the .c file
3702 instead of where it was in the .h file by mistake.
3704 Thu Jul 6 15:30:27 2000 Owen Taylor <otaylor@redhat.com>
3706 * Makefile.am (EXTRA_DIST): dist fixes.
3708 * gobject.c: Add a global variable glib_debug_objects
3709 (not in header file) to control object tracing.
3711 2000-07-01 Tor Lillqvist <tml@iki.fi>
3713 * gobject.def: Update added and renamed entry points.
3715 * makefile.mingw.in: Add gvaluetypes.o.
3717 Thu Jun 29 16:02:07 2000 Owen Taylor <otaylor@redhat.com>
3719 * gobject.c:include string.h for memset
3720 * genums.h: include string.h for strcpy
3721 * gvalue.c: include string.h for memset, memcpy.
3723 Sat Jun 24 23:03:04 2000 Tim Janik <timj@gtk.org>
3725 * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
3726 G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
3727 G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
3728 added a GTypeValueTable* pointer to GTypeInfo structure for types
3729 to implement GValue handling functions.
3730 GTypeValueTable contains the following members:
3731 value_init(): initialize a GValue structure.
3732 value_free(): free GValue structure contents (optional).
3733 value_copy(): copy one GValue contents to another GValue structure of
3734 collect_type: varargs collection type for the first variable argument
3735 to be collected by collect_value().
3736 collect_value(): variable arguments collection function (optional).
3737 lcopy_type: varargs collection type for the first variable argument
3738 to be location copyied by lcopy_value().
3739 lcopy_value(): variable arguments location copy function (optional).
3740 g_type_value_table_peek(): new function to retrive the GTypeValueTable*
3741 for a type node. ValueTables get inherited from parent types, unless
3742 overridden through the GTypeInfo structure. internally, GTypeValueTable
3743 support means an added overhead of one pointer per static or used
3745 g_type_add_class_cache_func(): provide a cache_func/data pair to be
3746 called prior to a type nodes last_unref() function, this can be used
3747 to prevent premature class destruction. multiple installed cache_func()
3748 will be chained upon last_unref() untill one of them returns TRUE.
3749 the cache_func()s have to check the class id passed in to figure whether
3750 they actually want to cache the class of this type (since all classes
3751 are routed through the cache_func() chain).
3752 g_type_remove_class_cache_func(): remove a previously installed
3753 cache_func/data pair. the cache maintained by this function has to be
3754 clear when calling g_type_remove_class_cache_func() to avoid leaks.
3755 g_type_class_unref_uncached(): class unref function for cache_func()
3756 implementations, unreferences a class omitting the cache chain (and
3757 therefore unref->cache->unref->... loops).
3759 * gvaluetypes.[hc]: provide the value setters/getters for the primitive
3760 fundamental types boolean, char, uchar, int, uint, long, ulong, float,
3763 * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
3764 GTypeValueTable is provided for this type.
3765 removed g_value_init_default(), g_value_validate(), g_value_defaults(),
3766 g_value_set_default() and g_values_cmp() as these are supplied by the
3768 moved g_values_exchange() into the "implementation details" section,
3769 since it just provides the underlying functionality for
3772 * gvaluecollector.h: renamed the varargs value container from
3773 GParamCValue to GTypeCValue as the value collection methods are
3774 supplied by the type system now.
3775 G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
3776 G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
3777 GParamSpec structure now.
3779 * genums.h: macros cleanups/fixes.
3781 * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
3782 and assorted g_value_{s|g}et_{enum|flags}() implementations.
3785 provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
3786 and g_value_{s|g}et_object().
3788 * gparam.[hc]: reduced class to value_set_default(),
3789 value_validate() and values_cmp(). also parameters now need to fill
3790 in a GType value_type; field to indicate the GValue type they
3791 are handling. provide g_param_value_set_default(),
3792 g_param_value_defaults(), g_param_value_validate() and
3793 g_param_values_cmp().
3795 * gparamspecs.[hc]: got rid of the g_value_* functions and
3796 the G_IS_VALUE_* macros. adapted param spec implementations
3797 according to the GParamSpecClass changes.
3799 Sat Jun 10 08:38:27 2000 Tim Janik <timj@gtk.org>
3801 * gtype.c (type_class_init): fetch the nth iface entry of the
3802 type node in the nth loop iteration, not alwys the first.
3803 bug discovered by Walt Pohl <cher@suitware.com>.
3804 (type_data_finalize_class_ifaces): same here, cut and paste
3807 Wed Jun 7 09:21:05 2000 Owen Taylor <otaylor@redhat.com>
3809 * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
3810 is found properly when build srcdir != builddir. (Patch from
3813 2000-05-13 Tor Lillqvist <tml@iki.fi>
3817 * gobject.rc.in: New files, for Win32 (mingw) build.
3819 * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
3820 corresponding non-*.in files.
3822 * gtype.h: (Win32:) Mark _g_type_fundamental_last for
3823 export/import from DLL.
3825 Fri May 5 01:15:48 2000 Tim Janik <timj@gtk.org>
3827 * gtype.h: add reserved fundamental ids for gtk types (for transition
3828 time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
3830 Mon Apr 17 20:45:50 2000 Tim Janik <timj@gtk.org>
3832 * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
3833 n_params prior to destructing them.
3835 Tue Apr 11 04:28:10 2000 Tim Janik <timj@gtk.org>
3837 * fixed a couple of bugs in the initial parameter/object
3838 implementations, after getting beast running on GObject and GValue.
3840 Fri Apr 7 04:27:49 2000 Tim Janik <timj@gtk.org>
3842 * glib-gobject.[hc]: completed parameter set/get implementations,
3843 along with asyncronous parameter changed notification queue.
3845 Sun Apr 2 04:54:36 2000 Tim Janik <timj@gtk.org>
3847 * glib-gobject.[hc]: GObject implementation, that is facilities
3848 for setting/getting quarked data and reference counting.
3850 * glib-gparamspecs.[hc]: first actuall parameter implementations
3851 for GLib, so far we have: char, uchar, bool, int, uint, long,
3852 ulong, enum, flags, float, double, string and object. each of these
3853 GParamSpecs is a new instantiatable type in its own respect,
3854 so the .c file derives 13 new types from G_TYPE_PARAM and
3855 defines over 50 (*2) conversion facilities.
3857 * glib-gvaluecollector.h: generic varargs handling stubs for
3858 GParamSpecs, private header file (does get installed for
3859 inclusion into user code though).
3861 * glib-gvalue.[hc]: GValue functionality implementation.
3863 * glib-gparam.[hc]: basis GParamSpec implementation for
3864 the virtual base type G_TYPE_PARAM.
3866 * glib-genums.[hc]: enum/flags type implementation, based on
3869 * glib-gtype.[hc]: GLib Type System implementation, heavily
3870 based on BSE's dynamic type system.