Add a new GParamSpecOverride type that is a pointer to a different
[platform/upstream/glib.git] / gobject / ChangeLog
1 Tue Oct 14 17:40:19 2003  Owen Taylor  <otaylor@redhat.com>
2
3         * gparamspecs.[ch]: Add a new GParamSpecOverride type
4         that is a pointer to a different paramspec in a parent
5         class or interface.
6
7         * gparam.[ch]: Add g_paramspec_get_redirect_target()
8         which follows GParamSpecOverride to the real property.
9         Make g_param_spec_pool_list() hand redirections, 
10         properties on interfaces.
11
12         * gobject.[ch] gobjectnotifyqueue.c: Add
13         g_object_interface_install_property,
14         g_object_interface_find_property,
15         g_object_interface_list_properties(). Redirect virtually all
16         publically exposed GParamSpec's to the redirect target if
17         any. (->constructor is the exception.)
18         (#105894)
19
20 Mon Oct 20 22:06:12 2003  Matthias Clasen  <maclas@gmx.de>
21
22         * gobject.h (struct  _GObjectClass): Add /*< public >*/
23         and /*< private >*/ markers for documentation purposes.
24
25 Sat Oct 18 01:24:14 2003  Matthias Clasen  <maclas@gmx.de>
26
27         * gtypeplugin.h (struct _GTypePluginClass): Add /*< public >*/
28         and /*< private >*/ markers for documentation purposes.
29
30 Thu Oct  2 07:37:12 2003  Tim Janik  <timj@gtk.org>
31
32         * gtype.c: fix post class_init interface initialization logic
33         for child types.
34
35 Thu Oct  2 01:16:50 2003  Owen Taylor  <otaylor@redhat.com>
36
37         * gtype.[ch]: Add g_type_add/remove_interface_check(),
38         which allows inserting a post-interface-initialization
39         check.
40
41         * testgobject.c: Fix a deprecated usage.
42
43 Mon Sep 29 10:51:01 2003  Owen Taylor  <otaylor@redhat.com>
44
45         * gtype.[ch]: Add g_type_default_interface_ref/peek/unref
46         for accessing the default vtable of an interface.
47
48 Fri Sep 26 17:24:53 2003  Owen Taylor  <otaylor@redhat.com>
49
50         * gtype.c (g_type_instance_get_private): You can
51         have instance_real_class_bsa be non-NULL, but still 
52         the class not be in the bsa. (Found by Kris Rietveld)
53
54 2003-09-15  Matthias Clasen  <maclas@gmx.de>
55
56         * glib-genmarshal.c (complete_out_arg): Don't generate code 
57         using deprecated APIs.  (#122292, Christian Persch)
58
59 Fri Sep 12 16:31:40 2003  Owen Taylor  <otaylor@redhat.com>
60
61         * gsignal.[ch]: Add g_signal_accumulator_true_handled(), to
62         do TRUE-stops-emit signals. (#80487, Ron Steinke)
63
64         * Makefile.am: Move testoverride.c and testifaceinit.c to
65         tests/gobject.
66
67 2003-09-12  Matthias Clasen  <maclas@gmx.de>
68
69         Make the g_value_set_x_take_ownership() functions "official"
70         part of the API (#100948):
71         
72         * gvaluetypes.[hc]: Add g_value_take_string() (synonym to the
73         now deprecated g_value_set_string_take_ownership()).  
74
75         * gparam.[hc]: Add g_value_take_param() (synonym to the
76         now deprecated g_value_set_param_take_ownership()).  
77
78         * gobject.[hc]: Add g_value_take_object() (synonym to the
79         now deprecated g_value_set_object_take_ownership()).  
80
81         * gboxed.[hc]: Add g_value_take_boxed() (synonym to the
82         now deprecated g_value_set_boxed_take_ownership()).  
83
84 Tue Sep  2 19:37:21 2003  Tim Janik  <timj@gtk.org>
85
86         * gtype.[hc]: added support for a "default vtable" per interface,
87         that interface vtables are initialized from.
88         the default vtable is initialized and finalized through class_init,
89         class_finalize and class_data from the interfaces GTypeInfo struct.
90         (type_data_last_unref_Wm): unload child plugin before unreffing
91         parent type.
92
93         testifaceinit.c: minor fixups. fixed up base_init() assertions, since
94         with a default vtable, base_init() may be called multiple times.
95         added default initializer to iface1.
96
97 Tue Sep  2 14:53:41 2003  Tim Janik  <timj@gtk.org>
98
99         * gobject-query.c (main): fix iterating over fundamental types.
100
101         * gtype.c: applied patch from owen which keeps internal
102         class initialization state to maintain class and interface
103         initialization happen in the order of:
104         1. class' base_init
105         2. interface' base_init
106         =  interfaces added after here are immediately base_init-ialized
107         3. class_init
108         4. Interface_init
109         =  interfaces added here are immediately Interface_init-ialized
110
111 Wed Aug 27 19:53:26 2003  Manish Singh  <yosh@gimp.org>
112
113         * gobject.c: removed stray change from previous commit.
114
115 Wed Aug 27 01:25:40 2003  Owen Taylor  <otaylor@redhat.com>
116
117         * Makefile.am testifaceinit.c: Add a detailed test case
118         for interface initialization, testing the ability to
119         add interfaces during class initialization and the ordering
120         of interface base_init, class init, and interface_init.
121         (Expected to fail at the moment.)
122
123 Mon Aug 25 14:51:46 2003  Manish Singh  <yosh@gimp.org>
124
125         * gtypemodule.c (g_type_module_register_type): fix typo in last
126         commit, cast to GTypeValueTable * to get rid of const warning.
127
128 Mon Aug 25 14:16:48 2003  Owen Taylor  <otaylor@redhat.com>
129  
130         * gtypemodule.c (g_type_module_register_type): Clarify
131         docs on the return. Fix a memory leak if a type with a
132         value table is reloaded. (#112439, Daniel Yacob)
133  
134 Tue Aug 19 05:21:04 2003  Tim Janik  <timj@gtk.org>
135
136         * testgobject.c (main): check private instance data after
137         initialization.
138
139         * gtype.c: for instances with private data, store the real class
140         pointer in a bsearch array during class initialization.
141         (g_type_instance_get_private): fetch the real class of
142         an instance from the bsearch array if necessary.
143
144 Tue Aug 19 04:08:14 2003  Tim Janik  <timj@gtk.org>
145
146         * gvalue.c: adapt to new gbsearcharray.h code.
147         (g_value_register_transform_func): turn transform function
148         replacement into a valid operation.
149
150         * gsignal.c: adapt to new gbsearcharray.h code.
151         
152         * gboxed.c: adapt to new gbsearcharray.h code.
153
154 Tue Aug 19 01:31:28 2003  Tim Janik  <timj@gtk.org>
155
156         * gsignal.c: added optimizations to skip NOP signal emissions.
157
158 2003-08-08  Matthias Clasen  <maclas@gmx.de>
159
160         * gobject.c (object_set_property): Improve the wording of the warning for invalid 
161         values.  (#117246, Mariano Suarez-Alvarez)
162         
163 Wed Aug  6 09:57:14 2003  Owen Taylor  <otaylor@redhat.com>
164
165         * testgobject.c (test_signal_accumulator): Add check
166         for instance private usage within in instance_init.
167         (Currently will fail.)
168
169 2003-07-20  Hans Breuer  <hans@breuer.org>
170
171         * gobject.def : updated externals
172
173 Tue Jul  8 22:29:31 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
174
175         * gtype.c (type_class_init_Wm): Only access node->data->instance
176         when the node is instantiable.
177
178 Tue Jul  8 14:55:27 2003  Owen Taylor  <otaylor@redhat.com>
179
180         * gtype.c (type_class_init_Wm): Initialize
181         node->data->instance.private_size here rather than
182         in type_data_make_W() since the class init for the parent
183         class may have changed pnode->data->instance.private_size.
184         (#116921, reported by Soeren Sandmann)
185
186 2003-06-18  Matthias Clasen  <maclas@gmx.de>
187
188         * Makefile.am (man_MANS): Removed, these are now installed from
189         docs/reference/gobject.
190
191 Fri May 30 14:42:24 2003  Owen Taylor  <otaylor@redhat.com>
192  
193         * gobject.c (g_value_set_object): Order refs/unrefs
194         so setting the same object back is safe. (#112861,
195         Morten Welinder)
196  
197 2003-03-24  Sven Neumann  <sven@gimp.org>
198
199         * gtype.c (type_data_finalize_class_ifaces_Wm): removed leftover
200         debugging message (bug #109093).
201
202 Thu Feb 27 17:33:19 2003  Owen Taylor  <otaylor@redhat.com>
203
204         * gtype.[ch] testgobject.c: Add support for instance-private data. 
205         g_type_class_add_private(), g_type_instance_get_private(),
206         G_TYPE_INSTANCE_GET_PRIVATE(). (#101959, patch partly by
207         Mark McLoughlin, extensive feedback from Tim Janik.)
208
209 2003-03-06  Matthias Clasen  <maclas@gmx.de>
210
211         * gsignal.c (g_signal_handlers_block_matched): 
212         (g_signal_handlers_unblock_matched): 
213         (g_signal_handlers_disconnect_matched): Fix 0/FALSE confusion.
214         (#107662, Morten Welinder)
215
216 Mon Feb 17 20:59:47 2003  Tim Janik  <timj@gtk.org>
217
218         * gvalue.c (g_value_register_transform_func): don't assert the types
219         passed in to have value tables. this prevents dynamic types from
220         registering transform functions.
221
222 Sun Feb  9 13:44:01 2003  Soeren Sandmann  <sandmann@daimi.au.dk>
223
224         * gboxed.c (boxed_proxy_value_init): remove lookup of unused
225         BoxedNode.
226
227 2003-02-07  Matthias Clasen  <maclas@gmx.de>
228
229         * gtypemodule.c: 
230         * gtype.c: 
231         * gsourceclosure.c: 
232         * gparamspecs.c: 
233         * gparam.c: 
234         * gobject.c: 
235         * gsignal.c: Remove all docs from gobject at Tims
236         request. Documentation is only for weenies anyway...    
237
238 2003-01-12  Tor Lillqvist  <tml@iki.fi>
239
240         * gobject.def: Add g_type_interface_prerequisites. Thanks to
241         Kenichi SUTO.
242
243 2002-12-18  Matthias Clasen  <maclas@gmx.de>
244
245         * gobject.c: Add docs.
246
247 2002-12-18  Michael Natterer  <mitch@gimp.org>
248
249         * gobject/gtype.c (type_data_finalize_class_ifaces_Wm): applied
250         patch I got from Tim Janik for testing which fixes bug #101521.
251         (restart iterating the interface enties each time we finalized one
252         because they might have been modified).
253
254 2002-12-17  Matthias Clasen  <maclas@gmx.de>
255
256         * gparam.c (g_param_spec_internal): Remove markup from doc
257         comment, as GObject doesn't use --sgml-mode yet.
258
259 2002-12-15  Matthias Clasen  <maclas@gmx.de>
260
261         * gsignal.c (g_signal_new): Typo fix.
262
263         * gparamspecs.c:  
264         * gparam.c (g_param_spec_internal): 
265         * gobject.c (g_object_class_install_property): Add docs.
266
267 2002-12-13  Matthias Clasen  <maclas@gmx.de>
268
269         * glib-genmarshal.c, gobject-query.c: Use g_printf() instead of 
270         system printf.  (#99319)
271
272 Thu Dec 12 15:00:10 2002  Manish Singh  <yosh@gimp.org>
273
274         * gvaluetransform.c: use G_G[U]INT64_FORMAT unconditionally,
275         since we'll always have it now.
276
277 2002-12-07  Matthias Clasen  <maclas@gmx.de>
278
279         * gparam.c (canonalize_key): Rename to canonicalize_key. Adjust
280         all callers.
281
282 2002-12-05  Matthias Clasen  <maclas@gmx.de>
283
284         * gsignal.c (g_signal_new): Explain allowed signal names in more
285         detail.
286
287 2002-12-04  Matthias Clasen  <maclas@gmx.de>
288
289         * gsignal.h (g_signal_add_emission_hook): 
290         * gtype.h (g_type_interface_get_plugin): Sync parameter names with
291         docs and implementation.
292
293         * gtype.c (g_type_add_interface_dynamic): 
294         (g_type_interface_get_plugin): 
295         (g_type_interface_peek_parent): 
296         (g_type_query): Add docs.
297
298 2002-12-03  Matthias Clasen  <maclas@gmx.de>
299
300         * gtype.c (g_type_get_qdata): 
301         (g_type_set_qdata): 
302         (g_type_interface_add_prerequisite): Add docs.
303
304 2002-12-02  Matthias Clasen  <maclas@gmx.de>
305
306         * gobject.c (g_signal_connect_object): Add docs.
307
308 2002-11-30  Matthias Clasen  <maclas@gmx.de>
309
310         * gsignal.c: More docs.
311
312 2002-11-28  Matthias Clasen  <maclas@gmx.de>
313
314         * gtype.c (g_type_interface_prerequisites): Document as 2.2 
315         API addition.
316
317 Thu Nov 21 16:05:50 2002  Owen Taylor  <otaylor@redhat.com>
318
319         * gtype.c (g_type_check_instance_cast): Allow
320         NULL to be cast to any type. (Frequently requested,
321         most recently #99023, Lars Clausen.)
322
323 Mon Nov  4 14:42:36 2002  Owen Taylor  <otaylor@redhat.com>
324  
325         * gtype.c gsignal.c gvaluearray.c: Include config.h
326         so DISABLE_MEMPOOLS actually has an effect.
327         (#96437, Morten Welinder)
328  
329         * gsignal.c: Conditionalize definition of g_handler_ts
330         on DISABLE_MEM_POOLS (#96437)
331         
332 2002-10-20  Matthias Clasen  <maclas@gmx.de>
333
334         * gtype.c (g_type_interface_prerequisites): Report only the most
335         specific instantiatable prerequisite, filter out all supertypes of
336         this one (the supertypes are added to the prerequisites array for
337         technical reasons).
338
339 2002-10-16  Matthias Clasen  <maclas@gmx.de>
340
341         * glib-mkenums.in: Support for template files.
342         
343         * glib-mkenums.1: Document --template.
344
345 2002-10-15  Matthias Clasen  <maclas@gmx.de>
346
347         * gtype.c (g_type_interface_prerequisites): New function to obtain
348         the prerequisites of an interface type.
349
350 Sat Oct 12 22:02:32 2002  Tim Janik  <timj@gtk.org>
351
352         * merged up from 2.0:
353
354         * testgobject.c: test creation of new fundamental types.
355
356         * gtype.c (g_type_fundamental_next), (type_node_fundamental_new_W):
357         account for static_fundamental_next storing non-shifted fundamental
358         IDs. this fixes g_type_fundamental_next() not returning a new usable
359         fundamental ID.
360
361 Wed Sep 11 16:50:20 2002  Dom Lachowicz <cinamod@hotmail.com>
362
363         * gtype.h: Fix problems with excessive C++ warnings: "ISO C++ forbids nested groups within expressions"
364         
365 Fri Jul 26 15:46:36 2002  Owen Taylor  <otaylor@redhat.com>
366
367         * gvaluetransform.c: Fix problems with excess ';'
368         by addition of strategic 'extern void glib_dummy_decl (void)'
369         (#83272, David L. Cooper II)
370
371 Thu Jul 25 20:34:39 2002  Owen Taylor  <otaylor@redhat.com>
372
373         * gtype.c (g_type_interface_add_prerequisite): When
374         adding ancestral prerequisites, add the grandparents,
375         not the siblings. (Problem found by Jon Trowbridge, patch from 
376         Dave Camp, #86879)
377
378 2002-07-05  Anders Carlsson  <andersca@gnu.org>
379
380         * gobject.c (g_object_base_class_finalize): Remove debugging
381         message, approved by Tim Janik.
382
383 2002-06-11  Anders Carlsson  <andersca@gnu.org>
384
385         * gtypemodule.c: (g_type_module_complete_interface_info):
386         * gtypeplugin.h:
387         Fix argument order. Fixes #82806.
388         
389 Mon May 20 15:57:47 2002  Owen Taylor  <otaylor@redhat.com>
390
391         * gsignal.c: When printing errors, handle NULL
392         returns from g_type_debug(). (#73559, Laszlo Peter)
393
394         * gtype.c (type_descriptive_name_I): De-inline,
395         since it's only used for debugging.
396
397 Tue May  7 15:03:02 2002  Owen Taylor  <otaylor@redhat.com>
398
399         * glib-genmarshal.c: Fix include order for config.h (#71704,
400         Morten Welinder)
401
402 2002-05-07  Michael Natterer  <mitch@gimp.org>
403
404         * Makefile.am: use the glib-genmarshal found at configure time
405         if CROSS_COMPILING is set, use the one which was just built
406         otherwise.
407
408 Mon May  6 16:06:23 2002  Owen Taylor  <otaylor@redhat.com>
409
410         [ merged from stable ]
411
412         * gobject.c: Remove PROPERTIES_CHANGED enumeration
413         value that wasn't used any more. (#78833, 
414         Matthias Clasen)
415
416         * gboxed.c (g_boxed_copy): Remove check on data[2]
417         that no longer exists. (#80814, Daniel Elstner)
418
419 Tue Mar 26 15:21:47 2002  Owen Taylor  <otaylor@redhat.com>
420
421         * gsignal.h (g_signal_handlers_*_by_func): Add explicit
422         cast of G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA to
423         GSignalMatchType so that these macros work for C++.
424         (#76454, Damien Sandras)
425
426 Mon Mar 25 17:51:05 2002  Owen Taylor  <otaylor@redhat.com>
427
428         * glib-mkenums.in (parse_entries): Fix various bugs and
429         excessive stack usage that crept in the conversion from
430         gtk-mkenums. (#74431)
431
432 Mon Mar 25 17:25:57 2002  Owen Taylor  <otaylor@redhat.com>
433
434         * gtype.c (g_type_free_instance): Wrap setting freed instance
435         memory to 0xaa in #ifdef G_ENABLE_DEBUG
436
437 Thu Mar 21 01:28:14 2002  Tim Janik  <timj@gtk.org>
438
439         * gsignal.[hc]:
440         * gobject.[hc]: fix extraneous include.
441
442 Tue Mar 19 18:57:12 2002  Tim Janik  <timj@gtk.org>
443
444         * gtype.c (check_add_interface_L): applied patch from Matthias Clasen
445         <maclas@gmx.de> to check for prerequisite of interfaces, fixes #74427.
446         fixed mutex recursion in his patch (we can't call g_type_is_a() while
447         holding a read lock).
448
449         * gparam.c (canonalize_key): cleanup.
450
451 2002-03-13  Alexander Larsson  <alla@lysator.liu.se>
452
453         * gparam.c (canonalize_key):
454         Function to canonicalize parameter names. Faster than
455         using g_strcanon().
456         (g_param_spec_internal, param_spec_ht_lookup):
457         Use canonalize_key.
458
459 2002-03-13  Erwann Chenede  <erwann.chenede@sun.com>
460         * gobject/gclosure.c  
461         * gobject/gobject.c 
462         * gobject/gsignal.c: fixed cast problems with function pointer
463         to avoid warnings (with forte compiler) (#73898)
464         
465 2002-03-05  Sven Neumann  <sven@gimp.org>
466
467         * gvaluetransform.c (g_value_transforms_init): don't try to 
468         register undeclared value transform functions if G_GINT64_FORMAT
469         or G_GUINT64_FORMAT are undefined (#73586).
470
471 2002-03-03  Tor Lillqvist  <tml@iki.fi>
472
473         * makefile.msc.in
474         * makefile.mingw.in: Rename testgruntime to testgobject here, too.
475
476 Sun Mar  3 04:11:58 2002  Tim Janik  <timj@gtk.org>
477
478         * gobject.c: placed a comment about not changing CArray until we have
479         g_object_list_watched_closures().
480
481         * gparam.h (struct _GParamSpecClass): added padding.
482
483         * gobjectnotifyqueue.c (struct _GObjectNotifyQueue): abuse
484         g_list_alloc() to allocate GObjectNotifyQueue to et rid
485         of locking issues.
486
487 Tue Feb 26 10:51:00 2002  Owen Taylor  <otaylor@redhat.com>
488
489         * Makefile.am (testgobject_LDADD): Rename testgruntime
490         to testgobject.
491
492 Sun Feb 24 22:08:29 2002  Owen Taylor  <otaylor@redhat.com>
493
494         * gtypemodule.[ch] (g_type_module_add_interface): Make
495         GInterfaceInfo paramter const to correspond to the
496         conventions for the g_type_add_interface() functions.
497         (#72461, Miroslaw Dobrzanski-Neumann)
498
499 Sat Feb 23 13:28:56 2002  Owen Taylor  <otaylor@redhat.com>
500
501         * gtypeplugin.h (struct _GTypePluginClass): Add some
502         padding to the class.
503
504         * gclosure.h (struct _GClosure): Fix typo in comment.
505
506 2002-02-20  Tor Lillqvist  <tml@iki.fi>
507
508         * gobject.def: Add g_value_set_object_take_ownership and
509         g_value_set_param_take_ownership.
510
511 Wed Feb 20 22:55:15 2002  Owen Taylor  <otaylor@redhat.com>
512
513         * gobject.c: Fix implicit conversions between void * and 
514         function pointer (Miroslaw Dobrzanski-Neumann, #71963)
515
516 Sun Feb 16 22:08:48 2002  Tim Janik  <timj@gtk.org>
517
518         * gobject.[hc]:
519         * gparam.[hc]: provide marshaller specific value_set_*_take_ownership()
520         variants.
521
522         * gvalue.h: shrink GValue's data contents to 2 unions.
523
524         * glib-genmarshal.c: fix release and realeas_check hackage by always
525         using _take_ownership() variants. directly access value contents if
526         G_ENABLE_DEBUG is not defined.
527
528         * gobject.h: add padding pointers to the class struct.
529
530 Wed Feb 13 17:22:37 2002  Tim Janik  <timj@gtk.org>
531
532         * gtype.c (g_type_value_table_peek): fixed a check for node not being NULL.
533
534 Wed Feb 13 06:53:50 2002  Tim Janik  <timj@gtk.org>
535
536         * gparam.c: remove extraneous redefinition of G_PARAM_SPEC_CLASS().
537
538 Wed Feb 13 06:29:51 2002  Tim Janik  <timj@gtk.org>
539
540         * gvaluetransform.c: cosmetic cleanups, fixed [u]int64->string
541         conversions.
542
543         * ChangeLog: added entry from owen which went into the wrong
544         file.
545
546 Fri Feb  8 23:52:27 2002  Owen Taylor  <otaylor@redhat.com>
547
548         * gobject/gvaluetransform.c: Register transformations for
549         gint64, guint64. (#70780, patch from Andy Wingo)
550
551 2002-02-10  Hans Breuer  <hans@breuer.org>
552
553         * gvaluetransform.c : msvc 5.0 can't cast from uint64 to
554         double. Disable respective transform_func than.
555
556         * makefile.msc.in : build test programs
557
558 Thu Jan 24 07:39:56 2002  Tim Janik  <timj@gtk.org>
559
560         * gobject.c (g_signal_connect_object): return gulong instead
561         of guint.
562
563 Fri Jan 11 12:26:36 2002  Tim Janik  <timj@gtk.org>
564
565         * gparamspecs.c: fixed param_value_array_values_cmp(),
566         param_value_array_validate() and
567         param_value_array_set_default() to deal with NULL value
568         arrays.
569
570 Wed Jan  9 05:23:27 2002  Tim Janik  <timj@gtk.org>
571
572         * gobject.h (G_OBJECT_WARN_INVALID_PROPERTY_ID): cosmetic fix.
573
574 2002-01-05  Hans Breuer  <hans@breuer.org>
575
576         * makefile.msc.in : use -FImsvc_recommended_pragmas.h
577
578 Fri Jan  4 04:36:46 2002  Tim Janik  <timj@gtk.org>
579
580         * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): turn this into a GType,
581         so negating it works on 64bit platforms.
582
583 2001-12-21  Tor Lillqvist  <tml@iki.fi>
584
585         * gobject.def: Add g_signal_get_invocation_hint.
586
587 Tue Dec 18 21:39:57 2001  Tim Janik  <timj@gtk.org>
588
589         * testoverride.c: added some assertions to test
590         g_signal_get_invocation_hint().
591
592         * gsignal.[hc]: remove signal_id argument from
593         g_signal_chain_from_overridden(), the parameters are assumed to match
594         the innermost signal currently in emission for this instance.
595         added g_signal_get_invocation_hint() to figure the invocation hint
596         of the innermost signal emission of an instance.
597
598         * gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
599         access a bsearch array and not a pointer to it (discovered by
600         Sven Neumann).
601
602 2001-12-17  Anders Carlsson  <andersca@gnu.org>
603
604         * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): Set the reserved bit
605         to (1 << 0) instead of (1 << 30). 
606
607 2001-12-14  James Henstridge  <james@daa.com.au>
608
609         * Makefile.am: add rules to build it.
610
611         * testoverride.c: test program for closure override/chaining.
612
613 Thu Dec 13 08:03:17 2001  Tim Janik  <timj@gtk.org>
614
615         * gsignal.c: implemented closure chaining.
616
617 2001-12-08  Christopher Blizzard  <blizzard@redhat.com>
618
619         * gsignal.h (g_signal_connect): Explicitly add a cast to the last
620         argument so that the macro will work from C++.
621
622 2001-12-06  Tor Lillqvist  <tml@iki.fi>
623
624         * makefile.mingw.in (gobject_OBJECTS): Add gsourceclosure.o.
625
626 Mon Nov 26 09:55:12 2001  Tim Janik  <timj@gtk.org>
627
628         * gtype.h: typedef GType to gulong instead of gsize, if possible.
629
630         * gtype.c: fixups for GType being sizeof(long) wide (changed
631         UINT casts).
632         * gsignal.c:
633         * gclosure.c:
634         * gparam.c: likewise.
635
636 Sun Nov 25 22:33:32 2001  Tim Janik  <timj@gtk.org>
637
638         * gtype.h: removed enum GTypeFundamentals. use macros
639         to provide the constant fundamental type IDs, so they
640         all return numbers of type GType, and not int.
641         sizeof(GTypeFundamentals) < sizeof(GType) problem reported
642         and fix sugegsted by Havoc.
643
644 2001-11-23  Hans Breuer  <hans@breuer.org>
645
646         * gobject.def : updated externals
647
648 Mon Nov 19 14:35:56 2001  Owen Taylor  <otaylor@redhat.com>
649  
650         * *.h: Improve the detection of invalid includes by moving
651         the test outside the duplicate include guards.
652  
653         * gsourceclosure.c (g_source_set_closure): Doc fix.
654
655 Thu Nov 22 03:30:57 2001  Tim Janik  <timj@gtk.org>
656
657         * gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
658         instead of g_type_value_table_peek().
659
660         * gtype.[hc] (type_check_is_value_type_U): speed up check
661         LOCK-less by caching lookups in node->mutatable_has_value_table.
662
663         * gtype.[hc]: removed locks where possible. partly based on
664         patches from owen and alex.
665
666 Thu Nov 22 00:26:26 2001  Tim Janik  <timj@gtk.org>
667
668         * gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
669         g_type_fundamental_next() to return next usable fundamental
670         type. use TypeNode pointers as type IDs.
671         
672 2001-11-22  Tor Lillqvist  <tml@iki.fi>
673
674         * makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
675
676         * gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
677         makes sense only when building libglib. GOBJECT_VAR is similar for
678         libgobject.
679
680         * gobject.def: Add g_param_spec_types, remove
681         g_type_fundamental_branch_last.
682
683 Wed Nov 21 17:23:33 2001  Tim Janik  <timj@gtk.org>
684
685         * gparamspecs.[hc]: put newly created param spec types into a
686         global array.
687
688         * gboxed.[hc]: moved boxed types with _get_type() function here,
689         for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
690         G_TYPE_GSTRING.
691
692         * gtype.h: removed fundamental branch APIs and derived enum
693         values. define GType as gsize.
694
695 2001-11-19  jacob berkman  <jacob@ximian.com>
696
697         * gobjectnotifyqueue.c: include glib-object.h rather than
698         gobject/gobject.h
699
700 2001-11-16  Mark McLoughlin  <mark@skynet.ie>
701
702         * glib-mkenums.in: allow the enums name to not be on the same
703         line as the trailing '}'. (#64714)
704
705 2001-11-18  Hans Breuer  <hans@breuer.org>
706
707         * makefile.msc.in : remove g_log_domain_gruntime usage
708
709 Sat Nov 17 18:14:40 2001  Owen Taylor  <otaylor@redhat.com>
710
711         * glib-genmarshal.c: Exit with non-zero exit status if
712         any errors were encountered.
713
714         * glib-genmarshal.c: Instead of generating gobject/gmarshal.h
715         #include only for the header, generate glib-object.h 
716         #include for both the header and body. (#63834)
717
718         * glib-genmarshal.c: Generate include guards around the 
719         content unless --nostdinc is specified.
720
721 2001-11-17  Tor Lillqvist  <tml@iki.fi>
722
723         * gobject.def: Add g_pointer_type_register_static.
724
725 2001-11-15  Tor Lillqvist  <tml@iki.fi>
726
727         * gobject.def: Reflect recent changes.
728
729 Tue Nov 13 23:18:10 2001  Tim Janik  <timj@gtk.org>
730
731         * gsignal.[hc]: add API for chaining:
732         g_signal_chain_from_overridden() and g_signal_override_class_closure(),
733         implementation yet to come.
734
735         * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
736         
737         * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
738         get_name and get_blurb, to be consistent with the rest of the
739         g_param_spec_*() functions.
740         
741         * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
742         G_TYPE_CLOSURE is a boxed type already.
743         
744 Tue Nov 13 22:16:41 2001  Tim Janik  <timj@gtk.org>
745
746         * gtype.[hc]: API cleanups.
747         remove g_type_check_flags(), provide g_type_test_flags() as
748         a *private* function.
749         s/g_type_check_is_a/g_type_check_class_is_a/, private function.
750         s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
751
752 Tue Nov 13 20:02:47 2001  Tim Janik  <timj@gtk.org>
753
754         * gparam.h: fix standard type macros.
755
756 Wed Nov  7 00:56:00 2001  Tim Janik  <timj@gtk.org>
757
758         * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
759         to walk the notifier list (puhh, black magic, stay-away-warning ;).
760
761 Mon Nov  5 18:59:08 2001  Tim Janik  <timj@gtk.org>
762
763         * gobject.h: 
764         * gsignal.h: we need signal.h for G_BREAKPOINT().
765
766 Sun Nov  4 14:01:23 2001  Owen Taylor  <otaylor@redhat.com>
767
768         * gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
769         to register a type derived from G_TYPE_POINTER.
770
771 2001-11-03  Hans Breuer  <hans@breuer.org>
772
773         * makefile.msc.in : gobject-query needs gmarshal.[hc,stings]
774         so build it after them. Add gsourceclosure.obj. 
775
776         * gobject.def : removed duplicates, added mising
777
778 Mon Oct 29 11:05:15 2001  Owen Taylor  <otaylor@redhat.com>
779
780         * glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in, 
781         substituting in path to perl.  (#63093, Dan Winship)
782
783         * Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
784         from srcdir.
785
786 2001-10-26  Tor Lillqvist  <tml@iki.fi>
787
788         * makefile.mingw.in: When running glib-genmarshal, set PATH to
789         include ../glib.
790
791 2001-10-23  Tor Lillqvist  <tml@iki.fi>
792
793         * Makefile.am: (Win32): If we have built the MSVC import library,
794         install it. Install the gcc import library. Also support
795         uninstall.
796
797 2001-10-13  Matthias Clasen  <matthiasc@poet.de>
798
799         * glib-genmarshal.1, glib-mkenums.1: Typo fixes.
800
801 Fri Oct 12 18:40:18 2001  Tim Janik  <timj@gtk.org>
802
803         * cosmetic fixups.
804
805 Wed Oct 10 17:25:22 2001  Joshua N Pritikin  <vishnu@pobox.com>
806
807         * glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
808         gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
809         gint64 & guint64 (#59254).
810         
811         * Unconditionalize same (compile with or without G_HAVE_INT64).
812
813 Wed Oct 10 15:38:58 2001  Joshua N Pritikin  <vishnu@pobox.com>
814
815         * gparamspecs.h (G_IS_PARAM_SPEC_FLAGS): Fix order of
816         *_PARAM_SPEC_ULONG defines.
817
818 Thu Oct  4 01:10:52 2001  Owen Taylor  <otaylor@redhat.com>
819
820         * gparamspecs.h: Add missing G_HAVE_GINT64 conditionalization.
821
822 Wed Oct  3 16:02:24 2001  Owen Taylor  <otaylor@redhat.com>
823
824         * glib-genmarshal.c gparamspecs.[ch] gvalue.h 
825         gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
826         and storing it in GValue (Patch from Mathieu Lacage, #59254.)
827
828 2001-10-03  jacob berkman  <jacob@ximian.com>
829
830         * gtype.c (type_iface_retrieve_holder_info_Wm): 
831         (type_iface_vtable_init_Wm): 
832         (type_iface_vtable_finalize_Wm): 
833         (g_type_class_ref): 
834
835         * gobject.c (g_object_get_property): s/retrive/retrieve/
836
837 2001-09-25  Tor Lillqvist  <tml@iki.fi>
838
839         * Makefile.am: Use new macros for .def file, and check for
840         MS_LIB_AVAILABLE, new rule to build MS import library.
841
842         * makefile.msc.in: Use same DLL and import library names as
843         libtool.
844         
845 2001-09-21  Hans Breuer  <hans@breuer.org>
846
847         * gobject.def : updated externals
848
849 2001-09-19  Tor Lillqvist  <tml@iki.fi>
850
851         * gobject.rc.in: Correct InternalName and OriginalFilename to
852         match what we actually produce.
853
854 Tue Sep 18 23:09:02 2001  Tim Janik  <timj@gtk.org>
855
856         * gparam.[hc]: rename *nick and *blurb fields to catch
857         direct accesses in third party code.
858         provide g_param_get_nick(), g_param_get_blurb() and
859         g_param_get_name() accessors.
860
861 Mon Sep 10 20:31:37 2001  Tim Janik  <timj@gtk.org>
862
863         * gobject.[hc]: removed extraneous GObject* returns from a
864         couple functions that are very unlikely to be used in nested.
865         changed gpointer->GObject* for a couple return values/arguments.
866         this fixes #50206.
867
868 Mon Sep 10 19:27:47 2001  Tim Janik  <timj@gtk.org>
869
870         * gtype.[hc]:
871         g_type_add_interface*(): implement the ability to add an interface to
872         a type whose parents already conform to this interface.
873         such "overriding" interfaces, when initialized, are not just initialized
874         with 0, but with a copy of the interface they override.
875         g_type_interface_peek_parent(): new function, return the interface
876         that this interface "overrides", if any.
877
878         * testgruntime.c: test new interface stuff.
879
880 2001-09-10  Alex Larsson  <alexl@redhat.com>
881
882         * gobject/gboxed.[ch]:
883         * gobject/gsourceclosure.c:
884         Removed is_refcounted and GBoxedInitFunc from
885         g_boxed_type_register_static().
886
887 Sat Sep  8 14:13:57 2001  Owen Taylor  <otaylor@redhat.com>
888
889         * gobject/Makefile.am: Move gbsearcharray.[ch] to glib
890         as a private ininstalled header.
891
892 Tue Sep  4 22:24:48 2001  Matthias Clasen  <matthiasc@poet.de>
893
894         * gobject.c (g_object_base_class_finalize): typo fix.
895
896 Tue Sep  4 01:49:18 2001  Tim Janik  <timj@gtk.org>
897
898         * gsourceclosure.c: make closure_callback_funcs static,
899         added some g_return_if_fail() statements.
900
901 Mon Aug 27 14:55:27 2001  Owen Taylor  <otaylor@redhat.com>
902
903         * gsourceclosure.[ch] (g_source_set_closure): Implement.
904
905         * gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
906
907 2001-08-17  James Henstridge  <james@daa.com.au>
908
909         * gobject.c (WeakRefStack): add an object member to the structure.
910         (weak_refs_notify): pass wstack->object as extra argument to
911         notify functions.
912         (g_object_weak_ref): set wstack->object when initialising
913         WeakRefStack.
914
915         * gobject.h (GWeakNotify): add second argument to prototype which
916         gives the pointer to where the object that is being disposed of
917         was.
918
919 Wed Jul 18 19:42:31 2001  Tim Janik  <timj@gtk.org>
920
921         * gtype.h: if __GNUC__ is defined, inline a test for an exact type
922         match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
923         G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
924
925 Sun Aug 12 02:07:10 2001  Tim Janik  <timj@gtk.org>
926
927         * gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
928         properly, group value allocations.
929         (g_value_array_new): fix semantic of n_prealloced argument, so it's
930         really just about preallocation space.
931
932 2001-07-23  Padraig O'Briain <Padraig.Obriain@Sun.COM>
933         
934         * gobject/gobjectnotifyqueue.c: fix unconditional check of
935         first GParamSpec in g_object_notify_queue_thaw(); to prevent
936         property notification being lost.
937
938 2001-08-06  Sven Neumann  <sven@gimp.org>
939
940         * gobject.[ch]: 
941         added new functions g_object_[add|remove]_weak_pointer().
942
943 2001-08-01  Sven Neumann  <sven@gimp.org>
944
945         * gsignal.h: added convenience macro g_signal_connect_after().
946
947 2001-07-29  Hans Breuer  <hans@breuer.org>
948
949         * gobject.def : updated externals
950
951 2001-07-20  Hans Breuer  <hans@breuer.org>
952
953         * gobject.def : updated externals
954
955         * makefile.msc.in : reflect glib move
956
957 Tue Jul 10 18:50:16 2001  Tim Janik  <timj@gtk.org>
958
959         * gsignal.h (struct _GSignalQuery): fix misplaced comment.
960
961 Mon Jul  2 07:17:47 2001  Tim Janik  <timj@gtk.org>
962
963         * gobject.c (g_object_weak_ref): 
964         (g_object_watch_closure): congrats tim, introducing of-by-one
965         errors like on my very first day of C programming.
966
967 Sat Jun 30 11:07:00 2001  Tim Janik  <timj@gtk.org>
968
969         * gobject.[hc]: provide weak_ref/weak_unref functions,
970         invoked from ->dispose. renamed ->shutdown() to ->dispose(),
971         provide "public" API entry here: g_object_run_dispose(), this
972         fucntion should _only_ be called from object system implementations
973         (e.g. gtkobject.c) if at all.
974
975         * gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
976
977         * gsignal.h: removed compat aliases.
978
979         * gobject.c (g_object_connect): support data objects.
980         
981 Sat Jun 30 13:17:12 2001  Owen Taylor  <otaylor@redhat.com>
982
983         * testgruntime.c (test_object_class_init)
984           gobject.c (g_object_do_class_init): 
985           g_signal_newc() => g_signal_new().
986
987 Thu Jun 28 22:49:40 2001  Owen Taylor  <otaylor@redhat.com>
988
989         * gtype.[ch] gobject-query.c testgruntime.c: Remove
990         debug flag argument to g_type_init() and add
991         g_type_init_with_debug_flags().
992
993 Thu Jun 28 16:42:49 2001  Tim Janik  <timj@gtk.org>
994
995         * gsignal.c (g_signal_lookup): 
996         (g_signal_list_ids): give elaborate warnings about invalid types,
997         non-instantiatable types and unloaded types that we can't operate on.
998
999         * gparam.[hc]: g_param_spec_pool_belongings() ->
1000         g_param_spec_pool_list_owned().
1001
1002         * gsignal.[hc]: renamed:
1003         g_signal_newc -> g_signal_new
1004         g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
1005         g_signal_block_by_func -> g_signal_handlers_block_by_func
1006         g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
1007         added GConnectType to simplify (..gboolean swapped, gboolean after)
1008         args.
1009
1010         * gobject.[hc]: changed prototypes accordingly.
1011
1012 2001-06-22  Hans Breuer  <hans@breuer.org>
1013
1014         * gobject.def : updated externals
1015
1016         * gobjectnotifyqueue.c : include <string.h> for memset ()
1017
1018 Thu Jun 21 02:43:10 2001  Tim Janik  <timj@gtk.org>
1019
1020         * gparamspecs.h: s/long/int/ for default_value in enum and flags
1021         pspecs.
1022
1023 Wed Jun 20 03:59:42 2001  Tim Janik  <timj@gtk.org>
1024
1025         * gtype.[hc]: added debugging variants g_type_name_from_class(),
1026         g_type_name_from_instance().
1027
1028 Mon Jun 11 17:07:06 2001  Tim Janik  <timj@gtk.org>
1029
1030         * gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
1031
1032         * gobjectnotifyqueue.c: moved property notify queue implementation
1033         bits into this function.
1034
1035         * gparam.[hc]: added g_param_spec_pool_belongings(), completed
1036         g_param_spec_pool_list(). added GParameter for _setv() functions.
1037
1038         * gobject.[hc]: use gobjectnotifyqueue.h implementation now.
1039         got rid of properties_changed signal.
1040         new functions g_object_newv(), g_object_class_list_properties().
1041         removed "properties_changed" signal.
1042
1043         * gtype.[hc]: added g_type_depth() to figure number of parent
1044         types + 1 for a type.
1045
1046         * gsignal.h: add g_signal_connect() (as per owen's request) and
1047         g_signal_connect_swapped().
1048
1049 2001-06-13  Havoc Pennington  <hp@redhat.com>
1050
1051         * Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
1052         since an installed libgobject was somehow being found; think 
1053         it's a libtool bug, but this workaround should do for now.
1054
1055 2001-06-12  Havoc Pennington  <hp@redhat.com>
1056
1057         * Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
1058         bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
1059         in bin_SCRIPTS and cp it into builddir
1060
1061 Thu May 31 17:56:47 2001  Owen Taylor  <otaylor@redhat.com>
1062
1063         * gobject-query.c: Fix mispelling in help output.
1064         (#53952, Skip Montanaro)
1065
1066 2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1067
1068         * Makefile.am (EXTRA_DIST): Really distribute glib-mkenums, now
1069         that bin_SCRIPTS doesn't seem to care about doing so anymore.
1070
1071 Mon May 28 06:51:24 2001  Tim Janik  <timj@gtk.org>
1072
1073         * gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
1074         to release signal lock when restarting emissions.
1075
1076 Sun May 27 04:52:28 2001  Tim Janik  <timj@gtk.org>
1077
1078         * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
1079         to stop signal emissions through a detailed_signal string.
1080
1081         * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
1082         the fact that g_value_* functions may cause signal emissons by
1083         unlocking the global signal system lock around g_value_* functions.
1084         (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
1085         that this functions acquires the lock on its own now.
1086
1087 2001-05-24  Hans Breuer  <hans@breuer.org>
1088
1089         * makefile.msc.in : changed depndencies to build glib-genmarshal
1090         first and statically linked with glib, which makes it independent
1091         from the installed glib version. Added new object files to build.
1092
1093         * gobject.def : updated
1094
1095 Thu May 24 08:52:02 2001  Owen Taylor  <otaylor@redhat.com>
1096
1097         * gobject.[ch] (g_value_set_object): gpointer, not
1098         gpointer *.
1099
1100 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1101
1102         * Makefile.am (bin_SCRIPTS): made 'make distcheck' happy.
1103
1104         * gobject.def: Removed g_param_spec_stringc.
1105
1106 Tue May 22 02:46:13 2001  Tim Janik  <timj@gtk.org>
1107
1108         * gobject.c (g_value_set_object): make g_value_set_object()
1109         take a gpointer v_object so people don't need to G_OBJECT()
1110         cast NULL pointers (C code convenience).
1111
1112 Mon May 14 01:49:01 2001  Tim Janik  <timj@gtk.org>
1113
1114         * gsignal.[hc] (g_signal_handler_is_connected): new function
1115         to check whether a handler is still connected to an instance
1116         (by handler id).
1117
1118 Thu May 10 14:00:48 2001  Tim Janik  <timj@gtk.org>
1119
1120         * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
1121         evidence of public need.
1122
1123         * gsignal.h: added g_signal_disconnect_by_func(),
1124         g_signal_block_by_func() and g_signal_unblock_by_func() convenience
1125         macros as per owen's request.
1126
1127         * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
1128         to size of longs and pointers.
1129
1130 2001-05-05  James Henstridge  <james@daa.com.au>
1131
1132         * Makefile.am: glib-mkenums is not a compiled program, so shouldn't
1133         be in the bin_PROGRAMS primary.  Put it in bin_SCRIPTS instead, and
1134         removed the glib_mkenums_SOURCES var.
1135
1136 Thu May  3 06:10:23 2001  Owen Taylor  <otaylor@redhat.com>
1137
1138         * gobject.c (g_object_set_[q]data_full): Make types of ternary
1139         operator correspond. (Fixes compilation errors with Sun CC,
1140         #52230)
1141
1142 Mon Apr 30 20:03:56 2001  Tim Janik  <timj@gtk.org>
1143
1144         * glib-mkenums (usage): removed \v escaping, newer perl versions don't
1145         support this, and it'S probably useless anyways.
1146
1147 Sat Apr 28 23:39:42 2001  Tim Janik  <timj@gtk.org>
1148
1149         * gsignal.[hc]: made signal handler and emission hook ids gulongs.
1150         (signal_handlers_foreach_matched_R): only invoke callback for handlers
1151         that are not disconnected (id>0).
1152         (signal_emit_R): prevent invocation of signal handlers during the
1153         emission they were connected within.
1154         
1155         * glib-mkenums: publically installed perl-script to parse C code
1156         enums and generate descriptions thereof.
1157         * glib-mkenums.1: assorted man page.
1158         
1159 2001-04-19  Havoc Pennington  <hp@redhat.com>
1160
1161         * gobject.c (g_object_get_valist): We were returning junk memory
1162         here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
1163         passed to G_VALUE_LCOPY) and then we freed the GValue immediately
1164         after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
1165         G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
1166
1167 Wed Apr 18 09:46:56 2001  Owen Taylor  <otaylor@redhat.com>
1168
1169         * gobject.c gsignal.c: Change C++ comments for FIXME's to
1170         C comments. (Patch from Andres Salomon)
1171
1172 2001-04-14  Hans Breuer  <hans@breuer.org>
1173
1174         * gobject.def : updated
1175
1176 Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
1177
1178         * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
1179         we're valid (about to actually do marshalling).
1180
1181 Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
1182
1183         * NEWS: updates.
1184
1185 Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
1186
1187         * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
1188         owner_type. the pspecs are not referenced, so the caller is
1189         supposed to have some idea about owner_type not randomly
1190         nuking his pspec's. if this is going to provide problems in
1191         the future, we can either auto-ref the pspecs, or add a
1192         _foreach variant, though the latter would have to invoke
1193         the callback while pspec's mutex is acquired, so i just
1194         went for the _list variant for now.
1195
1196         * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
1197
1198 Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
1199
1200         * gtype.h:
1201         * gparamspecs.[hc]: applied patch from owen to implement
1202         GParamSpecUnichar.
1203
1204 Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
1205
1206         * gtype.c (type_iface_retrive_holder_info_Wm): 
1207         * gtypeplugin.c (g_type_plugin_complete_interface_info): 
1208         * gtypemodule.c (g_type_module_complete_interface_info): 
1209         change order of instance_type and interface_type so they match
1210         the g_type_add_interface_*() API.
1211
1212         * gsignal.c (g_signal_emit_valist): always assign C return value
1213         location, people depending on unaltered return values after emissions
1214         that had no handlers to run need to use g_signal_emitv().
1215
1216         * gtype.[hc] (g_type_query): new function to allow querying of
1217         class and object size (semantics like g_signal_query()).
1218         currently the implementation is better held conservative so as to
1219         only support types that are classed and static.
1220
1221 2001-03-29  Tor Lillqvist  <tml@iki.fi>
1222
1223         * gobject.def: Updates.
1224
1225 Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
1226
1227         * gobject.c (object_queue_property): only queue readable properties
1228         for notification changes.
1229
1230 Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
1231
1232         * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
1233
1234 2001-03-21  Martin Baulig  <baulig@suse.de>
1235
1236         * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
1237         argument.
1238
1239 2001-03-18  Tor Lillqvist  <tml@iki.fi>
1240
1241         * gobject.def: Correct some renamed functions.
1242
1243 Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
1244
1245         * gobject.c (g_object_get_property): minor bug-fix.
1246
1247         * gbsearcharray.[hc]: provide a macro for static initialization and
1248         functions g_bsearch_array_new() and g_bsearch_array_destroy() for
1249         dynamic allocations.
1250         
1251         * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
1252         
1253         * gclosure.[hc]: naming corrections.
1254
1255 Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
1256
1257         * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
1258         a public function (was static in gobject.c before). it's a bit odd
1259         to have that function here, especially since it requires extra includes,
1260         but then it doesn't very well fit somewhere else either.
1261
1262         * gparamspecs.c: added default/max/min checks to param spec creation
1263         functions.
1264
1265 2001-03-10  Tor Lillqvist  <tml@iki.fi>
1266
1267         * gobject.def: Add a couple of missing entries.
1268
1269         * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
1270
1271 Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
1272
1273         * testgruntime.c: test program. covers run first/last/cleanup signal
1274         handlers, return value accumulator, signal string returns, and
1275         interface types in signal arguments.
1276
1277         * gtype.c (g_type_value_table_peek): for interface types without
1278         value table, try looking up a value table from an instantiatable
1279         prerequisite type (this is safe as an interface may only have
1280         one instantiatable prerequisiste).
1281         (type_check_is_value_type_U): same here.
1282
1283         * gsignal.c (g_signal_newv): assert that return types never have
1284         G_SIGNAL_TYPE_STATIC_SCOPE set.
1285         (g_signal_newc): only create class closure if the class_offset is not
1286         0.
1287
1288 Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
1289
1290         * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
1291         for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
1292         that wouldn't allow interface types.
1293
1294         * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
1295         with bad implications and an off-by-one error.
1296
1297 Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
1298
1299         * gvaluetransform.c: Include <string.h> for memcpy.
1300
1301         * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
1302         and ANSI-illegal ## token pasting.
1303
1304 Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
1305
1306         * gsignal.c: eek, fixed old hook detail storage code.
1307
1308 Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
1309
1310         * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
1311
1312         * gsignal.[hc]: fixed accumulator invocation, implemented emission
1313         hooks. and no, neither of these callbacks are called via a closure,
1314         language bindings can wrap the accumulator and emission hook
1315         interface, they already get parameters marshalled into a GValue array.
1316         (g_signal_connect): removed this function as its C specific, doesn't
1317         cover the swapped argument, is too close to its broken original
1318         gtk_signal_connect() and creates demand for _swapped, _after and
1319         _swapped_after variants <brrr>.
1320         (g_signal_connectc): convenience macro to connect a C handler
1321         func with data, like the old g_signal_connect() plus swapped
1322         argument.
1323
1324         * gtype.h:
1325         * gboxed.c: added G_TYPE_VALUE boxed type.
1326
1327 Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
1328
1329         * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
1330         to an ancestor of a child that already conforms to this interface.
1331         currently we spew a warning here, should we be silent?
1332         (g_type_interface_add_prerequisite): new function to add a prerequisite
1333         type to an interface, that must succeed an instance is_a prerequisite
1334         type check before the interface can be added to an instance. the
1335         prerequisite types are also suuported in is_a checks of the interface.
1336         (g_type_instance_is_a):
1337         (g_type_check_instance_cast):
1338         (g_type_check_instance): cleanups and optimizations.
1339         (g_type_class_is_a):
1340         (g_type_check_class_cast): same, also prevented these from accepting
1341         interface types, as class structures don't nest interfaces.
1342
1343 2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1344
1345         * Makefile.am: Avoid rebuilding everything everytime.
1346
1347 Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
1348
1349         * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
1350         to contain an optional init function and a hint at whether the
1351         boxed structure uses ref counting internally.
1352         added g_value_set_boxed_take_ownership().
1353         made G_TYPE_BOXED an abstract value type.
1354
1355         * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
1356         types.
1357
1358         * glib-genmarshal.c: argument type changes, preparation for third-party
1359         arg specification.
1360
1361         * gobject.[hc]: cleaned up get/set property code.
1362         added g_strdup_value_contents() to improve warnings.
1363
1364         * gparam.[hc]: added g_param_value_convert(), taking over responsibility
1365         of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
1366         validation alterations may be valid a part of the property setting
1367         process.
1368
1369         * gparamspecs.[hc]: made value comparisons stable (for sort applications).
1370         added GParamSpecValueArray, a param spec for value arrays and
1371         GParamSpecClosure. nuked the value exchange functions and
1372         GParamSpecCCallback.
1373
1374         * gtype.[hc]: catch unintialized usages of the type system with
1375         g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
1376         to flag types that introduce a value table, but can't be used for
1377         g_value_init(). cleaned up reserved type ids.
1378
1379         * gvalue.[hc]: code cleanups and saner checking.
1380         nuked the value exchange API. implemented value transformations, we
1381         can't really "convert" values, rather transforms are an anylogy to
1382         C casts, real conversions need a param spec for validation, which is
1383         why g_param_value_convert() does real conversions now.
1384
1385         * gvaluearray.[hc]: new files that implement a GValueArray, a struct
1386         that can hold inhomogeneous arrays of value (to that extend that it
1387         also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
1388         this is exposed to the type system as a boxed type.
1389
1390         * gvaluetransform.c: new file implementing most of the former value
1391         exchange functions as single-sided transformations.
1392
1393         * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
1394         g_value_set_string_take_ownership().
1395
1396         * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
1397
1398         * *.[hc]: many fixes and cleanups.
1399
1400         * many warning improvements.
1401
1402 Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
1403
1404         * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
1405         into G_VALUE_LCOPY(), this needs proper documenting.
1406
1407         * gparam.c: fixed G_PARAM_USER_MASK.
1408
1409         * gtype.c (type_data_make_W): 
1410         (type_data_last_unref_Wm): fixed invalid memory freeing.
1411
1412         * gobject.c (g_object_last_unref): destroy signal handlers associated
1413         with object, right before finalization.
1414
1415         * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
1416         that don't actually support details.
1417
1418         * gobject.[hc]: got rid of property trailers. nuked GObject
1419         properties "data" and the "signal" variants.
1420         (g_object_connect): new convenience function to do multiple
1421         signal connections at once.
1422         (g_object_disconnect): likewise, for disconnections.
1423
1424         * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
1425
1426         * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
1427         as private (the latter got renamed from g_value_get_as_pointer()).
1428
1429 2001-02-21  Tor Lillqvist  <tml@iki.fi>
1430
1431         * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
1432
1433         * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
1434         libtool with -no-undefined for Win32 and Cygwin.
1435
1436 Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
1437
1438         * gsignal.h (g_signal_connect): Add g_signal_connect define to
1439         make porting from gtk_signal_connect easy.
1440
1441         * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
1442         (instance) instead of node->itype when initting the value.
1443
1444 2001-02-17  Havoc Pennington  <hp@pobox.com>
1445
1446         Applied patch from Soeren Sandmann:
1447         
1448         * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
1449
1450         * gtype.c (g_type_name): G_CONST_RETURN
1451
1452         * gsignal.c (g_signal_name): G_CONST_RETURN
1453
1454         * gobject-query.c (main): const fix
1455
1456 Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
1457
1458         * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
1459         G_ENUM_CLASS_TYPE() macro.
1460
1461 Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
1462
1463         * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
1464         lcopy_value() in the GTypeValueTable. the collect functions are now
1465         called only once per value, collect_format/lcopy_format are strings
1466         that enlist all necessary GTypeCValues to be varargs-collected.
1467
1468         * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
1469         a value shouldn't copy its contents.
1470
1471         * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
1472         macros to carry an additional argument (flags) that can be used
1473         to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
1474
1475         * *.c: adapted collect_value() and lcopy_value() functions to the new
1476         prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
1477
1478         * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
1479         be passed along (ORed) with the parameter types, indicating that the
1480         emission arguments are to be considered static for the scope of the
1481         emission. should be used with care and only if the caller knows that
1482         a parameter cannot be destroyed/freed from signal handlers connected
1483         to an emission.
1484
1485 Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
1486
1487         * gclosure.c:
1488         (g_closure_ref):
1489         (g_closure_sink): make closure sinking explicit.
1490
1491         * gsignal.c:
1492         (g_signal_connect_data): 
1493         (g_signal_connect_closure): 
1494         (g_signal_connect_closure_by_id): 
1495         (g_signal_newv): perform explicit closure sinking.
1496
1497 Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
1498
1499         * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
1500
1501 2001-02-04  Tor Lillqvist  <tml@iki.fi>
1502
1503         * gobject.def: Remove glib_debug_objects.
1504
1505 Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
1506
1507         * gtype.[hc]: changed g_type_init() to take debugging flags
1508         initially, a combination of G_TYPE_DEBUG_OBJECTS and
1509         G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
1510         here, but basically g_type_int() serves as initialization
1511         fucntion for all of GType, GObject, GSignal, so what the heck.
1512
1513         * gobject.c: special case debugging code properly.
1514         changed glib_trap_object_ref to g_trap_object_ref.
1515
1516         * gsignal.c: add signal emission debugging abilities, along with
1517         a new trap object g_trap_instance_signals.
1518
1519 2001-02-04  Tor Lillqvist  <tml@iki.fi>
1520
1521         * Makefile.am (progs_LDADD): Change order of libs to libgobject
1522         first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
1523
1524 Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
1525
1526         * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
1527
1528         * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
1529         number that's supposed to be left untouched (preserved mainly
1530         for the signal code).
1531
1532         * *.c: added thread safety code, based on an old patch from sebastian.
1533         the remaining thread safety issues are now datalists on pspecs (to be
1534         solved im gdataset.c) and gvalue.c where locking concerns value exchange
1535         functionality only, and that's soon to be revised.
1536
1537 2001-01-27  Tor Lillqvist  <tml@iki.fi>
1538
1539         * makefile.msc.in: Don't try to compile gmarshal.c on its own.
1540
1541 2001-01-24    <alexl@redhat.com>
1542
1543         * gclosure.c (g_closure_unref):
1544         Don't leak closure->notifiers.
1545
1546 2001-01-05  Havoc Pennington  <hp@redhat.com>
1547
1548         * gparamspecs.c (g_param_spec_enum): set the value_type in the
1549         param spec; closes bug 40210
1550         (g_param_spec_flags): ditto for flags
1551
1552 2001-01-03  Alexander Larsson  <alexl@redhat.com>
1553
1554         * gobject.c:
1555         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
1556
1557 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
1558
1559         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
1560         fucntionality if DISABLE_MEM_POOLS is defined.
1561
1562         * gtype.c: honour DISABLE_MEM_POOLS.
1563
1564         * gsignal.c (g_signal_init): flag signal key bsearch array with
1565         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
1566         DISABLE_MEM_POOLS.
1567
1568         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
1569                                                        G_PARAM_WRITABLE).
1570
1571 2000-12-15  Tor Lillqvist  <tml@iki.fi>
1572
1573         * gobject.def: Update.
1574
1575 2000-12-15  Havoc Pennington  <hp@pobox.com>
1576
1577         * gobject.c (g_object_do_class_init): use g_signal_newc
1578
1579         * gsignal.c (g_signal_newc): convenience function for signals
1580         created from C
1581         (g_signal_new_valist): added
1582         (g_signal_new): removed
1583
1584 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
1585
1586         * gparam.[hc]: add an instance member value_type so the default
1587         value of the pspec class can be overridden.
1588
1589 2000-12-14  Tor Lillqvist  <tml@iki.fi>
1590
1591         * makefile.mingw.in: Update, include parts from Makefile.am to
1592         build gmarshal.[ch]. Some day, we won't need these separate
1593         makefiles for Win32 compilation. I hope.
1594
1595         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
1596         here, it would require Unixish tools. MSVC users building from CVS
1597         sources are out of luck.
1598         
1599         * gobject.def: Update.
1600
1601 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
1602
1603         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
1604
1605         * gobject.[hc]: minor fixes.
1606
1607 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
1608
1609         * Makefile.am: _never_ touch oldest-source-stamp.
1610         
1611         * gobject.[hc]: construct property handling fixes/improvements.
1612         fixed trailer handling in get/set property.
1613         
1614         * gparam.[hc]: implement param spec pool, got rid of param spec
1615         hashtable. the most prominent change is that e deal with type
1616         prefixes here.
1617         
1618 2000-12-12  Elliot Lee  <sopwith@redhat.com>
1619
1620         * Makefile.am:
1621           . You have to 'touch oldest-source-stamp' if you want to avoid having
1622           the Makefile constantly rebuild itself.
1623           . Fix marshaller generation rules to work with srcdir != builddir
1624             (there were issues with trying to run "./glib-genmarshal", etc.)
1625
1626 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
1627
1628         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
1629         
1630         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
1631         convenience macro.
1632         
1633         * Makefile.am: cleanups, marshaller generation rules.
1634         
1635         * gmarshal.[hc]: new files with GRuntime standard marshallers.
1636         
1637         * glib-genmarshal.c: fix log domain, support gruntime standard 
1638         marshallers, suport G_TYPE_PARAM, come with extern "C" and
1639         #include gmarshal.h.
1640         
1641         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
1642         
1643         * gobject.[hc]: implement object constructor. rework parameter
1644         changed notification queueing, we support queue freezes now and
1645         don't dispatch from an idle handler anymore.
1646         parameter->property rename hassle.
1647         implemented ::properties_changed and ::notify::* signals for
1648         property change notification (the later supports property names
1649         as details). added signal connection and named data properties.
1650         (g_signal_connect_object): new function to setup while_alive
1651         connections.
1652         (g_object_class_install_property): sink properties now, since they
1653         are initially floating.
1654         (g_object_steal_data):
1655         (g_object_set_data_full):
1656         (g_object_set_data):
1657         (g_object_get_data): set/get data by using g_datalist_*() functions
1658         directly.
1659         (g_object_queue_param_changed): nuked.
1660         (g_object_freeze_notify): start queueing of property changes (freeze/
1661         thaw calls stack).
1662         (g_object_notify): announce changes of a certain property directly.
1663         (g_object_thaw_notify): process queue of property changes, therefore
1664         emitting GObject::notify::detail with detail being the changed
1665         properties names.
1666         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
1667         G_WARN_INVALID_PARAM_ID().
1668         
1669         * gparam.[hc]: param specs are now initially floating and need to be
1670         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
1671         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
1672         required by GObjectClass.constructor().
1673         
1674         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
1675         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
1676         and G_TYPE_CCALLBACK respectively.
1677         
1678         * gsignal.[hc]: cleanups.
1679         (signal_id_lookup): after walking the anchestry, try interfaces as well.
1680         (g_signal_new): new function to create signals from varargs type list.
1681         (g_signal_connect_closure): closure connection variant that works from
1682         signal name+detail.
1683         (g_signal_connect_data): c handler connection variant that works from
1684         signal name+detail.
1685         (g_signal_emit_valist): emit signal for an instance with paraneters
1686         collected from a va_list.
1687         (g_signal_emit): emit signal, taking parameters from varargs list.
1688         (g_signal_emit_by_name): same as g_signal_emit, working from
1689         signal name+detail.
1690         (signal_emit_R): return whether return_value needs to be altered.
1691         
1692         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
1693         the points that need to reflect the upcoming rename.
1694         melt g_type_conforms_to() functionality into g_type_is_a(), as that
1695         is what we really want (liskov substitution principle).
1696         assorted changes to other files due to conforms_to->is_a.
1697
1698         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
1699         from an instantiatable type via the value_table's collect_value()
1700         function (based on an idea from James Henstridge <james@daa.com.au>).
1701         cleanups/fixes.
1702         
1703         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
1704
1705 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
1706
1707         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
1708         NULL nodes if C handlers are searched for specific signals.
1709
1710 2000-11-28  Elliot Lee  <sopwith@redhat.com>
1711
1712         * gsignal.c: Fix warnings about possible use of uninitialized
1713         variables, and fix logic that would leave 'node' unset in cases
1714         that it might be used in.
1715
1716         * glib-genmarshal.c: Fix warning about printf format.
1717
1718 2000-11-28  Tor Lillqvist  <tml@iki.fi>
1719
1720         * gboxed.c: Include <string.h> for memset ().
1721
1722 2000-11-22  Tor Lillqvist  <tml@iki.fi>
1723
1724         * gobject.def: Update.
1725
1726 2000-11-20  Havoc Pennington  <hp@redhat.com>
1727
1728         * gobject.c (g_object_get_data)
1729         (g_object_set_data)
1730         (g_object_set_data_full)
1731         (g_object_steal_data): More convenient data-setting functions
1732
1733 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
1734
1735         * gtypemodule.c (g_type_module_use): If loading the
1736         module fails, don't increment the use count.
1737
1738 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
1739
1740         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
1741         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
1742         Zeeman <maas@wanadoo.nl>.
1743
1744 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
1745
1746         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
1747
1748 2000-11-11  Tor Lillqvist  <tml@iki.fi>
1749
1750         * gtypemodule.c: Include stdlib.h for exit().
1751
1752         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
1753
1754         * gobject.def: Add missing functions.
1755
1756 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
1757
1758         * Makefile.am gtypemodule.[ch]: New basic implementation of
1759         GTypePlugin interface as a GObject. Dynamically loaded modules can
1760         register any number of types and interface on the module.
1761
1762 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
1763
1764         * gsignal.c (handlers_find): When appending handlers and
1765         not matching on signal_id, use hlist->signal_id instead of 
1766         signal_id. Having the correct signal_id when unreffing
1767         the handlers makes things work a lot better.
1768
1769 2000-11-05  Tor Lillqvist  <tml@iki.fi>
1770
1771         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
1772
1773         * gobject.def: Update.
1774
1775 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
1776
1777         * gsignal.c:
1778         fixed a bag full of subtle bugs of immensive screw-up potential in
1779         handlers_find(), luckily no one found out about them yet ;)
1780         fixed signal_handlers_foreach_matched_R() so it operates on an
1781         initial handler list snapshot provided by handlers_find() to work
1782         around general reentrancy problems and to avoid multiple callback()
1783         invocations on the same handlers.
1784         this code is now officially 80% bug free (10% remaining for interface
1785         types, and 10% remaining for destroyed signals ;)
1786         
1787 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
1788
1789         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
1790
1791         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
1792         implementation that provides the API required by GType to deal with
1793         dynamically loadable types.
1794
1795         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
1796
1797 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
1798
1799         * gsignal.[hc]: prefix internal functions with '_'. renamed
1800         g_signal_connect_closure() to g_signal_connect_closure_by_id().
1801         added g_signal_parse_name() to retrive signal_id and detail quark
1802         from a signal name (internal).
1803
1804 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
1805
1806         * gobject.c (g_object_base_class_finalize): destroy all signals that
1807         the finalized obejct type introduced.
1808
1809         * gsignal.c (g_signals_destroy): don't require itype to have
1810         signals.
1811
1812         * gobject.c (g_object_do_finalize): make sure all signal handlers
1813         are destroyed.
1814
1815         * gsignal.[hc]:
1816         (g_signal_handler_find): only match on non-0 masks.
1817         (g_signal_handlers_block_matched):
1818         (g_signal_handlers_unblock_matched):
1819         (g_signal_handlers_disconnect_matched): new functions to block/unblock
1820         or disconnect handlers in groups.
1821
1822 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1823
1824         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
1825         made both functions return gboolean just for the little extra
1826         standard conformance now that GEqualFunc is introduced.
1827
1828 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
1829
1830         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
1831         added, the doc system would ignore it anyways (for some reason not
1832         aparent to me).
1833
1834 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
1835
1836         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
1837         added required mutex locks.
1838
1839 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
1840
1841         * gsignal.c (g_type_signals): Fix problem where signals
1842         with "_" in them appeared twice in the result array.
1843
1844 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
1845
1846         * gsignal.h: Add g_type_signals() - a function to list
1847         all signals for a given type.
1848
1849 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
1850
1851         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
1852         for post_marshal guard which was off at 0.
1853
1854 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
1855
1856         * gobject.[hc]: doh, fix argument order in for
1857         g_cclosure_new_object_swap and g_cclosure_new_object.
1858
1859 2000-10-28  Tor Lillqvist  <tml@iki.fi>
1860
1861         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
1862
1863         * glib-genmarshal.c: Conditionalise include of unistd.h.
1864         Include <io.h> on Win32.
1865
1866         * gobject.def: Add some missing entry points.
1867
1868 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
1869
1870         * gsignal.[hc]: publically define GSignalInvocationHint structure
1871         that gets passed in to closure invocations. added signal details.
1872         renamed GSignalType to GSignalFlags to comply with conventions.
1873         quite some cleanups and minor fixes. avoid uneccessary handler list
1874         walks upon invokation of after handlers. relookup handler list for
1875         restarted emissions. preliminary abort normal handler invokation if
1876         after handler is encountered.
1877
1878         * glib-genmarshal.c:
1879         * gclosure.[hc]: moved invocation_hint to the end of the
1880         g_closure_invoke() arguments as sugegsted by kenelson.
1881         also made it a gpointer to be more generic. the invocation_hint
1882         is a caller specific thing that can be used to pass additional
1883         data in to closure invocations as documented with the caller
1884         invoking the closure.
1885
1886 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
1887
1888         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
1889         by havoc.
1890
1891         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
1892         g_signal_lookup() would be called with the signal lock being
1893         held. reported by james henstridge.
1894
1895         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
1896         reported by owen.
1897
1898 2000-10-26  Tor Lillqvist  <tml@iki.fi>
1899
1900         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
1901         arithmetic on void pointer, label without statement following.
1902
1903         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
1904         result of sizeof operator, it can be unsigned. Cast first to
1905         gssize.
1906
1907         * gobject.def: Add new functions.
1908
1909         * makefile.{mingw,msc}.in: Add new objects.
1910
1911 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1912
1913         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
1914         prevents 'make dist' from working.
1915
1916 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
1917
1918         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
1919         casts from void * since this will get included from C++ too
1920         at times.
1921         
1922 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
1923
1924         * gvaluetypes.[hc]: added g_value_set_static_string().
1925
1926         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
1927
1928 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
1929
1930         * gtype.c (g_type_free_instance): for the moment, freeing object
1931         structures will fill their memory portion with 0xAA. there's a
1932         FIXME there, remove this line at a later point.
1933
1934 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
1935
1936         * glib-genmarshal.1:
1937         * glib-genmarshal.c: added publically installed marshaller generator.
1938
1939         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
1940         interface VTable from instances.
1941
1942 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
1943
1944         * gobject.[hc]: new functions for closure maintenance:
1945         (g_object_watch_closure): maintain validity of the object and
1946         the closure for objects that are used as data part of a closure.
1947         (g_cclosure_new_object): convenience function to create C closures
1948         that have an object as data argument.
1949         (g_closure_new_object): convenience function to create closures
1950         that have an object as data argument.
1951
1952         * gclosure.[hc]: implementation of GClosure mechanism.
1953         a closure is basically an encapsulation of a callback function
1954         and its environment. ideally, most places supporting callback
1955         functions will simply take a GClosure* pointer and thus unify
1956         callback environments wrg destroy notification etc.
1957         GClosure provides destroy notifiers for arbitrary data pointers,
1958         reference counting, invalidation notification (it can be invalidated
1959         which is merely a deactivate state) and a marshallinbg abstraction.
1960         GCClosure is also provided in these files, they present a specialized
1961         GClosure implementation for C language callbacks.
1962
1963         * genum.c: macro cleanups.
1964         
1965         * gboxed.[hc]: new files, for boxed type abstraction.
1966         (g_boxed_copy): copy a boxed structure
1967         (g_boxed_free): free a boxed structure
1968         (g_value_set_boxed):
1969         (g_value_get_boxed): standard GValue functions for boxed types
1970         (g_boxed_type_register_static): convenience function for easy
1971         introduction of new G_TYPE_BOXED derivatives.
1972
1973         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
1974         for creation of new GParamSpec derived types.
1975
1976         * gtype.[hc]: many fixes, introduced ability to flag individual
1977         type nodes as ABSTRACT upon registration, added value_peek_pointer()
1978         to the value table to peek at GValue contents as a pointer for types
1979         that support this. fixed up GValue checks.
1980
1981         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
1982         to peek at the value contents as pointer.
1983
1984         * *.[hc]: adaptions to type macro fixes and changes in the type
1985         registration API.
1986
1987         * many const corrections over the place.
1988
1989 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
1990
1991         * gtype.c (g_type_conforms_to): this function basically behaves like
1992         and is_a check, except that it _additionally_ features interfaces
1993         for instantiatable types. enforce this in the second branch as well
1994         (`type' conforms_to `type') even if `type' is not an interface type.
1995
1996 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
1997
1998         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
1999
2000         * gtype.[hc]:
2001         * gobject.c:
2002         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
2003         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
2004         and G_TYPE_POINTER.
2005
2006 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
2007
2008         * gbsearcharray.[hc]: long standing needed generic implementation
2009         of a binary searchable, sorted and dynamically sized array.
2010
2011 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
2012
2013         * Makefile.am (BUILT_EXTRA_DIST): New variable.
2014         (dist-hook): Handle $(BUILT_EXTRA_DIST).
2015         (*): Remove traces of @STRIP_{BEGIN,END}@.
2016         
2017 2000-09-29  Martin Baulig  <baulig@suse.de>
2018         
2019         Several minor ANSI C fixes.
2020
2021         Added missing casts:
2022         * gtype.c (type_class_init): 
2023         `(gpointer) bnode->data->class.class_init_base'
2024         in call to g_slist_prepend() and
2025         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
2026
2027         * gobject.c: Put text following #endif into comments.
2028
2029 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
2030
2031         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
2032         dist from working.
2033
2034 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
2035
2036         * gobject.c (g_object_last_unref): Move call to
2037         g_type_free_instance() here from g_object_do_finalize,
2038         since g_type_free_instance() can unload the object's
2039         implementation.
2040
2041 2000-07-27  Tor Lillqvist  <tml@iki.fi>
2042
2043         * gobject.c: No, don't mark glib_debug_objects for export here,
2044         it's handled specially in gtktypeutils.c.
2045
2046         * gobject.def: Export g_type_fundamental_last (the function).
2047
2048 2000-07-26  Tor Lillqvist  <tml@iki.fi>
2049
2050         * gobject.def
2051         * gobject.c: Mark glib_debug_objects for export/import as it is
2052         used by GTK+.
2053
2054 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
2055
2056         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
2057         that extern variable clutter and avoiding further problems with thread
2058         safety.
2059
2060 2000-07-19  Tor Lillqvist  <tml@iki.fi>
2061
2062         * gparam.h
2063         * gvalue.h
2064         * gparam.c
2065         * gtype.c: Shut up Sun's picky compiler.
2066
2067 2000-07-14  Tor Lillqvist  <tml@iki.fi>
2068
2069         * gobject.def: Add g_type_get_plugin.
2070
2071 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
2072
2073         * gparam.c (g_param_value_defaults): default initialize the temporary
2074         default value, instead of nuking the caller's value contents.
2075
2076 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
2077
2078         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
2079
2080 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
2081
2082         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
2083
2084 2000-07-10  Tor Lillqvist  <tml@iki.fi>
2085
2086         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
2087         to guard inclusion of <unistd.h>.
2088
2089         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
2090         variable for export. Call the macro GOBJECT_VAR.
2091
2092         * gtype.c: Declare _g_type_fundamental_last for export here, too.
2093         (type_node_any_new): Use only constant expressions for sizeof
2094         operator (for instance MSVC requires this).
2095
2096         * makefile.mingw.in: Define GOBJECT_COMPILATION.
2097
2098 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
2099
2100         * genums.c: Move string.h include into the .c file
2101         instead of where it was in the .h file by mistake.
2102
2103 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
2104
2105         * Makefile.am (EXTRA_DIST): dist fixes.
2106
2107         * gobject.c: Add a global variable glib_debug_objects
2108         (not in header file) to control object tracing.
2109
2110 2000-07-01  Tor Lillqvist  <tml@iki.fi>
2111
2112         * gobject.def: Update added and renamed entry points.
2113
2114         * makefile.mingw.in: Add gvaluetypes.o.
2115
2116 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
2117
2118         * gobject.c:include string.h for memset
2119         * genums.h: include string.h for strcpy
2120         * gvalue.c: include string.h for memset, memcpy.
2121
2122 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
2123
2124         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
2125         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
2126         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
2127         added a GTypeValueTable* pointer to GTypeInfo structure for types
2128         to implement GValue handling functions.
2129         GTypeValueTable contains the following members:
2130           value_init(): initialize a GValue structure.
2131           value_free(): free GValue structure contents (optional).
2132           value_copy(): copy one GValue contents to another GValue structure of
2133           collect_type: varargs collection type for the first variable argument
2134           to be collected by collect_value().
2135           collect_value(): variable arguments collection function (optional).
2136           lcopy_type: varargs collection type for the first variable argument
2137           to be location copyied by lcopy_value().
2138           lcopy_value(): variable arguments location copy function (optional).
2139         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
2140         for a type node. ValueTables get inherited from parent types, unless
2141         overridden through the GTypeInfo structure. internally, GTypeValueTable
2142         support means an added overhead of one pointer per static or used
2143         dynamic type node.
2144         g_type_add_class_cache_func(): provide a cache_func/data pair to be
2145         called  prior to a type nodes last_unref() function, this can be used
2146         to prevent premature class destruction. multiple installed cache_func()
2147         will be chained upon last_unref() untill one of them returns TRUE.
2148         the cache_func()s have to check the class id passed in to figure whether
2149         they actually want to cache the class of this type (since all classes
2150         are routed through the cache_func() chain).
2151         g_type_remove_class_cache_func(): remove a previously installed
2152         cache_func/data pair. the cache maintained by this function has to be
2153         clear when calling g_type_remove_class_cache_func() to avoid leaks.
2154         g_type_class_unref_uncached(): class unref function for cache_func()
2155         implementations, unreferences a class omitting the cache chain (and
2156         therefore unref->cache->unref->... loops).
2157
2158         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
2159         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
2160         double and string.
2161
2162         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
2163         GTypeValueTable is provided for this type.
2164         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
2165         g_value_set_default() and g_values_cmp() as these are supplied by the
2166         GParamSpec API now.
2167         moved g_values_exchange() into the "implementation details" section,
2168         since it just provides the underlying functionality for
2169         g_value_convert().
2170
2171         * gvaluecollector.h: renamed the varargs value container from
2172         GParamCValue to GTypeCValue as the value collection methods are
2173         supplied by the type system now.
2174         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
2175         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
2176         GParamSpec structure now.
2177
2178         * genums.h: macros cleanups/fixes.
2179
2180         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
2181         and assorted g_value_{s|g}et_{enum|flags}() implementations.
2182
2183         * gobject.[hc]:
2184         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
2185         and g_value_{s|g}et_object().
2186
2187         * gparam.[hc]: reduced class to value_set_default(),
2188         value_validate() and values_cmp(). also parameters now need to fill
2189         in a GType value_type; field to indicate the GValue type they
2190         are handling. provide g_param_value_set_default(),
2191         g_param_value_defaults(), g_param_value_validate() and
2192         g_param_values_cmp().
2193
2194         * gparamspecs.[hc]: got rid of the g_value_* functions and
2195         the G_IS_VALUE_* macros. adapted param spec implementations
2196         according to the GParamSpecClass changes.
2197
2198 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
2199
2200         * gtype.c (type_class_init): fetch the nth iface entry of the
2201         type node in the nth loop iteration, not alwys the first.
2202         bug discovered by Walt Pohl <cher@suitware.com>.
2203         (type_data_finalize_class_ifaces): same here, cut and paste
2204         rulez.
2205
2206 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
2207
2208         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
2209         is found properly when build srcdir != builddir. (Patch from
2210         Eric Lemings)
2211
2212 2000-05-13  Tor Lillqvist  <tml@iki.fi>
2213
2214         * makefile.mingw.in
2215         * gobject.def
2216         * gobject.rc.in: New files, for Win32 (mingw) build.
2217
2218         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
2219         corresponding non-*.in files.
2220
2221         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
2222         export/import from DLL.
2223
2224 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
2225
2226         * gtype.h: add reserved fundamental ids for gtk types (for transition
2227         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
2228
2229 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
2230
2231         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
2232         n_params prior to destructing them.
2233
2234 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
2235
2236         * fixed a couple of bugs in the initial parameter/object
2237         implementations, after getting beast running on GObject and GValue.
2238
2239 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
2240
2241         * glib-gobject.[hc]: completed parameter set/get implementations,
2242         along with asyncronous parameter changed notification queue.
2243
2244 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
2245
2246         * glib-gobject.[hc]: GObject implementation, that is facilities
2247         for setting/getting quarked data and reference counting.
2248
2249         * glib-gparamspecs.[hc]: first actuall parameter implementations
2250         for GLib, so far we have: char, uchar, bool, int, uint, long,
2251         ulong, enum, flags, float, double, string and object. each of these
2252         GParamSpecs is a new instantiatable type in its own respect,
2253         so the .c file derives 13 new types from G_TYPE_PARAM and
2254         defines over 50 (*2) conversion facilities.
2255
2256         * glib-gvaluecollector.h: generic varargs handling stubs for
2257         GParamSpecs, private header file (does get installed for
2258         inclusion into user code though).
2259
2260         * glib-gvalue.[hc]: GValue functionality implementation.
2261
2262         * glib-gparam.[hc]: basis GParamSpec implementation for
2263         the virtual base type G_TYPE_PARAM.
2264
2265         * glib-genums.[hc]: enum/flags type implementation, based on
2266         bseenum.[hc].
2267
2268         * glib-gtype.[hc]: GLib Type System implementation, heavily
2269         based on BSE's dynamic type system.