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