set the value_type in the param spec; closes bug 40210
[platform/upstream/glib.git] / gobject / ChangeLog
1 2001-01-05  Havoc Pennington  <hp@redhat.com>
2
3         * gparamspecs.c (g_param_spec_enum): set the value_type in the
4         param spec; closes bug 40210
5         (g_param_spec_flags): ditto for flags
6
7 2001-01-03  Alexander Larsson  <alexl@redhat.com>
8
9         * gobject.c:
10         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
11
12 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
13
14         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
15         fucntionality if DISABLE_MEM_POOLS is defined.
16
17         * gtype.c: honour DISABLE_MEM_POOLS.
18
19         * gsignal.c (g_signal_init): flag signal key bsearch array with
20         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
21         DISABLE_MEM_POOLS.
22
23         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
24                                                        G_PARAM_WRITABLE).
25
26 2000-12-15  Tor Lillqvist  <tml@iki.fi>
27
28         * gobject.def: Update.
29
30 2000-12-15  Havoc Pennington  <hp@pobox.com>
31
32         * gobject.c (g_object_do_class_init): use g_signal_newc
33
34         * gsignal.c (g_signal_newc): convenience function for signals
35         created from C
36         (g_signal_new_valist): added
37         (g_signal_new): removed
38
39 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
40
41         * gparam.[hc]: add an instance member value_type so the default
42         value of the pspec class can be overridden.
43
44 2000-12-14  Tor Lillqvist  <tml@iki.fi>
45
46         * makefile.mingw.in: Update, include parts from Makefile.am to
47         build gmarshal.[ch]. Some day, we won't need these separate
48         makefiles for Win32 compilation. I hope.
49
50         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
51         here, it would require Unixish tools. MSVC users building from CVS
52         sources are out of luck.
53         
54         * gobject.def: Update.
55
56 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
57
58         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
59
60         * gobject.[hc]: minor fixes.
61
62 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
63
64         * Makefile.am: _never_ touch oldest-source-stamp.
65         
66         * gobject.[hc]: construct property handling fixes/improvements.
67         fixed trailer handling in get/set property.
68         
69         * gparam.[hc]: implement param spec pool, got rid of param spec
70         hashtable. the most prominent change is that e deal with type
71         prefixes here.
72         
73 2000-12-12  Elliot Lee  <sopwith@redhat.com>
74
75         * Makefile.am:
76           . You have to 'touch oldest-source-stamp' if you want to avoid having
77           the Makefile constantly rebuild itself.
78           . Fix marshaller generation rules to work with srcdir != builddir
79             (there were issues with trying to run "./glib-genmarshal", etc.)
80
81 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
82
83         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
84         
85         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
86         convenience macro.
87         
88         * Makefile.am: cleanups, marshaller generation rules.
89         
90         * gmarshal.[hc]: new files with GRuntime standard marshallers.
91         
92         * glib-genmarshal.c: fix log domain, support gruntime standard 
93         marshallers, suport G_TYPE_PARAM, come with extern "C" and
94         #include gmarshal.h.
95         
96         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
97         
98         * gobject.[hc]: implement object constructor. rework parameter
99         changed notification queueing, we support queue freezes now and
100         don't dispatch from an idle handler anymore.
101         parameter->property rename hassle.
102         implemented ::properties_changed and ::notify::* signals for
103         property change notification (the later supports property names
104         as details). added signal connection and named data properties.
105         (g_signal_connect_object): new function to setup while_alive
106         connections.
107         (g_object_class_install_property): sink properties now, since they
108         are initially floating.
109         (g_object_steal_data):
110         (g_object_set_data_full):
111         (g_object_set_data):
112         (g_object_get_data): set/get data by using g_datalist_*() functions
113         directly.
114         (g_object_queue_param_changed): nuked.
115         (g_object_freeze_notify): start queueing of property changes (freeze/
116         thaw calls stack).
117         (g_object_notify): announce changes of a certain property directly.
118         (g_object_thaw_notify): process queue of property changes, therefore
119         emitting GObject::notify::detail with detail being the changed
120         properties names.
121         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
122         G_WARN_INVALID_PARAM_ID().
123         
124         * gparam.[hc]: param specs are now initially floating and need to be
125         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
126         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
127         required by GObjectClass.constructor().
128         
129         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
130         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
131         and G_TYPE_CCALLBACK respectively.
132         
133         * gsignal.[hc]: cleanups.
134         (signal_id_lookup): after walking the anchestry, try interfaces as well.
135         (g_signal_new): new function to create signals from varargs type list.
136         (g_signal_connect_closure): closure connection variant that works from
137         signal name+detail.
138         (g_signal_connect_data): c handler connection variant that works from
139         signal name+detail.
140         (g_signal_emit_valist): emit signal for an instance with paraneters
141         collected from a va_list.
142         (g_signal_emit): emit signal, taking parameters from varargs list.
143         (g_signal_emit_by_name): same as g_signal_emit, working from
144         signal name+detail.
145         (signal_emit_R): return whether return_value needs to be altered.
146         
147         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
148         the points that need to reflect the upcoming rename.
149         melt g_type_conforms_to() functionality into g_type_is_a(), as that
150         is what we really want (liskov substitution principle).
151         assorted changes to other files due to conforms_to->is_a.
152
153         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
154         from an instantiatable type via the value_table's collect_value()
155         function (based on an idea from James Henstridge <james@daa.com.au>).
156         cleanups/fixes.
157         
158         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
159
160 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
161
162         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
163         NULL nodes if C handlers are searched for specific signals.
164
165 2000-11-28  Elliot Lee  <sopwith@redhat.com>
166
167         * gsignal.c: Fix warnings about possible use of uninitialized
168         variables, and fix logic that would leave 'node' unset in cases
169         that it might be used in.
170
171         * glib-genmarshal.c: Fix warning about printf format.
172
173 2000-11-28  Tor Lillqvist  <tml@iki.fi>
174
175         * gboxed.c: Include <string.h> for memset ().
176
177 2000-11-22  Tor Lillqvist  <tml@iki.fi>
178
179         * gobject.def: Update.
180
181 2000-11-20  Havoc Pennington  <hp@redhat.com>
182
183         * gobject.c (g_object_get_data)
184         (g_object_set_data)
185         (g_object_set_data_full)
186         (g_object_steal_data): More convenient data-setting functions
187
188 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
189
190         * gtypemodule.c (g_type_module_use): If loading the
191         module fails, don't increment the use count.
192
193 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
194
195         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
196         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
197         Zeeman <maas@wanadoo.nl>.
198
199 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
200
201         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
202
203 2000-11-11  Tor Lillqvist  <tml@iki.fi>
204
205         * gtypemodule.c: Include stdlib.h for exit().
206
207         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
208
209         * gobject.def: Add missing functions.
210
211 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
212
213         * Makefile.am gtypemodule.[ch]: New basic implementation of
214         GTypePlugin interface as a GObject. Dynamically loaded modules can
215         register any number of types and interface on the module.
216
217 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
218
219         * gsignal.c (handlers_find): When appending handlers and
220         not matching on signal_id, use hlist->signal_id instead of 
221         signal_id. Having the correct signal_id when unreffing
222         the handlers makes things work a lot better.
223
224 2000-11-05  Tor Lillqvist  <tml@iki.fi>
225
226         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
227
228         * gobject.def: Update.
229
230 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
231
232         * gsignal.c:
233         fixed a bag full of subtle bugs of immensive screw-up potential in
234         handlers_find(), luckily no one found out about them yet ;)
235         fixed signal_handlers_foreach_matched_R() so it operates on an
236         initial handler list snapshot provided by handlers_find() to work
237         around general reentrancy problems and to avoid multiple callback()
238         invocations on the same handlers.
239         this code is now officially 80% bug free (10% remaining for interface
240         types, and 10% remaining for destroyed signals ;)
241         
242 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
243
244         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
245
246         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
247         implementation that provides the API required by GType to deal with
248         dynamically loadable types.
249
250         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
251
252 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
253
254         * gsignal.[hc]: prefix internal functions with '_'. renamed
255         g_signal_connect_closure() to g_signal_connect_closure_by_id().
256         added g_signal_parse_name() to retrive signal_id and detail quark
257         from a signal name (internal).
258
259 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
260
261         * gobject.c (g_object_base_class_finalize): destroy all signals that
262         the finalized obejct type introduced.
263
264         * gsignal.c (g_signals_destroy): don't require itype to have
265         signals.
266
267         * gobject.c (g_object_do_finalize): make sure all signal handlers
268         are destroyed.
269
270         * gsignal.[hc]:
271         (g_signal_handler_find): only match on non-0 masks.
272         (g_signal_handlers_block_matched):
273         (g_signal_handlers_unblock_matched):
274         (g_signal_handlers_disconnect_matched): new functions to block/unblock
275         or disconnect handlers in groups.
276
277 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
278
279         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
280         made both functions return gboolean just for the little extra
281         standard conformance now that GEqualFunc is introduced.
282
283 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
284
285         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
286         added, the doc system would ignore it anyways (for some reason not
287         aparent to me).
288
289 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
290
291         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
292         added required mutex locks.
293
294 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
295
296         * gsignal.c (g_type_signals): Fix problem where signals
297         with "_" in them appeared twice in the result array.
298
299 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
300
301         * gsignal.h: Add g_type_signals() - a function to list
302         all signals for a given type.
303
304 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
305
306         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
307         for post_marshal guard which was off at 0.
308
309 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
310
311         * gobject.[hc]: doh, fix argument order in for
312         g_cclosure_new_object_swap and g_cclosure_new_object.
313
314 2000-10-28  Tor Lillqvist  <tml@iki.fi>
315
316         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
317
318         * glib-genmarshal.c: Conditionalise include of unistd.h.
319         Include <io.h> on Win32.
320
321         * gobject.def: Add some missing entry points.
322
323 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
324
325         * gsignal.[hc]: publically define GSignalInvocationHint structure
326         that gets passed in to closure invocations. added signal details.
327         renamed GSignalType to GSignalFlags to comply with conventions.
328         quite some cleanups and minor fixes. avoid uneccessary handler list
329         walks upon invokation of after handlers. relookup handler list for
330         restarted emissions. preliminary abort normal handler invokation if
331         after handler is encountered.
332
333         * glib-genmarshal.c:
334         * gclosure.[hc]: moved invocation_hint to the end of the
335         g_closure_invoke() arguments as sugegsted by kenelson.
336         also made it a gpointer to be more generic. the invocation_hint
337         is a caller specific thing that can be used to pass additional
338         data in to closure invocations as documented with the caller
339         invoking the closure.
340
341 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
342
343         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
344         by havoc.
345
346         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
347         g_signal_lookup() would be called with the signal lock being
348         held. reported by james henstridge.
349
350         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
351         reported by owen.
352
353 2000-10-26  Tor Lillqvist  <tml@iki.fi>
354
355         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
356         arithmetic on void pointer, label without statement following.
357
358         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
359         result of sizeof operator, it can be unsigned. Cast first to
360         gssize.
361
362         * gobject.def: Add new functions.
363
364         * makefile.{mingw,msc}.in: Add new objects.
365
366 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
367
368         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
369         prevents 'make dist' from working.
370
371 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
372
373         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
374         casts from void * since this will get included from C++ too
375         at times.
376         
377 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
378
379         * gvaluetypes.[hc]: added g_value_set_static_string().
380
381         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
382
383 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
384
385         * gtype.c (g_type_free_instance): for the moment, freeing object
386         structures will fill their memory portion with 0xAA. there's a
387         FIXME there, remove this line at a later point.
388
389 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
390
391         * glib-genmarshal.1:
392         * glib-genmarshal.c: added publically installed marshaller generator.
393
394         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
395         interface VTable from instances.
396
397 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
398
399         * gobject.[hc]: new functions for closure maintenance:
400         (g_object_watch_closure): maintain validity of the object and
401         the closure for objects that are used as data part of a closure.
402         (g_cclosure_new_object): convenience function to create C closures
403         that have an object as data argument.
404         (g_closure_new_object): convenience function to create closures
405         that have an object as data argument.
406
407         * gclosure.[hc]: implementation of GClosure mechanism.
408         a closure is basically an encapsulation of a callback function
409         and its environment. ideally, most places supporting callback
410         functions will simply take a GClosure* pointer and thus unify
411         callback environments wrg destroy notification etc.
412         GClosure provides destroy notifiers for arbitrary data pointers,
413         reference counting, invalidation notification (it can be invalidated
414         which is merely a deactivate state) and a marshallinbg abstraction.
415         GCClosure is also provided in these files, they present a specialized
416         GClosure implementation for C language callbacks.
417
418         * genum.c: macro cleanups.
419         
420         * gboxed.[hc]: new files, for boxed type abstraction.
421         (g_boxed_copy): copy a boxed structure
422         (g_boxed_free): free a boxed structure
423         (g_value_set_boxed):
424         (g_value_get_boxed): standard GValue functions for boxed types
425         (g_boxed_type_register_static): convenience function for easy
426         introduction of new G_TYPE_BOXED derivatives.
427
428         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
429         for creation of new GParamSpec derived types.
430
431         * gtype.[hc]: many fixes, introduced ability to flag individual
432         type nodes as ABSTRACT upon registration, added value_peek_pointer()
433         to the value table to peek at GValue contents as a pointer for types
434         that support this. fixed up GValue checks.
435
436         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
437         to peek at the value contents as pointer.
438
439         * *.[hc]: adaptions to type macro fixes and changes in the type
440         registration API.
441
442         * many const corrections over the place.
443
444 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
445
446         * gtype.c (g_type_conforms_to): this function basically behaves like
447         and is_a check, except that it _additionally_ features interfaces
448         for instantiatable types. enforce this in the second branch as well
449         (`type' conforms_to `type') even if `type' is not an interface type.
450
451 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
452
453         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
454
455         * gtype.[hc]:
456         * gobject.c:
457         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
458         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
459         and G_TYPE_POINTER.
460
461 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
462
463         * gbsearcharray.[hc]: long standing needed generic implementation
464         of a binary searchable, sorted and dynamically sized array.
465
466 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
467
468         * Makefile.am (BUILT_EXTRA_DIST): New variable.
469         (dist-hook): Handle $(BUILT_EXTRA_DIST).
470         (*): Remove traces of @STRIP_{BEGIN,END}@.
471         
472 2000-09-29  Martin Baulig  <baulig@suse.de>
473         
474         Several minor ANSI C fixes.
475
476         Added missing casts:
477         * gtype.c (type_class_init): 
478         `(gpointer) bnode->data->class.class_init_base'
479         in call to g_slist_prepend() and
480         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
481
482         * gobject.c: Put text following #endif into comments.
483
484 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
485
486         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
487         dist from working.
488
489 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
490
491         * gobject.c (g_object_last_unref): Move call to
492         g_type_free_instance() here from g_object_do_finalize,
493         since g_type_free_instance() can unload the object's
494         implementation.
495
496 2000-07-27  Tor Lillqvist  <tml@iki.fi>
497
498         * gobject.c: No, don't mark glib_debug_objects for export here,
499         it's handled specially in gtktypeutils.c.
500
501         * gobject.def: Export g_type_fundamental_last (the function).
502
503 2000-07-26  Tor Lillqvist  <tml@iki.fi>
504
505         * gobject.def
506         * gobject.c: Mark glib_debug_objects for export/import as it is
507         used by GTK+.
508
509 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
510
511         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
512         that extern variable clutter and avoiding further problems with thread
513         safety.
514
515 2000-07-19  Tor Lillqvist  <tml@iki.fi>
516
517         * gparam.h
518         * gvalue.h
519         * gparam.c
520         * gtype.c: Shut up Sun's picky compiler.
521
522 2000-07-14  Tor Lillqvist  <tml@iki.fi>
523
524         * gobject.def: Add g_type_get_plugin.
525
526 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
527
528         * gparam.c (g_param_value_defaults): default initialize the temporary
529         default value, instead of nuking the caller's value contents.
530
531 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
532
533         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
534
535 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
536
537         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
538
539 2000-07-10  Tor Lillqvist  <tml@iki.fi>
540
541         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
542         to guard inclusion of <unistd.h>.
543
544         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
545         variable for export. Call the macro GOBJECT_VAR.
546
547         * gtype.c: Declare _g_type_fundamental_last for export here, too.
548         (type_node_any_new): Use only constant expressions for sizeof
549         operator (for instance MSVC requires this).
550
551         * makefile.mingw.in: Define GOBJECT_COMPILATION.
552
553 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
554
555         * genums.c: Move string.h include into the .c file
556         instead of where it was in the .h file by mistake.
557
558 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
559
560         * Makefile.am (EXTRA_DIST): dist fixes.
561
562         * gobject.c: Add a global variable glib_debug_objects
563         (not in header file) to control object tracing.
564
565 2000-07-01  Tor Lillqvist  <tml@iki.fi>
566
567         * gobject.def: Update added and renamed entry points.
568
569         * makefile.mingw.in: Add gvaluetypes.o.
570
571 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
572
573         * gobject.c:include string.h for memset
574         * genums.h: include string.h for strcpy
575         * gvalue.c: include string.h for memset, memcpy.
576
577 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
578
579         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
580         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
581         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
582         added a GTypeValueTable* pointer to GTypeInfo structure for types
583         to implement GValue handling functions.
584         GTypeValueTable contains the following members:
585           value_init(): initialize a GValue structure.
586           value_free(): free GValue structure contents (optional).
587           value_copy(): copy one GValue contents to another GValue structure of
588           collect_type: varargs collection type for the first variable argument
589           to be collected by collect_value().
590           collect_value(): variable arguments collection function (optional).
591           lcopy_type: varargs collection type for the first variable argument
592           to be location copyied by lcopy_value().
593           lcopy_value(): variable arguments location copy function (optional).
594         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
595         for a type node. ValueTables get inherited from parent types, unless
596         overridden through the GTypeInfo structure. internally, GTypeValueTable
597         support means an added overhead of one pointer per static or used
598         dynamic type node.
599         g_type_add_class_cache_func(): provide a cache_func/data pair to be
600         called  prior to a type nodes last_unref() function, this can be used
601         to prevent premature class destruction. multiple installed cache_func()
602         will be chained upon last_unref() untill one of them returns TRUE.
603         the cache_func()s have to check the class id passed in to figure whether
604         they actually want to cache the class of this type (since all classes
605         are routed through the cache_func() chain).
606         g_type_remove_class_cache_func(): remove a previously installed
607         cache_func/data pair. the cache maintained by this function has to be
608         clear when calling g_type_remove_class_cache_func() to avoid leaks.
609         g_type_class_unref_uncached(): class unref function for cache_func()
610         implementations, unreferences a class omitting the cache chain (and
611         therefore unref->cache->unref->... loops).
612
613         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
614         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
615         double and string.
616
617         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
618         GTypeValueTable is provided for this type.
619         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
620         g_value_set_default() and g_values_cmp() as these are supplied by the
621         GParamSpec API now.
622         moved g_values_exchange() into the "implementation details" section,
623         since it just provides the underlying functionality for
624         g_value_convert().
625
626         * gvaluecollector.h: renamed the varargs value container from
627         GParamCValue to GTypeCValue as the value collection methods are
628         supplied by the type system now.
629         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
630         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
631         GParamSpec structure now.
632
633         * genums.h: macros cleanups/fixes.
634
635         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
636         and assorted g_value_{s|g}et_{enum|flags}() implementations.
637
638         * gobject.[hc]:
639         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
640         and g_value_{s|g}et_object().
641
642         * gparam.[hc]: reduced class to value_set_default(),
643         value_validate() and values_cmp(). also parameters now need to fill
644         in a GType value_type; field to indicate the GValue type they
645         are handling. provide g_param_value_set_default(),
646         g_param_value_defaults(), g_param_value_validate() and
647         g_param_values_cmp().
648
649         * gparamspecs.[hc]: got rid of the g_value_* functions and
650         the G_IS_VALUE_* macros. adapted param spec implementations
651         according to the GParamSpecClass changes.
652
653 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
654
655         * gtype.c (type_class_init): fetch the nth iface entry of the
656         type node in the nth loop iteration, not alwys the first.
657         bug discovered by Walt Pohl <cher@suitware.com>.
658         (type_data_finalize_class_ifaces): same here, cut and paste
659         rulez.
660
661 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
662
663         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
664         is found properly when build srcdir != builddir. (Patch from
665         Eric Lemings)
666
667 2000-05-13  Tor Lillqvist  <tml@iki.fi>
668
669         * makefile.mingw.in
670         * gobject.def
671         * gobject.rc.in: New files, for Win32 (mingw) build.
672
673         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
674         corresponding non-*.in files.
675
676         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
677         export/import from DLL.
678
679 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
680
681         * gtype.h: add reserved fundamental ids for gtk types (for transition
682         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
683
684 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
685
686         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
687         n_params prior to destructing them.
688
689 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
690
691         * fixed a couple of bugs in the initial parameter/object
692         implementations, after getting beast running on GObject and GValue.
693
694 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
695
696         * glib-gobject.[hc]: completed parameter set/get implementations,
697         along with asyncronous parameter changed notification queue.
698
699 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
700
701         * glib-gobject.[hc]: GObject implementation, that is facilities
702         for setting/getting quarked data and reference counting.
703
704         * glib-gparamspecs.[hc]: first actuall parameter implementations
705         for GLib, so far we have: char, uchar, bool, int, uint, long,
706         ulong, enum, flags, float, double, string and object. each of these
707         GParamSpecs is a new instantiatable type in its own respect,
708         so the .c file derives 13 new types from G_TYPE_PARAM and
709         defines over 50 (*2) conversion facilities.
710
711         * glib-gvaluecollector.h: generic varargs handling stubs for
712         GParamSpecs, private header file (does get installed for
713         inclusion into user code though).
714
715         * glib-gvalue.[hc]: GValue functionality implementation.
716
717         * glib-gparam.[hc]: basis GParamSpec implementation for
718         the virtual base type G_TYPE_PARAM.
719
720         * glib-genums.[hc]: enum/flags type implementation, based on
721         bseenum.[hc].
722
723         * glib-gtype.[hc]: GLib Type System implementation, heavily
724         based on BSE's dynamic type system.