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