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