dd73b5c094aead1e5b00319832311d8aa8b68df4
[platform/upstream/glib.git] / gobject / ChangeLog
1 2001-04-14  Hans Breuer  <hans@breuer.org>
2
3         * gobject.def : updated
4
5 Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
6
7         * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
8         we're valid (about to actually do marshalling).
9
10 Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
11
12         * NEWS: updates.
13
14 Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
15
16         * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
17         owner_type. the pspecs are not referenced, so the caller is
18         supposed to have some idea about owner_type not randomly
19         nuking his pspec's. if this is going to provide problems in
20         the future, we can either auto-ref the pspecs, or add a
21         _foreach variant, though the latter would have to invoke
22         the callback while pspec's mutex is acquired, so i just
23         went for the _list variant for now.
24
25         * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
26
27 Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
28
29         * gtype.h:
30         * gparamspecs.[hc]: applied patch from owen to implement
31         GParamSpecUnichar.
32
33 Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
34
35         * gtype.c (type_iface_retrive_holder_info_Wm): 
36         * gtypeplugin.c (g_type_plugin_complete_interface_info): 
37         * gtypemodule.c (g_type_module_complete_interface_info): 
38         change order of instance_type and interface_type so they match
39         the g_type_add_interface_*() API.
40
41         * gsignal.c (g_signal_emit_valist): always assign C return value
42         location, people depending on unaltered return values after emissions
43         that had no handlers to run need to use g_signal_emitv().
44
45         * gtype.[hc] (g_type_query): new function to allow querying of
46         class and object size (semantics like g_signal_query()).
47         currently the implementation is better held conservative so as to
48         only support types that are classed and static.
49
50 2001-03-29  Tor Lillqvist  <tml@iki.fi>
51
52         * gobject.def: Updates.
53
54 Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
55
56         * gobject.c (object_queue_property): only queue readable properties
57         for notification changes.
58
59 Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
60
61         * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
62
63 2001-03-21  Martin Baulig  <baulig@suse.de>
64
65         * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
66         argument.
67
68 2001-03-18  Tor Lillqvist  <tml@iki.fi>
69
70         * gobject.def: Correct some renamed functions.
71
72 Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
73
74         * gobject.c (g_object_get_property): minor bug-fix.
75
76         * gbsearcharray.[hc]: provide a macro for static initialization and
77         functions g_bsearch_array_new() and g_bsearch_array_destroy() for
78         dynamic allocations.
79         
80         * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
81         
82         * gclosure.[hc]: naming corrections.
83
84 Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
85
86         * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
87         a public function (was static in gobject.c before). it's a bit odd
88         to have that function here, especially since it requires extra includes,
89         but then it doesn't very well fit somewhere else either.
90
91         * gparamspecs.c: added default/max/min checks to param spec creation
92         functions.
93
94 2001-03-10  Tor Lillqvist  <tml@iki.fi>
95
96         * gobject.def: Add a couple of missing entries.
97
98         * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
99
100 Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
101
102         * testgruntime.c: test program. covers run first/last/cleanup signal
103         handlers, return value accumulator, signal string returns, and
104         interface types in signal arguments.
105
106         * gtype.c (g_type_value_table_peek): for interface types without
107         value table, try looking up a value table from an instantiatable
108         prerequisite type (this is safe as an interface may only have
109         one instantiatable prerequisiste).
110         (type_check_is_value_type_U): same here.
111
112         * gsignal.c (g_signal_newv): assert that return types never have
113         G_SIGNAL_TYPE_STATIC_SCOPE set.
114         (g_signal_newc): only create class closure if the class_offset is not
115         0.
116
117 Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
118
119         * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
120         for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
121         that wouldn't allow interface types.
122
123         * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
124         with bad implications and an off-by-one error.
125
126 Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
127
128         * gvaluetransform.c: Include <string.h> for memcpy.
129
130         * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
131         and ANSI-illegal ## token pasting.
132
133 Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
134
135         * gsignal.c: eek, fixed old hook detail storage code.
136
137 Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
138
139         * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
140
141         * gsignal.[hc]: fixed accumulator invocation, implemented emission
142         hooks. and no, neither of these callbacks are called via a closure,
143         language bindings can wrap the accumulator and emission hook
144         interface, they already get parameters marshalled into a GValue array.
145         (g_signal_connect): removed this function as its C specific, doesn't
146         cover the swapped argument, is too close to its broken original
147         gtk_signal_connect() and creates demand for _swapped, _after and
148         _swapped_after variants <brrr>.
149         (g_signal_connectc): convenience macro to connect a C handler
150         func with data, like the old g_signal_connect() plus swapped
151         argument.
152
153         * gtype.h:
154         * gboxed.c: added G_TYPE_VALUE boxed type.
155
156 Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
157
158         * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
159         to an ancestor of a child that already conforms to this interface.
160         currently we spew a warning here, should we be silent?
161         (g_type_interface_add_prerequisite): new function to add a prerequisite
162         type to an interface, that must succeed an instance is_a prerequisite
163         type check before the interface can be added to an instance. the
164         prerequisite types are also suuported in is_a checks of the interface.
165         (g_type_instance_is_a):
166         (g_type_check_instance_cast):
167         (g_type_check_instance): cleanups and optimizations.
168         (g_type_class_is_a):
169         (g_type_check_class_cast): same, also prevented these from accepting
170         interface types, as class structures don't nest interfaces.
171
172 2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
173
174         * Makefile.am: Avoid rebuilding everything everytime.
175
176 Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
177
178         * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
179         to contain an optional init function and a hint at whether the
180         boxed structure uses ref counting internally.
181         added g_value_set_boxed_take_ownership().
182         made G_TYPE_BOXED an abstract value type.
183
184         * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
185         types.
186
187         * glib-genmarshal.c: argument type changes, preparation for third-party
188         arg specification.
189
190         * gobject.[hc]: cleaned up get/set property code.
191         added g_strdup_value_contents() to improve warnings.
192
193         * gparam.[hc]: added g_param_value_convert(), taking over responsibility
194         of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
195         validation alterations may be valid a part of the property setting
196         process.
197
198         * gparamspecs.[hc]: made value comparisons stable (for sort applications).
199         added GParamSpecValueArray, a param spec for value arrays and
200         GParamSpecClosure. nuked the value exchange functions and
201         GParamSpecCCallback.
202
203         * gtype.[hc]: catch unintialized usages of the type system with
204         g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
205         to flag types that introduce a value table, but can't be used for
206         g_value_init(). cleaned up reserved type ids.
207
208         * gvalue.[hc]: code cleanups and saner checking.
209         nuked the value exchange API. implemented value transformations, we
210         can't really "convert" values, rather transforms are an anylogy to
211         C casts, real conversions need a param spec for validation, which is
212         why g_param_value_convert() does real conversions now.
213
214         * gvaluearray.[hc]: new files that implement a GValueArray, a struct
215         that can hold inhomogeneous arrays of value (to that extend that it
216         also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
217         this is exposed to the type system as a boxed type.
218
219         * gvaluetransform.c: new file implementing most of the former value
220         exchange functions as single-sided transformations.
221
222         * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
223         g_value_set_string_take_ownership().
224
225         * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
226
227         * *.[hc]: many fixes and cleanups.
228
229         * many warning improvements.
230
231 Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
232
233         * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
234         into G_VALUE_LCOPY(), this needs proper documenting.
235
236         * gparam.c: fixed G_PARAM_USER_MASK.
237
238         * gtype.c (type_data_make_W): 
239         (type_data_last_unref_Wm): fixed invalid memory freeing.
240
241         * gobject.c (g_object_last_unref): destroy signal handlers associated
242         with object, right before finalization.
243
244         * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
245         that don't actually support details.
246
247         * gobject.[hc]: got rid of property trailers. nuked GObject
248         properties "data" and the "signal" variants.
249         (g_object_connect): new convenience function to do multiple
250         signal connections at once.
251         (g_object_disconnect): likewise, for disconnections.
252
253         * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
254
255         * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
256         as private (the latter got renamed from g_value_get_as_pointer()).
257
258 2001-02-21  Tor Lillqvist  <tml@iki.fi>
259
260         * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
261
262         * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
263         libtool with -no-undefined for Win32 and Cygwin.
264
265 Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
266
267         * gsignal.h (g_signal_connect): Add g_signal_connect define to
268         make porting from gtk_signal_connect easy.
269
270         * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
271         (instance) instead of node->itype when initting the value.
272
273 2001-02-17  Havoc Pennington  <hp@pobox.com>
274
275         Applied patch from Soeren Sandmann:
276         
277         * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
278
279         * gtype.c (g_type_name): G_CONST_RETURN
280
281         * gsignal.c (g_signal_name): G_CONST_RETURN
282
283         * gobject-query.c (main): const fix
284
285 Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
286
287         * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
288         G_ENUM_CLASS_TYPE() macro.
289
290 Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
291
292         * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
293         lcopy_value() in the GTypeValueTable. the collect functions are now
294         called only once per value, collect_format/lcopy_format are strings
295         that enlist all necessary GTypeCValues to be varargs-collected.
296
297         * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
298         a value shouldn't copy its contents.
299
300         * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
301         macros to carry an additional argument (flags) that can be used
302         to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
303
304         * *.c: adapted collect_value() and lcopy_value() functions to the new
305         prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
306
307         * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
308         be passed along (ORed) with the parameter types, indicating that the
309         emission arguments are to be considered static for the scope of the
310         emission. should be used with care and only if the caller knows that
311         a parameter cannot be destroyed/freed from signal handlers connected
312         to an emission.
313
314 Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
315
316         * gclosure.c:
317         (g_closure_ref):
318         (g_closure_sink): make closure sinking explicit.
319
320         * gsignal.c:
321         (g_signal_connect_data): 
322         (g_signal_connect_closure): 
323         (g_signal_connect_closure_by_id): 
324         (g_signal_newv): perform explicit closure sinking.
325
326 Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
327
328         * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
329
330 2001-02-04  Tor Lillqvist  <tml@iki.fi>
331
332         * gobject.def: Remove glib_debug_objects.
333
334 Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
335
336         * gtype.[hc]: changed g_type_init() to take debugging flags
337         initially, a combination of G_TYPE_DEBUG_OBJECTS and
338         G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
339         here, but basically g_type_int() serves as initialization
340         fucntion for all of GType, GObject, GSignal, so what the heck.
341
342         * gobject.c: special case debugging code properly.
343         changed glib_trap_object_ref to g_trap_object_ref.
344
345         * gsignal.c: add signal emission debugging abilities, along with
346         a new trap object g_trap_instance_signals.
347
348 2001-02-04  Tor Lillqvist  <tml@iki.fi>
349
350         * Makefile.am (progs_LDADD): Change order of libs to libgobject
351         first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
352
353 Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
354
355         * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
356
357         * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
358         number that's supposed to be left untouched (preserved mainly
359         for the signal code).
360
361         * *.c: added thread safety code, based on an old patch from sebastian.
362         the remaining thread safety issues are now datalists on pspecs (to be
363         solved im gdataset.c) and gvalue.c where locking concerns value exchange
364         functionality only, and that's soon to be revised.
365
366 2001-01-27  Tor Lillqvist  <tml@iki.fi>
367
368         * makefile.msc.in: Don't try to compile gmarshal.c on its own.
369
370 2001-01-24    <alexl@redhat.com>
371
372         * gclosure.c (g_closure_unref):
373         Don't leak closure->notifiers.
374
375 2001-01-05  Havoc Pennington  <hp@redhat.com>
376
377         * gparamspecs.c (g_param_spec_enum): set the value_type in the
378         param spec; closes bug 40210
379         (g_param_spec_flags): ditto for flags
380
381 2001-01-03  Alexander Larsson  <alexl@redhat.com>
382
383         * gobject.c:
384         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
385
386 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
387
388         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
389         fucntionality if DISABLE_MEM_POOLS is defined.
390
391         * gtype.c: honour DISABLE_MEM_POOLS.
392
393         * gsignal.c (g_signal_init): flag signal key bsearch array with
394         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
395         DISABLE_MEM_POOLS.
396
397         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
398                                                        G_PARAM_WRITABLE).
399
400 2000-12-15  Tor Lillqvist  <tml@iki.fi>
401
402         * gobject.def: Update.
403
404 2000-12-15  Havoc Pennington  <hp@pobox.com>
405
406         * gobject.c (g_object_do_class_init): use g_signal_newc
407
408         * gsignal.c (g_signal_newc): convenience function for signals
409         created from C
410         (g_signal_new_valist): added
411         (g_signal_new): removed
412
413 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
414
415         * gparam.[hc]: add an instance member value_type so the default
416         value of the pspec class can be overridden.
417
418 2000-12-14  Tor Lillqvist  <tml@iki.fi>
419
420         * makefile.mingw.in: Update, include parts from Makefile.am to
421         build gmarshal.[ch]. Some day, we won't need these separate
422         makefiles for Win32 compilation. I hope.
423
424         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
425         here, it would require Unixish tools. MSVC users building from CVS
426         sources are out of luck.
427         
428         * gobject.def: Update.
429
430 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
431
432         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
433
434         * gobject.[hc]: minor fixes.
435
436 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
437
438         * Makefile.am: _never_ touch oldest-source-stamp.
439         
440         * gobject.[hc]: construct property handling fixes/improvements.
441         fixed trailer handling in get/set property.
442         
443         * gparam.[hc]: implement param spec pool, got rid of param spec
444         hashtable. the most prominent change is that e deal with type
445         prefixes here.
446         
447 2000-12-12  Elliot Lee  <sopwith@redhat.com>
448
449         * Makefile.am:
450           . You have to 'touch oldest-source-stamp' if you want to avoid having
451           the Makefile constantly rebuild itself.
452           . Fix marshaller generation rules to work with srcdir != builddir
453             (there were issues with trying to run "./glib-genmarshal", etc.)
454
455 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
456
457         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
458         
459         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
460         convenience macro.
461         
462         * Makefile.am: cleanups, marshaller generation rules.
463         
464         * gmarshal.[hc]: new files with GRuntime standard marshallers.
465         
466         * glib-genmarshal.c: fix log domain, support gruntime standard 
467         marshallers, suport G_TYPE_PARAM, come with extern "C" and
468         #include gmarshal.h.
469         
470         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
471         
472         * gobject.[hc]: implement object constructor. rework parameter
473         changed notification queueing, we support queue freezes now and
474         don't dispatch from an idle handler anymore.
475         parameter->property rename hassle.
476         implemented ::properties_changed and ::notify::* signals for
477         property change notification (the later supports property names
478         as details). added signal connection and named data properties.
479         (g_signal_connect_object): new function to setup while_alive
480         connections.
481         (g_object_class_install_property): sink properties now, since they
482         are initially floating.
483         (g_object_steal_data):
484         (g_object_set_data_full):
485         (g_object_set_data):
486         (g_object_get_data): set/get data by using g_datalist_*() functions
487         directly.
488         (g_object_queue_param_changed): nuked.
489         (g_object_freeze_notify): start queueing of property changes (freeze/
490         thaw calls stack).
491         (g_object_notify): announce changes of a certain property directly.
492         (g_object_thaw_notify): process queue of property changes, therefore
493         emitting GObject::notify::detail with detail being the changed
494         properties names.
495         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
496         G_WARN_INVALID_PARAM_ID().
497         
498         * gparam.[hc]: param specs are now initially floating and need to be
499         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
500         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
501         required by GObjectClass.constructor().
502         
503         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
504         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
505         and G_TYPE_CCALLBACK respectively.
506         
507         * gsignal.[hc]: cleanups.
508         (signal_id_lookup): after walking the anchestry, try interfaces as well.
509         (g_signal_new): new function to create signals from varargs type list.
510         (g_signal_connect_closure): closure connection variant that works from
511         signal name+detail.
512         (g_signal_connect_data): c handler connection variant that works from
513         signal name+detail.
514         (g_signal_emit_valist): emit signal for an instance with paraneters
515         collected from a va_list.
516         (g_signal_emit): emit signal, taking parameters from varargs list.
517         (g_signal_emit_by_name): same as g_signal_emit, working from
518         signal name+detail.
519         (signal_emit_R): return whether return_value needs to be altered.
520         
521         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
522         the points that need to reflect the upcoming rename.
523         melt g_type_conforms_to() functionality into g_type_is_a(), as that
524         is what we really want (liskov substitution principle).
525         assorted changes to other files due to conforms_to->is_a.
526
527         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
528         from an instantiatable type via the value_table's collect_value()
529         function (based on an idea from James Henstridge <james@daa.com.au>).
530         cleanups/fixes.
531         
532         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
533
534 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
535
536         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
537         NULL nodes if C handlers are searched for specific signals.
538
539 2000-11-28  Elliot Lee  <sopwith@redhat.com>
540
541         * gsignal.c: Fix warnings about possible use of uninitialized
542         variables, and fix logic that would leave 'node' unset in cases
543         that it might be used in.
544
545         * glib-genmarshal.c: Fix warning about printf format.
546
547 2000-11-28  Tor Lillqvist  <tml@iki.fi>
548
549         * gboxed.c: Include <string.h> for memset ().
550
551 2000-11-22  Tor Lillqvist  <tml@iki.fi>
552
553         * gobject.def: Update.
554
555 2000-11-20  Havoc Pennington  <hp@redhat.com>
556
557         * gobject.c (g_object_get_data)
558         (g_object_set_data)
559         (g_object_set_data_full)
560         (g_object_steal_data): More convenient data-setting functions
561
562 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
563
564         * gtypemodule.c (g_type_module_use): If loading the
565         module fails, don't increment the use count.
566
567 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
568
569         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
570         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
571         Zeeman <maas@wanadoo.nl>.
572
573 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
574
575         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
576
577 2000-11-11  Tor Lillqvist  <tml@iki.fi>
578
579         * gtypemodule.c: Include stdlib.h for exit().
580
581         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
582
583         * gobject.def: Add missing functions.
584
585 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
586
587         * Makefile.am gtypemodule.[ch]: New basic implementation of
588         GTypePlugin interface as a GObject. Dynamically loaded modules can
589         register any number of types and interface on the module.
590
591 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
592
593         * gsignal.c (handlers_find): When appending handlers and
594         not matching on signal_id, use hlist->signal_id instead of 
595         signal_id. Having the correct signal_id when unreffing
596         the handlers makes things work a lot better.
597
598 2000-11-05  Tor Lillqvist  <tml@iki.fi>
599
600         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
601
602         * gobject.def: Update.
603
604 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
605
606         * gsignal.c:
607         fixed a bag full of subtle bugs of immensive screw-up potential in
608         handlers_find(), luckily no one found out about them yet ;)
609         fixed signal_handlers_foreach_matched_R() so it operates on an
610         initial handler list snapshot provided by handlers_find() to work
611         around general reentrancy problems and to avoid multiple callback()
612         invocations on the same handlers.
613         this code is now officially 80% bug free (10% remaining for interface
614         types, and 10% remaining for destroyed signals ;)
615         
616 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
617
618         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
619
620         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
621         implementation that provides the API required by GType to deal with
622         dynamically loadable types.
623
624         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
625
626 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
627
628         * gsignal.[hc]: prefix internal functions with '_'. renamed
629         g_signal_connect_closure() to g_signal_connect_closure_by_id().
630         added g_signal_parse_name() to retrive signal_id and detail quark
631         from a signal name (internal).
632
633 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
634
635         * gobject.c (g_object_base_class_finalize): destroy all signals that
636         the finalized obejct type introduced.
637
638         * gsignal.c (g_signals_destroy): don't require itype to have
639         signals.
640
641         * gobject.c (g_object_do_finalize): make sure all signal handlers
642         are destroyed.
643
644         * gsignal.[hc]:
645         (g_signal_handler_find): only match on non-0 masks.
646         (g_signal_handlers_block_matched):
647         (g_signal_handlers_unblock_matched):
648         (g_signal_handlers_disconnect_matched): new functions to block/unblock
649         or disconnect handlers in groups.
650
651 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
652
653         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
654         made both functions return gboolean just for the little extra
655         standard conformance now that GEqualFunc is introduced.
656
657 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
658
659         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
660         added, the doc system would ignore it anyways (for some reason not
661         aparent to me).
662
663 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
664
665         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
666         added required mutex locks.
667
668 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
669
670         * gsignal.c (g_type_signals): Fix problem where signals
671         with "_" in them appeared twice in the result array.
672
673 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
674
675         * gsignal.h: Add g_type_signals() - a function to list
676         all signals for a given type.
677
678 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
679
680         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
681         for post_marshal guard which was off at 0.
682
683 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
684
685         * gobject.[hc]: doh, fix argument order in for
686         g_cclosure_new_object_swap and g_cclosure_new_object.
687
688 2000-10-28  Tor Lillqvist  <tml@iki.fi>
689
690         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
691
692         * glib-genmarshal.c: Conditionalise include of unistd.h.
693         Include <io.h> on Win32.
694
695         * gobject.def: Add some missing entry points.
696
697 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
698
699         * gsignal.[hc]: publically define GSignalInvocationHint structure
700         that gets passed in to closure invocations. added signal details.
701         renamed GSignalType to GSignalFlags to comply with conventions.
702         quite some cleanups and minor fixes. avoid uneccessary handler list
703         walks upon invokation of after handlers. relookup handler list for
704         restarted emissions. preliminary abort normal handler invokation if
705         after handler is encountered.
706
707         * glib-genmarshal.c:
708         * gclosure.[hc]: moved invocation_hint to the end of the
709         g_closure_invoke() arguments as sugegsted by kenelson.
710         also made it a gpointer to be more generic. the invocation_hint
711         is a caller specific thing that can be used to pass additional
712         data in to closure invocations as documented with the caller
713         invoking the closure.
714
715 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
716
717         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
718         by havoc.
719
720         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
721         g_signal_lookup() would be called with the signal lock being
722         held. reported by james henstridge.
723
724         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
725         reported by owen.
726
727 2000-10-26  Tor Lillqvist  <tml@iki.fi>
728
729         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
730         arithmetic on void pointer, label without statement following.
731
732         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
733         result of sizeof operator, it can be unsigned. Cast first to
734         gssize.
735
736         * gobject.def: Add new functions.
737
738         * makefile.{mingw,msc}.in: Add new objects.
739
740 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
741
742         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
743         prevents 'make dist' from working.
744
745 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
746
747         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
748         casts from void * since this will get included from C++ too
749         at times.
750         
751 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
752
753         * gvaluetypes.[hc]: added g_value_set_static_string().
754
755         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
756
757 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
758
759         * gtype.c (g_type_free_instance): for the moment, freeing object
760         structures will fill their memory portion with 0xAA. there's a
761         FIXME there, remove this line at a later point.
762
763 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
764
765         * glib-genmarshal.1:
766         * glib-genmarshal.c: added publically installed marshaller generator.
767
768         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
769         interface VTable from instances.
770
771 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
772
773         * gobject.[hc]: new functions for closure maintenance:
774         (g_object_watch_closure): maintain validity of the object and
775         the closure for objects that are used as data part of a closure.
776         (g_cclosure_new_object): convenience function to create C closures
777         that have an object as data argument.
778         (g_closure_new_object): convenience function to create closures
779         that have an object as data argument.
780
781         * gclosure.[hc]: implementation of GClosure mechanism.
782         a closure is basically an encapsulation of a callback function
783         and its environment. ideally, most places supporting callback
784         functions will simply take a GClosure* pointer and thus unify
785         callback environments wrg destroy notification etc.
786         GClosure provides destroy notifiers for arbitrary data pointers,
787         reference counting, invalidation notification (it can be invalidated
788         which is merely a deactivate state) and a marshallinbg abstraction.
789         GCClosure is also provided in these files, they present a specialized
790         GClosure implementation for C language callbacks.
791
792         * genum.c: macro cleanups.
793         
794         * gboxed.[hc]: new files, for boxed type abstraction.
795         (g_boxed_copy): copy a boxed structure
796         (g_boxed_free): free a boxed structure
797         (g_value_set_boxed):
798         (g_value_get_boxed): standard GValue functions for boxed types
799         (g_boxed_type_register_static): convenience function for easy
800         introduction of new G_TYPE_BOXED derivatives.
801
802         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
803         for creation of new GParamSpec derived types.
804
805         * gtype.[hc]: many fixes, introduced ability to flag individual
806         type nodes as ABSTRACT upon registration, added value_peek_pointer()
807         to the value table to peek at GValue contents as a pointer for types
808         that support this. fixed up GValue checks.
809
810         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
811         to peek at the value contents as pointer.
812
813         * *.[hc]: adaptions to type macro fixes and changes in the type
814         registration API.
815
816         * many const corrections over the place.
817
818 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
819
820         * gtype.c (g_type_conforms_to): this function basically behaves like
821         and is_a check, except that it _additionally_ features interfaces
822         for instantiatable types. enforce this in the second branch as well
823         (`type' conforms_to `type') even if `type' is not an interface type.
824
825 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
826
827         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
828
829         * gtype.[hc]:
830         * gobject.c:
831         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
832         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
833         and G_TYPE_POINTER.
834
835 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
836
837         * gbsearcharray.[hc]: long standing needed generic implementation
838         of a binary searchable, sorted and dynamically sized array.
839
840 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
841
842         * Makefile.am (BUILT_EXTRA_DIST): New variable.
843         (dist-hook): Handle $(BUILT_EXTRA_DIST).
844         (*): Remove traces of @STRIP_{BEGIN,END}@.
845         
846 2000-09-29  Martin Baulig  <baulig@suse.de>
847         
848         Several minor ANSI C fixes.
849
850         Added missing casts:
851         * gtype.c (type_class_init): 
852         `(gpointer) bnode->data->class.class_init_base'
853         in call to g_slist_prepend() and
854         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
855
856         * gobject.c: Put text following #endif into comments.
857
858 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
859
860         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
861         dist from working.
862
863 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
864
865         * gobject.c (g_object_last_unref): Move call to
866         g_type_free_instance() here from g_object_do_finalize,
867         since g_type_free_instance() can unload the object's
868         implementation.
869
870 2000-07-27  Tor Lillqvist  <tml@iki.fi>
871
872         * gobject.c: No, don't mark glib_debug_objects for export here,
873         it's handled specially in gtktypeutils.c.
874
875         * gobject.def: Export g_type_fundamental_last (the function).
876
877 2000-07-26  Tor Lillqvist  <tml@iki.fi>
878
879         * gobject.def
880         * gobject.c: Mark glib_debug_objects for export/import as it is
881         used by GTK+.
882
883 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
884
885         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
886         that extern variable clutter and avoiding further problems with thread
887         safety.
888
889 2000-07-19  Tor Lillqvist  <tml@iki.fi>
890
891         * gparam.h
892         * gvalue.h
893         * gparam.c
894         * gtype.c: Shut up Sun's picky compiler.
895
896 2000-07-14  Tor Lillqvist  <tml@iki.fi>
897
898         * gobject.def: Add g_type_get_plugin.
899
900 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
901
902         * gparam.c (g_param_value_defaults): default initialize the temporary
903         default value, instead of nuking the caller's value contents.
904
905 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
906
907         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
908
909 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
910
911         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
912
913 2000-07-10  Tor Lillqvist  <tml@iki.fi>
914
915         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
916         to guard inclusion of <unistd.h>.
917
918         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
919         variable for export. Call the macro GOBJECT_VAR.
920
921         * gtype.c: Declare _g_type_fundamental_last for export here, too.
922         (type_node_any_new): Use only constant expressions for sizeof
923         operator (for instance MSVC requires this).
924
925         * makefile.mingw.in: Define GOBJECT_COMPILATION.
926
927 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
928
929         * genums.c: Move string.h include into the .c file
930         instead of where it was in the .h file by mistake.
931
932 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
933
934         * Makefile.am (EXTRA_DIST): dist fixes.
935
936         * gobject.c: Add a global variable glib_debug_objects
937         (not in header file) to control object tracing.
938
939 2000-07-01  Tor Lillqvist  <tml@iki.fi>
940
941         * gobject.def: Update added and renamed entry points.
942
943         * makefile.mingw.in: Add gvaluetypes.o.
944
945 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
946
947         * gobject.c:include string.h for memset
948         * genums.h: include string.h for strcpy
949         * gvalue.c: include string.h for memset, memcpy.
950
951 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
952
953         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
954         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
955         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
956         added a GTypeValueTable* pointer to GTypeInfo structure for types
957         to implement GValue handling functions.
958         GTypeValueTable contains the following members:
959           value_init(): initialize a GValue structure.
960           value_free(): free GValue structure contents (optional).
961           value_copy(): copy one GValue contents to another GValue structure of
962           collect_type: varargs collection type for the first variable argument
963           to be collected by collect_value().
964           collect_value(): variable arguments collection function (optional).
965           lcopy_type: varargs collection type for the first variable argument
966           to be location copyied by lcopy_value().
967           lcopy_value(): variable arguments location copy function (optional).
968         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
969         for a type node. ValueTables get inherited from parent types, unless
970         overridden through the GTypeInfo structure. internally, GTypeValueTable
971         support means an added overhead of one pointer per static or used
972         dynamic type node.
973         g_type_add_class_cache_func(): provide a cache_func/data pair to be
974         called  prior to a type nodes last_unref() function, this can be used
975         to prevent premature class destruction. multiple installed cache_func()
976         will be chained upon last_unref() untill one of them returns TRUE.
977         the cache_func()s have to check the class id passed in to figure whether
978         they actually want to cache the class of this type (since all classes
979         are routed through the cache_func() chain).
980         g_type_remove_class_cache_func(): remove a previously installed
981         cache_func/data pair. the cache maintained by this function has to be
982         clear when calling g_type_remove_class_cache_func() to avoid leaks.
983         g_type_class_unref_uncached(): class unref function for cache_func()
984         implementations, unreferences a class omitting the cache chain (and
985         therefore unref->cache->unref->... loops).
986
987         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
988         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
989         double and string.
990
991         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
992         GTypeValueTable is provided for this type.
993         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
994         g_value_set_default() and g_values_cmp() as these are supplied by the
995         GParamSpec API now.
996         moved g_values_exchange() into the "implementation details" section,
997         since it just provides the underlying functionality for
998         g_value_convert().
999
1000         * gvaluecollector.h: renamed the varargs value container from
1001         GParamCValue to GTypeCValue as the value collection methods are
1002         supplied by the type system now.
1003         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
1004         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
1005         GParamSpec structure now.
1006
1007         * genums.h: macros cleanups/fixes.
1008
1009         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
1010         and assorted g_value_{s|g}et_{enum|flags}() implementations.
1011
1012         * gobject.[hc]:
1013         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
1014         and g_value_{s|g}et_object().
1015
1016         * gparam.[hc]: reduced class to value_set_default(),
1017         value_validate() and values_cmp(). also parameters now need to fill
1018         in a GType value_type; field to indicate the GValue type they
1019         are handling. provide g_param_value_set_default(),
1020         g_param_value_defaults(), g_param_value_validate() and
1021         g_param_values_cmp().
1022
1023         * gparamspecs.[hc]: got rid of the g_value_* functions and
1024         the G_IS_VALUE_* macros. adapted param spec implementations
1025         according to the GParamSpecClass changes.
1026
1027 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
1028
1029         * gtype.c (type_class_init): fetch the nth iface entry of the
1030         type node in the nth loop iteration, not alwys the first.
1031         bug discovered by Walt Pohl <cher@suitware.com>.
1032         (type_data_finalize_class_ifaces): same here, cut and paste
1033         rulez.
1034
1035 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
1036
1037         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
1038         is found properly when build srcdir != builddir. (Patch from
1039         Eric Lemings)
1040
1041 2000-05-13  Tor Lillqvist  <tml@iki.fi>
1042
1043         * makefile.mingw.in
1044         * gobject.def
1045         * gobject.rc.in: New files, for Win32 (mingw) build.
1046
1047         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
1048         corresponding non-*.in files.
1049
1050         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
1051         export/import from DLL.
1052
1053 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
1054
1055         * gtype.h: add reserved fundamental ids for gtk types (for transition
1056         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
1057
1058 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
1059
1060         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
1061         n_params prior to destructing them.
1062
1063 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
1064
1065         * fixed a couple of bugs in the initial parameter/object
1066         implementations, after getting beast running on GObject and GValue.
1067
1068 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
1069
1070         * glib-gobject.[hc]: completed parameter set/get implementations,
1071         along with asyncronous parameter changed notification queue.
1072
1073 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
1074
1075         * glib-gobject.[hc]: GObject implementation, that is facilities
1076         for setting/getting quarked data and reference counting.
1077
1078         * glib-gparamspecs.[hc]: first actuall parameter implementations
1079         for GLib, so far we have: char, uchar, bool, int, uint, long,
1080         ulong, enum, flags, float, double, string and object. each of these
1081         GParamSpecs is a new instantiatable type in its own respect,
1082         so the .c file derives 13 new types from G_TYPE_PARAM and
1083         defines over 50 (*2) conversion facilities.
1084
1085         * glib-gvaluecollector.h: generic varargs handling stubs for
1086         GParamSpecs, private header file (does get installed for
1087         inclusion into user code though).
1088
1089         * glib-gvalue.[hc]: GValue functionality implementation.
1090
1091         * glib-gparam.[hc]: basis GParamSpec implementation for
1092         the virtual base type G_TYPE_PARAM.
1093
1094         * glib-genums.[hc]: enum/flags type implementation, based on
1095         bseenum.[hc].
1096
1097         * glib-gtype.[hc]: GLib Type System implementation, heavily
1098         based on BSE's dynamic type system.