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