Make types of ternary operator correspond. (Fixes compilation errors with
[platform/upstream/glib.git] / gobject / ChangeLog
1 Thu May  3 06:10:23 2001  Owen Taylor  <otaylor@redhat.com>
2
3         * gobject.c (g_object_set_[q]data_full): Make types of ternary
4         operator correspond. (Fixes compilation errors with Sun CC,
5         #52230)
6
7 Mon Apr 30 20:03:56 2001  Tim Janik  <timj@gtk.org>
8
9         * glib-mkenums (usage): removed \v escaping, newer perl versions don't
10         support this, and it'S probably useless anyways.
11
12 Sat Apr 28 23:39:42 2001  Tim Janik  <timj@gtk.org>
13
14         * gsignal.[hc]: made signal handler and emission hook ids gulongs.
15         (signal_handlers_foreach_matched_R): only invoke callback for handlers
16         that are not disconnected (id>0).
17         (signal_emit_R): prevent invocation of signal handlers during the
18         emission they were connected within.
19         
20         * glib-mkenums: publically installed perl-script to parse C code
21         enums and generate descriptions thereof.
22         * glib-mkenums.1: assorted man page.
23         
24 2001-04-19  Havoc Pennington  <hp@redhat.com>
25
26         * gobject.c (g_object_get_valist): We were returning junk memory
27         here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
28         passed to G_VALUE_LCOPY) and then we freed the GValue immediately
29         after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
30         G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
31
32 Wed Apr 18 09:46:56 2001  Owen Taylor  <otaylor@redhat.com>
33
34         * gobject.c gsignal.c: Change C++ comments for FIXME's to
35         C comments. (Patch from Andres Salomon)
36
37 2001-04-14  Hans Breuer  <hans@breuer.org>
38
39         * gobject.def : updated
40
41 Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
42
43         * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
44         we're valid (about to actually do marshalling).
45
46 Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
47
48         * NEWS: updates.
49
50 Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
51
52         * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
53         owner_type. the pspecs are not referenced, so the caller is
54         supposed to have some idea about owner_type not randomly
55         nuking his pspec's. if this is going to provide problems in
56         the future, we can either auto-ref the pspecs, or add a
57         _foreach variant, though the latter would have to invoke
58         the callback while pspec's mutex is acquired, so i just
59         went for the _list variant for now.
60
61         * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
62
63 Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
64
65         * gtype.h:
66         * gparamspecs.[hc]: applied patch from owen to implement
67         GParamSpecUnichar.
68
69 Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
70
71         * gtype.c (type_iface_retrive_holder_info_Wm): 
72         * gtypeplugin.c (g_type_plugin_complete_interface_info): 
73         * gtypemodule.c (g_type_module_complete_interface_info): 
74         change order of instance_type and interface_type so they match
75         the g_type_add_interface_*() API.
76
77         * gsignal.c (g_signal_emit_valist): always assign C return value
78         location, people depending on unaltered return values after emissions
79         that had no handlers to run need to use g_signal_emitv().
80
81         * gtype.[hc] (g_type_query): new function to allow querying of
82         class and object size (semantics like g_signal_query()).
83         currently the implementation is better held conservative so as to
84         only support types that are classed and static.
85
86 2001-03-29  Tor Lillqvist  <tml@iki.fi>
87
88         * gobject.def: Updates.
89
90 Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
91
92         * gobject.c (object_queue_property): only queue readable properties
93         for notification changes.
94
95 Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
96
97         * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
98
99 2001-03-21  Martin Baulig  <baulig@suse.de>
100
101         * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
102         argument.
103
104 2001-03-18  Tor Lillqvist  <tml@iki.fi>
105
106         * gobject.def: Correct some renamed functions.
107
108 Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
109
110         * gobject.c (g_object_get_property): minor bug-fix.
111
112         * gbsearcharray.[hc]: provide a macro for static initialization and
113         functions g_bsearch_array_new() and g_bsearch_array_destroy() for
114         dynamic allocations.
115         
116         * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
117         
118         * gclosure.[hc]: naming corrections.
119
120 Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
121
122         * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
123         a public function (was static in gobject.c before). it's a bit odd
124         to have that function here, especially since it requires extra includes,
125         but then it doesn't very well fit somewhere else either.
126
127         * gparamspecs.c: added default/max/min checks to param spec creation
128         functions.
129
130 2001-03-10  Tor Lillqvist  <tml@iki.fi>
131
132         * gobject.def: Add a couple of missing entries.
133
134         * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
135
136 Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
137
138         * testgruntime.c: test program. covers run first/last/cleanup signal
139         handlers, return value accumulator, signal string returns, and
140         interface types in signal arguments.
141
142         * gtype.c (g_type_value_table_peek): for interface types without
143         value table, try looking up a value table from an instantiatable
144         prerequisite type (this is safe as an interface may only have
145         one instantiatable prerequisiste).
146         (type_check_is_value_type_U): same here.
147
148         * gsignal.c (g_signal_newv): assert that return types never have
149         G_SIGNAL_TYPE_STATIC_SCOPE set.
150         (g_signal_newc): only create class closure if the class_offset is not
151         0.
152
153 Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
154
155         * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
156         for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
157         that wouldn't allow interface types.
158
159         * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
160         with bad implications and an off-by-one error.
161
162 Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
163
164         * gvaluetransform.c: Include <string.h> for memcpy.
165
166         * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
167         and ANSI-illegal ## token pasting.
168
169 Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
170
171         * gsignal.c: eek, fixed old hook detail storage code.
172
173 Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
174
175         * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
176
177         * gsignal.[hc]: fixed accumulator invocation, implemented emission
178         hooks. and no, neither of these callbacks are called via a closure,
179         language bindings can wrap the accumulator and emission hook
180         interface, they already get parameters marshalled into a GValue array.
181         (g_signal_connect): removed this function as its C specific, doesn't
182         cover the swapped argument, is too close to its broken original
183         gtk_signal_connect() and creates demand for _swapped, _after and
184         _swapped_after variants <brrr>.
185         (g_signal_connectc): convenience macro to connect a C handler
186         func with data, like the old g_signal_connect() plus swapped
187         argument.
188
189         * gtype.h:
190         * gboxed.c: added G_TYPE_VALUE boxed type.
191
192 Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
193
194         * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
195         to an ancestor of a child that already conforms to this interface.
196         currently we spew a warning here, should we be silent?
197         (g_type_interface_add_prerequisite): new function to add a prerequisite
198         type to an interface, that must succeed an instance is_a prerequisite
199         type check before the interface can be added to an instance. the
200         prerequisite types are also suuported in is_a checks of the interface.
201         (g_type_instance_is_a):
202         (g_type_check_instance_cast):
203         (g_type_check_instance): cleanups and optimizations.
204         (g_type_class_is_a):
205         (g_type_check_class_cast): same, also prevented these from accepting
206         interface types, as class structures don't nest interfaces.
207
208 2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
209
210         * Makefile.am: Avoid rebuilding everything everytime.
211
212 Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
213
214         * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
215         to contain an optional init function and a hint at whether the
216         boxed structure uses ref counting internally.
217         added g_value_set_boxed_take_ownership().
218         made G_TYPE_BOXED an abstract value type.
219
220         * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
221         types.
222
223         * glib-genmarshal.c: argument type changes, preparation for third-party
224         arg specification.
225
226         * gobject.[hc]: cleaned up get/set property code.
227         added g_strdup_value_contents() to improve warnings.
228
229         * gparam.[hc]: added g_param_value_convert(), taking over responsibility
230         of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
231         validation alterations may be valid a part of the property setting
232         process.
233
234         * gparamspecs.[hc]: made value comparisons stable (for sort applications).
235         added GParamSpecValueArray, a param spec for value arrays and
236         GParamSpecClosure. nuked the value exchange functions and
237         GParamSpecCCallback.
238
239         * gtype.[hc]: catch unintialized usages of the type system with
240         g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
241         to flag types that introduce a value table, but can't be used for
242         g_value_init(). cleaned up reserved type ids.
243
244         * gvalue.[hc]: code cleanups and saner checking.
245         nuked the value exchange API. implemented value transformations, we
246         can't really "convert" values, rather transforms are an anylogy to
247         C casts, real conversions need a param spec for validation, which is
248         why g_param_value_convert() does real conversions now.
249
250         * gvaluearray.[hc]: new files that implement a GValueArray, a struct
251         that can hold inhomogeneous arrays of value (to that extend that it
252         also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
253         this is exposed to the type system as a boxed type.
254
255         * gvaluetransform.c: new file implementing most of the former value
256         exchange functions as single-sided transformations.
257
258         * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
259         g_value_set_string_take_ownership().
260
261         * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
262
263         * *.[hc]: many fixes and cleanups.
264
265         * many warning improvements.
266
267 Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
268
269         * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
270         into G_VALUE_LCOPY(), this needs proper documenting.
271
272         * gparam.c: fixed G_PARAM_USER_MASK.
273
274         * gtype.c (type_data_make_W): 
275         (type_data_last_unref_Wm): fixed invalid memory freeing.
276
277         * gobject.c (g_object_last_unref): destroy signal handlers associated
278         with object, right before finalization.
279
280         * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
281         that don't actually support details.
282
283         * gobject.[hc]: got rid of property trailers. nuked GObject
284         properties "data" and the "signal" variants.
285         (g_object_connect): new convenience function to do multiple
286         signal connections at once.
287         (g_object_disconnect): likewise, for disconnections.
288
289         * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
290
291         * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
292         as private (the latter got renamed from g_value_get_as_pointer()).
293
294 2001-02-21  Tor Lillqvist  <tml@iki.fi>
295
296         * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
297
298         * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
299         libtool with -no-undefined for Win32 and Cygwin.
300
301 Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
302
303         * gsignal.h (g_signal_connect): Add g_signal_connect define to
304         make porting from gtk_signal_connect easy.
305
306         * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
307         (instance) instead of node->itype when initting the value.
308
309 2001-02-17  Havoc Pennington  <hp@pobox.com>
310
311         Applied patch from Soeren Sandmann:
312         
313         * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
314
315         * gtype.c (g_type_name): G_CONST_RETURN
316
317         * gsignal.c (g_signal_name): G_CONST_RETURN
318
319         * gobject-query.c (main): const fix
320
321 Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
322
323         * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
324         G_ENUM_CLASS_TYPE() macro.
325
326 Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
327
328         * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
329         lcopy_value() in the GTypeValueTable. the collect functions are now
330         called only once per value, collect_format/lcopy_format are strings
331         that enlist all necessary GTypeCValues to be varargs-collected.
332
333         * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
334         a value shouldn't copy its contents.
335
336         * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
337         macros to carry an additional argument (flags) that can be used
338         to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
339
340         * *.c: adapted collect_value() and lcopy_value() functions to the new
341         prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
342
343         * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
344         be passed along (ORed) with the parameter types, indicating that the
345         emission arguments are to be considered static for the scope of the
346         emission. should be used with care and only if the caller knows that
347         a parameter cannot be destroyed/freed from signal handlers connected
348         to an emission.
349
350 Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
351
352         * gclosure.c:
353         (g_closure_ref):
354         (g_closure_sink): make closure sinking explicit.
355
356         * gsignal.c:
357         (g_signal_connect_data): 
358         (g_signal_connect_closure): 
359         (g_signal_connect_closure_by_id): 
360         (g_signal_newv): perform explicit closure sinking.
361
362 Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
363
364         * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
365
366 2001-02-04  Tor Lillqvist  <tml@iki.fi>
367
368         * gobject.def: Remove glib_debug_objects.
369
370 Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
371
372         * gtype.[hc]: changed g_type_init() to take debugging flags
373         initially, a combination of G_TYPE_DEBUG_OBJECTS and
374         G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
375         here, but basically g_type_int() serves as initialization
376         fucntion for all of GType, GObject, GSignal, so what the heck.
377
378         * gobject.c: special case debugging code properly.
379         changed glib_trap_object_ref to g_trap_object_ref.
380
381         * gsignal.c: add signal emission debugging abilities, along with
382         a new trap object g_trap_instance_signals.
383
384 2001-02-04  Tor Lillqvist  <tml@iki.fi>
385
386         * Makefile.am (progs_LDADD): Change order of libs to libgobject
387         first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
388
389 Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
390
391         * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
392
393         * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
394         number that's supposed to be left untouched (preserved mainly
395         for the signal code).
396
397         * *.c: added thread safety code, based on an old patch from sebastian.
398         the remaining thread safety issues are now datalists on pspecs (to be
399         solved im gdataset.c) and gvalue.c where locking concerns value exchange
400         functionality only, and that's soon to be revised.
401
402 2001-01-27  Tor Lillqvist  <tml@iki.fi>
403
404         * makefile.msc.in: Don't try to compile gmarshal.c on its own.
405
406 2001-01-24    <alexl@redhat.com>
407
408         * gclosure.c (g_closure_unref):
409         Don't leak closure->notifiers.
410
411 2001-01-05  Havoc Pennington  <hp@redhat.com>
412
413         * gparamspecs.c (g_param_spec_enum): set the value_type in the
414         param spec; closes bug 40210
415         (g_param_spec_flags): ditto for flags
416
417 2001-01-03  Alexander Larsson  <alexl@redhat.com>
418
419         * gobject.c:
420         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
421
422 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
423
424         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
425         fucntionality if DISABLE_MEM_POOLS is defined.
426
427         * gtype.c: honour DISABLE_MEM_POOLS.
428
429         * gsignal.c (g_signal_init): flag signal key bsearch array with
430         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
431         DISABLE_MEM_POOLS.
432
433         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
434                                                        G_PARAM_WRITABLE).
435
436 2000-12-15  Tor Lillqvist  <tml@iki.fi>
437
438         * gobject.def: Update.
439
440 2000-12-15  Havoc Pennington  <hp@pobox.com>
441
442         * gobject.c (g_object_do_class_init): use g_signal_newc
443
444         * gsignal.c (g_signal_newc): convenience function for signals
445         created from C
446         (g_signal_new_valist): added
447         (g_signal_new): removed
448
449 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
450
451         * gparam.[hc]: add an instance member value_type so the default
452         value of the pspec class can be overridden.
453
454 2000-12-14  Tor Lillqvist  <tml@iki.fi>
455
456         * makefile.mingw.in: Update, include parts from Makefile.am to
457         build gmarshal.[ch]. Some day, we won't need these separate
458         makefiles for Win32 compilation. I hope.
459
460         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
461         here, it would require Unixish tools. MSVC users building from CVS
462         sources are out of luck.
463         
464         * gobject.def: Update.
465
466 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
467
468         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
469
470         * gobject.[hc]: minor fixes.
471
472 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
473
474         * Makefile.am: _never_ touch oldest-source-stamp.
475         
476         * gobject.[hc]: construct property handling fixes/improvements.
477         fixed trailer handling in get/set property.
478         
479         * gparam.[hc]: implement param spec pool, got rid of param spec
480         hashtable. the most prominent change is that e deal with type
481         prefixes here.
482         
483 2000-12-12  Elliot Lee  <sopwith@redhat.com>
484
485         * Makefile.am:
486           . You have to 'touch oldest-source-stamp' if you want to avoid having
487           the Makefile constantly rebuild itself.
488           . Fix marshaller generation rules to work with srcdir != builddir
489             (there were issues with trying to run "./glib-genmarshal", etc.)
490
491 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
492
493         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
494         
495         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
496         convenience macro.
497         
498         * Makefile.am: cleanups, marshaller generation rules.
499         
500         * gmarshal.[hc]: new files with GRuntime standard marshallers.
501         
502         * glib-genmarshal.c: fix log domain, support gruntime standard 
503         marshallers, suport G_TYPE_PARAM, come with extern "C" and
504         #include gmarshal.h.
505         
506         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
507         
508         * gobject.[hc]: implement object constructor. rework parameter
509         changed notification queueing, we support queue freezes now and
510         don't dispatch from an idle handler anymore.
511         parameter->property rename hassle.
512         implemented ::properties_changed and ::notify::* signals for
513         property change notification (the later supports property names
514         as details). added signal connection and named data properties.
515         (g_signal_connect_object): new function to setup while_alive
516         connections.
517         (g_object_class_install_property): sink properties now, since they
518         are initially floating.
519         (g_object_steal_data):
520         (g_object_set_data_full):
521         (g_object_set_data):
522         (g_object_get_data): set/get data by using g_datalist_*() functions
523         directly.
524         (g_object_queue_param_changed): nuked.
525         (g_object_freeze_notify): start queueing of property changes (freeze/
526         thaw calls stack).
527         (g_object_notify): announce changes of a certain property directly.
528         (g_object_thaw_notify): process queue of property changes, therefore
529         emitting GObject::notify::detail with detail being the changed
530         properties names.
531         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
532         G_WARN_INVALID_PARAM_ID().
533         
534         * gparam.[hc]: param specs are now initially floating and need to be
535         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
536         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
537         required by GObjectClass.constructor().
538         
539         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
540         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
541         and G_TYPE_CCALLBACK respectively.
542         
543         * gsignal.[hc]: cleanups.
544         (signal_id_lookup): after walking the anchestry, try interfaces as well.
545         (g_signal_new): new function to create signals from varargs type list.
546         (g_signal_connect_closure): closure connection variant that works from
547         signal name+detail.
548         (g_signal_connect_data): c handler connection variant that works from
549         signal name+detail.
550         (g_signal_emit_valist): emit signal for an instance with paraneters
551         collected from a va_list.
552         (g_signal_emit): emit signal, taking parameters from varargs list.
553         (g_signal_emit_by_name): same as g_signal_emit, working from
554         signal name+detail.
555         (signal_emit_R): return whether return_value needs to be altered.
556         
557         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
558         the points that need to reflect the upcoming rename.
559         melt g_type_conforms_to() functionality into g_type_is_a(), as that
560         is what we really want (liskov substitution principle).
561         assorted changes to other files due to conforms_to->is_a.
562
563         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
564         from an instantiatable type via the value_table's collect_value()
565         function (based on an idea from James Henstridge <james@daa.com.au>).
566         cleanups/fixes.
567         
568         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
569
570 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
571
572         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
573         NULL nodes if C handlers are searched for specific signals.
574
575 2000-11-28  Elliot Lee  <sopwith@redhat.com>
576
577         * gsignal.c: Fix warnings about possible use of uninitialized
578         variables, and fix logic that would leave 'node' unset in cases
579         that it might be used in.
580
581         * glib-genmarshal.c: Fix warning about printf format.
582
583 2000-11-28  Tor Lillqvist  <tml@iki.fi>
584
585         * gboxed.c: Include <string.h> for memset ().
586
587 2000-11-22  Tor Lillqvist  <tml@iki.fi>
588
589         * gobject.def: Update.
590
591 2000-11-20  Havoc Pennington  <hp@redhat.com>
592
593         * gobject.c (g_object_get_data)
594         (g_object_set_data)
595         (g_object_set_data_full)
596         (g_object_steal_data): More convenient data-setting functions
597
598 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
599
600         * gtypemodule.c (g_type_module_use): If loading the
601         module fails, don't increment the use count.
602
603 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
604
605         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
606         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
607         Zeeman <maas@wanadoo.nl>.
608
609 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
610
611         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
612
613 2000-11-11  Tor Lillqvist  <tml@iki.fi>
614
615         * gtypemodule.c: Include stdlib.h for exit().
616
617         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
618
619         * gobject.def: Add missing functions.
620
621 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
622
623         * Makefile.am gtypemodule.[ch]: New basic implementation of
624         GTypePlugin interface as a GObject. Dynamically loaded modules can
625         register any number of types and interface on the module.
626
627 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
628
629         * gsignal.c (handlers_find): When appending handlers and
630         not matching on signal_id, use hlist->signal_id instead of 
631         signal_id. Having the correct signal_id when unreffing
632         the handlers makes things work a lot better.
633
634 2000-11-05  Tor Lillqvist  <tml@iki.fi>
635
636         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
637
638         * gobject.def: Update.
639
640 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
641
642         * gsignal.c:
643         fixed a bag full of subtle bugs of immensive screw-up potential in
644         handlers_find(), luckily no one found out about them yet ;)
645         fixed signal_handlers_foreach_matched_R() so it operates on an
646         initial handler list snapshot provided by handlers_find() to work
647         around general reentrancy problems and to avoid multiple callback()
648         invocations on the same handlers.
649         this code is now officially 80% bug free (10% remaining for interface
650         types, and 10% remaining for destroyed signals ;)
651         
652 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
653
654         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
655
656         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
657         implementation that provides the API required by GType to deal with
658         dynamically loadable types.
659
660         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
661
662 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
663
664         * gsignal.[hc]: prefix internal functions with '_'. renamed
665         g_signal_connect_closure() to g_signal_connect_closure_by_id().
666         added g_signal_parse_name() to retrive signal_id and detail quark
667         from a signal name (internal).
668
669 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
670
671         * gobject.c (g_object_base_class_finalize): destroy all signals that
672         the finalized obejct type introduced.
673
674         * gsignal.c (g_signals_destroy): don't require itype to have
675         signals.
676
677         * gobject.c (g_object_do_finalize): make sure all signal handlers
678         are destroyed.
679
680         * gsignal.[hc]:
681         (g_signal_handler_find): only match on non-0 masks.
682         (g_signal_handlers_block_matched):
683         (g_signal_handlers_unblock_matched):
684         (g_signal_handlers_disconnect_matched): new functions to block/unblock
685         or disconnect handlers in groups.
686
687 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
688
689         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
690         made both functions return gboolean just for the little extra
691         standard conformance now that GEqualFunc is introduced.
692
693 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
694
695         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
696         added, the doc system would ignore it anyways (for some reason not
697         aparent to me).
698
699 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
700
701         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
702         added required mutex locks.
703
704 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
705
706         * gsignal.c (g_type_signals): Fix problem where signals
707         with "_" in them appeared twice in the result array.
708
709 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
710
711         * gsignal.h: Add g_type_signals() - a function to list
712         all signals for a given type.
713
714 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
715
716         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
717         for post_marshal guard which was off at 0.
718
719 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
720
721         * gobject.[hc]: doh, fix argument order in for
722         g_cclosure_new_object_swap and g_cclosure_new_object.
723
724 2000-10-28  Tor Lillqvist  <tml@iki.fi>
725
726         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
727
728         * glib-genmarshal.c: Conditionalise include of unistd.h.
729         Include <io.h> on Win32.
730
731         * gobject.def: Add some missing entry points.
732
733 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
734
735         * gsignal.[hc]: publically define GSignalInvocationHint structure
736         that gets passed in to closure invocations. added signal details.
737         renamed GSignalType to GSignalFlags to comply with conventions.
738         quite some cleanups and minor fixes. avoid uneccessary handler list
739         walks upon invokation of after handlers. relookup handler list for
740         restarted emissions. preliminary abort normal handler invokation if
741         after handler is encountered.
742
743         * glib-genmarshal.c:
744         * gclosure.[hc]: moved invocation_hint to the end of the
745         g_closure_invoke() arguments as sugegsted by kenelson.
746         also made it a gpointer to be more generic. the invocation_hint
747         is a caller specific thing that can be used to pass additional
748         data in to closure invocations as documented with the caller
749         invoking the closure.
750
751 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
752
753         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
754         by havoc.
755
756         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
757         g_signal_lookup() would be called with the signal lock being
758         held. reported by james henstridge.
759
760         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
761         reported by owen.
762
763 2000-10-26  Tor Lillqvist  <tml@iki.fi>
764
765         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
766         arithmetic on void pointer, label without statement following.
767
768         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
769         result of sizeof operator, it can be unsigned. Cast first to
770         gssize.
771
772         * gobject.def: Add new functions.
773
774         * makefile.{mingw,msc}.in: Add new objects.
775
776 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
777
778         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
779         prevents 'make dist' from working.
780
781 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
782
783         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
784         casts from void * since this will get included from C++ too
785         at times.
786         
787 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
788
789         * gvaluetypes.[hc]: added g_value_set_static_string().
790
791         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
792
793 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
794
795         * gtype.c (g_type_free_instance): for the moment, freeing object
796         structures will fill their memory portion with 0xAA. there's a
797         FIXME there, remove this line at a later point.
798
799 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
800
801         * glib-genmarshal.1:
802         * glib-genmarshal.c: added publically installed marshaller generator.
803
804         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
805         interface VTable from instances.
806
807 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
808
809         * gobject.[hc]: new functions for closure maintenance:
810         (g_object_watch_closure): maintain validity of the object and
811         the closure for objects that are used as data part of a closure.
812         (g_cclosure_new_object): convenience function to create C closures
813         that have an object as data argument.
814         (g_closure_new_object): convenience function to create closures
815         that have an object as data argument.
816
817         * gclosure.[hc]: implementation of GClosure mechanism.
818         a closure is basically an encapsulation of a callback function
819         and its environment. ideally, most places supporting callback
820         functions will simply take a GClosure* pointer and thus unify
821         callback environments wrg destroy notification etc.
822         GClosure provides destroy notifiers for arbitrary data pointers,
823         reference counting, invalidation notification (it can be invalidated
824         which is merely a deactivate state) and a marshallinbg abstraction.
825         GCClosure is also provided in these files, they present a specialized
826         GClosure implementation for C language callbacks.
827
828         * genum.c: macro cleanups.
829         
830         * gboxed.[hc]: new files, for boxed type abstraction.
831         (g_boxed_copy): copy a boxed structure
832         (g_boxed_free): free a boxed structure
833         (g_value_set_boxed):
834         (g_value_get_boxed): standard GValue functions for boxed types
835         (g_boxed_type_register_static): convenience function for easy
836         introduction of new G_TYPE_BOXED derivatives.
837
838         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
839         for creation of new GParamSpec derived types.
840
841         * gtype.[hc]: many fixes, introduced ability to flag individual
842         type nodes as ABSTRACT upon registration, added value_peek_pointer()
843         to the value table to peek at GValue contents as a pointer for types
844         that support this. fixed up GValue checks.
845
846         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
847         to peek at the value contents as pointer.
848
849         * *.[hc]: adaptions to type macro fixes and changes in the type
850         registration API.
851
852         * many const corrections over the place.
853
854 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
855
856         * gtype.c (g_type_conforms_to): this function basically behaves like
857         and is_a check, except that it _additionally_ features interfaces
858         for instantiatable types. enforce this in the second branch as well
859         (`type' conforms_to `type') even if `type' is not an interface type.
860
861 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
862
863         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
864
865         * gtype.[hc]:
866         * gobject.c:
867         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
868         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
869         and G_TYPE_POINTER.
870
871 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
872
873         * gbsearcharray.[hc]: long standing needed generic implementation
874         of a binary searchable, sorted and dynamically sized array.
875
876 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
877
878         * Makefile.am (BUILT_EXTRA_DIST): New variable.
879         (dist-hook): Handle $(BUILT_EXTRA_DIST).
880         (*): Remove traces of @STRIP_{BEGIN,END}@.
881         
882 2000-09-29  Martin Baulig  <baulig@suse.de>
883         
884         Several minor ANSI C fixes.
885
886         Added missing casts:
887         * gtype.c (type_class_init): 
888         `(gpointer) bnode->data->class.class_init_base'
889         in call to g_slist_prepend() and
890         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
891
892         * gobject.c: Put text following #endif into comments.
893
894 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
895
896         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
897         dist from working.
898
899 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
900
901         * gobject.c (g_object_last_unref): Move call to
902         g_type_free_instance() here from g_object_do_finalize,
903         since g_type_free_instance() can unload the object's
904         implementation.
905
906 2000-07-27  Tor Lillqvist  <tml@iki.fi>
907
908         * gobject.c: No, don't mark glib_debug_objects for export here,
909         it's handled specially in gtktypeutils.c.
910
911         * gobject.def: Export g_type_fundamental_last (the function).
912
913 2000-07-26  Tor Lillqvist  <tml@iki.fi>
914
915         * gobject.def
916         * gobject.c: Mark glib_debug_objects for export/import as it is
917         used by GTK+.
918
919 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
920
921         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
922         that extern variable clutter and avoiding further problems with thread
923         safety.
924
925 2000-07-19  Tor Lillqvist  <tml@iki.fi>
926
927         * gparam.h
928         * gvalue.h
929         * gparam.c
930         * gtype.c: Shut up Sun's picky compiler.
931
932 2000-07-14  Tor Lillqvist  <tml@iki.fi>
933
934         * gobject.def: Add g_type_get_plugin.
935
936 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
937
938         * gparam.c (g_param_value_defaults): default initialize the temporary
939         default value, instead of nuking the caller's value contents.
940
941 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
942
943         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
944
945 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
946
947         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
948
949 2000-07-10  Tor Lillqvist  <tml@iki.fi>
950
951         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
952         to guard inclusion of <unistd.h>.
953
954         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
955         variable for export. Call the macro GOBJECT_VAR.
956
957         * gtype.c: Declare _g_type_fundamental_last for export here, too.
958         (type_node_any_new): Use only constant expressions for sizeof
959         operator (for instance MSVC requires this).
960
961         * makefile.mingw.in: Define GOBJECT_COMPILATION.
962
963 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
964
965         * genums.c: Move string.h include into the .c file
966         instead of where it was in the .h file by mistake.
967
968 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
969
970         * Makefile.am (EXTRA_DIST): dist fixes.
971
972         * gobject.c: Add a global variable glib_debug_objects
973         (not in header file) to control object tracing.
974
975 2000-07-01  Tor Lillqvist  <tml@iki.fi>
976
977         * gobject.def: Update added and renamed entry points.
978
979         * makefile.mingw.in: Add gvaluetypes.o.
980
981 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
982
983         * gobject.c:include string.h for memset
984         * genums.h: include string.h for strcpy
985         * gvalue.c: include string.h for memset, memcpy.
986
987 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
988
989         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
990         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
991         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
992         added a GTypeValueTable* pointer to GTypeInfo structure for types
993         to implement GValue handling functions.
994         GTypeValueTable contains the following members:
995           value_init(): initialize a GValue structure.
996           value_free(): free GValue structure contents (optional).
997           value_copy(): copy one GValue contents to another GValue structure of
998           collect_type: varargs collection type for the first variable argument
999           to be collected by collect_value().
1000           collect_value(): variable arguments collection function (optional).
1001           lcopy_type: varargs collection type for the first variable argument
1002           to be location copyied by lcopy_value().
1003           lcopy_value(): variable arguments location copy function (optional).
1004         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
1005         for a type node. ValueTables get inherited from parent types, unless
1006         overridden through the GTypeInfo structure. internally, GTypeValueTable
1007         support means an added overhead of one pointer per static or used
1008         dynamic type node.
1009         g_type_add_class_cache_func(): provide a cache_func/data pair to be
1010         called  prior to a type nodes last_unref() function, this can be used
1011         to prevent premature class destruction. multiple installed cache_func()
1012         will be chained upon last_unref() untill one of them returns TRUE.
1013         the cache_func()s have to check the class id passed in to figure whether
1014         they actually want to cache the class of this type (since all classes
1015         are routed through the cache_func() chain).
1016         g_type_remove_class_cache_func(): remove a previously installed
1017         cache_func/data pair. the cache maintained by this function has to be
1018         clear when calling g_type_remove_class_cache_func() to avoid leaks.
1019         g_type_class_unref_uncached(): class unref function for cache_func()
1020         implementations, unreferences a class omitting the cache chain (and
1021         therefore unref->cache->unref->... loops).
1022
1023         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
1024         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
1025         double and string.
1026
1027         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
1028         GTypeValueTable is provided for this type.
1029         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
1030         g_value_set_default() and g_values_cmp() as these are supplied by the
1031         GParamSpec API now.
1032         moved g_values_exchange() into the "implementation details" section,
1033         since it just provides the underlying functionality for
1034         g_value_convert().
1035
1036         * gvaluecollector.h: renamed the varargs value container from
1037         GParamCValue to GTypeCValue as the value collection methods are
1038         supplied by the type system now.
1039         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
1040         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
1041         GParamSpec structure now.
1042
1043         * genums.h: macros cleanups/fixes.
1044
1045         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
1046         and assorted g_value_{s|g}et_{enum|flags}() implementations.
1047
1048         * gobject.[hc]:
1049         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
1050         and g_value_{s|g}et_object().
1051
1052         * gparam.[hc]: reduced class to value_set_default(),
1053         value_validate() and values_cmp(). also parameters now need to fill
1054         in a GType value_type; field to indicate the GValue type they
1055         are handling. provide g_param_value_set_default(),
1056         g_param_value_defaults(), g_param_value_validate() and
1057         g_param_values_cmp().
1058
1059         * gparamspecs.[hc]: got rid of the g_value_* functions and
1060         the G_IS_VALUE_* macros. adapted param spec implementations
1061         according to the GParamSpecClass changes.
1062
1063 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
1064
1065         * gtype.c (type_class_init): fetch the nth iface entry of the
1066         type node in the nth loop iteration, not alwys the first.
1067         bug discovered by Walt Pohl <cher@suitware.com>.
1068         (type_data_finalize_class_ifaces): same here, cut and paste
1069         rulez.
1070
1071 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
1072
1073         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
1074         is found properly when build srcdir != builddir. (Patch from
1075         Eric Lemings)
1076
1077 2000-05-13  Tor Lillqvist  <tml@iki.fi>
1078
1079         * makefile.mingw.in
1080         * gobject.def
1081         * gobject.rc.in: New files, for Win32 (mingw) build.
1082
1083         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
1084         corresponding non-*.in files.
1085
1086         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
1087         export/import from DLL.
1088
1089 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
1090
1091         * gtype.h: add reserved fundamental ids for gtk types (for transition
1092         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
1093
1094 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
1095
1096         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
1097         n_params prior to destructing them.
1098
1099 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
1100
1101         * fixed a couple of bugs in the initial parameter/object
1102         implementations, after getting beast running on GObject and GValue.
1103
1104 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
1105
1106         * glib-gobject.[hc]: completed parameter set/get implementations,
1107         along with asyncronous parameter changed notification queue.
1108
1109 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
1110
1111         * glib-gobject.[hc]: GObject implementation, that is facilities
1112         for setting/getting quarked data and reference counting.
1113
1114         * glib-gparamspecs.[hc]: first actuall parameter implementations
1115         for GLib, so far we have: char, uchar, bool, int, uint, long,
1116         ulong, enum, flags, float, double, string and object. each of these
1117         GParamSpecs is a new instantiatable type in its own respect,
1118         so the .c file derives 13 new types from G_TYPE_PARAM and
1119         defines over 50 (*2) conversion facilities.
1120
1121         * glib-gvaluecollector.h: generic varargs handling stubs for
1122         GParamSpecs, private header file (does get installed for
1123         inclusion into user code though).
1124
1125         * glib-gvalue.[hc]: GValue functionality implementation.
1126
1127         * glib-gparam.[hc]: basis GParamSpec implementation for
1128         the virtual base type G_TYPE_PARAM.
1129
1130         * glib-genums.[hc]: enum/flags type implementation, based on
1131         bseenum.[hc].
1132
1133         * glib-gtype.[hc]: GLib Type System implementation, heavily
1134         based on BSE's dynamic type system.