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