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