If loading the module fails, don't increment the use count.
[platform/upstream/glib.git] / gobject / ChangeLog
1 Wed Nov 15 20:58:05 2000  Owen Taylor  <otaylor@redhat.com>
2
3         * gtypemodule.c (g_type_module_use): If loading the
4         module fails, don't increment the use count.
5
6 Thu Nov  9 01:49:43 2000  Tim Janik  <timj@gtk.org>
7
8         * gobject.h (G_WARN_INVALID_PARAM_ID): doh,
9         s/BSE_OBJECT_TYPE_NAME/G_OBJECT_TYPE_NAME/; reported by Maas-Maarten
10         Zeeman <maas@wanadoo.nl>.
11
12 Mon Nov 13 00:48:39 2000  Owen Taylor  <otaylor@redhat.com>
13
14         * Makefile.am (EXTRA_DIST): Add glib-genmarshal.1
15
16 2000-11-11  Tor Lillqvist  <tml@iki.fi>
17
18         * gtypemodule.c: Include stdlib.h for exit().
19
20         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypemodule.
21
22         * gobject.def: Add missing functions.
23
24 Sun Nov  5 13:21:28 2000  Owen Taylor  <otaylor@redhat.com>
25
26         * Makefile.am gtypemodule.[ch]: New basic implementation of
27         GTypePlugin interface as a GObject. Dynamically loaded modules can
28         register any number of types and interface on the module.
29
30 Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
31
32         * gsignal.c (handlers_find): When appending handlers and
33         not matching on signal_id, use hlist->signal_id instead of 
34         signal_id. Having the correct signal_id when unreffing
35         the handlers makes things work a lot better.
36
37 2000-11-05  Tor Lillqvist  <tml@iki.fi>
38
39         * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
40
41         * gobject.def: Update.
42
43 Sun Nov  5 05:22:55 2000  Tim Janik  <timj@gtk.org>
44
45         * gsignal.c:
46         fixed a bag full of subtle bugs of immensive screw-up potential in
47         handlers_find(), luckily no one found out about them yet ;)
48         fixed signal_handlers_foreach_matched_R() so it operates on an
49         initial handler list snapshot provided by handlers_find() to work
50         around general reentrancy problems and to avoid multiple callback()
51         invocations on the same handlers.
52         this code is now officially 80% bug free (10% remaining for interface
53         types, and 10% remaining for destroyed signals ;)
54         
55 Sat Nov  4 02:01:33 2000  Tim Janik  <timj@gtk.org>
56
57         * gsignal.c (_g_signals_destroy): valid signal nodes start out at 1.
58
59         * gtypeplugin.[hc]: new files holding a GTypePlugin interface
60         implementation that provides the API required by GType to deal with
61         dynamically loadable types.
62
63         * gtype.[hc]: displace any GTypePlugin business to gtypeplugin.h.
64
65 Fri Nov  3 07:35:00 2000  Tim Janik  <timj@gtk.org>
66
67         * gsignal.[hc]: prefix internal functions with '_'. renamed
68         g_signal_connect_closure() to g_signal_connect_closure_by_id().
69         added g_signal_parse_name() to retrive signal_id and detail quark
70         from a signal name (internal).
71
72 Wed Nov  1 03:36:54 2000  Tim Janik  <timj@gtk.org>
73
74         * gobject.c (g_object_base_class_finalize): destroy all signals that
75         the finalized obejct type introduced.
76
77         * gsignal.c (g_signals_destroy): don't require itype to have
78         signals.
79
80         * gobject.c (g_object_do_finalize): make sure all signal handlers
81         are destroyed.
82
83         * gsignal.[hc]:
84         (g_signal_handler_find): only match on non-0 masks.
85         (g_signal_handlers_block_matched):
86         (g_signal_handlers_unblock_matched):
87         (g_signal_handlers_disconnect_matched): new functions to block/unblock
88         or disconnect handlers in groups.
89
90 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
91
92         * gvalue.c (exchange_entries_equal), gparam.c (param_spec_equals):
93         made both functions return gboolean just for the little extra
94         standard conformance now that GEqualFunc is introduced.
95
96 Mon Oct 30 05:52:45 2000  Tim Janik  <timj@gtk.org>
97
98         * gsignal.c (g_signal_list_ids): get rid of inline documentation owen
99         added, the doc system would ignore it anyways (for some reason not
100         aparent to me).
101
102 Mon Oct 30 03:00:07 2000  Tim Janik  <timj@gtk.org>
103
104         * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(),
105         added required mutex locks.
106
107 Sun Oct 29 02:31:03 2000  Owen Taylor  <otaylor@redhat.com>
108
109         * gsignal.c (g_type_signals): Fix problem where signals
110         with "_" in them appeared twice in the result array.
111
112 Sun Oct 29 01:58:44 2000  Owen Taylor  <otaylor@redhat.com>
113
114         * gsignal.h: Add g_type_signals() - a function to list
115         all signals for a given type.
116
117 Sat Oct 28 00:28:09 2000  Tim Janik  <timj@gtk.org>
118
119         * gclosure.c (g_closure_add_marshal_guards): fixed notifier position
120         for post_marshal guard which was off at 0.
121
122 Fri Oct 27 21:49:31 2000  Tim Janik  <timj@gtk.org>
123
124         * gobject.[hc]: doh, fix argument order in for
125         g_cclosure_new_object_swap and g_cclosure_new_object.
126
127 2000-10-28  Tor Lillqvist  <tml@iki.fi>
128
129         * makefile.{mingw,msc}.in: Make glib-genmarshal.exe.
130
131         * glib-genmarshal.c: Conditionalise include of unistd.h.
132         Include <io.h> on Win32.
133
134         * gobject.def: Add some missing entry points.
135
136 Fri Oct 27 16:33:41 2000  Tim Janik  <timj@gtk.org>
137
138         * gsignal.[hc]: publically define GSignalInvocationHint structure
139         that gets passed in to closure invocations. added signal details.
140         renamed GSignalType to GSignalFlags to comply with conventions.
141         quite some cleanups and minor fixes. avoid uneccessary handler list
142         walks upon invokation of after handlers. relookup handler list for
143         restarted emissions. preliminary abort normal handler invokation if
144         after handler is encountered.
145
146         * glib-genmarshal.c:
147         * gclosure.[hc]: moved invocation_hint to the end of the
148         g_closure_invoke() arguments as sugegsted by kenelson.
149         also made it a gpointer to be more generic. the invocation_hint
150         is a caller specific thing that can be used to pass additional
151         data in to closure invocations as documented with the caller
152         invoking the closure.
153
154 Fri Oct 27 05:35:14 2000  Tim Janik  <timj@gtk.org>
155
156         * gobject.c (g_object_watch_closure): fixed realloc bug, reported
157         by havoc.
158
159         * gsignal.c (g_signal_newv): fixed deadlock scenarion where
160         g_signal_lookup() would be called with the signal lock being
161         held. reported by james henstridge.
162
163         * gclosure.c (g_closure_set_meta_marshal): fixed memcpy/overwrite bug
164         reported by owen.
165
166 2000-10-26  Tor Lillqvist  <tml@iki.fi>
167
168         * gbsearcharray.c (bsearch_array_insert): Fix gccisms (pointer
169         arithmetic on void pointer, label without statement following.
170
171         * gtype.c (type_node_fundamental_info): Don't apply unary minus to
172         result of sizeof operator, it can be unsigned. Cast first to
173         gssize.
174
175         * gobject.def: Add new functions.
176
177         * makefile.{mingw,msc}.in: Add new objects.
178
179 2000-10-26  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
180
181         * Makefile.am: Remove empty SUBDIRS line _again_, as that _still_
182         prevents 'make dist' from working.
183
184 Wed Oct 25 19:11:03 2000  Owen Taylor  <otaylor@redhat.com>
185
186         * gbsearcharray.h (g_bsearch_array_get_nth): Don't use implicit
187         casts from void * since this will get included from C++ too
188         at times.
189         
190 Thu Oct 26 00:30:27 2000  Tim Janik  <timj@gtk.org>
191
192         * gvaluetypes.[hc]: added g_value_set_static_string().
193
194         * gboxed.[hc]: const corrections. added g_value_set_static_boxed().
195
196 Wed Oct 25 20:27:02 2000  Tim Janik  <timj@gtk.org>
197
198         * gtype.c (g_type_free_instance): for the moment, freeing object
199         structures will fill their memory portion with 0xAA. there's a
200         FIXME there, remove this line at a later point.
201
202 Tue Oct 24 23:10:26 2000  Tim Janik  <timj@gtk.org>
203
204         * glib-genmarshal.1:
205         * glib-genmarshal.c: added publically installed marshaller generator.
206
207         * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain
208         interface VTable from instances.
209
210 Mon Oct 23 08:28:15 2000  Tim Janik  <timj@gtk.org>
211
212         * gobject.[hc]: new functions for closure maintenance:
213         (g_object_watch_closure): maintain validity of the object and
214         the closure for objects that are used as data part of a closure.
215         (g_cclosure_new_object): convenience function to create C closures
216         that have an object as data argument.
217         (g_closure_new_object): convenience function to create closures
218         that have an object as data argument.
219
220         * gclosure.[hc]: implementation of GClosure mechanism.
221         a closure is basically an encapsulation of a callback function
222         and its environment. ideally, most places supporting callback
223         functions will simply take a GClosure* pointer and thus unify
224         callback environments wrg destroy notification etc.
225         GClosure provides destroy notifiers for arbitrary data pointers,
226         reference counting, invalidation notification (it can be invalidated
227         which is merely a deactivate state) and a marshallinbg abstraction.
228         GCClosure is also provided in these files, they present a specialized
229         GClosure implementation for C language callbacks.
230
231         * genum.c: macro cleanups.
232         
233         * gboxed.[hc]: new files, for boxed type abstraction.
234         (g_boxed_copy): copy a boxed structure
235         (g_boxed_free): free a boxed structure
236         (g_value_set_boxed):
237         (g_value_get_boxed): standard GValue functions for boxed types
238         (g_boxed_type_register_static): convenience function for easy
239         introduction of new G_TYPE_BOXED derivatives.
240
241         * gparam.[hc]: introduced g_param_type_register_static(), a short hand
242         for creation of new GParamSpec derived types.
243
244         * gtype.[hc]: many fixes, introduced ability to flag individual
245         type nodes as ABSTRACT upon registration, added value_peek_pointer()
246         to the value table to peek at GValue contents as a pointer for types
247         that support this. fixed up GValue checks.
248
249         * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer()
250         to peek at the value contents as pointer.
251
252         * *.[hc]: adaptions to type macro fixes and changes in the type
253         registration API.
254
255         * many const corrections over the place.
256
257 Sat Oct 21 02:49:56 2000  Tim Janik  <timj@gtk.org>
258
259         * gtype.c (g_type_conforms_to): this function basically behaves like
260         and is_a check, except that it _additionally_ features interfaces
261         for instantiatable types. enforce this in the second branch as well
262         (`type' conforms_to `type') even if `type' is not an interface type.
263
264 Fri Oct 20 15:31:04 2000  Tim Janik  <timj@gtk.org>
265
266         * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb.
267
268         * gtype.[hc]:
269         * gobject.c:
270         * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and
271         suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT
272         and G_TYPE_POINTER.
273
274 Mon Aug 21 04:13:37 2000  Tim Janik  <timj@gtk.org>
275
276         * gbsearcharray.[hc]: long standing needed generic implementation
277         of a binary searchable, sorted and dynamically sized array.
278
279 2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>
280
281         * Makefile.am (BUILT_EXTRA_DIST): New variable.
282         (dist-hook): Handle $(BUILT_EXTRA_DIST).
283         (*): Remove traces of @STRIP_{BEGIN,END}@.
284         
285 2000-09-29  Martin Baulig  <baulig@suse.de>
286         
287         Several minor ANSI C fixes.
288
289         Added missing casts:
290         * gtype.c (type_class_init): 
291         `(gpointer) bnode->data->class.class_init_base'
292         in call to g_slist_prepend() and
293         'GBaseInitFunc class_init_base = (GBaseInitFunc) slist->data'.
294
295         * gobject.c: Put text following #endif into comments.
296
297 2000-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
298
299         * Makefile.am: Remove empty SUBDIRS line, as that prevents make
300         dist from working.
301
302 Sat Sep  9 20:04:13 2000  Owen Taylor  <otaylor@redhat.com>
303
304         * gobject.c (g_object_last_unref): Move call to
305         g_type_free_instance() here from g_object_do_finalize,
306         since g_type_free_instance() can unload the object's
307         implementation.
308
309 2000-07-27  Tor Lillqvist  <tml@iki.fi>
310
311         * gobject.c: No, don't mark glib_debug_objects for export here,
312         it's handled specially in gtktypeutils.c.
313
314         * gobject.def: Export g_type_fundamental_last (the function).
315
316 2000-07-26  Tor Lillqvist  <tml@iki.fi>
317
318         * gobject.def
319         * gobject.c: Mark glib_debug_objects for export/import as it is
320         used by GTK+.
321
322 Sun Jul 23 17:23:35 2000  Tim Janik  <timj@gtk.org>
323
324         * gtype.[hc]: make g_type_fundamental_last() a function, avoiding all
325         that extern variable clutter and avoiding further problems with thread
326         safety.
327
328 2000-07-19  Tor Lillqvist  <tml@iki.fi>
329
330         * gparam.h
331         * gvalue.h
332         * gparam.c
333         * gtype.c: Shut up Sun's picky compiler.
334
335 2000-07-14  Tor Lillqvist  <tml@iki.fi>
336
337         * gobject.def: Add g_type_get_plugin.
338
339 Thu Jul 13 02:07:54 2000  Tim Janik  <timj@gtk.org>
340
341         * gparam.c (g_param_value_defaults): default initialize the temporary
342         default value, instead of nuking the caller's value contents.
343
344 2000-07-11  Raja R Harinath  <harinath@cs.umn.edu>
345
346         * gtype.c (g_type_get_plugin): Don't return just 0 or 1.
347
348 Tue Jul 11 02:48:13 2000  Tim Janik  <timj@gtk.org>
349
350         * gtype.[hc]: removed g_type_is_dynamic() and added g_type_get_plugin().
351
352 2000-07-10  Tor Lillqvist  <tml@iki.fi>
353
354         * gobject-query.c: Include ../config.h for HAVE_UNISTD_H. Use it
355         to guard inclusion of <unistd.h>.
356
357         * gtype.h: Fix copy-paste errors in the ifdefs on how to declare a
358         variable for export. Call the macro GOBJECT_VAR.
359
360         * gtype.c: Declare _g_type_fundamental_last for export here, too.
361         (type_node_any_new): Use only constant expressions for sizeof
362         operator (for instance MSVC requires this).
363
364         * makefile.mingw.in: Define GOBJECT_COMPILATION.
365
366 Sun Jul  9 21:21:46 2000  Owen Taylor  <otaylor@redhat.com>
367
368         * genums.c: Move string.h include into the .c file
369         instead of where it was in the .h file by mistake.
370
371 Thu Jul  6 15:30:27 2000  Owen Taylor  <otaylor@redhat.com>
372
373         * Makefile.am (EXTRA_DIST): dist fixes.
374
375         * gobject.c: Add a global variable glib_debug_objects
376         (not in header file) to control object tracing.
377
378 2000-07-01  Tor Lillqvist  <tml@iki.fi>
379
380         * gobject.def: Update added and renamed entry points.
381
382         * makefile.mingw.in: Add gvaluetypes.o.
383
384 Thu Jun 29 16:02:07 2000  Owen Taylor  <otaylor@redhat.com>
385
386         * gobject.c:include string.h for memset
387         * genums.h: include string.h for strcpy
388         * gvalue.c: include string.h for memset, memcpy.
389
390 Sat Jun 24 23:03:04 2000  Tim Janik  <timj@gtk.org>
391
392         * gtype.[hc]: provide G_TYPE_CHAR, G_TYPE_UCHAR, G_TYPE_BOOLEAN,
393         G_TYPE_INT, G_TYPE_UINT, G_TYPE_LONG, G_TYPE_ULONG, G_TYPE_FLOAT,
394         G_TYPE_DOUBLE and G_TYPE_STRING fundamental types.
395         added a GTypeValueTable* pointer to GTypeInfo structure for types
396         to implement GValue handling functions.
397         GTypeValueTable contains the following members:
398           value_init(): initialize a GValue structure.
399           value_free(): free GValue structure contents (optional).
400           value_copy(): copy one GValue contents to another GValue structure of
401           collect_type: varargs collection type for the first variable argument
402           to be collected by collect_value().
403           collect_value(): variable arguments collection function (optional).
404           lcopy_type: varargs collection type for the first variable argument
405           to be location copyied by lcopy_value().
406           lcopy_value(): variable arguments location copy function (optional).
407         g_type_value_table_peek(): new function to retrive the GTypeValueTable*
408         for a type node. ValueTables get inherited from parent types, unless
409         overridden through the GTypeInfo structure. internally, GTypeValueTable
410         support means an added overhead of one pointer per static or used
411         dynamic type node.
412         g_type_add_class_cache_func(): provide a cache_func/data pair to be
413         called  prior to a type nodes last_unref() function, this can be used
414         to prevent premature class destruction. multiple installed cache_func()
415         will be chained upon last_unref() untill one of them returns TRUE.
416         the cache_func()s have to check the class id passed in to figure whether
417         they actually want to cache the class of this type (since all classes
418         are routed through the cache_func() chain).
419         g_type_remove_class_cache_func(): remove a previously installed
420         cache_func/data pair. the cache maintained by this function has to be
421         clear when calling g_type_remove_class_cache_func() to avoid leaks.
422         g_type_class_unref_uncached(): class unref function for cache_func()
423         implementations, unreferences a class omitting the cache chain (and
424         therefore unref->cache->unref->... loops).
425
426         * gvaluetypes.[hc]: provide the value setters/getters for the primitive
427         fundamental types boolean, char, uchar, int, uint, long, ulong, float,
428         double and string.
429
430         * gvalue.[hc]: provide G_TYPE_IS_VALUE() in terms of whether a
431         GTypeValueTable is provided for this type.
432         removed g_value_init_default(), g_value_validate(), g_value_defaults(),
433         g_value_set_default() and g_values_cmp() as these are supplied by the
434         GParamSpec API now.
435         moved g_values_exchange() into the "implementation details" section,
436         since it just provides the underlying functionality for
437         g_value_convert().
438
439         * gvaluecollector.h: renamed the varargs value container from
440         GParamCValue to GTypeCValue as the value collection methods are
441         supplied by the type system now.
442         G_PARAM_COLLECT_VALUE() and G_PARAM_LCOPY_VALUE() got renamed to
443         G_VALUE_COLLECT() and G_VALUE_LCOPY() and operate without a
444         GParamSpec structure now.
445
446         * genums.h: macros cleanups/fixes.
447
448         * genum.c: provide G_TYPE_ENUM and G_TYPE_FLAGS type
449         and assorted g_value_{s|g}et_{enum|flags}() implementations.
450
451         * gobject.[hc]:
452         provide G_IS_VALUE_OBJECT(), G_TYPE_OBJECT ValueTable methods
453         and g_value_{s|g}et_object().
454
455         * gparam.[hc]: reduced class to value_set_default(),
456         value_validate() and values_cmp(). also parameters now need to fill
457         in a GType value_type; field to indicate the GValue type they
458         are handling. provide g_param_value_set_default(),
459         g_param_value_defaults(), g_param_value_validate() and
460         g_param_values_cmp().
461
462         * gparamspecs.[hc]: got rid of the g_value_* functions and
463         the G_IS_VALUE_* macros. adapted param spec implementations
464         according to the GParamSpecClass changes.
465
466 Sat Jun 10 08:38:27 2000  Tim Janik  <timj@gtk.org>
467
468         * gtype.c (type_class_init): fetch the nth iface entry of the
469         type node in the nth loop iteration, not alwys the first.
470         bug discovered by Walt Pohl <cher@suitware.com>.
471         (type_data_finalize_class_ifaces): same here, cut and paste
472         rulez.
473
474 Wed Jun  7 09:21:05 2000  Owen Taylor  <otaylor@redhat.com>
475
476         * Makefile.am (INCLUDES): Add top_builddir so glibconfig.h
477         is found properly when build srcdir != builddir. (Patch from
478         Eric Lemings)
479
480 2000-05-13  Tor Lillqvist  <tml@iki.fi>
481
482         * makefile.mingw.in
483         * gobject.def
484         * gobject.rc.in: New files, for Win32 (mingw) build.
485
486         * Makefile.am: Add to EXTRA_DIST. Add rules to produce the
487         corresponding non-*.in files.
488
489         * gtype.h: (Win32:) Mark _g_type_fundamental_last for
490         export/import from DLL.
491
492 Fri May  5 01:15:48 2000  Tim Janik  <timj@gtk.org>
493
494         * gtype.h: add reserved fundamental ids for gtk types (for transition
495         time). added G_TYPE_FUNDAMENTAL_MAX for gtk.
496
497 Mon Apr 17 20:45:50 2000  Tim Janik  <timj@gtk.org>
498
499         * glib-gobject.c (g_object_base_class_finalize): oops, don't unset
500         n_params prior to destructing them.
501
502 Tue Apr 11 04:28:10 2000  Tim Janik  <timj@gtk.org>
503
504         * fixed a couple of bugs in the initial parameter/object
505         implementations, after getting beast running on GObject and GValue.
506
507 Fri Apr  7 04:27:49 2000  Tim Janik  <timj@gtk.org>
508
509         * glib-gobject.[hc]: completed parameter set/get implementations,
510         along with asyncronous parameter changed notification queue.
511
512 Sun Apr  2 04:54:36 2000  Tim Janik  <timj@gtk.org>
513
514         * glib-gobject.[hc]: GObject implementation, that is facilities
515         for setting/getting quarked data and reference counting.
516
517         * glib-gparamspecs.[hc]: first actuall parameter implementations
518         for GLib, so far we have: char, uchar, bool, int, uint, long,
519         ulong, enum, flags, float, double, string and object. each of these
520         GParamSpecs is a new instantiatable type in its own respect,
521         so the .c file derives 13 new types from G_TYPE_PARAM and
522         defines over 50 (*2) conversion facilities.
523
524         * glib-gvaluecollector.h: generic varargs handling stubs for
525         GParamSpecs, private header file (does get installed for
526         inclusion into user code though).
527
528         * glib-gvalue.[hc]: GValue functionality implementation.
529
530         * glib-gparam.[hc]: basis GParamSpec implementation for
531         the virtual base type G_TYPE_PARAM.
532
533         * glib-genums.[hc]: enum/flags type implementation, based on
534         bseenum.[hc].
535
536         * glib-gtype.[hc]: GLib Type System implementation, heavily
537         based on BSE's dynamic type system.