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