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