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