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