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