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