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