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