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