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