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