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