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