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