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