Add (undefined) HAVE_C99_VSNPRINTF.
[platform/upstream/glib.git] / gobject / ChangeLog
1 2001-12-21  Tor Lillqvist  <tml@iki.fi>
2
3         * gobject.def: Add g_signal_get_invocation_hint.
4
5 Tue Dec 18 21:39:57 2001  Tim Janik  <timj@gtk.org>
6
7         * testoverride.c: added some assertions to test
8         g_signal_get_invocation_hint().
9
10         * gsignal.[hc]: remove signal_id argument from
11         g_signal_chain_from_overridden(), the parameters are assumed to match
12         the innermost signal currently in emission for this instance.
13         added g_signal_get_invocation_hint() to figure the invocation hint
14         of the innermost signal emission of an instance.
15
16         * gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
17         access a bsearch array and not a pointer to it (discovered by
18         Sven Neumann).
19
20 2001-12-17  Anders Carlsson  <andersca@gnu.org>
21
22         * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): Set the reserved bit
23         to (1 << 0) instead of (1 << 30). 
24
25 2001-12-14  James Henstridge  <james@daa.com.au>
26
27         * Makefile.am: add rules to build it.
28
29         * testoverride.c: test program for closure override/chaining.
30
31 Thu Dec 13 08:03:17 2001  Tim Janik  <timj@gtk.org>
32
33         * gsignal.c: implemented closure chaining.
34
35 2001-12-08  Christopher Blizzard  <blizzard@redhat.com>
36
37         * gsignal.h (g_signal_connect): Explicitly add a cast to the last
38         argument so that the macro will work from C++.
39
40 2001-12-06  Tor Lillqvist  <tml@iki.fi>
41
42         * makefile.mingw.in (gobject_OBJECTS): Add gsourceclosure.o.
43
44 Mon Nov 26 09:55:12 2001  Tim Janik  <timj@gtk.org>
45
46         * gtype.h: typedef GType to gulong instead of gsize, if possible.
47
48         * gtype.c: fixups for GType being sizeof(long) wide (changed
49         UINT casts).
50         * gsignal.c:
51         * gclosure.c:
52         * gparam.c: likewise.
53
54 Sun Nov 25 22:33:32 2001  Tim Janik  <timj@gtk.org>
55
56         * gtype.h: removed enum GTypeFundamentals. use macros
57         to provide the constant fundamental type IDs, so they
58         all return numbers of type GType, and not int.
59         sizeof(GTypeFundamentals) < sizeof(GType) problem reported
60         and fix sugegsted by Havoc.
61
62 2001-11-23  Hans Breuer  <hans@breuer.org>
63
64         * gobject.def : updated externals
65
66 Mon Nov 19 14:35:56 2001  Owen Taylor  <otaylor@redhat.com>
67  
68         * *.h: Improve the detection of invalid includes by moving
69         the test outside the duplicate include guards.
70  
71         * gsourceclosure.c (g_source_set_closure): Doc fix.
72
73 Thu Nov 22 03:30:57 2001  Tim Janik  <timj@gtk.org>
74
75         * gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
76         instead of g_type_value_table_peek().
77
78         * gtype.[hc] (type_check_is_value_type_U): speed up check
79         LOCK-less by caching lookups in node->mutatable_has_value_table.
80
81         * gtype.[hc]: removed locks where possible. partly based on
82         patches from owen and alex.
83
84 Thu Nov 22 00:26:26 2001  Tim Janik  <timj@gtk.org>
85
86         * gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
87         g_type_fundamental_next() to return next usable fundamental
88         type. use TypeNode pointers as type IDs.
89         
90 2001-11-22  Tor Lillqvist  <tml@iki.fi>
91
92         * makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
93
94         * gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
95         makes sense only when building libglib. GOBJECT_VAR is similar for
96         libgobject.
97
98         * gobject.def: Add g_param_spec_types, remove
99         g_type_fundamental_branch_last.
100
101 Wed Nov 21 17:23:33 2001  Tim Janik  <timj@gtk.org>
102
103         * gparamspecs.[hc]: put newly created param spec types into a
104         global array.
105
106         * gboxed.[hc]: moved boxed types with _get_type() function here,
107         for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
108         G_TYPE_GSTRING.
109
110         * gtype.h: removed fundamental branch APIs and derived enum
111         values. define GType as gsize.
112
113 2001-11-19  jacob berkman  <jacob@ximian.com>
114
115         * gobjectnotifyqueue.c: include glib-object.h rather than
116         gobject/gobject.h
117
118 2001-11-16  Mark McLoughlin  <mark@skynet.ie>
119
120         * glib-mkenums.in: allow the enums name to not be on the same
121         line as the trailing '}'. (#64714)
122
123 2001-11-18  Hans Breuer  <hans@breuer.org>
124
125         * makefile.msc.in : remove g_log_domain_gruntime usage
126
127 Sat Nov 17 18:14:40 2001  Owen Taylor  <otaylor@redhat.com>
128
129         * glib-genmarshal.c: Exit with non-zero exit status if
130         any errors were encountered.
131
132         * glib-genmarshal.c: Instead of generating gobject/gmarshal.h
133         #include only for the header, generate glib-object.h 
134         #include for both the header and body. (#63834)
135
136         * glib-genmarshal.c: Generate include guards around the 
137         content unless --nostdinc is specified.
138
139 2001-11-17  Tor Lillqvist  <tml@iki.fi>
140
141         * gobject.def: Add g_pointer_type_register_static.
142
143 2001-11-15  Tor Lillqvist  <tml@iki.fi>
144
145         * gobject.def: Reflect recent changes.
146
147 Tue Nov 13 23:18:10 2001  Tim Janik  <timj@gtk.org>
148
149         * gsignal.[hc]: add API for chaining:
150         g_signal_chain_from_overridden() and g_signal_override_class_closure(),
151         implementation yet to come.
152
153         * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
154         
155         * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
156         get_name and get_blurb, to be consistent with the rest of the
157         g_param_spec_*() functions.
158         
159         * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
160         G_TYPE_CLOSURE is a boxed type already.
161         
162 Tue Nov 13 22:16:41 2001  Tim Janik  <timj@gtk.org>
163
164         * gtype.[hc]: API cleanups.
165         remove g_type_check_flags(), provide g_type_test_flags() as
166         a *private* function.
167         s/g_type_check_is_a/g_type_check_class_is_a/, private function.
168         s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
169
170 Tue Nov 13 20:02:47 2001  Tim Janik  <timj@gtk.org>
171
172         * gparam.h: fix standard type macros.
173
174 Wed Nov  7 00:56:00 2001  Tim Janik  <timj@gtk.org>
175
176         * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
177         to walk the notifier list (puhh, black magic, stay-away-warning ;).
178
179 Mon Nov  5 18:59:08 2001  Tim Janik  <timj@gtk.org>
180
181         * gobject.h: 
182         * gsignal.h: we need signal.h for G_BREAKPOINT().
183
184 Sun Nov  4 14:01:23 2001  Owen Taylor  <otaylor@redhat.com>
185
186         * gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
187         to register a type derived from G_TYPE_POINTER.
188
189 2001-11-03  Hans Breuer  <hans@breuer.org>
190
191         * makefile.msc.in : gobject-query needs gmarshal.[hc,stings]
192         so build it after them. Add gsourceclosure.obj. 
193
194         * gobject.def : removed duplicates, added mising
195
196 Mon Oct 29 11:05:15 2001  Owen Taylor  <otaylor@redhat.com>
197
198         * glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in, 
199         substituting in path to perl.  (#63093, Dan Winship)
200
201         * Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
202         from srcdir.
203
204 2001-10-26  Tor Lillqvist  <tml@iki.fi>
205
206         * makefile.mingw.in: When running glib-genmarshal, set PATH to
207         include ../glib.
208
209 2001-10-23  Tor Lillqvist  <tml@iki.fi>
210
211         * Makefile.am: (Win32): If we have built the MSVC import library,
212         install it. Install the gcc import library. Also support
213         uninstall.
214
215 2001-10-13  Matthias Clasen  <matthiasc@poet.de>
216
217         * glib-genmarshal.1, glib-mkenums.1: Typo fixes.
218
219 Fri Oct 12 18:40:18 2001  Tim Janik  <timj@gtk.org>
220
221         * cosmetic fixups.
222
223 Wed Oct 10 17:25:22 2001  Joshua N Pritikin  <vishnu@pobox.com>
224
225         * glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
226         gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
227         gint64 & guint64 (#59254).
228         
229         * Unconditionalize same (compile with or without G_HAVE_INT64).
230
231 Wed Oct 10 15:38:58 2001  Joshua N Pritikin  <vishnu@pobox.com>
232
233         * gparamspecs.h (G_IS_PARAM_SPEC_FLAGS): Fix order of
234         *_PARAM_SPEC_ULONG defines.
235
236 Thu Oct  4 01:10:52 2001  Owen Taylor  <otaylor@redhat.com>
237
238         * gparamspecs.h: Add missing G_HAVE_GINT64 conditionalization.
239
240 Wed Oct  3 16:02:24 2001  Owen Taylor  <otaylor@redhat.com>
241
242         * glib-genmarshal.c gparamspecs.[ch] gvalue.h 
243         gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
244         and storing it in GValue (Patch from Mathieu Lacage, #59254.)
245
246 2001-10-03  jacob berkman  <jacob@ximian.com>
247
248         * gtype.c (type_iface_retrieve_holder_info_Wm): 
249         (type_iface_vtable_init_Wm): 
250         (type_iface_vtable_finalize_Wm): 
251         (g_type_class_ref): 
252
253         * gobject.c (g_object_get_property): s/retrive/retrieve/
254
255 2001-09-25  Tor Lillqvist  <tml@iki.fi>
256
257         * Makefile.am: Use new macros for .def file, and check for
258         MS_LIB_AVAILABLE, new rule to build MS import library.
259
260         * makefile.msc.in: Use same DLL and import library names as
261         libtool.
262         
263 2001-09-21  Hans Breuer  <hans@breuer.org>
264
265         * gobject.def : updated externals
266
267 2001-09-19  Tor Lillqvist  <tml@iki.fi>
268
269         * gobject.rc.in: Correct InternalName and OriginalFilename to
270         match what we actually produce.
271
272 Tue Sep 18 23:09:02 2001  Tim Janik  <timj@gtk.org>
273
274         * gparam.[hc]: rename *nick and *blurb fields to catch
275         direct accesses in third party code.
276         provide g_param_get_nick(), g_param_get_blurb() and
277         g_param_get_name() accessors.
278
279 Mon Sep 10 20:31:37 2001  Tim Janik  <timj@gtk.org>
280
281         * gobject.[hc]: removed extraneous GObject* returns from a
282         couple functions that are very unlikely to be used in nested.
283         changed gpointer->GObject* for a couple return values/arguments.
284         this fixes #50206.
285
286 Mon Sep 10 19:27:47 2001  Tim Janik  <timj@gtk.org>
287
288         * gtype.[hc]:
289         g_type_add_interface*(): implement the ability to add an interface to
290         a type whose parents already conform to this interface.
291         such "overriding" interfaces, when initialized, are not just initialized
292         with 0, but with a copy of the interface they override.
293         g_type_interface_peek_parent(): new function, return the interface
294         that this interface "overrides", if any.
295
296         * testgruntime.c: test new interface stuff.
297
298 2001-09-10  Alex Larsson  <alexl@redhat.com>
299
300         * gobject/gboxed.[ch]:
301         * gobject/gsourceclosure.c:
302         Removed is_refcounted and GBoxedInitFunc from
303         g_boxed_type_register_static().
304
305 Sat Sep  8 14:13:57 2001  Owen Taylor  <otaylor@redhat.com>
306
307         * gobject/Makefile.am: Move gbsearcharray.[ch] to glib
308         as a private ininstalled header.
309
310 Tue Sep  4 22:24:48 2001  Matthias Clasen  <matthiasc@poet.de>
311
312         * gobject.c (g_object_base_class_finalize): typo fix.
313
314 Tue Sep  4 01:49:18 2001  Tim Janik  <timj@gtk.org>
315
316         * gsourceclosure.c: make closure_callback_funcs static,
317         added some g_return_if_fail() statements.
318
319 Mon Aug 27 14:55:27 2001  Owen Taylor  <otaylor@redhat.com>
320
321         * gsourceclosure.[ch] (g_source_set_closure): Implement.
322
323         * gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
324
325 2001-08-17  James Henstridge  <james@daa.com.au>
326
327         * gobject.c (WeakRefStack): add an object member to the structure.
328         (weak_refs_notify): pass wstack->object as extra argument to
329         notify functions.
330         (g_object_weak_ref): set wstack->object when initialising
331         WeakRefStack.
332
333         * gobject.h (GWeakNotify): add second argument to prototype which
334         gives the pointer to where the object that is being disposed of
335         was.
336
337 Wed Jul 18 19:42:31 2001  Tim Janik  <timj@gtk.org>
338
339         * gtype.h: if __GNUC__ is defined, inline a test for an exact type
340         match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
341         G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
342
343 Sun Aug 12 02:07:10 2001  Tim Janik  <timj@gtk.org>
344
345         * gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
346         properly, group value allocations.
347         (g_value_array_new): fix semantic of n_prealloced argument, so it's
348         really just about preallocation space.
349
350 2001-07-23  Padraig O'Briain <Padraig.Obriain@Sun.COM>
351         
352         * gobject/gobjectnotifyqueue.c: fix unconditional check of
353         first GParamSpec in g_object_notify_queue_thaw(); to prevent
354         property notification being lost.
355
356 2001-08-06  Sven Neumann  <sven@gimp.org>
357
358         * gobject.[ch]: 
359         added new functions g_object_[add|remove]_weak_pointer().
360
361 2001-08-01  Sven Neumann  <sven@gimp.org>
362
363         * gsignal.h: added convenience macro g_signal_connect_after().
364
365 2001-07-29  Hans Breuer  <hans@breuer.org>
366
367         * gobject.def : updated externals
368
369 2001-07-20  Hans Breuer  <hans@breuer.org>
370
371         * gobject.def : updated externals
372
373         * makefile.msc.in : reflect glib move
374
375 Tue Jul 10 18:50:16 2001  Tim Janik  <timj@gtk.org>
376
377         * gsignal.h (struct _GSignalQuery): fix misplaced comment.
378
379 Mon Jul  2 07:17:47 2001  Tim Janik  <timj@gtk.org>
380
381         * gobject.c (g_object_weak_ref): 
382         (g_object_watch_closure): congrats tim, introducing of-by-one
383         errors like on my very first day of C programming.
384
385 Sat Jun 30 11:07:00 2001  Tim Janik  <timj@gtk.org>
386
387         * gobject.[hc]: provide weak_ref/weak_unref functions,
388         invoked from ->dispose. renamed ->shutdown() to ->dispose(),
389         provide "public" API entry here: g_object_run_dispose(), this
390         fucntion should _only_ be called from object system implementations
391         (e.g. gtkobject.c) if at all.
392
393         * gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
394
395         * gsignal.h: removed compat aliases.
396
397         * gobject.c (g_object_connect): support data objects.
398         
399 Sat Jun 30 13:17:12 2001  Owen Taylor  <otaylor@redhat.com>
400
401         * testgruntime.c (test_object_class_init)
402           gobject.c (g_object_do_class_init): 
403           g_signal_newc() => g_signal_new().
404
405 Thu Jun 28 22:49:40 2001  Owen Taylor  <otaylor@redhat.com>
406
407         * gtype.[ch] gobject-query.c testgruntime.c: Remove
408         debug flag argument to g_type_init() and add
409         g_type_init_with_debug_flags().
410
411 Thu Jun 28 16:42:49 2001  Tim Janik  <timj@gtk.org>
412
413         * gsignal.c (g_signal_lookup): 
414         (g_signal_list_ids): give elaborate warnings about invalid types,
415         non-instantiatable types and unloaded types that we can't operate on.
416
417         * gparam.[hc]: g_param_spec_pool_belongings() ->
418         g_param_spec_pool_list_owned().
419
420         * gsignal.[hc]: renamed:
421         g_signal_newc -> g_signal_new
422         g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
423         g_signal_block_by_func -> g_signal_handlers_block_by_func
424         g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
425         added GConnectType to simplify (..gboolean swapped, gboolean after)
426         args.
427
428         * gobject.[hc]: changed prototypes accordingly.
429
430 2001-06-22  Hans Breuer  <hans@breuer.org>
431
432         * gobject.def : updated externals
433
434         * gobjectnotifyqueue.c : include <string.h> for memset ()
435
436 Thu Jun 21 02:43:10 2001  Tim Janik  <timj@gtk.org>
437
438         * gparamspecs.h: s/long/int/ for default_value in enum and flags
439         pspecs.
440
441 Wed Jun 20 03:59:42 2001  Tim Janik  <timj@gtk.org>
442
443         * gtype.[hc]: added debugging variants g_type_name_from_class(),
444         g_type_name_from_instance().
445
446 Mon Jun 11 17:07:06 2001  Tim Janik  <timj@gtk.org>
447
448         * gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
449
450         * gobjectnotifyqueue.c: moved property notify queue implementation
451         bits into this function.
452
453         * gparam.[hc]: added g_param_spec_pool_belongings(), completed
454         g_param_spec_pool_list(). added GParameter for _setv() functions.
455
456         * gobject.[hc]: use gobjectnotifyqueue.h implementation now.
457         got rid of properties_changed signal.
458         new functions g_object_newv(), g_object_class_list_properties().
459         removed "properties_changed" signal.
460
461         * gtype.[hc]: added g_type_depth() to figure number of parent
462         types + 1 for a type.
463
464         * gsignal.h: add g_signal_connect() (as per owen's request) and
465         g_signal_connect_swapped().
466
467 2001-06-13  Havoc Pennington  <hp@redhat.com>
468
469         * Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
470         since an installed libgobject was somehow being found; think 
471         it's a libtool bug, but this workaround should do for now.
472
473 2001-06-12  Havoc Pennington  <hp@redhat.com>
474
475         * Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
476         bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
477         in bin_SCRIPTS and cp it into builddir
478
479 Thu May 31 17:56:47 2001  Owen Taylor  <otaylor@redhat.com>
480
481         * gobject-query.c: Fix mispelling in help output.
482         (#53952, Skip Montanaro)
483
484 2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
485
486         * Makefile.am (EXTRA_DIST): Really distribute glib-mkenums, now
487         that bin_SCRIPTS doesn't seem to care about doing so anymore.
488
489 Mon May 28 06:51:24 2001  Tim Janik  <timj@gtk.org>
490
491         * gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
492         to release signal lock when restarting emissions.
493
494 Sun May 27 04:52:28 2001  Tim Janik  <timj@gtk.org>
495
496         * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
497         to stop signal emissions through a detailed_signal string.
498
499         * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
500         the fact that g_value_* functions may cause signal emissons by
501         unlocking the global signal system lock around g_value_* functions.
502         (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
503         that this functions acquires the lock on its own now.
504
505 2001-05-24  Hans Breuer  <hans@breuer.org>
506
507         * makefile.msc.in : changed depndencies to build glib-genmarshal
508         first and statically linked with glib, which makes it independent
509         from the installed glib version. Added new object files to build.
510
511         * gobject.def : updated
512
513 Thu May 24 08:52:02 2001  Owen Taylor  <otaylor@redhat.com>
514
515         * gobject.[ch] (g_value_set_object): gpointer, not
516         gpointer *.
517
518 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
519
520         * Makefile.am (bin_SCRIPTS): made 'make distcheck' happy.
521
522         * gobject.def: Removed g_param_spec_stringc.
523
524 Tue May 22 02:46:13 2001  Tim Janik  <timj@gtk.org>
525
526         * gobject.c (g_value_set_object): make g_value_set_object()
527         take a gpointer v_object so people don't need to G_OBJECT()
528         cast NULL pointers (C code convenience).
529
530 Mon May 14 01:49:01 2001  Tim Janik  <timj@gtk.org>
531
532         * gsignal.[hc] (g_signal_handler_is_connected): new function
533         to check whether a handler is still connected to an instance
534         (by handler id).
535
536 Thu May 10 14:00:48 2001  Tim Janik  <timj@gtk.org>
537
538         * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
539         evidence of public need.
540
541         * gsignal.h: added g_signal_disconnect_by_func(),
542         g_signal_block_by_func() and g_signal_unblock_by_func() convenience
543         macros as per owen's request.
544
545         * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
546         to size of longs and pointers.
547
548 2001-05-05  James Henstridge  <james@daa.com.au>
549
550         * Makefile.am: glib-mkenums is not a compiled program, so shouldn't
551         be in the bin_PROGRAMS primary.  Put it in bin_SCRIPTS instead, and
552         removed the glib_mkenums_SOURCES var.
553
554 Thu May  3 06:10:23 2001  Owen Taylor  <otaylor@redhat.com>
555
556         * gobject.c (g_object_set_[q]data_full): Make types of ternary
557         operator correspond. (Fixes compilation errors with Sun CC,
558         #52230)
559
560 Mon Apr 30 20:03:56 2001  Tim Janik  <timj@gtk.org>
561
562         * glib-mkenums (usage): removed \v escaping, newer perl versions don't
563         support this, and it'S probably useless anyways.
564
565 Sat Apr 28 23:39:42 2001  Tim Janik  <timj@gtk.org>
566
567         * gsignal.[hc]: made signal handler and emission hook ids gulongs.
568         (signal_handlers_foreach_matched_R): only invoke callback for handlers
569         that are not disconnected (id>0).
570         (signal_emit_R): prevent invocation of signal handlers during the
571         emission they were connected within.
572         
573         * glib-mkenums: publically installed perl-script to parse C code
574         enums and generate descriptions thereof.
575         * glib-mkenums.1: assorted man page.
576         
577 2001-04-19  Havoc Pennington  <hp@redhat.com>
578
579         * gobject.c (g_object_get_valist): We were returning junk memory
580         here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
581         passed to G_VALUE_LCOPY) and then we freed the GValue immediately
582         after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
583         G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
584
585 Wed Apr 18 09:46:56 2001  Owen Taylor  <otaylor@redhat.com>
586
587         * gobject.c gsignal.c: Change C++ comments for FIXME's to
588         C comments. (Patch from Andres Salomon)
589
590 2001-04-14  Hans Breuer  <hans@breuer.org>
591
592         * gobject.def : updated
593
594 Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
595
596         * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
597         we're valid (about to actually do marshalling).
598
599 Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
600
601         * NEWS: updates.
602
603 Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
604
605         * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
606         owner_type. the pspecs are not referenced, so the caller is
607         supposed to have some idea about owner_type not randomly
608         nuking his pspec's. if this is going to provide problems in
609         the future, we can either auto-ref the pspecs, or add a
610         _foreach variant, though the latter would have to invoke
611         the callback while pspec's mutex is acquired, so i just
612         went for the _list variant for now.
613
614         * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
615
616 Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
617
618         * gtype.h:
619         * gparamspecs.[hc]: applied patch from owen to implement
620         GParamSpecUnichar.
621
622 Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
623
624         * gtype.c (type_iface_retrive_holder_info_Wm): 
625         * gtypeplugin.c (g_type_plugin_complete_interface_info): 
626         * gtypemodule.c (g_type_module_complete_interface_info): 
627         change order of instance_type and interface_type so they match
628         the g_type_add_interface_*() API.
629
630         * gsignal.c (g_signal_emit_valist): always assign C return value
631         location, people depending on unaltered return values after emissions
632         that had no handlers to run need to use g_signal_emitv().
633
634         * gtype.[hc] (g_type_query): new function to allow querying of
635         class and object size (semantics like g_signal_query()).
636         currently the implementation is better held conservative so as to
637         only support types that are classed and static.
638
639 2001-03-29  Tor Lillqvist  <tml@iki.fi>
640
641         * gobject.def: Updates.
642
643 Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
644
645         * gobject.c (object_queue_property): only queue readable properties
646         for notification changes.
647
648 Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
649
650         * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
651
652 2001-03-21  Martin Baulig  <baulig@suse.de>
653
654         * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
655         argument.
656
657 2001-03-18  Tor Lillqvist  <tml@iki.fi>
658
659         * gobject.def: Correct some renamed functions.
660
661 Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
662
663         * gobject.c (g_object_get_property): minor bug-fix.
664
665         * gbsearcharray.[hc]: provide a macro for static initialization and
666         functions g_bsearch_array_new() and g_bsearch_array_destroy() for
667         dynamic allocations.
668         
669         * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
670         
671         * gclosure.[hc]: naming corrections.
672
673 Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
674
675         * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
676         a public function (was static in gobject.c before). it's a bit odd
677         to have that function here, especially since it requires extra includes,
678         but then it doesn't very well fit somewhere else either.
679
680         * gparamspecs.c: added default/max/min checks to param spec creation
681         functions.
682
683 2001-03-10  Tor Lillqvist  <tml@iki.fi>
684
685         * gobject.def: Add a couple of missing entries.
686
687         * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
688
689 Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
690
691         * testgruntime.c: test program. covers run first/last/cleanup signal
692         handlers, return value accumulator, signal string returns, and
693         interface types in signal arguments.
694
695         * gtype.c (g_type_value_table_peek): for interface types without
696         value table, try looking up a value table from an instantiatable
697         prerequisite type (this is safe as an interface may only have
698         one instantiatable prerequisiste).
699         (type_check_is_value_type_U): same here.
700
701         * gsignal.c (g_signal_newv): assert that return types never have
702         G_SIGNAL_TYPE_STATIC_SCOPE set.
703         (g_signal_newc): only create class closure if the class_offset is not
704         0.
705
706 Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
707
708         * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
709         for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
710         that wouldn't allow interface types.
711
712         * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
713         with bad implications and an off-by-one error.
714
715 Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
716
717         * gvaluetransform.c: Include <string.h> for memcpy.
718
719         * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
720         and ANSI-illegal ## token pasting.
721
722 Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
723
724         * gsignal.c: eek, fixed old hook detail storage code.
725
726 Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
727
728         * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
729
730         * gsignal.[hc]: fixed accumulator invocation, implemented emission
731         hooks. and no, neither of these callbacks are called via a closure,
732         language bindings can wrap the accumulator and emission hook
733         interface, they already get parameters marshalled into a GValue array.
734         (g_signal_connect): removed this function as its C specific, doesn't
735         cover the swapped argument, is too close to its broken original
736         gtk_signal_connect() and creates demand for _swapped, _after and
737         _swapped_after variants <brrr>.
738         (g_signal_connectc): convenience macro to connect a C handler
739         func with data, like the old g_signal_connect() plus swapped
740         argument.
741
742         * gtype.h:
743         * gboxed.c: added G_TYPE_VALUE boxed type.
744
745 Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
746
747         * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
748         to an ancestor of a child that already conforms to this interface.
749         currently we spew a warning here, should we be silent?
750         (g_type_interface_add_prerequisite): new function to add a prerequisite
751         type to an interface, that must succeed an instance is_a prerequisite
752         type check before the interface can be added to an instance. the
753         prerequisite types are also suuported in is_a checks of the interface.
754         (g_type_instance_is_a):
755         (g_type_check_instance_cast):
756         (g_type_check_instance): cleanups and optimizations.
757         (g_type_class_is_a):
758         (g_type_check_class_cast): same, also prevented these from accepting
759         interface types, as class structures don't nest interfaces.
760
761 2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
762
763         * Makefile.am: Avoid rebuilding everything everytime.
764
765 Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
766
767         * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
768         to contain an optional init function and a hint at whether the
769         boxed structure uses ref counting internally.
770         added g_value_set_boxed_take_ownership().
771         made G_TYPE_BOXED an abstract value type.
772
773         * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
774         types.
775
776         * glib-genmarshal.c: argument type changes, preparation for third-party
777         arg specification.
778
779         * gobject.[hc]: cleaned up get/set property code.
780         added g_strdup_value_contents() to improve warnings.
781
782         * gparam.[hc]: added g_param_value_convert(), taking over responsibility
783         of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
784         validation alterations may be valid a part of the property setting
785         process.
786
787         * gparamspecs.[hc]: made value comparisons stable (for sort applications).
788         added GParamSpecValueArray, a param spec for value arrays and
789         GParamSpecClosure. nuked the value exchange functions and
790         GParamSpecCCallback.
791
792         * gtype.[hc]: catch unintialized usages of the type system with
793         g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
794         to flag types that introduce a value table, but can't be used for
795         g_value_init(). cleaned up reserved type ids.
796
797         * gvalue.[hc]: code cleanups and saner checking.
798         nuked the value exchange API. implemented value transformations, we
799         can't really "convert" values, rather transforms are an anylogy to
800         C casts, real conversions need a param spec for validation, which is
801         why g_param_value_convert() does real conversions now.
802
803         * gvaluearray.[hc]: new files that implement a GValueArray, a struct
804         that can hold inhomogeneous arrays of value (to that extend that it
805         also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
806         this is exposed to the type system as a boxed type.
807
808         * gvaluetransform.c: new file implementing most of the former value
809         exchange functions as single-sided transformations.
810
811         * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
812         g_value_set_string_take_ownership().
813
814         * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
815
816         * *.[hc]: many fixes and cleanups.
817
818         * many warning improvements.
819
820 Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
821
822         * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
823         into G_VALUE_LCOPY(), this needs proper documenting.
824
825         * gparam.c: fixed G_PARAM_USER_MASK.
826
827         * gtype.c (type_data_make_W): 
828         (type_data_last_unref_Wm): fixed invalid memory freeing.
829
830         * gobject.c (g_object_last_unref): destroy signal handlers associated
831         with object, right before finalization.
832
833         * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
834         that don't actually support details.
835
836         * gobject.[hc]: got rid of property trailers. nuked GObject
837         properties "data" and the "signal" variants.
838         (g_object_connect): new convenience function to do multiple
839         signal connections at once.
840         (g_object_disconnect): likewise, for disconnections.
841
842         * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
843
844         * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
845         as private (the latter got renamed from g_value_get_as_pointer()).
846
847 2001-02-21  Tor Lillqvist  <tml@iki.fi>
848
849         * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
850
851         * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
852         libtool with -no-undefined for Win32 and Cygwin.
853
854 Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
855
856         * gsignal.h (g_signal_connect): Add g_signal_connect define to
857         make porting from gtk_signal_connect easy.
858
859         * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
860         (instance) instead of node->itype when initting the value.
861
862 2001-02-17  Havoc Pennington  <hp@pobox.com>
863
864         Applied patch from Soeren Sandmann:
865         
866         * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
867
868         * gtype.c (g_type_name): G_CONST_RETURN
869
870         * gsignal.c (g_signal_name): G_CONST_RETURN
871
872         * gobject-query.c (main): const fix
873
874 Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
875
876         * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
877         G_ENUM_CLASS_TYPE() macro.
878
879 Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
880
881         * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
882         lcopy_value() in the GTypeValueTable. the collect functions are now
883         called only once per value, collect_format/lcopy_format are strings
884         that enlist all necessary GTypeCValues to be varargs-collected.
885
886         * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
887         a value shouldn't copy its contents.
888
889         * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
890         macros to carry an additional argument (flags) that can be used
891         to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
892
893         * *.c: adapted collect_value() and lcopy_value() functions to the new
894         prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
895
896         * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
897         be passed along (ORed) with the parameter types, indicating that the
898         emission arguments are to be considered static for the scope of the
899         emission. should be used with care and only if the caller knows that
900         a parameter cannot be destroyed/freed from signal handlers connected
901         to an emission.
902
903 Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
904
905         * gclosure.c:
906         (g_closure_ref):
907         (g_closure_sink): make closure sinking explicit.
908
909         * gsignal.c:
910         (g_signal_connect_data): 
911         (g_signal_connect_closure): 
912         (g_signal_connect_closure_by_id): 
913         (g_signal_newv): perform explicit closure sinking.
914
915 Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
916
917         * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
918
919 2001-02-04  Tor Lillqvist  <tml@iki.fi>
920
921         * gobject.def: Remove glib_debug_objects.
922
923 Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
924
925         * gtype.[hc]: changed g_type_init() to take debugging flags
926         initially, a combination of G_TYPE_DEBUG_OBJECTS and
927         G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
928         here, but basically g_type_int() serves as initialization
929         fucntion for all of GType, GObject, GSignal, so what the heck.
930
931         * gobject.c: special case debugging code properly.
932         changed glib_trap_object_ref to g_trap_object_ref.
933
934         * gsignal.c: add signal emission debugging abilities, along with
935         a new trap object g_trap_instance_signals.
936
937 2001-02-04  Tor Lillqvist  <tml@iki.fi>
938
939         * Makefile.am (progs_LDADD): Change order of libs to libgobject
940         first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
941
942 Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
943
944         * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
945
946         * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
947         number that's supposed to be left untouched (preserved mainly
948         for the signal code).
949
950         * *.c: added thread safety code, based on an old patch from sebastian.
951         the remaining thread safety issues are now datalists on pspecs (to be
952         solved im gdataset.c) and gvalue.c where locking concerns value exchange
953         functionality only, and that's soon to be revised.
954
955 2001-01-27  Tor Lillqvist  <tml@iki.fi>
956
957         * makefile.msc.in: Don't try to compile gmarshal.c on its own.
958
959 2001-01-24    <alexl@redhat.com>
960
961         * gclosure.c (g_closure_unref):
962         Don't leak closure->notifiers.
963
964 2001-01-05  Havoc Pennington  <hp@redhat.com>
965
966         * gparamspecs.c (g_param_spec_enum): set the value_type in the
967         param spec; closes bug 40210
968         (g_param_spec_flags): ditto for flags
969
970 2001-01-03  Alexander Larsson  <alexl@redhat.com>
971
972         * gobject.c:
973         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
974
975 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
976
977         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
978         fucntionality if DISABLE_MEM_POOLS is defined.
979
980         * gtype.c: honour DISABLE_MEM_POOLS.
981
982         * gsignal.c (g_signal_init): flag signal key bsearch array with
983         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
984         DISABLE_MEM_POOLS.
985
986         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
987                                                        G_PARAM_WRITABLE).
988
989 2000-12-15  Tor Lillqvist  <tml@iki.fi>
990
991         * gobject.def: Update.
992
993 2000-12-15  Havoc Pennington  <hp@pobox.com>
994
995         * gobject.c (g_object_do_class_init): use g_signal_newc
996
997         * gsignal.c (g_signal_newc): convenience function for signals
998         created from C
999         (g_signal_new_valist): added
1000         (g_signal_new): removed
1001
1002 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
1003
1004         * gparam.[hc]: add an instance member value_type so the default
1005         value of the pspec class can be overridden.
1006
1007 2000-12-14  Tor Lillqvist  <tml@iki.fi>
1008
1009         * makefile.mingw.in: Update, include parts from Makefile.am to
1010         build gmarshal.[ch]. Some day, we won't need these separate
1011         makefiles for Win32 compilation. I hope.
1012
1013         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
1014         here, it would require Unixish tools. MSVC users building from CVS
1015         sources are out of luck.
1016         
1017         * gobject.def: Update.
1018
1019 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
1020
1021         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
1022
1023         * gobject.[hc]: minor fixes.
1024
1025 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
1026
1027         * Makefile.am: _never_ touch oldest-source-stamp.
1028         
1029         * gobject.[hc]: construct property handling fixes/improvements.
1030         fixed trailer handling in get/set property.
1031         
1032         * gparam.[hc]: implement param spec pool, got rid of param spec
1033         hashtable. the most prominent change is that e deal with type
1034         prefixes here.
1035         
1036 2000-12-12  Elliot Lee  <sopwith@redhat.com>
1037
1038         * Makefile.am:
1039           . You have to 'touch oldest-source-stamp' if you want to avoid having
1040           the Makefile constantly rebuild itself.
1041           . Fix marshaller generation rules to work with srcdir != builddir
1042             (there were issues with trying to run "./glib-genmarshal", etc.)
1043
1044 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
1045
1046         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
1047         
1048         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
1049         convenience macro.
1050         
1051         * Makefile.am: cleanups, marshaller generation rules.
1052         
1053         * gmarshal.[hc]: new files with GRuntime standard marshallers.
1054         
1055         * glib-genmarshal.c: fix log domain, support gruntime standard 
1056         marshallers, suport G_TYPE_PARAM, come with extern "C" and
1057         #include gmarshal.h.
1058         
1059         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
1060         
1061         * gobject.[hc]: implement object constructor. rework parameter
1062         changed notification queueing, we support queue freezes now and
1063         don't dispatch from an idle handler anymore.
1064         parameter->property rename hassle.
1065         implemented ::properties_changed and ::notify::* signals for
1066         property change notification (the later supports property names
1067         as details). added signal connection and named data properties.
1068         (g_signal_connect_object): new function to setup while_alive
1069         connections.
1070         (g_object_class_install_property): sink properties now, since they
1071         are initially floating.
1072         (g_object_steal_data):
1073         (g_object_set_data_full):
1074         (g_object_set_data):
1075         (g_object_get_data): set/get data by using g_datalist_*() functions
1076         directly.
1077         (g_object_queue_param_changed): nuked.
1078         (g_object_freeze_notify): start queueing of property changes (freeze/
1079         thaw calls stack).
1080         (g_object_notify): announce changes of a certain property directly.
1081         (g_object_thaw_notify): process queue of property changes, therefore
1082         emitting GObject::notify::detail with detail being the changed
1083         properties names.
1084         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
1085         G_WARN_INVALID_PARAM_ID().
1086         
1087         * gparam.[hc]: param specs are now initially floating and need to be
1088         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
1089         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
1090         required by GObjectClass.constructor().
1091         
1092         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
1093         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
1094         and G_TYPE_CCALLBACK respectively.
1095         
1096         * gsignal.[hc]: cleanups.
1097         (signal_id_lookup): after walking the anchestry, try interfaces as well.
1098         (g_signal_new): new function to create signals from varargs type list.
1099         (g_signal_connect_closure): closure connection variant that works from
1100         signal name+detail.
1101         (g_signal_connect_data): c handler connection variant that works from
1102         signal name+detail.
1103         (g_signal_emit_valist): emit signal for an instance with paraneters
1104         collected from a va_list.
1105         (g_signal_emit): emit signal, taking parameters from varargs list.
1106         (g_signal_emit_by_name): same as g_signal_emit, working from
1107         signal name+detail.
1108         (signal_emit_R): return whether return_value needs to be altered.
1109         
1110         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
1111         the points that need to reflect the upcoming rename.
1112         melt g_type_conforms_to() functionality into g_type_is_a(), as that
1113         is what we really want (liskov substitution principle).
1114         assorted changes to other files due to conforms_to->is_a.
1115
1116         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
1117         from an instantiatable type via the value_table's collect_value()
1118         function (based on an idea from James Henstridge <james@daa.com.au>).
1119         cleanups/fixes.
1120         
1121         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
1122
1123 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
1124
1125         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
1126         NULL nodes if C handlers are searched for specific signals.
1127
1128 2000-11-28  Elliot Lee  <sopwith@redhat.com>
1129
1130         * gsignal.c: Fix warnings about possible use of uninitialized
1131         variables, and fix logic that would leave 'node' unset in cases
1132         that it might be used in.
1133
1134         * glib-genmarshal.c: Fix warning about printf format.
1135
1136 2000-11-28  Tor Lillqvist  <tml@iki.fi>
1137
1138         * gboxed.c: Include <string.h> for memset ().
1139
1140 2000-11-22  Tor Lillqvist  <tml@iki.fi>
1141
1142         * gobject.def: Update.
1143
1144 2000-11-20  Havoc Pennington  <hp@redhat.com>
1145
1146         * gobject.c (g_object_get_data)
1147         (g_object_set_data)
1148         (g_object_set_data_full)
1149         (g_object_steal_data): More convenient data-setting functions
1150
1151 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
1152
1153         * gtypemodule.c (g_type_module_use): If loading the
1154         module fails, don't increment the use count.
1155
1156 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
1157
1158         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
1159         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
1160         Zeeman <maas@wanadoo.nl>.
1161
1162 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
1163
1164         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
1165
1166 2000-11-11  Tor Lillqvist  <tml@iki.fi>
1167
1168         * gtypemodule.c: Include stdlib.h for exit().
1169
1170         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
1171
1172         * gobject.def: Add missing functions.
1173
1174 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
1175
1176         * Makefile.am gtypemodule.[ch]: New basic implementation of
1177         GTypePlugin interface as a GObject. Dynamically loaded modules can
1178         register any number of types and interface on the module.
1179
1180 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
1181
1182         * gsignal.c (handlers_find): When appending handlers and
1183         not matching on signal_id, use hlist->signal_id instead of 
1184         signal_id. Having the correct signal_id when unreffing
1185         the handlers makes things work a lot better.
1186
1187 2000-11-05  Tor Lillqvist  <tml@iki.fi>
1188
1189         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
1190
1191         * gobject.def: Update.
1192
1193 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
1194
1195         * gsignal.c:
1196         fixed a bag full of subtle bugs of immensive screw-up potential in
1197         handlers_find(), luckily no one found out about them yet ;)
1198         fixed signal_handlers_foreach_matched_R() so it operates on an
1199         initial handler list snapshot provided by handlers_find() to work
1200         around general reentrancy problems and to avoid multiple callback()
1201         invocations on the same handlers.
1202         this code is now officially 80% bug free (10% remaining for interface
1203         types, and 10% remaining for destroyed signals ;)
1204         
1205 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
1206
1207         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
1208
1209         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
1210         implementation that provides the API required by GType to deal with
1211         dynamically loadable types.
1212
1213         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
1214
1215 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
1216
1217         * gsignal.[hc]: prefix internal functions with '_'. renamed
1218         g_signal_connect_closure() to g_signal_connect_closure_by_id().
1219         added g_signal_parse_name() to retrive signal_id and detail quark
1220         from a signal name (internal).
1221
1222 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
1223
1224         * gobject.c (g_object_base_class_finalize): destroy all signals that
1225         the finalized obejct type introduced.
1226
1227         * gsignal.c (g_signals_destroy): don't require itype to have
1228         signals.
1229
1230         * gobject.c (g_object_do_finalize): make sure all signal handlers
1231         are destroyed.
1232
1233         * gsignal.[hc]:
1234         (g_signal_handler_find): only match on non-0 masks.
1235         (g_signal_handlers_block_matched):
1236         (g_signal_handlers_unblock_matched):
1237         (g_signal_handlers_disconnect_matched): new functions to block/unblock
1238         or disconnect handlers in groups.
1239
1240 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1241
1242         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
1243         made both functions return gboolean just for the little extra
1244         standard conformance now that GEqualFunc is introduced.
1245
1246 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
1247
1248         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
1249         added, the doc system would ignore it anyways (for some reason not
1250         aparent to me).
1251
1252 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
1253
1254         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
1255         added required mutex locks.
1256
1257 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
1258
1259         * gsignal.c (g_type_signals): Fix problem where signals
1260         with "_" in them appeared twice in the result array.
1261
1262 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
1263
1264         * gsignal.h: Add g_type_signals() - a function to list
1265         all signals for a given type.
1266
1267 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
1268
1269         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
1270         for post_marshal guard which was off at 0.
1271
1272 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
1273
1274         * gobject.[hc]: doh, fix argument order in for
1275         g_cclosure_new_object_swap and g_cclosure_new_object.
1276
1277 2000-10-28  Tor Lillqvist  <tml@iki.fi>
1278
1279         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
1280
1281         * glib-genmarshal.c: Conditionalise include of unistd.h.
1282         Include <io.h> on Win32.
1283
1284         * gobject.def: Add some missing entry points.
1285
1286 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
1287
1288         * gsignal.[hc]: publically define GSignalInvocationHint structure
1289         that gets passed in to closure invocations. added signal details.
1290         renamed GSignalType to GSignalFlags to comply with conventions.
1291         quite some cleanups and minor fixes. avoid uneccessary handler list
1292         walks upon invokation of after handlers. relookup handler list for
1293         restarted emissions. preliminary abort normal handler invokation if
1294         after handler is encountered.
1295
1296         * glib-genmarshal.c:
1297         * gclosure.[hc]: moved invocation_hint to the end of the
1298         g_closure_invoke() arguments as sugegsted by kenelson.
1299         also made it a gpointer to be more generic. the invocation_hint
1300         is a caller specific thing that can be used to pass additional
1301         data in to closure invocations as documented with the caller
1302         invoking the closure.
1303
1304 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
1305
1306         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
1307         by havoc.
1308
1309         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
1310         g_signal_lookup() would be called with the signal lock being
1311         held. reported by james henstridge.
1312
1313         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
1314         reported by owen.
1315
1316 2000-10-26  Tor Lillqvist  <tml@iki.fi>
1317
1318         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
1319         arithmetic on void pointer, label without statement following.
1320
1321         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
1322         result of sizeof operator, it can be unsigned. Cast first to
1323         gssize.
1324
1325         * gobject.def: Add new functions.
1326
1327         * makefile.{mingw,msc}.in: Add new objects.
1328
1329 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1330
1331         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
1332         prevents 'make dist' from working.
1333
1334 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
1335
1336         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
1337         casts from void * since this will get included from C++ too
1338         at times.
1339         
1340 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
1341
1342         * gvaluetypes.[hc]: added g_value_set_static_string().
1343
1344         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
1345
1346 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
1347
1348         * gtype.c (g_type_free_instance): for the moment, freeing object
1349         structures will fill their memory portion with 0xAA. there's a
1350         FIXME there, remove this line at a later point.
1351
1352 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
1353
1354         * glib-genmarshal.1:
1355         * glib-genmarshal.c: added publically installed marshaller generator.
1356
1357         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
1358         interface VTable from instances.
1359
1360 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
1361
1362         * gobject.[hc]: new functions for closure maintenance:
1363         (g_object_watch_closure): maintain validity of the object and
1364         the closure for objects that are used as data part of a closure.
1365         (g_cclosure_new_object): convenience function to create C closures
1366         that have an object as data argument.
1367         (g_closure_new_object): convenience function to create closures
1368         that have an object as data argument.
1369
1370         * gclosure.[hc]: implementation of GClosure mechanism.
1371         a closure is basically an encapsulation of a callback function
1372         and its environment. ideally, most places supporting callback
1373         functions will simply take a GClosure* pointer and thus unify
1374         callback environments wrg destroy notification etc.
1375         GClosure provides destroy notifiers for arbitrary data pointers,
1376         reference counting, invalidation notification (it can be invalidated
1377         which is merely a deactivate state) and a marshallinbg abstraction.
1378         GCClosure is also provided in these files, they present a specialized
1379         GClosure implementation for C language callbacks.
1380
1381         * genum.c: macro cleanups.
1382         
1383         * gboxed.[hc]: new files, for boxed type abstraction.
1384         (g_boxed_copy): copy a boxed structure
1385         (g_boxed_free): free a boxed structure
1386         (g_value_set_boxed):
1387         (g_value_get_boxed): standard GValue functions for boxed types
1388         (g_boxed_type_register_static): convenience function for easy
1389         introduction of new G_TYPE_BOXED derivatives.
1390
1391         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
1392         for creation of new GParamSpec derived types.
1393
1394         * gtype.[hc]: many fixes, introduced ability to flag individual
1395         type nodes as ABSTRACT upon registration, added value_peek_pointer()
1396         to the value table to peek at GValue contents as a pointer for types
1397         that support this. fixed up GValue checks.
1398
1399         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
1400         to peek at the value contents as pointer.
1401
1402         * *.[hc]: adaptions to type macro fixes and changes in the type
1403         registration API.
1404
1405         * many const corrections over the place.
1406
1407 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
1408
1409         * gtype.c (g_type_conforms_to): this function basically behaves like
1410         and is_a check, except that it _additionally_ features interfaces
1411         for instantiatable types. enforce this in the second branch as well
1412         (`type' conforms_to `type') even if `type' is not an interface type.
1413
1414 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
1415
1416         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
1417
1418         * gtype.[hc]:
1419         * gobject.c:
1420         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
1421         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
1422         and G_TYPE_POINTER.
1423
1424 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
1425
1426         * gbsearcharray.[hc]: long standing needed generic implementation
1427         of a binary searchable, sorted and dynamically sized array.
1428
1429 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
1430
1431         * Makefile.am (BUILT_EXTRA_DIST): New variable.
1432         (dist-hook): Handle $(BUILT_EXTRA_DIST).
1433         (*): Remove traces of @STRIP_{BEGIN,END}@.
1434         
1435 2000-09-29  Martin Baulig  <baulig@suse.de>
1436         
1437         Several minor ANSI C fixes.
1438
1439         Added missing casts:
1440         * gtype.c (type_class_init): 
1441         `(gpointer) bnode->data->class.class_init_base'
1442         in call to g_slist_prepend() and
1443         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
1444
1445         * gobject.c: Put text following #endif into comments.
1446
1447 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1448
1449         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
1450         dist from working.
1451
1452 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
1453
1454         * gobject.c (g_object_last_unref): Move call to
1455         g_type_free_instance() here from g_object_do_finalize,
1456         since g_type_free_instance() can unload the object's
1457         implementation.
1458
1459 2000-07-27  Tor Lillqvist  <tml@iki.fi>
1460
1461         * gobject.c: No, don't mark glib_debug_objects for export here,
1462         it's handled specially in gtktypeutils.c.
1463
1464         * gobject.def: Export g_type_fundamental_last (the function).
1465
1466 2000-07-26  Tor Lillqvist  <tml@iki.fi>
1467
1468         * gobject.def
1469         * gobject.c: Mark glib_debug_objects for export/import as it is
1470         used by GTK+.
1471
1472 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
1473
1474         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
1475         that extern variable clutter and avoiding further problems with thread
1476         safety.
1477
1478 2000-07-19  Tor Lillqvist  <tml@iki.fi>
1479
1480         * gparam.h
1481         * gvalue.h
1482         * gparam.c
1483         * gtype.c: Shut up Sun's picky compiler.
1484
1485 2000-07-14  Tor Lillqvist  <tml@iki.fi>
1486
1487         * gobject.def: Add g_type_get_plugin.
1488
1489 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
1490
1491         * gparam.c (g_param_value_defaults): default initialize the temporary
1492         default value, instead of nuking the caller's value contents.
1493
1494 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
1495
1496         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
1497
1498 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
1499
1500         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
1501
1502 2000-07-10  Tor Lillqvist  <tml@iki.fi>
1503
1504         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
1505         to guard inclusion of <unistd.h>.
1506
1507         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
1508         variable for export. Call the macro GOBJECT_VAR.
1509
1510         * gtype.c: Declare _g_type_fundamental_last for export here, too.
1511         (type_node_any_new): Use only constant expressions for sizeof
1512         operator (for instance MSVC requires this).
1513
1514         * makefile.mingw.in: Define GOBJECT_COMPILATION.
1515
1516 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
1517
1518         * genums.c: Move string.h include into the .c file
1519         instead of where it was in the .h file by mistake.
1520
1521 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
1522
1523         * Makefile.am (EXTRA_DIST): dist fixes.
1524
1525         * gobject.c: Add a global variable glib_debug_objects
1526         (not in header file) to control object tracing.
1527
1528 2000-07-01  Tor Lillqvist  <tml@iki.fi>
1529
1530         * gobject.def: Update added and renamed entry points.
1531
1532         * makefile.mingw.in: Add gvaluetypes.o.
1533
1534 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
1535
1536         * gobject.c:include string.h for memset
1537         * genums.h: include string.h for strcpy
1538         * gvalue.c: include string.h for memset, memcpy.
1539
1540 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
1541
1542         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
1543         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
1544         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
1545         added a GTypeValueTable* pointer to GTypeInfo structure for types
1546         to implement GValue handling functions.
1547         GTypeValueTable contains the following members:
1548           value_init(): initialize a GValue structure.
1549           value_free(): free GValue structure contents (optional).
1550           value_copy(): copy one GValue contents to another GValue structure of
1551           collect_type: varargs collection type for the first variable argument
1552           to be collected by collect_value().
1553           collect_value(): variable arguments collection function (optional).
1554           lcopy_type: varargs collection type for the first variable argument
1555           to be location copyied by lcopy_value().
1556           lcopy_value(): variable arguments location copy function (optional).
1557         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
1558         for a type node. ValueTables get inherited from parent types, unless
1559         overridden through the GTypeInfo structure. internally, GTypeValueTable
1560         support means an added overhead of one pointer per static or used
1561         dynamic type node.
1562         g_type_add_class_cache_func(): provide a cache_func/data pair to be
1563         called  prior to a type nodes last_unref() function, this can be used
1564         to prevent premature class destruction. multiple installed cache_func()
1565         will be chained upon last_unref() untill one of them returns TRUE.
1566         the cache_func()s have to check the class id passed in to figure whether
1567         they actually want to cache the class of this type (since all classes
1568         are routed through the cache_func() chain).
1569         g_type_remove_class_cache_func(): remove a previously installed
1570         cache_func/data pair. the cache maintained by this function has to be
1571         clear when calling g_type_remove_class_cache_func() to avoid leaks.
1572         g_type_class_unref_uncached(): class unref function for cache_func()
1573         implementations, unreferences a class omitting the cache chain (and
1574         therefore unref->cache->unref->... loops).
1575
1576         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
1577         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
1578         double and string.
1579
1580         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
1581         GTypeValueTable is provided for this type.
1582         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
1583         g_value_set_default() and g_values_cmp() as these are supplied by the
1584         GParamSpec API now.
1585         moved g_values_exchange() into the "implementation details" section,
1586         since it just provides the underlying functionality for
1587         g_value_convert().
1588
1589         * gvaluecollector.h: renamed the varargs value container from
1590         GParamCValue to GTypeCValue as the value collection methods are
1591         supplied by the type system now.
1592         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
1593         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
1594         GParamSpec structure now.
1595
1596         * genums.h: macros cleanups/fixes.
1597
1598         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
1599         and assorted g_value_{s|g}et_{enum|flags}() implementations.
1600
1601         * gobject.[hc]:
1602         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
1603         and g_value_{s|g}et_object().
1604
1605         * gparam.[hc]: reduced class to value_set_default(),
1606         value_validate() and values_cmp(). also parameters now need to fill
1607         in a GType value_type; field to indicate the GValue type they
1608         are handling. provide g_param_value_set_default(),
1609         g_param_value_defaults(), g_param_value_validate() and
1610         g_param_values_cmp().
1611
1612         * gparamspecs.[hc]: got rid of the g_value_* functions and
1613         the G_IS_VALUE_* macros. adapted param spec implementations
1614         according to the GParamSpecClass changes.
1615
1616 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
1617
1618         * gtype.c (type_class_init): fetch the nth iface entry of the
1619         type node in the nth loop iteration, not alwys the first.
1620         bug discovered by Walt Pohl <cher@suitware.com>.
1621         (type_data_finalize_class_ifaces): same here, cut and paste
1622         rulez.
1623
1624 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
1625
1626         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
1627         is found properly when build srcdir != builddir. (Patch from
1628         Eric Lemings)
1629
1630 2000-05-13  Tor Lillqvist  <tml@iki.fi>
1631
1632         * makefile.mingw.in
1633         * gobject.def
1634         * gobject.rc.in: New files, for Win32 (mingw) build.
1635
1636         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
1637         corresponding non-*.in files.
1638
1639         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
1640         export/import from DLL.
1641
1642 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
1643
1644         * gtype.h: add reserved fundamental ids for gtk types (for transition
1645         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
1646
1647 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
1648
1649         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
1650         n_params prior to destructing them.
1651
1652 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
1653
1654         * fixed a couple of bugs in the initial parameter/object
1655         implementations, after getting beast running on GObject and GValue.
1656
1657 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
1658
1659         * glib-gobject.[hc]: completed parameter set/get implementations,
1660         along with asyncronous parameter changed notification queue.
1661
1662 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
1663
1664         * glib-gobject.[hc]: GObject implementation, that is facilities
1665         for setting/getting quarked data and reference counting.
1666
1667         * glib-gparamspecs.[hc]: first actuall parameter implementations
1668         for GLib, so far we have: char, uchar, bool, int, uint, long,
1669         ulong, enum, flags, float, double, string and object. each of these
1670         GParamSpecs is a new instantiatable type in its own respect,
1671         so the .c file derives 13 new types from G_TYPE_PARAM and
1672         defines over 50 (*2) conversion facilities.
1673
1674         * glib-gvaluecollector.h: generic varargs handling stubs for
1675         GParamSpecs, private header file (does get installed for
1676         inclusion into user code though).
1677
1678         * glib-gvalue.[hc]: GValue functionality implementation.
1679
1680         * glib-gparam.[hc]: basis GParamSpec implementation for
1681         the virtual base type G_TYPE_PARAM.
1682
1683         * glib-genums.[hc]: enum/flags type implementation, based on
1684         bseenum.[hc].
1685
1686         * glib-gtype.[hc]: GLib Type System implementation, heavily
1687         based on BSE's dynamic type system.