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