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