added some assertions to test g_signal_get_invocation_hint().
[platform/upstream/glib.git] / gobject / ChangeLog
1 Tue Dec 18 21:39:57 2001  Tim Janik  <timj@gtk.org>
2
3         * testoverride.c: added some assertions to test
4         g_signal_get_invocation_hint().
5
6         * gsignal.[hc]: remove signal_id argument from
7         g_signal_chain_from_overridden(), the parameters are assumed to match
8         the innermost signal currently in emission for this instance.
9         added g_signal_get_invocation_hint() to figure the invocation hint
10         of the innermost signal emission of an instance.
11
12         * gsignal.c (g_signal_list_ids): fix G_BSEARCH_ARRAY_NODES() to
13         access a bsearch array and not a pointer to it (discovered by
14         Sven Neumann).
15
16 2001-12-17  Anders Carlsson  <andersca@gnu.org>
17
18         * gtype.h (G_TYPE_FLAG_RESERVED_ID_BIT): Set the reserved bit
19         to (1 << 0) instead of (1 << 30). 
20
21 2001-12-14  James Henstridge  <james@daa.com.au>
22
23         * Makefile.am: add rules to build it.
24
25         * testoverride.c: test program for closure override/chaining.
26
27 Thu Dec 13 08:03:17 2001  Tim Janik  <timj@gtk.org>
28
29         * gsignal.c: implemented closure chaining.
30
31 2001-12-08  Christopher Blizzard  <blizzard@redhat.com>
32
33         * gsignal.h (g_signal_connect): Explicitly add a cast to the last
34         argument so that the macro will work from C++.
35
36 2001-12-06  Tor Lillqvist  <tml@iki.fi>
37
38         * makefile.mingw.in (gobject_OBJECTS): Add gsourceclosure.o.
39
40 Mon Nov 26 09:55:12 2001  Tim Janik  <timj@gtk.org>
41
42         * gtype.h: typedef GType to gulong instead of gsize, if possible.
43
44         * gtype.c: fixups for GType being sizeof(long) wide (changed
45         UINT casts).
46         * gsignal.c:
47         * gclosure.c:
48         * gparam.c: likewise.
49
50 Sun Nov 25 22:33:32 2001  Tim Janik  <timj@gtk.org>
51
52         * gtype.h: removed enum GTypeFundamentals. use macros
53         to provide the constant fundamental type IDs, so they
54         all return numbers of type GType, and not int.
55         sizeof(GTypeFundamentals) < sizeof(GType) problem reported
56         and fix sugegsted by Havoc.
57
58 2001-11-23  Hans Breuer  <hans@breuer.org>
59
60         * gobject.def : updated externals
61
62 Mon Nov 19 14:35:56 2001  Owen Taylor  <otaylor@redhat.com>
63  
64         * *.h: Improve the detection of invalid includes by moving
65         the test outside the duplicate include guards.
66  
67         * gsourceclosure.c (g_source_set_closure): Doc fix.
68
69 Thu Nov 22 03:30:57 2001  Tim Janik  <timj@gtk.org>
70
71         * gvalue.h (G_TYPE_IS_VALUE): use g_type_check_is_value_type()
72         instead of g_type_value_table_peek().
73
74         * gtype.[hc] (type_check_is_value_type_U): speed up check
75         LOCK-less by caching lookups in node->mutatable_has_value_table.
76
77         * gtype.[hc]: removed locks where possible. partly based on
78         patches from owen and alex.
79
80 Thu Nov 22 00:26:26 2001  Tim Janik  <timj@gtk.org>
81
82         * gtype.[hc]: provide G_TYPE_FUNDAMENTAL_SHIFT and
83         g_type_fundamental_next() to return next usable fundamental
84         type. use TypeNode pointers as type IDs.
85         
86 2001-11-22  Tor Lillqvist  <tml@iki.fi>
87
88         * makefile.mingw.in (DEFINES): Set G_LOG_DOMAIN as in Makefile.am.
89
90         * gparamspecs.h (GOBJECT_VAR): Can't use GLIB_VAR here, as that
91         makes sense only when building libglib. GOBJECT_VAR is similar for
92         libgobject.
93
94         * gobject.def: Add g_param_spec_types, remove
95         g_type_fundamental_branch_last.
96
97 Wed Nov 21 17:23:33 2001  Tim Janik  <timj@gtk.org>
98
99         * gparamspecs.[hc]: put newly created param spec types into a
100         global array.
101
102         * gboxed.[hc]: moved boxed types with _get_type() function here,
103         for: G_TYPE_CLOSURE, G_TYPE_VALUE, G_TYPE_VALUE_ARRAY,
104         G_TYPE_GSTRING.
105
106         * gtype.h: removed fundamental branch APIs and derived enum
107         values. define GType as gsize.
108
109 2001-11-19  jacob berkman  <jacob@ximian.com>
110
111         * gobjectnotifyqueue.c: include glib-object.h rather than
112         gobject/gobject.h
113
114 2001-11-16  Mark McLoughlin  <mark@skynet.ie>
115
116         * glib-mkenums.in: allow the enums name to not be on the same
117         line as the trailing '}'. (#64714)
118
119 2001-11-18  Hans Breuer  <hans@breuer.org>
120
121         * makefile.msc.in : remove g_log_domain_gruntime usage
122
123 Sat Nov 17 18:14:40 2001  Owen Taylor  <otaylor@redhat.com>
124
125         * glib-genmarshal.c: Exit with non-zero exit status if
126         any errors were encountered.
127
128         * glib-genmarshal.c: Instead of generating gobject/gmarshal.h
129         #include only for the header, generate glib-object.h 
130         #include for both the header and body. (#63834)
131
132         * glib-genmarshal.c: Generate include guards around the 
133         content unless --nostdinc is specified.
134
135 2001-11-17  Tor Lillqvist  <tml@iki.fi>
136
137         * gobject.def: Add g_pointer_type_register_static.
138
139 2001-11-15  Tor Lillqvist  <tml@iki.fi>
140
141         * gobject.def: Reflect recent changes.
142
143 Tue Nov 13 23:18:10 2001  Tim Janik  <timj@gtk.org>
144
145         * gsignal.[hc]: add API for chaining:
146         g_signal_chain_from_overridden() and g_signal_override_class_closure(),
147         implementation yet to come.
148
149         * gtype.[hc], Makefile.am: provide G_LOG_DOMAIN as compile flag.
150         
151         * gparam.[hc]: s/g_param_get/g_param_spec_get/ for get_nick,
152         get_name and get_blurb, to be consistent with the rest of the
153         g_param_spec_*() functions.
154         
155         * gparamspecs.[hc]: got rid of bogus GClosure paramspec.
156         G_TYPE_CLOSURE is a boxed type already.
157         
158 Tue Nov 13 22:16:41 2001  Tim Janik  <timj@gtk.org>
159
160         * gtype.[hc]: API cleanups.
161         remove g_type_check_flags(), provide g_type_test_flags() as
162         a *private* function.
163         s/g_type_check_is_a/g_type_check_class_is_a/, private function.
164         s/g_type_instance_is_a/g_type_check_instance_is_a/, also private.
165
166 Tue Nov 13 20:02:47 2001  Tim Janik  <timj@gtk.org>
167
168         * gparam.h: fix standard type macros.
169
170 Wed Nov  7 00:56:00 2001  Tim Janik  <timj@gtk.org>
171
172         * gclosure.h: provide G_CLOSURE_N_NOTIFIERS() for people that need
173         to walk the notifier list (puhh, black magic, stay-away-warning ;).
174
175 Mon Nov  5 18:59:08 2001  Tim Janik  <timj@gtk.org>
176
177         * gobject.h: 
178         * gsignal.h: we need signal.h for G_BREAKPOINT().
179
180 Sun Nov  4 14:01:23 2001  Owen Taylor  <otaylor@redhat.com>
181
182         * gvaluetypes.[ch]: Add a function g_pointer_type_register_static()
183         to register a type derived from G_TYPE_POINTER.
184
185 2001-11-03  Hans Breuer  <hans@breuer.org>
186
187         * makefile.msc.in : gobject-query needs gmarshal.[hc,stings]
188         so build it after them. Add gsourceclosure.obj. 
189
190         * gobject.def : removed duplicates, added mising
191
192 Mon Oct 29 11:05:15 2001  Owen Taylor  <otaylor@redhat.com>
193
194         * glib-mkenums.in: Generate glib-mkenums from glib-mkenums.in, 
195         substituting in path to perl.  (#63093, Dan Winship)
196
197         * Makefile.am (bin_SCRIPTS): Remove hack to copy glib-mkenums
198         from srcdir.
199
200 2001-10-26  Tor Lillqvist  <tml@iki.fi>
201
202         * makefile.mingw.in: When running glib-genmarshal, set PATH to
203         include ../glib.
204
205 2001-10-23  Tor Lillqvist  <tml@iki.fi>
206
207         * Makefile.am: (Win32): If we have built the MSVC import library,
208         install it. Install the gcc import library. Also support
209         uninstall.
210
211 2001-10-13  Matthias Clasen  <matthiasc@poet.de>
212
213         * glib-genmarshal.1, glib-mkenums.1: Typo fixes.
214
215 Fri Oct 12 18:40:18 2001  Tim Janik  <timj@gtk.org>
216
217         * cosmetic fixups.
218
219 Wed Oct 10 17:25:22 2001  Joshua N Pritikin  <vishnu@pobox.com>
220
221         * glib-genmarshal.c gparamspecs.[ch] gtype.[ch] gvalue.h
222         gvaluecollector.h gvaluetypes.[ch]: Fill in missing support for
223         gint64 & guint64 (#59254).
224         
225         * Unconditionalize same (compile with or without G_HAVE_INT64).
226
227 Wed Oct 10 15:38:58 2001  Joshua N Pritikin  <vishnu@pobox.com>
228
229         * gparamspecs.h (G_IS_PARAM_SPEC_FLAGS): Fix order of
230         *_PARAM_SPEC_ULONG defines.
231
232 Thu Oct  4 01:10:52 2001  Owen Taylor  <otaylor@redhat.com>
233
234         * gparamspecs.h: Add missing G_HAVE_GINT64 conditionalization.
235
236 Wed Oct  3 16:02:24 2001  Owen Taylor  <otaylor@redhat.com>
237
238         * glib-genmarshal.c gparamspecs.[ch] gvalue.h 
239         gobject/gvaluetypes.[ch]: Add support for G_TYPE_INT64
240         and storing it in GValue (Patch from Mathieu Lacage, #59254.)
241
242 2001-10-03  jacob berkman  <jacob@ximian.com>
243
244         * gtype.c (type_iface_retrieve_holder_info_Wm): 
245         (type_iface_vtable_init_Wm): 
246         (type_iface_vtable_finalize_Wm): 
247         (g_type_class_ref): 
248
249         * gobject.c (g_object_get_property): s/retrive/retrieve/
250
251 2001-09-25  Tor Lillqvist  <tml@iki.fi>
252
253         * Makefile.am: Use new macros for .def file, and check for
254         MS_LIB_AVAILABLE, new rule to build MS import library.
255
256         * makefile.msc.in: Use same DLL and import library names as
257         libtool.
258         
259 2001-09-21  Hans Breuer  <hans@breuer.org>
260
261         * gobject.def : updated externals
262
263 2001-09-19  Tor Lillqvist  <tml@iki.fi>
264
265         * gobject.rc.in: Correct InternalName and OriginalFilename to
266         match what we actually produce.
267
268 Tue Sep 18 23:09:02 2001  Tim Janik  <timj@gtk.org>
269
270         * gparam.[hc]: rename *nick and *blurb fields to catch
271         direct accesses in third party code.
272         provide g_param_get_nick(), g_param_get_blurb() and
273         g_param_get_name() accessors.
274
275 Mon Sep 10 20:31:37 2001  Tim Janik  <timj@gtk.org>
276
277         * gobject.[hc]: removed extraneous GObject* returns from a
278         couple functions that are very unlikely to be used in nested.
279         changed gpointer->GObject* for a couple return values/arguments.
280         this fixes #50206.
281
282 Mon Sep 10 19:27:47 2001  Tim Janik  <timj@gtk.org>
283
284         * gtype.[hc]:
285         g_type_add_interface*(): implement the ability to add an interface to
286         a type whose parents already conform to this interface.
287         such "overriding" interfaces, when initialized, are not just initialized
288         with 0, but with a copy of the interface they override.
289         g_type_interface_peek_parent(): new function, return the interface
290         that this interface "overrides", if any.
291
292         * testgruntime.c: test new interface stuff.
293
294 2001-09-10  Alex Larsson  <alexl@redhat.com>
295
296         * gobject/gboxed.[ch]:
297         * gobject/gsourceclosure.c:
298         Removed is_refcounted and GBoxedInitFunc from
299         g_boxed_type_register_static().
300
301 Sat Sep  8 14:13:57 2001  Owen Taylor  <otaylor@redhat.com>
302
303         * gobject/Makefile.am: Move gbsearcharray.[ch] to glib
304         as a private ininstalled header.
305
306 Tue Sep  4 22:24:48 2001  Matthias Clasen  <matthiasc@poet.de>
307
308         * gobject.c (g_object_base_class_finalize): typo fix.
309
310 Tue Sep  4 01:49:18 2001  Tim Janik  <timj@gtk.org>
311
312         * gsourceclosure.c: make closure_callback_funcs static,
313         added some g_return_if_fail() statements.
314
315 Mon Aug 27 14:55:27 2001  Owen Taylor  <otaylor@redhat.com>
316
317         * gsourceclosure.[ch] (g_source_set_closure): Implement.
318
319         * gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
320
321 2001-08-17  James Henstridge  <james@daa.com.au>
322
323         * gobject.c (WeakRefStack): add an object member to the structure.
324         (weak_refs_notify): pass wstack->object as extra argument to
325         notify functions.
326         (g_object_weak_ref): set wstack->object when initialising
327         WeakRefStack.
328
329         * gobject.h (GWeakNotify): add second argument to prototype which
330         gives the pointer to where the object that is being disposed of
331         was.
332
333 Wed Jul 18 19:42:31 2001  Tim Janik  <timj@gtk.org>
334
335         * gtype.h: if __GNUC__ is defined, inline a test for an exact type
336         match for instances and classes in G_TYPE_CHECK_INSTANCE_TYPE() and
337         G_TYPE_CHECK_CLASS_TYPE() before calling g_type_instance_is_a().
338
339 Sun Aug 12 02:07:10 2001  Tim Janik  <timj@gtk.org>
340
341         * gvaluearray.[hc]: fix preallocation logic, support DISABLE_MEM_POOLS
342         properly, group value allocations.
343         (g_value_array_new): fix semantic of n_prealloced argument, so it's
344         really just about preallocation space.
345
346 2001-07-23  Padraig O'Briain <Padraig.Obriain@Sun.COM>
347         
348         * gobject/gobjectnotifyqueue.c: fix unconditional check of
349         first GParamSpec in g_object_notify_queue_thaw(); to prevent
350         property notification being lost.
351
352 2001-08-06  Sven Neumann  <sven@gimp.org>
353
354         * gobject.[ch]: 
355         added new functions g_object_[add|remove]_weak_pointer().
356
357 2001-08-01  Sven Neumann  <sven@gimp.org>
358
359         * gsignal.h: added convenience macro g_signal_connect_after().
360
361 2001-07-29  Hans Breuer  <hans@breuer.org>
362
363         * gobject.def : updated externals
364
365 2001-07-20  Hans Breuer  <hans@breuer.org>
366
367         * gobject.def : updated externals
368
369         * makefile.msc.in : reflect glib move
370
371 Tue Jul 10 18:50:16 2001  Tim Janik  <timj@gtk.org>
372
373         * gsignal.h (struct _GSignalQuery): fix misplaced comment.
374
375 Mon Jul  2 07:17:47 2001  Tim Janik  <timj@gtk.org>
376
377         * gobject.c (g_object_weak_ref): 
378         (g_object_watch_closure): congrats tim, introducing of-by-one
379         errors like on my very first day of C programming.
380
381 Sat Jun 30 11:07:00 2001  Tim Janik  <timj@gtk.org>
382
383         * gobject.[hc]: provide weak_ref/weak_unref functions,
384         invoked from ->dispose. renamed ->shutdown() to ->dispose(),
385         provide "public" API entry here: g_object_run_dispose(), this
386         fucntion should _only_ be called from object system implementations
387         (e.g. gtkobject.c) if at all.
388
389         * gtypemodule.c (g_type_module_dispose): s/shutdown/dispose/
390
391         * gsignal.h: removed compat aliases.
392
393         * gobject.c (g_object_connect): support data objects.
394         
395 Sat Jun 30 13:17:12 2001  Owen Taylor  <otaylor@redhat.com>
396
397         * testgruntime.c (test_object_class_init)
398           gobject.c (g_object_do_class_init): 
399           g_signal_newc() => g_signal_new().
400
401 Thu Jun 28 22:49:40 2001  Owen Taylor  <otaylor@redhat.com>
402
403         * gtype.[ch] gobject-query.c testgruntime.c: Remove
404         debug flag argument to g_type_init() and add
405         g_type_init_with_debug_flags().
406
407 Thu Jun 28 16:42:49 2001  Tim Janik  <timj@gtk.org>
408
409         * gsignal.c (g_signal_lookup): 
410         (g_signal_list_ids): give elaborate warnings about invalid types,
411         non-instantiatable types and unloaded types that we can't operate on.
412
413         * gparam.[hc]: g_param_spec_pool_belongings() ->
414         g_param_spec_pool_list_owned().
415
416         * gsignal.[hc]: renamed:
417         g_signal_newc -> g_signal_new
418         g_signal_disconnect_by_func -> g_signal_handlers_disconnect_by_func
419         g_signal_block_by_func -> g_signal_handlers_block_by_func
420         g_signal_unblock_by_func -> g_signal_handlers_unblock_by_func
421         added GConnectType to simplify (..gboolean swapped, gboolean after)
422         args.
423
424         * gobject.[hc]: changed prototypes accordingly.
425
426 2001-06-22  Hans Breuer  <hans@breuer.org>
427
428         * gobject.def : updated externals
429
430         * gobjectnotifyqueue.c : include <string.h> for memset ()
431
432 Thu Jun 21 02:43:10 2001  Tim Janik  <timj@gtk.org>
433
434         * gparamspecs.h: s/long/int/ for default_value in enum and flags
435         pspecs.
436
437 Wed Jun 20 03:59:42 2001  Tim Janik  <timj@gtk.org>
438
439         * gtype.[hc]: added debugging variants g_type_name_from_class(),
440         g_type_name_from_instance().
441
442 Mon Jun 11 17:07:06 2001  Tim Janik  <timj@gtk.org>
443
444         * gboxed.[hc]: remove left-over usages of an anonymous GBoxed typedef.
445
446         * gobjectnotifyqueue.c: moved property notify queue implementation
447         bits into this function.
448
449         * gparam.[hc]: added g_param_spec_pool_belongings(), completed
450         g_param_spec_pool_list(). added GParameter for _setv() functions.
451
452         * gobject.[hc]: use gobjectnotifyqueue.h implementation now.
453         got rid of properties_changed signal.
454         new functions g_object_newv(), g_object_class_list_properties().
455         removed "properties_changed" signal.
456
457         * gtype.[hc]: added g_type_depth() to figure number of parent
458         types + 1 for a type.
459
460         * gsignal.h: add g_signal_connect() (as per owen's request) and
461         g_signal_connect_swapped().
462
463 2001-06-13  Havoc Pennington  <hp@redhat.com>
464
465         * Makefile.am (progs_LDADD): link to ./libgobject-1.3.la
466         since an installed libgobject was somehow being found; think 
467         it's a libtool bug, but this workaround should do for now.
468
469 2001-06-12  Havoc Pennington  <hp@redhat.com>
470
471         * Makefile.am (glib-mkenums): don't put $(srcdir)/glib-mkenums in
472         bin_SCRIPTS, that breaks make install. Instead put 'glib-mkenums'
473         in bin_SCRIPTS and cp it into builddir
474
475 Thu May 31 17:56:47 2001  Owen Taylor  <otaylor@redhat.com>
476
477         * gobject-query.c: Fix mispelling in help output.
478         (#53952, Skip Montanaro)
479
480 2001-05-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
481
482         * Makefile.am (EXTRA_DIST): Really distribute glib-mkenums, now
483         that bin_SCRIPTS doesn't seem to care about doing so anymore.
484
485 Mon May 28 06:51:24 2001  Tim Janik  <timj@gtk.org>
486
487         * gsignal.c (signal_emit_unlocked_R): fixed bad faux-pass, forgot
488         to release signal lock when restarting emissions.
489
490 Sun May 27 04:52:28 2001  Tim Janik  <timj@gtk.org>
491
492         * gsignal.[hc] (g_signal_stop_emission_by_name): added variant
493         to stop signal emissions through a detailed_signal string.
494
495         * gsignal.c (signal_emit_R) (g_signal_emit_valist): account for
496         the fact that g_value_* functions may cause signal emissons by
497         unlocking the global signal system lock around g_value_* functions.
498         (signal_emit_unlocked_R): renamed this from signal_emit_R() to reflect
499         that this functions acquires the lock on its own now.
500
501 2001-05-24  Hans Breuer  <hans@breuer.org>
502
503         * makefile.msc.in : changed depndencies to build glib-genmarshal
504         first and statically linked with glib, which makes it independent
505         from the installed glib version. Added new object files to build.
506
507         * gobject.def : updated
508
509 Thu May 24 08:52:02 2001  Owen Taylor  <otaylor@redhat.com>
510
511         * gobject.[ch] (g_value_set_object): gpointer, not
512         gpointer *.
513
514 2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
515
516         * Makefile.am (bin_SCRIPTS): made 'make distcheck' happy.
517
518         * gobject.def: Removed g_param_spec_stringc.
519
520 Tue May 22 02:46:13 2001  Tim Janik  <timj@gtk.org>
521
522         * gobject.c (g_value_set_object): make g_value_set_object()
523         take a gpointer v_object so people don't need to G_OBJECT()
524         cast NULL pointers (C code convenience).
525
526 Mon May 14 01:49:01 2001  Tim Janik  <timj@gtk.org>
527
528         * gsignal.[hc] (g_signal_handler_is_connected): new function
529         to check whether a handler is still connected to an instance
530         (by handler id).
531
532 Thu May 10 14:00:48 2001  Tim Janik  <timj@gtk.org>
533
534         * gparamspecs.[hc]: removed g_param_spec_stringc() in lack of
535         evidence of public need.
536
537         * gsignal.h: added g_signal_disconnect_by_func(),
538         g_signal_block_by_func() and g_signal_unblock_by_func() convenience
539         macros as per owen's request.
540
541         * gtype.c (SIZEOF_FUNDAMENTAL_INFO): align sizeof (GTypeFundamentalInfo)
542         to size of longs and pointers.
543
544 2001-05-05  James Henstridge  <james@daa.com.au>
545
546         * Makefile.am: glib-mkenums is not a compiled program, so shouldn't
547         be in the bin_PROGRAMS primary.  Put it in bin_SCRIPTS instead, and
548         removed the glib_mkenums_SOURCES var.
549
550 Thu May  3 06:10:23 2001  Owen Taylor  <otaylor@redhat.com>
551
552         * gobject.c (g_object_set_[q]data_full): Make types of ternary
553         operator correspond. (Fixes compilation errors with Sun CC,
554         #52230)
555
556 Mon Apr 30 20:03:56 2001  Tim Janik  <timj@gtk.org>
557
558         * glib-mkenums (usage): removed \v escaping, newer perl versions don't
559         support this, and it'S probably useless anyways.
560
561 Sat Apr 28 23:39:42 2001  Tim Janik  <timj@gtk.org>
562
563         * gsignal.[hc]: made signal handler and emission hook ids gulongs.
564         (signal_handlers_foreach_matched_R): only invoke callback for handlers
565         that are not disconnected (id>0).
566         (signal_emit_R): prevent invocation of signal handlers during the
567         emission they were connected within.
568         
569         * glib-mkenums: publically installed perl-script to parse C code
570         enums and generate descriptions thereof.
571         * glib-mkenums.1: assorted man page.
572         
573 2001-04-19  Havoc Pennington  <hp@redhat.com>
574
575         * gobject.c (g_object_get_valist): We were returning junk memory
576         here, because we didn't copy the value (G_VALUE_NOCOPY_CONTENTS
577         passed to G_VALUE_LCOPY) and then we freed the GValue immediately
578         after. Removed G_VALUE_NOCOPY_CONTENTS from here; need a
579         G_VALUE_STEAL_CONTENTS or the like if we want this optimization.
580
581 Wed Apr 18 09:46:56 2001  Owen Taylor  <otaylor@redhat.com>
582
583         * gobject.c gsignal.c: Change C++ comments for FIXME's to
584         C comments. (Patch from Andres Salomon)
585
586 2001-04-14  Hans Breuer  <hans@breuer.org>
587
588         * gobject.def : updated
589
590 Mon Apr  9 18:56:15 2001  Tim Janik  <timj@gtk.org>
591
592         * gclosure.c (g_closure_invoke): only require marshal/meta_marshal if
593         we're valid (about to actually do marshalling).
594
595 Tue Apr  3 20:23:24 2001  Tim Janik  <timj@gtk.org>
596
597         * NEWS: updates.
598
599 Tue Apr  3 14:06:00 2001  Tim Janik  <timj@gtk.org>
600
601         * gparam.[hc]: added g_param_spec_pool_list() to list pspecs per
602         owner_type. the pspecs are not referenced, so the caller is
603         supposed to have some idea about owner_type not randomly
604         nuking his pspec's. if this is going to provide problems in
605         the future, we can either auto-ref the pspecs, or add a
606         _foreach variant, though the latter would have to invoke
607         the callback while pspec's mutex is acquired, so i just
608         went for the _list variant for now.
609
610         * gclosure.h (G_CALLBACK): made GCallback a void (*) (void) fucntion.
611
612 Sat Mar 31 23:55:58 2001  Tim Janik  <timj@gtk.org>
613
614         * gtype.h:
615         * gparamspecs.[hc]: applied patch from owen to implement
616         GParamSpecUnichar.
617
618 Fri Mar 30 07:34:02 2001  Tim Janik  <timj@gtk.org>
619
620         * gtype.c (type_iface_retrive_holder_info_Wm): 
621         * gtypeplugin.c (g_type_plugin_complete_interface_info): 
622         * gtypemodule.c (g_type_module_complete_interface_info): 
623         change order of instance_type and interface_type so they match
624         the g_type_add_interface_*() API.
625
626         * gsignal.c (g_signal_emit_valist): always assign C return value
627         location, people depending on unaltered return values after emissions
628         that had no handlers to run need to use g_signal_emitv().
629
630         * gtype.[hc] (g_type_query): new function to allow querying of
631         class and object size (semantics like g_signal_query()).
632         currently the implementation is better held conservative so as to
633         only support types that are classed and static.
634
635 2001-03-29  Tor Lillqvist  <tml@iki.fi>
636
637         * gobject.def: Updates.
638
639 Wed Mar 28 17:04:06 2001  Tim Janik  <timj@gtk.org>
640
641         * gobject.c (object_queue_property): only queue readable properties
642         for notification changes.
643
644 Thu Mar 22 13:36:50 2001  Tim Janik  <timj@gtk.org>
645
646         * gsignal.c (g_signal_newv): catch G_SIGNAL_RUN_FIRST with a return value.
647
648 2001-03-21  Martin Baulig  <baulig@suse.de>
649
650         * gboxed.[ch] (g_value_dup_boxed): This takes a `const GValue *'
651         argument.
652
653 2001-03-18  Tor Lillqvist  <tml@iki.fi>
654
655         * gobject.def: Correct some renamed functions.
656
657 Sat Mar 17 23:18:36 2001  Tim Janik  <timj@gtk.org>
658
659         * gobject.c (g_object_get_property): minor bug-fix.
660
661         * gbsearcharray.[hc]: provide a macro for static initialization and
662         functions g_bsearch_array_new() and g_bsearch_array_destroy() for
663         dynamic allocations.
664         
665         * gboxed.c: introduce G_TYPE_GSTRING, boxed type for GString.
666         
667         * gclosure.[hc]: naming corrections.
668
669 Fri Mar  9 16:42:08 2001  Tim Janik  <timj@gtk.org>
670
671         * gvaluetypes.[hc]: moved g_strdup_value_contents() into this file as
672         a public function (was static in gobject.c before). it's a bit odd
673         to have that function here, especially since it requires extra includes,
674         but then it doesn't very well fit somewhere else either.
675
676         * gparamspecs.c: added default/max/min checks to param spec creation
677         functions.
678
679 2001-03-10  Tor Lillqvist  <tml@iki.fi>
680
681         * gobject.def: Add a couple of missing entries.
682
683         * Makefile.am (libgobject_1_3_la_LIBADD): Use only on Win32.
684
685 Fri Mar  9 14:57:17 2001  Tim Janik  <timj@gtk.org>
686
687         * testgruntime.c: test program. covers run first/last/cleanup signal
688         handlers, return value accumulator, signal string returns, and
689         interface types in signal arguments.
690
691         * gtype.c (g_type_value_table_peek): for interface types without
692         value table, try looking up a value table from an instantiatable
693         prerequisite type (this is safe as an interface may only have
694         one instantiatable prerequisiste).
695         (type_check_is_value_type_U): same here.
696
697         * gsignal.c (g_signal_newv): assert that return types never have
698         G_SIGNAL_TYPE_STATIC_SCOPE set.
699         (g_signal_newc): only create class closure if the class_offset is not
700         0.
701
702 Fri Mar  9 10:14:00 2001  Tim Janik  <timj@gtk.org>
703
704         * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
705         for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
706         that wouldn't allow interface types.
707
708         * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
709         with bad implications and an off-by-one error.
710
711 Thu Mar  8 16:34:22 2001  Owen Taylor  <otaylor@redhat.com>
712
713         * gvaluetransform.c: Include <string.h> for memcpy.
714
715         * gvaluetransform.c (DEFINE_SPRINTF): Remove unnecessary
716         and ANSI-illegal ## token pasting.
717
718 Thu Mar  8 18:11:52 2001  Tim Janik  <timj@gtk.org>
719
720         * gsignal.c: eek, fixed old hook detail storage code.
721
722 Thu Mar  8 16:35:48 2001  Tim Janik  <timj@gtk.org>
723
724         * gparamspecs.[hc]: s/g_param_spec_string_c/g_param_spec_stringc/.
725
726         * gsignal.[hc]: fixed accumulator invocation, implemented emission
727         hooks. and no, neither of these callbacks are called via a closure,
728         language bindings can wrap the accumulator and emission hook
729         interface, they already get parameters marshalled into a GValue array.
730         (g_signal_connect): removed this function as its C specific, doesn't
731         cover the swapped argument, is too close to its broken original
732         gtk_signal_connect() and creates demand for _swapped, _after and
733         _swapped_after variants <brrr>.
734         (g_signal_connectc): convenience macro to connect a C handler
735         func with data, like the old g_signal_connect() plus swapped
736         argument.
737
738         * gtype.h:
739         * gboxed.c: added G_TYPE_VALUE boxed type.
740
741 Wed Mar  7 19:02:51 2001  Tim Janik  <timj@gtk.org>
742
743         * gtype.c (type_node_add_iface_entry_W): catch when adding an interface
744         to an ancestor of a child that already conforms to this interface.
745         currently we spew a warning here, should we be silent?
746         (g_type_interface_add_prerequisite): new function to add a prerequisite
747         type to an interface, that must succeed an instance is_a prerequisite
748         type check before the interface can be added to an instance. the
749         prerequisite types are also suuported in is_a checks of the interface.
750         (g_type_instance_is_a):
751         (g_type_check_instance_cast):
752         (g_type_check_instance): cleanups and optimizations.
753         (g_type_class_is_a):
754         (g_type_check_class_cast): same, also prevented these from accepting
755         interface types, as class structures don't nest interfaces.
756
757 2001-03-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
758
759         * Makefile.am: Avoid rebuilding everything everytime.
760
761 Wed Mar  7 09:36:33 2001  Tim Janik  <timj@gtk.org>
762
763         * gboxed.[hc]: changed prototype of g_boxed_type_register_static()
764         to contain an optional init function and a hint at whether the
765         boxed structure uses ref counting internally.
766         added g_value_set_boxed_take_ownership().
767         made G_TYPE_BOXED an abstract value type.
768
769         * genums.[hc]: made G_TYPE_ENUM and G_TYPE_FLAGS abstract value
770         types.
771
772         * glib-genmarshal.c: argument type changes, preparation for third-party
773         arg specification.
774
775         * gobject.[hc]: cleaned up get/set property code.
776         added g_strdup_value_contents() to improve warnings.
777
778         * gparam.[hc]: added g_param_value_convert(), taking over responsibility
779         of the old g_value_convert(). added G_PARAM_LAX_VALIDATION flag so
780         validation alterations may be valid a part of the property setting
781         process.
782
783         * gparamspecs.[hc]: made value comparisons stable (for sort applications).
784         added GParamSpecValueArray, a param spec for value arrays and
785         GParamSpecClosure. nuked the value exchange functions and
786         GParamSpecCCallback.
787
788         * gtype.[hc]: catch unintialized usages of the type system with
789         g_return_val_if_uninitialized(). introduced G_TYPE_FLAG_VALUE_ABSTRACT
790         to flag types that introduce a value table, but can't be used for
791         g_value_init(). cleaned up reserved type ids.
792
793         * gvalue.[hc]: code cleanups and saner checking.
794         nuked the value exchange API. implemented value transformations, we
795         can't really "convert" values, rather transforms are an anylogy to
796         C casts, real conversions need a param spec for validation, which is
797         why g_param_value_convert() does real conversions now.
798
799         * gvaluearray.[hc]: new files that implement a GValueArray, a struct
800         that can hold inhomogeneous arrays of value (to that extend that it
801         also allowes undefined values, i.e. G_VALUE_TYPE(value)==0).
802         this is exposed to the type system as a boxed type.
803
804         * gvaluetransform.c: new file implementing most of the former value
805         exchange functions as single-sided transformations.
806
807         * gvaluetypes.[hc]: nuked G_TYPE_CCALLBACK, added
808         g_value_set_string_take_ownership().
809
810         * *.h: s/G_IS_VALUE_/G_VALUE_HOLDS_/.
811
812         * *.[hc]: many fixes and cleanups.
813
814         * many warning improvements.
815
816 Tue Feb 27 18:35:15 2001  Tim Janik  <timj@gtk.org>
817
818         * gobject.c (g_object_get_valist): urg, pass G_VALUE_NOCOPY_CONTENTS
819         into G_VALUE_LCOPY(), this needs proper documenting.
820
821         * gparam.c: fixed G_PARAM_USER_MASK.
822
823         * gtype.c (type_data_make_W): 
824         (type_data_last_unref_Wm): fixed invalid memory freeing.
825
826         * gobject.c (g_object_last_unref): destroy signal handlers associated
827         with object, right before finalization.
828
829         * gsignal.c (g_signal_parse_name): catch destroyed nodes or signals
830         that don't actually support details.
831
832         * gobject.[hc]: got rid of property trailers. nuked GObject
833         properties "data" and the "signal" variants.
834         (g_object_connect): new convenience function to do multiple
835         signal connections at once.
836         (g_object_disconnect): likewise, for disconnections.
837
838         * gparam.[hc] (g_param_spec_pool_lookup): took out trailer support.
839
840         * gvalue.[hc]: marked g_value_fits_pointer() and g_value_peek_pointer()
841         as private (the latter got renamed from g_value_get_as_pointer()).
842
843 2001-02-21  Tor Lillqvist  <tml@iki.fi>
844
845         * *.h: Use G_BEGIN_DECLS and G_END_DECLS.
846
847         * Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
848         libtool with -no-undefined for Win32 and Cygwin.
849
850 Wed Feb 21 18:31:46 2001  Jonathan Blandford  <jrb@redhat.com>
851
852         * gsignal.h (g_signal_connect): Add g_signal_connect define to
853         make porting from gtk_signal_connect easy.
854
855         * gsignal.c (g_signal_emit_valist): Use G_TYPE_FROM_INSTANCE
856         (instance) instead of node->itype when initting the value.
857
858 2001-02-17  Havoc Pennington  <hp@pobox.com>
859
860         Applied patch from Soeren Sandmann:
861         
862         * gvaluetypes.c (g_value_get_string): G_CONST_RETURN
863
864         * gtype.c (g_type_name): G_CONST_RETURN
865
866         * gsignal.c (g_signal_name): G_CONST_RETURN
867
868         * gobject-query.c (main): const fix
869
870 Sat Feb 17 07:58:46 2001  Tim Janik  <timj@gtk.org>
871
872         * genums.h (G_TYPE_IS_FLAGS): patch from sven to fixup
873         G_ENUM_CLASS_TYPE() macro.
874
875 Sat Feb 17 04:55:35 2001  Tim Janik  <timj@gtk.org>
876
877         * gtype.[hc]: changed collect_format, collect_value() and lcopy_format,
878         lcopy_value() in the GTypeValueTable. the collect functions are now
879         called only once per value, collect_format/lcopy_format are strings
880         that enlist all necessary GTypeCValues to be varargs-collected.
881
882         * gvalue.h: ranamed STATIC_TAG to G_VALUE_NOCOPY_CONTENTS to indicate that
883         a value shouldn't copy its contents.
884
885         * gvaluecollector.h: changed G_VALUE_COLLECT() and G_VALUE_LCOPY()
886         macros to carry an additional argument (flags) that can be used
887         to pass G_VALUE_NOCOPY_CONTENTS along to the collection functions.
888
889         * *.c: adapted collect_value() and lcopy_value() functions to the new
890         prototypes, support G_VALUE_NOCOPY_CONTENTS where apropriate.
891
892         * gsignal.[hc]: introduced a G_SIGNAL_TYPE_STATIC_SCOPE flag that can
893         be passed along (ORed) with the parameter types, indicating that the
894         emission arguments are to be considered static for the scope of the
895         emission. should be used with care and only if the caller knows that
896         a parameter cannot be destroyed/freed from signal handlers connected
897         to an emission.
898
899 Fri Feb 16 07:10:44 2001  Tim Janik  <timj@gtk.org>
900
901         * gclosure.c:
902         (g_closure_ref):
903         (g_closure_sink): make closure sinking explicit.
904
905         * gsignal.c:
906         (g_signal_connect_data): 
907         (g_signal_connect_closure): 
908         (g_signal_connect_closure_by_id): 
909         (g_signal_newv): perform explicit closure sinking.
910
911 Thu Feb  8 00:31:45 2001  Tim Janik  <timj@gtk.org>
912
913         * gtype.h: added G_TYPE_DEBUG_NONE for/from Eric Lemings ;)
914
915 2001-02-04  Tor Lillqvist  <tml@iki.fi>
916
917         * gobject.def: Remove glib_debug_objects.
918
919 Sun Feb  4 07:30:53 2001  Tim Janik  <timj@gtk.org>
920
921         * gtype.[hc]: changed g_type_init() to take debugging flags
922         initially, a combination of G_TYPE_DEBUG_OBJECTS and
923         G_TYPE_DEBUG_SIGNALS. using the G_TYPE_ prefix is a bit odd
924         here, but basically g_type_int() serves as initialization
925         fucntion for all of GType, GObject, GSignal, so what the heck.
926
927         * gobject.c: special case debugging code properly.
928         changed glib_trap_object_ref to g_trap_object_ref.
929
930         * gsignal.c: add signal emission debugging abilities, along with
931         a new trap object g_trap_instance_signals.
932
933 2001-02-04  Tor Lillqvist  <tml@iki.fi>
934
935         * Makefile.am (progs_LDADD): Change order of libs to libgobject
936         first, then libglib. Needed for cygwin, says jbdoll@kepri.re.kr.
937
938 Wed Jan 31 06:19:49 2001  Tim Janik  <timj@gtk.org>
939
940         * gparam.h: gtk-doc sucks for not dealing with #define inside enums.
941
942         * gtype.[hc]: added G_TYPE_FLAG_RESERVED_ID_BIT, a bit in the type
943         number that's supposed to be left untouched (preserved mainly
944         for the signal code).
945
946         * *.c: added thread safety code, based on an old patch from sebastian.
947         the remaining thread safety issues are now datalists on pspecs (to be
948         solved im gdataset.c) and gvalue.c where locking concerns value exchange
949         functionality only, and that's soon to be revised.
950
951 2001-01-27  Tor Lillqvist  <tml@iki.fi>
952
953         * makefile.msc.in: Don't try to compile gmarshal.c on its own.
954
955 2001-01-24    <alexl@redhat.com>
956
957         * gclosure.c (g_closure_unref):
958         Don't leak closure->notifiers.
959
960 2001-01-05  Havoc Pennington  <hp@redhat.com>
961
962         * gparamspecs.c (g_param_spec_enum): set the value_type in the
963         param spec; closes bug 40210
964         (g_param_spec_flags): ditto for flags
965
966 2001-01-03  Alexander Larsson  <alexl@redhat.com>
967
968         * gobject.c:
969         Move glib_debug_objects out of the G_ENABLE_DEBUG #ifdef.
970
971 Thu Dec 28 11:36:44 2000  Tim Janik  <timj@gtk.org>
972
973         * gbsearcharray.c (upper_power2): disable G_BSEARCH_ALIGN_POWER2
974         fucntionality if DISABLE_MEM_POOLS is defined.
975
976         * gtype.c: honour DISABLE_MEM_POOLS.
977
978         * gsignal.c (g_signal_init): flag signal key bsearch array with
979         G_BSEARCH_ALIGN_POWER2 to avoid excessive growth time. honour
980         DISABLE_MEM_POOLS.
981
982         * gparam.h: added G_PARAM_READWRITE alias for (G_PARAM_READABLE |
983                                                        G_PARAM_WRITABLE).
984
985 2000-12-15  Tor Lillqvist  <tml@iki.fi>
986
987         * gobject.def: Update.
988
989 2000-12-15  Havoc Pennington  <hp@pobox.com>
990
991         * gobject.c (g_object_do_class_init): use g_signal_newc
992
993         * gsignal.c (g_signal_newc): convenience function for signals
994         created from C
995         (g_signal_new_valist): added
996         (g_signal_new): removed
997
998 Fri Dec 15 04:40:23 2000  Tim Janik  <timj@gtk.org>
999
1000         * gparam.[hc]: add an instance member value_type so the default
1001         value of the pspec class can be overridden.
1002
1003 2000-12-14  Tor Lillqvist  <tml@iki.fi>
1004
1005         * makefile.mingw.in: Update, include parts from Makefile.am to
1006         build gmarshal.[ch]. Some day, we won't need these separate
1007         makefiles for Win32 compilation. I hope.
1008
1009         * makefile.msc.in: Update. No use trying to build gmarshal.[ch]
1010         here, it would require Unixish tools. MSVC users building from CVS
1011         sources are out of luck.
1012         
1013         * gobject.def: Update.
1014
1015 Wed Dec 13 09:31:26 2000  Tim Janik  <timj@gtk.org>
1016
1017         * gparamspecs.[hc]: add G_TYPE_PARAM_BOXED implementation.
1018
1019         * gobject.[hc]: minor fixes.
1020
1021 Tue Dec 12 23:38:02 2000  Tim Janik  <timj@gtk.org>
1022
1023         * Makefile.am: _never_ touch oldest-source-stamp.
1024         
1025         * gobject.[hc]: construct property handling fixes/improvements.
1026         fixed trailer handling in get/set property.
1027         
1028         * gparam.[hc]: implement param spec pool, got rid of param spec
1029         hashtable. the most prominent change is that e deal with type
1030         prefixes here.
1031         
1032 2000-12-12  Elliot Lee  <sopwith@redhat.com>
1033
1034         * Makefile.am:
1035           . You have to 'touch oldest-source-stamp' if you want to avoid having
1036           the Makefile constantly rebuild itself.
1037           . Fix marshaller generation rules to work with srcdir != builddir
1038             (there were issues with trying to run "./glib-genmarshal", etc.)
1039
1040 Mon Dec 11 04:44:11 2000  Tim Janik  <timj@gtk.org>
1041
1042         * gboxed.c: fixed dealing with collection/lcopy of NULL values.
1043         
1044         * gclosure.h: removed insane ramblings, added G_CALLBACK() a casting
1045         convenience macro.
1046         
1047         * Makefile.am: cleanups, marshaller generation rules.
1048         
1049         * gmarshal.[hc]: new files with GRuntime standard marshallers.
1050         
1051         * glib-genmarshal.c: fix log domain, support gruntime standard 
1052         marshallers, suport G_TYPE_PARAM, come with extern "C" and
1053         #include gmarshal.h.
1054         
1055         * glib-genmarshal.1: reflect glib-genmarshal.c updates.
1056         
1057         * gobject.[hc]: implement object constructor. rework parameter
1058         changed notification queueing, we support queue freezes now and
1059         don't dispatch from an idle handler anymore.
1060         parameter->property rename hassle.
1061         implemented ::properties_changed and ::notify::* signals for
1062         property change notification (the later supports property names
1063         as details). added signal connection and named data properties.
1064         (g_signal_connect_object): new function to setup while_alive
1065         connections.
1066         (g_object_class_install_property): sink properties now, since they
1067         are initially floating.
1068         (g_object_steal_data):
1069         (g_object_set_data_full):
1070         (g_object_set_data):
1071         (g_object_get_data): set/get data by using g_datalist_*() functions
1072         directly.
1073         (g_object_queue_param_changed): nuked.
1074         (g_object_freeze_notify): start queueing of property changes (freeze/
1075         thaw calls stack).
1076         (g_object_notify): announce changes of a certain property directly.
1077         (g_object_thaw_notify): process queue of property changes, therefore
1078         emitting GObject::notify::detail with detail being the changed
1079         properties names.
1080         (G_OBJECT_WARN_INVALID_PROPERTY_ID): saner macro variant of former
1081         G_WARN_INVALID_PARAM_ID().
1082         
1083         * gparam.[hc]: param specs are now initially floating and need to be
1084         sunken with g_param_spec_sink(), support G_TYPE_PARAM values.
1085         added G_PARAM_CONSTRUCT and G_PARAM_CONSTRUCT_ONLY parameter flags,
1086         required by GObjectClass.constructor().
1087         
1088         * gparamspecs.[hc]: added GParamSpecParam, GParamSpecPointer and
1089         GParamSpecCCallback, param specs for G_TYPE_PARAM, G_TYPE_POINTER
1090         and G_TYPE_CCALLBACK respectively.
1091         
1092         * gsignal.[hc]: cleanups.
1093         (signal_id_lookup): after walking the anchestry, try interfaces as well.
1094         (g_signal_new): new function to create signals from varargs type list.
1095         (g_signal_connect_closure): closure connection variant that works from
1096         signal name+detail.
1097         (g_signal_connect_data): c handler connection variant that works from
1098         signal name+detail.
1099         (g_signal_emit_valist): emit signal for an instance with paraneters
1100         collected from a va_list.
1101         (g_signal_emit): emit signal, taking parameters from varargs list.
1102         (g_signal_emit_by_name): same as g_signal_emit, working from
1103         signal name+detail.
1104         (signal_emit_R): return whether return_value needs to be altered.
1105         
1106         * gtype.[hc]: set log-domain to GRuntime, i'm slowly getting to all
1107         the points that need to reflect the upcoming rename.
1108         melt g_type_conforms_to() functionality into g_type_is_a(), as that
1109         is what we really want (liskov substitution principle).
1110         assorted changes to other files due to conforms_to->is_a.
1111
1112         * gvalue.[hc]: implemented g_value_set_instance() that sets a value
1113         from an instantiatable type via the value_table's collect_value()
1114         function (based on an idea from James Henstridge <james@daa.com.au>).
1115         cleanups/fixes.
1116         
1117         * gvaluetypes.[hc]: implement G_TYPE_CCALLBACK and G_TYPE_PARAM.
1118
1119 Wed Nov 29 13:30:05 2000  Tim Janik  <timj@gtk.org>
1120
1121         * gsignal.c (handlers_find): fix elliots "logic fix" that dereferences
1122         NULL nodes if C handlers are searched for specific signals.
1123
1124 2000-11-28  Elliot Lee  <sopwith@redhat.com>
1125
1126         * gsignal.c: Fix warnings about possible use of uninitialized
1127         variables, and fix logic that would leave 'node' unset in cases
1128         that it might be used in.
1129
1130         * glib-genmarshal.c: Fix warning about printf format.
1131
1132 2000-11-28  Tor Lillqvist  <tml@iki.fi>
1133
1134         * gboxed.c: Include <string.h> for memset ().
1135
1136 2000-11-22  Tor Lillqvist  <tml@iki.fi>
1137
1138         * gobject.def: Update.
1139
1140 2000-11-20  Havoc Pennington  <hp@redhat.com>
1141
1142         * gobject.c (g_object_get_data)
1143         (g_object_set_data)
1144         (g_object_set_data_full)
1145         (g_object_steal_data): More convenient data-setting functions
1146
1147 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
1148
1149         * gtypemodule.c (g_type_module_use): If loading the
1150         module fails, don't increment the use count.
1151
1152 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
1153
1154         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
1155         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
1156         Zeeman <maas@wanadoo.nl>.
1157
1158 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
1159
1160         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
1161
1162 2000-11-11  Tor Lillqvist  <tml@iki.fi>
1163
1164         * gtypemodule.c: Include stdlib.h for exit().
1165
1166         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
1167
1168         * gobject.def: Add missing functions.
1169
1170 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
1171
1172         * Makefile.am gtypemodule.[ch]: New basic implementation of
1173         GTypePlugin interface as a GObject. Dynamically loaded modules can
1174         register any number of types and interface on the module.
1175
1176 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
1177
1178         * gsignal.c (handlers_find): When appending handlers and
1179         not matching on signal_id, use hlist->signal_id instead of 
1180         signal_id. Having the correct signal_id when unreffing
1181         the handlers makes things work a lot better.
1182
1183 2000-11-05  Tor Lillqvist  <tml@iki.fi>
1184
1185         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
1186
1187         * gobject.def: Update.
1188
1189 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
1190
1191         * gsignal.c:
1192         fixed a bag full of subtle bugs of immensive screw-up potential in
1193         handlers_find(), luckily no one found out about them yet ;)
1194         fixed signal_handlers_foreach_matched_R() so it operates on an
1195         initial handler list snapshot provided by handlers_find() to work
1196         around general reentrancy problems and to avoid multiple callback()
1197         invocations on the same handlers.
1198         this code is now officially 80% bug free (10% remaining for interface
1199         types, and 10% remaining for destroyed signals ;)
1200         
1201 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
1202
1203         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
1204
1205         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
1206         implementation that provides the API required by GType to deal with
1207         dynamically loadable types.
1208
1209         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
1210
1211 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
1212
1213         * gsignal.[hc]: prefix internal functions with '_'. renamed
1214         g_signal_connect_closure() to g_signal_connect_closure_by_id().
1215         added g_signal_parse_name() to retrive signal_id and detail quark
1216         from a signal name (internal).
1217
1218 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
1219
1220         * gobject.c (g_object_base_class_finalize): destroy all signals that
1221         the finalized obejct type introduced.
1222
1223         * gsignal.c (g_signals_destroy): don't require itype to have
1224         signals.
1225
1226         * gobject.c (g_object_do_finalize): make sure all signal handlers
1227         are destroyed.
1228
1229         * gsignal.[hc]:
1230         (g_signal_handler_find): only match on non-0 masks.
1231         (g_signal_handlers_block_matched):
1232         (g_signal_handlers_unblock_matched):
1233         (g_signal_handlers_disconnect_matched): new functions to block/unblock
1234         or disconnect handlers in groups.
1235
1236 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1237
1238         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
1239         made both functions return gboolean just for the little extra
1240         standard conformance now that GEqualFunc is introduced.
1241
1242 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
1243
1244         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
1245         added, the doc system would ignore it anyways (for some reason not
1246         aparent to me).
1247
1248 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
1249
1250         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
1251         added required mutex locks.
1252
1253 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
1254
1255         * gsignal.c (g_type_signals): Fix problem where signals
1256         with "_" in them appeared twice in the result array.
1257
1258 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
1259
1260         * gsignal.h: Add g_type_signals() - a function to list
1261         all signals for a given type.
1262
1263 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
1264
1265         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
1266         for post_marshal guard which was off at 0.
1267
1268 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
1269
1270         * gobject.[hc]: doh, fix argument order in for
1271         g_cclosure_new_object_swap and g_cclosure_new_object.
1272
1273 2000-10-28  Tor Lillqvist  <tml@iki.fi>
1274
1275         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
1276
1277         * glib-genmarshal.c: Conditionalise include of unistd.h.
1278         Include <io.h> on Win32.
1279
1280         * gobject.def: Add some missing entry points.
1281
1282 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
1283
1284         * gsignal.[hc]: publically define GSignalInvocationHint structure
1285         that gets passed in to closure invocations. added signal details.
1286         renamed GSignalType to GSignalFlags to comply with conventions.
1287         quite some cleanups and minor fixes. avoid uneccessary handler list
1288         walks upon invokation of after handlers. relookup handler list for
1289         restarted emissions. preliminary abort normal handler invokation if
1290         after handler is encountered.
1291
1292         * glib-genmarshal.c:
1293         * gclosure.[hc]: moved invocation_hint to the end of the
1294         g_closure_invoke() arguments as sugegsted by kenelson.
1295         also made it a gpointer to be more generic. the invocation_hint
1296         is a caller specific thing that can be used to pass additional
1297         data in to closure invocations as documented with the caller
1298         invoking the closure.
1299
1300 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
1301
1302         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
1303         by havoc.
1304
1305         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
1306         g_signal_lookup() would be called with the signal lock being
1307         held. reported by james henstridge.
1308
1309         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
1310         reported by owen.
1311
1312 2000-10-26  Tor Lillqvist  <tml@iki.fi>
1313
1314         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
1315         arithmetic on void pointer, label without statement following.
1316
1317         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
1318         result of sizeof operator, it can be unsigned. Cast first to
1319         gssize.
1320
1321         * gobject.def: Add new functions.
1322
1323         * makefile.{mingw,msc}.in: Add new objects.
1324
1325 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1326
1327         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
1328         prevents 'make dist' from working.
1329
1330 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
1331
1332         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
1333         casts from void * since this will get included from C++ too
1334         at times.
1335         
1336 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
1337
1338         * gvaluetypes.[hc]: added g_value_set_static_string().
1339
1340         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
1341
1342 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
1343
1344         * gtype.c (g_type_free_instance): for the moment, freeing object
1345         structures will fill their memory portion with 0xAA. there's a
1346         FIXME there, remove this line at a later point.
1347
1348 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
1349
1350         * glib-genmarshal.1:
1351         * glib-genmarshal.c: added publically installed marshaller generator.
1352
1353         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
1354         interface VTable from instances.
1355
1356 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
1357
1358         * gobject.[hc]: new functions for closure maintenance:
1359         (g_object_watch_closure): maintain validity of the object and
1360         the closure for objects that are used as data part of a closure.
1361         (g_cclosure_new_object): convenience function to create C closures
1362         that have an object as data argument.
1363         (g_closure_new_object): convenience function to create closures
1364         that have an object as data argument.
1365
1366         * gclosure.[hc]: implementation of GClosure mechanism.
1367         a closure is basically an encapsulation of a callback function
1368         and its environment. ideally, most places supporting callback
1369         functions will simply take a GClosure* pointer and thus unify
1370         callback environments wrg destroy notification etc.
1371         GClosure provides destroy notifiers for arbitrary data pointers,
1372         reference counting, invalidation notification (it can be invalidated
1373         which is merely a deactivate state) and a marshallinbg abstraction.
1374         GCClosure is also provided in these files, they present a specialized
1375         GClosure implementation for C language callbacks.
1376
1377         * genum.c: macro cleanups.
1378         
1379         * gboxed.[hc]: new files, for boxed type abstraction.
1380         (g_boxed_copy): copy a boxed structure
1381         (g_boxed_free): free a boxed structure
1382         (g_value_set_boxed):
1383         (g_value_get_boxed): standard GValue functions for boxed types
1384         (g_boxed_type_register_static): convenience function for easy
1385         introduction of new G_TYPE_BOXED derivatives.
1386
1387         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
1388         for creation of new GParamSpec derived types.
1389
1390         * gtype.[hc]: many fixes, introduced ability to flag individual
1391         type nodes as ABSTRACT upon registration, added value_peek_pointer()
1392         to the value table to peek at GValue contents as a pointer for types
1393         that support this. fixed up GValue checks.
1394
1395         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
1396         to peek at the value contents as pointer.
1397
1398         * *.[hc]: adaptions to type macro fixes and changes in the type
1399         registration API.
1400
1401         * many const corrections over the place.
1402
1403 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
1404
1405         * gtype.c (g_type_conforms_to): this function basically behaves like
1406         and is_a check, except that it _additionally_ features interfaces
1407         for instantiatable types. enforce this in the second branch as well
1408         (`type' conforms_to `type') even if `type' is not an interface type.
1409
1410 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
1411
1412         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
1413
1414         * gtype.[hc]:
1415         * gobject.c:
1416         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
1417         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
1418         and G_TYPE_POINTER.
1419
1420 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
1421
1422         * gbsearcharray.[hc]: long standing needed generic implementation
1423         of a binary searchable, sorted and dynamically sized array.
1424
1425 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
1426
1427         * Makefile.am (BUILT_EXTRA_DIST): New variable.
1428         (dist-hook): Handle $(BUILT_EXTRA_DIST).
1429         (*): Remove traces of @STRIP_{BEGIN,END}@.
1430         
1431 2000-09-29  Martin Baulig  <baulig@suse.de>
1432         
1433         Several minor ANSI C fixes.
1434
1435         Added missing casts:
1436         * gtype.c (type_class_init): 
1437         `(gpointer) bnode->data->class.class_init_base'
1438         in call to g_slist_prepend() and
1439         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
1440
1441         * gobject.c: Put text following #endif into comments.
1442
1443 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
1444
1445         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
1446         dist from working.
1447
1448 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
1449
1450         * gobject.c (g_object_last_unref): Move call to
1451         g_type_free_instance() here from g_object_do_finalize,
1452         since g_type_free_instance() can unload the object's
1453         implementation.
1454
1455 2000-07-27  Tor Lillqvist  <tml@iki.fi>
1456
1457         * gobject.c: No, don't mark glib_debug_objects for export here,
1458         it's handled specially in gtktypeutils.c.
1459
1460         * gobject.def: Export g_type_fundamental_last (the function).
1461
1462 2000-07-26  Tor Lillqvist  <tml@iki.fi>
1463
1464         * gobject.def
1465         * gobject.c: Mark glib_debug_objects for export/import as it is
1466         used by GTK+.
1467
1468 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
1469
1470         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
1471         that extern variable clutter and avoiding further problems with thread
1472         safety.
1473
1474 2000-07-19  Tor Lillqvist  <tml@iki.fi>
1475
1476         * gparam.h
1477         * gvalue.h
1478         * gparam.c
1479         * gtype.c: Shut up Sun's picky compiler.
1480
1481 2000-07-14  Tor Lillqvist  <tml@iki.fi>
1482
1483         * gobject.def: Add g_type_get_plugin.
1484
1485 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
1486
1487         * gparam.c (g_param_value_defaults): default initialize the temporary
1488         default value, instead of nuking the caller's value contents.
1489
1490 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
1491
1492         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
1493
1494 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
1495
1496         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
1497
1498 2000-07-10  Tor Lillqvist  <tml@iki.fi>
1499
1500         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
1501         to guard inclusion of <unistd.h>.
1502
1503         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
1504         variable for export. Call the macro GOBJECT_VAR.
1505
1506         * gtype.c: Declare _g_type_fundamental_last for export here, too.
1507         (type_node_any_new): Use only constant expressions for sizeof
1508         operator (for instance MSVC requires this).
1509
1510         * makefile.mingw.in: Define GOBJECT_COMPILATION.
1511
1512 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
1513
1514         * genums.c: Move string.h include into the .c file
1515         instead of where it was in the .h file by mistake.
1516
1517 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
1518
1519         * Makefile.am (EXTRA_DIST): dist fixes.
1520
1521         * gobject.c: Add a global variable glib_debug_objects
1522         (not in header file) to control object tracing.
1523
1524 2000-07-01  Tor Lillqvist  <tml@iki.fi>
1525
1526         * gobject.def: Update added and renamed entry points.
1527
1528         * makefile.mingw.in: Add gvaluetypes.o.
1529
1530 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
1531
1532         * gobject.c:include string.h for memset
1533         * genums.h: include string.h for strcpy
1534         * gvalue.c: include string.h for memset, memcpy.
1535
1536 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
1537
1538         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
1539         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
1540         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
1541         added a GTypeValueTable* pointer to GTypeInfo structure for types
1542         to implement GValue handling functions.
1543         GTypeValueTable contains the following members:
1544           value_init(): initialize a GValue structure.
1545           value_free(): free GValue structure contents (optional).
1546           value_copy(): copy one GValue contents to another GValue structure of
1547           collect_type: varargs collection type for the first variable argument
1548           to be collected by collect_value().
1549           collect_value(): variable arguments collection function (optional).
1550           lcopy_type: varargs collection type for the first variable argument
1551           to be location copyied by lcopy_value().
1552           lcopy_value(): variable arguments location copy function (optional).
1553         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
1554         for a type node. ValueTables get inherited from parent types, unless
1555         overridden through the GTypeInfo structure. internally, GTypeValueTable
1556         support means an added overhead of one pointer per static or used
1557         dynamic type node.
1558         g_type_add_class_cache_func(): provide a cache_func/data pair to be
1559         called  prior to a type nodes last_unref() function, this can be used
1560         to prevent premature class destruction. multiple installed cache_func()
1561         will be chained upon last_unref() untill one of them returns TRUE.
1562         the cache_func()s have to check the class id passed in to figure whether
1563         they actually want to cache the class of this type (since all classes
1564         are routed through the cache_func() chain).
1565         g_type_remove_class_cache_func(): remove a previously installed
1566         cache_func/data pair. the cache maintained by this function has to be
1567         clear when calling g_type_remove_class_cache_func() to avoid leaks.
1568         g_type_class_unref_uncached(): class unref function for cache_func()
1569         implementations, unreferences a class omitting the cache chain (and
1570         therefore unref->cache->unref->... loops).
1571
1572         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
1573         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
1574         double and string.
1575
1576         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
1577         GTypeValueTable is provided for this type.
1578         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
1579         g_value_set_default() and g_values_cmp() as these are supplied by the
1580         GParamSpec API now.
1581         moved g_values_exchange() into the "implementation details" section,
1582         since it just provides the underlying functionality for
1583         g_value_convert().
1584
1585         * gvaluecollector.h: renamed the varargs value container from
1586         GParamCValue to GTypeCValue as the value collection methods are
1587         supplied by the type system now.
1588         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
1589         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
1590         GParamSpec structure now.
1591
1592         * genums.h: macros cleanups/fixes.
1593
1594         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
1595         and assorted g_value_{s|g}et_{enum|flags}() implementations.
1596
1597         * gobject.[hc]:
1598         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
1599         and g_value_{s|g}et_object().
1600
1601         * gparam.[hc]: reduced class to value_set_default(),
1602         value_validate() and values_cmp(). also parameters now need to fill
1603         in a GType value_type; field to indicate the GValue type they
1604         are handling. provide g_param_value_set_default(),
1605         g_param_value_defaults(), g_param_value_validate() and
1606         g_param_values_cmp().
1607
1608         * gparamspecs.[hc]: got rid of the g_value_* functions and
1609         the G_IS_VALUE_* macros. adapted param spec implementations
1610         according to the GParamSpecClass changes.
1611
1612 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
1613
1614         * gtype.c (type_class_init): fetch the nth iface entry of the
1615         type node in the nth loop iteration, not alwys the first.
1616         bug discovered by Walt Pohl <cher@suitware.com>.
1617         (type_data_finalize_class_ifaces): same here, cut and paste
1618         rulez.
1619
1620 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
1621
1622         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
1623         is found properly when build srcdir != builddir. (Patch from
1624         Eric Lemings)
1625
1626 2000-05-13  Tor Lillqvist  <tml@iki.fi>
1627
1628         * makefile.mingw.in
1629         * gobject.def
1630         * gobject.rc.in: New files, for Win32 (mingw) build.
1631
1632         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
1633         corresponding non-*.in files.
1634
1635         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
1636         export/import from DLL.
1637
1638 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
1639
1640         * gtype.h: add reserved fundamental ids for gtk types (for transition
1641         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
1642
1643 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
1644
1645         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
1646         n_params prior to destructing them.
1647
1648 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
1649
1650         * fixed a couple of bugs in the initial parameter/object
1651         implementations, after getting beast running on GObject and GValue.
1652
1653 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
1654
1655         * glib-gobject.[hc]: completed parameter set/get implementations,
1656         along with asyncronous parameter changed notification queue.
1657
1658 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
1659
1660         * glib-gobject.[hc]: GObject implementation, that is facilities
1661         for setting/getting quarked data and reference counting.
1662
1663         * glib-gparamspecs.[hc]: first actuall parameter implementations
1664         for GLib, so far we have: char, uchar, bool, int, uint, long,
1665         ulong, enum, flags, float, double, string and object. each of these
1666         GParamSpecs is a new instantiatable type in its own respect,
1667         so the .c file derives 13 new types from G_TYPE_PARAM and
1668         defines over 50 (*2) conversion facilities.
1669
1670         * glib-gvaluecollector.h: generic varargs handling stubs for
1671         GParamSpecs, private header file (does get installed for
1672         inclusion into user code though).
1673
1674         * glib-gvalue.[hc]: GValue functionality implementation.
1675
1676         * glib-gparam.[hc]: basis GParamSpec implementation for
1677         the virtual base type G_TYPE_PARAM.
1678
1679         * glib-genums.[hc]: enum/flags type implementation, based on
1680         bseenum.[hc].
1681
1682         * glib-gtype.[hc]: GLib Type System implementation, heavily
1683         based on BSE's dynamic type system.