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