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