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