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