2.9.4
[platform/upstream/glib.git] / ChangeLog.pre-2-12
1 2006-01-18  Matthias Clasen  <mclasen@redhat.com>
2         
3         * === Released 2.9.4 ===
4
5         * NEWS: Updates
6
7 2006-01-17  Matthias Clasen  <mclasen@redhat.com>
8
9         * glib/gkeyfile.c (g_key_file_get_groups): Correct a g_new0()
10         call.  (#327421, Morten Welinder)
11
12 2006-01-17  Sebastian Wilhelmi  <seppi@seppi.de>
13
14         * glib/gthreadpool.c: To avoid deadlocks get rid of the settings
15         G_LOCK. Use the unused_thread_queue lock instead. Change
16         g_thread_pool_thread_proxy such that threads only wait on
17         non-exlusive pools for at most a 1/2 second. Do not reorder tasks
18         due to superfluous tasks. Global tasks wait at most for
19         max-idle-time milliseconds. Make sure, that no task is woken up
20         twice for the same event via a wakeup_serial. This fixes #324228.
21
22         * tests/threadpool-test.c: Adapt test accordingly. Do not pass
23         invalid NULL into the thread pools. This as well fixes #327290.
24
25 2006-01-16  Matthias Clasen  <mclasen@redhat.com>
26
27         * configure.in: Bump version
28
29         * === Released 2.9.3 ===
30
31         * NEWS: Updates
32
33         * glib/gthread.h (g_static_mutex_get_mutex_impl_shortcut): 
34         Rework the strict aliasing fix to not break C++, pointed
35         out by Murray Cumming.
36         
37         * glib/gasyncqueue.c (g_async_queue_push_sorted_unlocked):
38         Signal waiting threads, problem noticed by Christian Kellner.
39
40 2006-01-16  Matthias Clasen  <mclasen@redhat.com>
41
42         Fix bug 326747, Alberto Ruiz:
43         
44         * glib/gconvert.c (make_valid_utf8): Change this function to
45         replace unknown characters by the Unicode replacement character
46         instead of '?', and don't append "(invalid encoding)".
47         (g_filename_display_name, g_filename_display_basename): Document
48         how to determine if the filename was in an invalid encoding.
49
50 2006-01-14  Matthias Clasen  <mclasen@redhat.com>
51
52         * glib/gtree.c: Replace the simple recursive implementation
53         by a nonrecursive, threaded implementation by Maurizio 
54         Monge.  (#169285)
55
56 2006-01-12  Matthias Clasen  <mclasen@redhat.com>
57
58         * tests/asyncqueue-test.c (main): Fix the
59         assert to not always trigger.  (#326558, 
60         Daichi Kawahata)
61
62 2006-01-11  Matthias Clasen  <mclasen@redhat.com>
63
64         * tests/convert-test.c: Don't test items_read and
65         items_written in error cases where it is not set.
66
67         * tests/asyncqueue-test.c: Set error to NULL.
68
69 2006-01-08  Matthias Clasen  <mclasen@redhat.com>
70
71         * glib/gtree.c: Break some long lines.
72
73         * tests/tree-test.c: Add more tests.
74
75         * glib/gslice.c: Include config.h first, pointed out
76         by Bogdan Nicula.
77
78 2005-12-20  Sven Herzberg  <herzi@gnome-de.org>
79
80         * docs/reference/gobject/tmpl/gtype.sgml: explain that
81         G_TYPE_INSTANCE_GET_CLASS() does behave different during
82         initialization
83
84 2006-01-06  Matthias Clasen  <mclasen@redhat.com>
85
86         * glib/gslice.c: Only define _XOPEN_SOURCE if we know
87         that we have posix_memalign().  (#323937, Bogdan Nicula)
88
89 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
90
91         * configure.in: Bump version
92
93         * === Released 2.9.2 ===
94
95 2006-01-05  Hans Breuer  <hans@breuer.org>
96
97         * glib/makefile.msc.in : added gslice.obj
98
99 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
100
101         * NEWS: Updates
102
103         * glib/gmain.c: Clarify the documentation of source ids
104         a bit.  (#325874, Dan Williams)
105
106         * configure.in: Fix another strict aliasing problem.
107
108         * glib/gthreadpool.c: Avoid use of varargs macro.  (#325864,
109         Kazuki IWAMOTO)
110
111 2006-01-04  Manish Singh  <yosh@gimp.org>
112
113         * glib/glib.symbols
114         * glib/gstdio.h: don't macroized g_access, g_chdir, and g_unlink
115         either, since they have the same issue as g_rmdir. (Related to
116         bug #325249)
117
118 Wed Jan  4 13:33:25 2006  Tim Janik  <timj@gtk.org>
119
120         * glib/gslice.c (magazine_cache_pop_magazine): don't reverse chunk 
121         order when creating magazines, so we hand out chunks with ascending
122         adresses.
123
124 2006-01-04  Abel Cheung  <maddog@linuxhall.org>
125
126         * configure.in: Added "ml" "zh_HK" to ALL_LINGUAS.
127
128 2006-01-03  Martyn Russell  <martyn@imendio.com>
129
130         * docs/reference/glib/glib-sections.txt:
131         * glib/glib.symbols:
132         * glib/gthreadpool.[ch]:
133         - Added new API g_thread_pool_get_idle_time() and
134         g_thread_pool_set_idle_time(). (#324228).
135         
136         * tests/threadpool-test.c: 
137         - Updated test case to do thread pool sorting, thread pool with
138         no sorting and a thread pool with idle thread timeouts.
139         
140 2006-01-03  Matthias Clasen  <mclasen@redhat.com>
141         
142         * glib/gmain.h: Add new functions here, too.
143
144         * glib/glib.symbols: Add new functions.
145
146 2005-12-20  Michael Meeks  <michael.meeks@novell.com>
147
148         * glib/gmain.c (g_main_context_is_owner): new method
149         to determine if the current thread is the owner of the
150         context.
151
152 2006-01-02  Matthias Clasen  <mclasen@redhat.com>
153
154         * glib/glib.symbols: 
155         * glib/gstdio.h: 
156         * glib/gstdio.c (g_rmdir): Don't provide g_rmdir() as a macro
157         expanding to rmdir, since rmdir is not declared in a portable
158         system header we can include in gstdio.h.  (#325249, Jani Monoses)
159
160 2006-01-01  Tor Lillqvist  <tml@novell.com>
161
162         * glib/gspawn-win32.c (g_spawn_sync_utf8): Set the GIOChannels for
163         stdout and stderr to unbuffered. Otherwise the giochannel layer
164         will try to read from them regardless whether the
165         g_io_channel_win32_poll() call here has indicated
166         readability or not. (#325310)
167
168 2005-12-29  Matthias Clasen  <mclasen@redhat.com>
169
170         * glib/gutils.c (glib_check_version): Fix a copy-and-paste error
171         in the docs.  (#325273, Declan Naughton)
172
173 2005-12-27  Manish Singh  <yosh@gimp.org>
174
175         * tests/run-collate-tests.sh: use LC_ALL instead of LC_COLLATE, to
176         make sure we really override things.
177
178 2005-12-27  Matthias Clasen  <mclasen@redhat.com>
179         
180         Fix #316221, Michal Benes, Stanislav Brabec;
181
182         * configure.in: Fix a strict aliasing problem in 
183         g_static_mutex_get_mutex(). 
184         * glib/gthread.h: ...and in 
185         g_static_mutex_get_mutex_impl_shortcut().
186
187         * glib/gdatasetprivate.h: Add a cast to silence compiler
188         warnings.  (#321978, Andrew Paprocki)
189
190         Partial fix for bug #323937, Bogdan Nicula.
191
192         * configure.in: Check for malloc.h
193         * glib/gslice.c: Don't include malloc.h unconditionally.
194
195 2005-12-27  Manish Singh  <yosh@gimp.org>
196
197         * tests/run-collate-tests.sh: export LC_COLLATE so it takes.
198         (#324950, Dan Yefimov)
199
200 2005-12-26  Matthias Clasen  <mclasen@redhat.com>
201
202         * glib/gslice.c: On Win32, include process.h  (#325015, Kazuki
203         Iwamoto)
204
205 2005-12-25  Matthias Clasen  <mclasen@redhat.com>
206
207         * AUTHORS: Update my email
208
209         * tests/slice-test.c: Fix C99isms.  (#324950, Dan Yefimov)
210
211 2005-12-21  Matthias Clasen  <mclasen@redhat.com>
212         
213         * README.in: Add some notes on when 'make check' may fail.
214
215 2005-12-20  Matthias Clasen  <mclasen@redhat.com>
216
217         * glib/glib.symbols: 
218         * glib/gthreadpool.h: 
219         * glib/gthreadpool.c (g_thread_pool_set_sort_function): New function
220         to sort tasks pushed into a threadpool.  (#324479, Martyn Russell)
221
222         * tests/threadpool-test.c: Test this.
223
224 Tue Dec 20 18:14:14 2005  Tim Janik  <timj@imendio.com>
225
226         * glib/gslice.[hc]: added mem_error() and mem_assert() to test and 
227         handle  errors without depending on gmessage.c which might not be
228         setup when the error occours.
229         removed G_SLICE_CONFIG_ALWAYS_FREE config option, fixed the code so
230         always freeing can be achieved by adjusting the working set time to
231         0 with G_SLICE_CONFIG_WORKING_SET_MSECS.
232         added G_SLICE_CONFIG_COLOR_INCREMENT to test different color increments
233         (mainly 0 and 1). reduced the minimum block size to 128 bytes, to
234         minimize wastage if small amounts of differently sized structrues are
235         allocated, this does come at a performance cost of roughly 5% though.
236         fixed up block alignment calculation, so it works for varying
237         block sizes. only use strerror() not g_strerror() since the latter
238         depends on working GQuark and GSlice.
239         mem_error(): implemented in terms of fprintf and vfprintf.
240
241         * tests/slice-color.c: new program to test cache colorization effects.
242
243         * tests/slice-test.c: trade G_SLICE_CONFIG_ALWAYS_FREE for 0 duration
244         G_SLICE_CONFIG_WORKING_SET_MSECS.
245
246 2005-12-17  Matthias Clasen  <mclasen@redhat.com>
247
248         * glib/goption.c (parse_short_option): Set an error in all
249         failure cases.  (#324332, Tim-Philipp Müller) 
250
251 2005-12-17  Sebastian Wilhelmi  <seppi@seppi.de>
252
253         * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get
254         and g_atomic_pointer_get. Add g_atomic_int_set and
255         g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES &&
256         G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them
257         as functions (additionally to the macros in the header) for the 
258         !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case.
259
260 2005-12-16  Matthias Clasen  <mclasen@redhat.com>
261
262         *  glib/gmem.c (g_allocator_new): Don't return a pointer to
263         a const struct, since apps expect to be able to modify it. 
264         (#324179, J. Ali Harlow)
265
266 Tue Dec 13 10:13:32 2005  Tim Janik  <timj@imendio.com>
267
268         * glib/gatomic.h: added g_atomic_pointer_set() and g_atomic_int_set()
269         for systems where the initialization of atomic variables requires a
270         write memory barrier.
271
272 2005-12-09  Matthias Clasen  <mclasen@redhat.com>
273
274         * configure.in: Bump version
275
276         * === Released 2.9.1 ===
277
278 2005-12-09  Alexander Larsson  <alexl@redhat.com>
279
280         * glib/glist.h: 
281         * glib/gslist.h:
282         Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
283         the whole list.
284
285 2005-12-08  Matthias Clasen  <mclasen@redhat.com>
286
287         * NEWS: Updates
288
289 2005-12-07  Martyn Russell  <martyn@imendio.com>
290
291         * glib/gasyncqueue.c:
292         - Call g_queue_insert_sorted() instead of duplicating the code.
293         - Call g_queue_sort() instead of duplicating the code.
294         - Invert sort function results to make sure the same sort function
295         gives the same results across glist, gslist, gqueue and
296         gasyncqueue.
297
298         * tests/asyncqueue-test.c:
299         - Updated the sort function to reflect the example in the
300         documentation for gasyncqueue.c.
301
302 2005-12-07  Martyn Russell  <martyn@imendio.com>
303
304         * docs/reference/glib/glib-sections.txt:
305         * docs/reference/glib/tmpl/linked_lists_double.sgml:
306         * docs/reference/glib/tmpl/linked_lists_single.sgml:
307         * glib/glist.[ch]: 
308         * glib/gslist.[ch]: 
309         - Added g_list_insert_sorted_with_data () and
310         g_slist_insert_sorted_with_data ().
311         - Removed the extra check in g_list_sort() and g_slist_sort() for
312         GCompareDataFunc vs. GCompareFunc.
313         
314 2005-12-07  Tor Lillqvist  <tml@novell.com>
315
316         * glib-gettextize.in: Look up prefix at run-time on Win32,
317         assuming the standard directory structure with glib-gettextize in
318         $prefix/bin.
319
320 2005-12-06  Matthias Clasen  <mclasen@redhat.com>
321
322         * glib/gmem.h: Exempt GTK+ from the mem chunk deprecation, since
323         we need GTK+ 2.8 to compile against GLib 2.10.
324
325 2005-12-05  Manish Singh  <yosh@gimp.org>
326
327         * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure
328         to override any user settings.
329
330 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
331
332         * configure.in: Revert an accidential commit
333
334 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
335
336         * glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)
337
338         * tests/Makefile.am (TESTS_ENVIRONMENT): 
339         * tests/gobject/Makefile.am (TESTS_ENVIRONMENT): Set
340         MALLOC_CHECK_ and MALLOC_PERTURB_
341
342         * tests/run-collate-tests.sh: Run the collation tests explicitly 
343         in en_US locale. (#320463)
344
345         * glib/gmem.h: Really deprecate GMemChunk.
346
347         * glib/gdate.c: 
348         * glib/gutils.c: 
349         * glib/gtree.c: 
350         * glib/gstring.c: 
351         * glib/giochannel.c: 
352         * glib/gstrfuncs.c: Add versioned deprecation docs. 
353
354 2005-12-05  Martyn Russell  <martyn@imendio.com>
355
356         * docs/reference/glib/glib-sections.txt:
357         * glib/gasyncqueue.[ch]:
358         - Added support for sorting async queues by with _push_sorted(),
359         _push_sorted_unlocked(), _sort() and _sort_unlocked() (#323047).
360         
361         * tests/Makefile.am:
362         * tests/asyncqueue-test.c:
363         - Added test case for gasyncqueue.c
364
365 Mon Dec  5 15:53:20 2005  Tim Janik  <timj@imendio.com>
366
367         * glib/gslice.c: implement chain walking for arbitrary ->next pointer
368         offsets in g_slice_free_chain_with_offset() based on a patch by behdad
369         in bug 323178. moved time consuming logic from g_slice_free() out of
370         the inner loop, so g_slice_free_chain_with_offset() provides a real
371         performance benefit over g_slice_free1() now.
372         
373         * glib/gslice.h: renamed g_slice_free_chain() to
374         g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
375         a type-safe macro as suggested in bug 323178.
376         simplified the macro implementation of g_slice_free() and implemented
377         it in a type safe manner for all compliers as suggested by Morten
378         Welinder <mortenw@gnome.org>.
379
380         * glib/gmain.c:
381         * glib/glist.c:
382         * glib/gslist.c:
383         * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/
384
385 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
386
387         * glib/gasyncqueue.c: Add some docs.
388
389         * tests/libmoduletestplugin_a.c: Fix compiler warnings.
390
391         * glib/gatomic.c: In the ia64 implementation, use
392         __sync builtin without _si or _di suffix.  (#321229,
393         Stanislav Brabec, patch by Andreas Schwab)
394
395 2005-12-04  Behdad Esfahbod  <behdad@gnome.org>
396
397         * glib/gslice.h: Remove comma at the end of enum.
398
399 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
400
401         Handle multiple user names with the same UID better.
402         (#319535, Laszlo Peter)
403         
404         * glib/gutils.c (g_get_any_init_do): When determining user
405         data, first look up $LOGNAME. If the UID doesn't match
406         getuid(), fall back to the current behaviour of looking
407         up the user data based on getuid().
408
409 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
410
411         * glib/gmacros.h (G_GNUC_WARN_UNUSED_RESULT): Add a macro
412         to make gcc warn if a function result is ignored.  (#145466,
413         Arjan van de Ven, Alex Larsson)
414
415         * glib/gmem.h: Add the new attribute to g_realloc and 
416         g_try_realloc.
417
418 2005-12-03  Matthias Clasen  <mclasen@redhat.com>
419
420         * glib/glib.symbols: 
421         * glib/gcache.h: Deprecate g_cache_value_foreach. (#322956,
422         Nicolas Caniart)
423
424         * glib/gmappedfile.c: Make mapping of empty files
425         work.  (#321530)
426         
427         * glib/gfileutils.c: Don't fork a new process just to 
428         fix the permissions of the created temp file.  (#321318,
429         Alexis S. L. Carvalho)
430
431 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
432
433         * README.in: Add a note about Solaris threads.
434
435         * glib/gspawn.c:
436         * configure.in: Remove support for Solaris threads. 
437         (#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)
438
439 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
440
441         * configure.in: Define G_GUINT64_CONSTANT in analogy to
442         G_GINT64_CONSTANT.  (#322568, Andrew Paprocki)
443
444 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
445
446         * glib/gslice.c: Win32 portability fixes and C99ism removal,
447         pointed out by Kazuki Iwamoto.  (#323052)
448         
449 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
450
451         * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for
452         the IA64 implementation.
453
454 Fri Dec  2 16:18:09 2005  Tim Janik  <timj@imendio.com>
455
456         * glib/gslice.c: some naming and type size fixups.
457
458 Fri Dec  2 13:08:58 2005  Tim Janik  <timj@gtk.org>
459
460         * glib/gslice.h (g_slice_free): reworked GCC-specific type-safe macro
461         variant into something less verbose, but digestible for gcc-3.4.
462
463 Fri Dec  2 10:55:07 2005  Tim Janik  <timj@imendio.com>
464
465         * tests/slice-test.c: extended to perform the benchmarking on the old
466         memchunk code if 'O' is selected.
467
468         * tests/memchunks.c: new file which contains the old GLib mem chunks
469         implementation with prefix old_mem_chunk_.
470
471         * tests/Makefile.am: added memchunks.c
472
473 Fri Dec  2 00:16:59 2005  Tim Janik  <timj@imendio.com>
474
475         * glib/gslice.c: improved gettimeofday() timer resolution by maintaining
476         acceptable load distribution of the syscall.
477         (allocator_get_magazine_threshold): reduce minimum/single-thread magazine
478         sizes to approximately page_size/2.5 to avoid excessive startup allocations.
479
480 2005-12-01  Matthias Clasen  <mclasen@redhat.com>
481
482         * tests/gobject/ifacecheck.c (test_iface_base_init): Don't
483         double-free base interface members.
484
485         * tests/Makefile.am: Remove duplicate variable.
486
487 Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>
488
489         * glib/gslice.[hc]: new slice allocator implementation.
490
491         * tests/slice-test.c: added random slice allocation test.
492
493         * glib/gthread.[hc]: removed newly added private thread mem API.
494
495         * glib/gthreadinit.h:
496         * glib/gmessages.c:
497         * glib/gthread.c:
498         * glib/gmem.c: divided glib threading initialisation into three phases,
499         initialisation where private keys and messaging are not available (only
500         needed by gmem.c), initialisation without messaging but private keys
501         available (gslice.c, gmessage.c), and full fledged initialisers that
502         server the rest of glib. initialisation functions got renamed to reflect
503         the limitations of their corresponding phases.
504
505         * glib/gmem.c: removed memchunk code, defer allocations to 
506         g_slice_* instead.
507
508         * glib/gmem.[hc]: removed g_slice_* skeletons.
509
510         * glib/glib.symbols: added g_slice_* symbols.
511
512         * configure.in: check for availability of posix_memalign(3), memalign(3)
513         and valloc(3). 
514
515         * glib/Makefile.am: added gslice.[hc].
516
517 2005-12-01  Tor Lillqvist  <tml@novell.com>
518
519         * glib/gstdio.c (g_stat): In the Win32 implementation, strip
520         trailing slash(es) for non-root folders. stat() fails if non-root
521         folders are specified with trailing slashes. It's too much hassle
522         to demand that callers strip such slashes themselves, especially
523         as it is easy to get it wrong and strip the slash of a root
524         folder.
525         (g_rename): On NT-based Windows, use MoveFileEx() with
526         MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.
527
528 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
529
530         Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
531         Andrew Paprocki)
532         
533         * configure.in: Check whether do { } while (0) works.
534
535         * glib/gmacros.h: Use do { } while (0) for G_STMT_START / 
536         G_STMT_END if it works.
537         
538 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
539
540         * glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal): 
541         * glib/gnode.c (g_node_depth_traverse_level): 
542         * glib/gmem.c (g_allocator_new): 
543         * glib/ghash.c (g_hash_table_unref, g_hash_table_destroy) 
544         (g_hash_table_foreach_remove_or_steal): Silence compiler
545         warnings.
546
547 2005-11-27  Matthias Clasen  <mclasen@redhat.com>
548
549         * glib/gunicollate.c (g_utf8_collate_key_for_filename): 
550         Don't read beyond len.  (#322520, Christian Persch)
551
552 Wed Nov 23 17:34:01 2005  Tim Janik  <timj@imendio.com>
553
554         * glib/gdataset.c: access datalist flags via atomic pointer access
555         functions, instead of acquiring the dataset lock. this is faster and
556         also matches the atomic pointer readouts in gdatalistprivate.h and
557         direct pointer modifications required by gobject.c.
558
559 Wed Nov 23 13:35:31 2005  Tim Janik  <timj@gtk.org>
560
561         * glib/gdataset.c: streamlined initialization code somewhat,
562         removed GData node cache.
563
564 2005-11-22  Matthias Clasen  <mclasen@redhat.com>
565
566         * glib/ghash.c (g_hash_table_ref): 
567         (g_hash_table_unref): Mark these as new API.
568
569         Avoid double locking in g_intern_string (#322133,
570         Benedikt Meurer)
571
572         * glib/gdataset.c (g_quark_from_string_internal): New 
573         internal function which factors out common parts of 
574         g_quark_from[_static]_string.
575         (g_quark_from_string, g_quark_from_static_string):
576         Use g_quark_from_string_internal.
577         (g_intern_string, g_intern_static_string): Use
578         g_quark_from_string_internal, and only take the
579         lock once.
580         (g_quark_new): Don't store the strings shifted by -1
581         in the g_quarks array.
582         (g_quark_to_string): Adapt to the previous change.
583
584 Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>
585
586         * glib/ghash.h: 
587         * glib/ghash.c: 
588         g_hash_table_new_full(): create hash tables with a ref count of 1.
589         g_hash_table_ref(): atomically ref_count+=1
590         g_hash_table_unref(): atomically ref_count-=1, destroys hash table
591         when refcount reaches 0.
592         g_hash_table_destroy(): just destroy keys and values, unref by 1.
593         g_hash_table_insert(): 
594         g_hash_table_replace(): assert ref_count>0.
595
596         * glib/gatomic.h: 
597         * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
598         integer pointers.
599
600 2005-11-20  Behdad Esfahbod  <behdad@gnome.org>
601
602         * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
603         variables. (#321984, Andrew Paprocki)
604
605 2005-11-18  Matthias Clasen  <mclasen@redhat.com>
606
607         * configure.in: Bump version
608
609 2005-11-17  Matthias Clasen  <mclasen@redhat.com>
610
611         * === Released 2.9.0 ===
612
613         * glib/glib.symbols: Updates
614
615         * glib/gutf8.c (g_utf8_offset_to_pointer): Add some performance
616         hints to the docs. (Paolo Borelli)
617         
618         * NEWS: Updates
619
620         * glib/gthread.c (g_thread_foreach): Mark as new api.
621
622         * README.in: Updates.
623
624         * glib/glib.symbols: 
625         * glib/gdate.h: 
626         * glib/gdate.c (g_date_set_time_t): 
627         (g_date_set_time_val): Add functions to set a date from
628         a time_t and from a GTimeVal.
629         (g_date_set_time): Deprecate.  (#314067, Roger Leigh)
630         
631         * tests/Makefile.am:
632         * tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
633         and g_utf8_offset_to_pointer.
634
635         * glib/gutf8.c (g_utf8_pointer_to_offset) 
636         (g_utf8_offset_to_pointer): Handle negative offsets, and use
637         "stutter stepping" for going backwards. (#320638, Larry
638         Ewing)
639
640         * glib/gbacktrace.c:
641         * glib/gdate.c:
642         * glib/gthread.c: const correctness fixes, found
643         by Arjan van de Ven and gcc.
644         
645 2005-11-16  Behdad Esfahbod  <behdad@gnome.org>
646
647         * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
648         @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
649
650 2005-11-09  Behdad Esfahbod  <behdad@gnome.org>
651
652         * glib/guniprop.c: Use bit hacks instead when checking a general
653         category value against multiple values.
654
655         * glib/gutf8.c: Change ISO10646 to Unicode in docs.
656
657 2005-11-10  Simos Xenitellis  <simos@gnome.org>
658
659         * configure.in: Added tt (Tatar) to ALL_LINGUAS.
660
661 2005-11-05  Tor Lillqvist  <tml@novell.com>
662
663         * glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
664         (#320688) Instead set error and return failure.
665
666 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
667
668         * glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
669         while holding the context lock.  (#320886, Andy Wingo)
670
671 2005-11-07  Billy Biggs <vektor@dumbterm.net>
672
673         * tests/refcount/Makefile.am: Add a missing reference to libglib
674         in the LDADD for this test.
675
676 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
677
678         * glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
679         nonzero value, otherwise GTK+ 2.8 breaks when compiled against
680         GLib 2.9.  (#320755, Luca Ferretti)
681
682 2005-11-04  Matthias Clasen  <mclasen@redhat.com>
683
684         * glib/Makefile.am: Apply a patch from Behdad Esfahbod to 
685         use a faster lookup table for g_unichar_get_mirror_char().
686         * glib/gmirroringtable.h: The new table.
687         * glib/gunichartables.h: Remove bidi_mirroring_table.
688         * glib/gen-unicode-tables.pl: Don't generate the mirroring
689         table.
690         * glib/glib-mirroring-tab/*: Sources for the program
691         which generated gmirroringtable.h.
692
693         * glib/glist.c: Avoid some code duplication.
694
695         * glib/gscanner.h: Include gdataset.h.  (#320322)
696
697         * glib/gdebug.h: add new GDebugFlag for fatal_criticals
698         * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
699         to help find critical warnings in applications.  (#320017,
700         Vincent Untz)
701
702 2005-11-02  Tor Lillqvist  <tml@novell.com>
703
704         * glib/glib.symbols: Remove large amount of trailing whitespace
705         from one line. Remove #ifdef G_UNDEFINED from around
706         g_hash_table_new and g_hash_table_new_full symbols, what was the
707         purpose of that? Add the g_slice functions.
708
709 Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>
710
711         * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
712         added g_slice_*() API to allocate and cache small bits of memory.
713         an actuall allocator implementation for g_slice_*() is still pending.
714
715         * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
716         changed GRealThread list to use in-structure *next; fields instead
717         of GSList, in order for thread iteration to not depenend on g_slice_*()
718         indirectly.
719         _g_thread_mem_private_get():
720         _g_thread_mem_private_set(): added accessors for private memory,
721         needed because the ordinary GPrivate implementation relies on GArray
722         and GSList and therefore indirectly on working g_slice_*() allocations.
723
724         * glib/gthread.[hc]:
725         g_thread_foreach(): new public API function to loop over all existing threads.
726
727         * glib/gdataset.c:
728         * glib/gstring.c:
729         * glib/gcache.c:
730         * glib/garray.c: 
731         * glib/gqueue.c:
732         * glib/gslist.c:
733         * glib/glist.c:
734         * glib/ghash.c:
735         * glib/gtree.c:
736         * glib/ghook.c:
737         * glib/gmain.c:
738         * glib/gnode.c:
739         removed GAllocator and free list usages and accompanying locks.
740         use g_slice_*() API to allocate and cache small bits of memory.
741
742         * glib/ghook.h: removed GMemChunk field from public API.
743
744         * glib/gslist.h:
745         * glib/glist.h: deprecate allocator API, provide _free1() for consistency.
746
747         * glib/gnode.h: deprecate allocator API.
748
749         * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
750         be used for poll rec lists.
751
752         * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
753         g_relation_destroy(): free all tuples from the all_tuples hash table,
754         this effectively maintains the life time track keeping of tuples.
755         g_relation_delete_tuple(): free tuples which are removed from the
756         all_tuples hash table. this fixes a temporary leak that was present
757         in the memchunk code until the destruction of the relation.
758
759 2005-10-29  Matthias Clasen  <mclasen@redhat.com>
760
761         * tests/convert-test.c: Add some tests for conversions between
762         UTF-8, UCS-4 and UTF-16.
763
764         * glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
765         of len == -1, noticed by Morten Welinder.
766
767 2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
768
769         * configure.in: Added ku (Kurdish) to ALL_LINGUAS
770
771 2005-10-26  Matthias Clasen  <mclasen@redhat.com>
772
773         * glib/gutf8.c (g_ucs4_to_utf8): Don't set items_read twice
774         in the error case, and add some documentation.  (#319806, Morten
775         Welinder)
776
777 2005-10-19  Manish Singh  <yosh@gimp.org>
778
779         * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
780         config.h symbol automatically. Fixes bug #313731.
781
782 2005-10-19  Tor Lillqvist  <tml@novell.com>
783
784         * glib/gwin32.c (g_win32_get_package_installation_directory):
785         Return a g_strdup()ed copy of the value stored in the hash table,
786         so that it can be g_free()d without leaving a dangling pointer in
787         the hash table. (#319232)
788
789 2005-10-06  Matthias Clasen  <mclasen@redhat.com>
790
791         * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
792         all-zero sequences correctly.  (#317930, Sebastien Bacher)
793
794 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
795
796         * glib/gmarkup.c (g_markup_escape_text): Doc addition
797
798         * Makefile.am: Add Collation tests.
799
800         * tests/collate/*: Inputs and expected outputs for collation tests.
801
802         * tests/run-collate-tests.sh: Script to run collation tests.
803
804         * tests/unicode-collate.c (main): Rework slightly to make
805         it usable in unit tests. Also test g_utf8_collate_key_for_filename().
806
807 2005-10-01  Behdad Esfahbod  <behdad@gnome.org>
808
809         * docs/reference/glib/tmpl/unicode.sgml:
810         * glib/gen-unicode-tables.pl:
811         * glib/gunibreak.h:
812         * glib/gunichartables.h:
813         * glib/gunicode.h:
814         * tests/casefold.txt:
815         * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
816         GUnicodeBreakType types.  That may break some applications, like
817         Pango <= 1.10.
818
819 2005-09-26  Matthias Clasen  <mclasen@redhat.com>
820
821         * glib/gstrfuncs.c (g_ascii_strtoull): Add details to the 
822         docs.  (#314393, Matthew F. Barnes)
823
824         * glib/glib.symbols:
825         * glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
826         they are already declared in glib.h. This doesn't break documented
827         use of gprintf.h, but should probably be pointed out in the 
828         release notes for 2.10. (#314232, Behdad Esfahbod)
829
830 Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>
831
832         * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
833         complexity optimization, based on a patch from Matthias Clasen.
834
835         * tests/patterntest.c: more tests, mostly from matthias.
836
837 2005-09-20  Matthias Clasen  <mclasen@redhat.com>
838
839         * glib/gqueue.c (g_queue_insert_sorted): Correct the docs.
840         (#316703, Mark Drago)
841
842 Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>
843
844         * glib/gpattern.c: applied a patch from matthias which checks on the
845         upper bound of GPatternSpec length to optimize matches.
846         cosmetic fixups.
847
848         * tests/patterntest.c: added more match cases.
849
850 2005-09-16  Tor Lillqvist  <tml@novell.com>
851
852         * glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
853         warning to doc comment that these functions should not be used on
854         encodings like CP932.
855
856 2005-09-14  Matthias Clasen  <mclasen@redhat.com>
857
858         * tests/keyfile-test.c: Add a test for grup names of length 1.
859
860         * glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
861         of length 1.  (#316309)
862         
863 2005-09-12  Matthias Clasen  <mclasen@redhat.com>
864
865         * glib/gmarkup.c (g_markup_escape_text): Clarify docs.
866
867 2005-09-11  Sebastian Wilhelmi  <seppi@seppi.de>
868
869         * tests/refcount/Makefile.am (INCLUDES): Link the the refcount
870         tests to the system thread library $(G_THREAD_LIBS). Fixes #313744
871         and #314217.
872
873 2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>
874
875         * glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
876         (child_watch_helper_thread): Remove some dead code. Closes
877         bug #315278.
878
879 2005-09-07  Tor Lillqvist  <tml@novell.com>
880
881         * glib/Makefile.am: Create also a console version of the
882         gspawn-win32-helper program, gspawn-win32-helper-console.exe.
883         It's otherwise identical to gspawn-win32-helper.exe, except marked
884         as a console application (linked without the -mwindows option).
885         
886         * glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
887         Drop the dont_wait parameter. Its truth value correlated 100% with
888         the NULLness of the exit_status parameter anyway, so it's enough
889         to check whether exit_status is NULL. Invert the sense of the
890         dont_return_handle parameter and rename it to do_return_handle, to
891         make the code easier to read by avoiding double negations.
892
893         (g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
894         to do_spawn_with_pipes() accordingly.
895
896         (do_spawn_with_pipes): If we have a console, use the console
897         version of the helper program, otherwise use the GUI one. This
898         avoids extra console windows opening up in some situations. (In
899         case a console application uses the GUI gspawn-win32-helper.exe to
900         spawn another console application we would get a separate console
901         for the spawned console application).
902
903         * glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
904
905 2005-09-05  Matthias Clasen  <mclasen@redhat.com>
906
907         * glib/gmappedfile.c (g_mapped_file_new): Report an error
908         if the file is too large.  (#315275, Kjartan Maraas)
909
910         * glib/gkeyfile.c (g_key_file_load_from_fd): The return value
911         of read() is signed.  (#315273, Kjartan Maraas)
912         
913 2005-08-31  Tor Lillqvist  <tml@novell.com>
914
915         * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
916         the EXE and each DLL have their own atexit function chains.
917
918         #define g_atexit as atexit instead. This means it has a
919         better chance of doing what the caller wants. For instance,
920         gtkhtml calls g_atexit() registering a function in gtkhtml
921         itself. This caused a crash when g_atexit() was implemented as a
922         function in the GLib DLL. The gtkhtml DLL was already unloaded by
923         the time the GLib DLL got unloaded.
924
925         * glib/gutils.c: #undef the #define mentioned above, to also get a
926         real g_atexit() into the DLL for backward compatibility. Document
927         the Windows behaviour of g_atexit(), and document the varying ways
928         atexit() can behave in the context of dynamically loaded modules
929         on Unix.
930
931 2005-08-31  Matthias Clasen  <mclasen@redhat.com>
932
933         * glib/glib.symbols: 
934         * glib/gquark.h: 
935         * glib/gdataset.c: Add string interning functions.
936
937 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
938
939         * glib/giochannel.c: Unify some near-duplicate strings. (#314654,
940         Clytie Siddall)
941         
942 2005-08-26  Matthias Clasen  <mclasen@redhat.com>
943
944         * configure.in: Bump version to 2.9.0
945
946 2005-08-25  Tor Lillqvist  <tml@novell.com>
947
948         Make also the g_spawn*() functions take parameters in the GLib
949         file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
950         API or ABI. Like the other GLib API that was earlier changed to
951         use UTF-8 on Windows, the names of the functions that take UTF-8
952         have _utf8 suffixes added by using preprocessor macros in the
953         header file. The old names are kept for functions with the old
954         behaviour, taking parameters in the system codepage, for DLL ABI
955         stability.
956         
957         * glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
958         g_spawn*() functions.
959         
960         * glib/gspawn-win32.c: Use wide-char API on NT-based
961         Windows. Convert parameters from UTF-8 to wide chars (NT) or
962         system codepage (Win9x) and call the C library _wspawn*() or
963         spawn*() functions respectvely. Add DLL ABI stability versions
964         that take parameters in the system codepage.
965
966         * glib/gspawn-win32-helper.c: On NT-based Windows use the
967         wide-char versions of argv and envp, and use wide-char API to
968         change directory and spawn the program to run. Remove the verbose
969         debugging output, it was too complex to modify for the wide-char
970         features. (Just add temporary debugging printouts if needed, no
971         need to have them permanently in the source.)
972
973         * glib/gspawn.c: Corresponding documentation updates.
974
975         * glib/glib.symbols: Corresponding changes: Mark the ABI stability
976         symbols as PRIVATE, add the new _utf8-suffixed ones.
977
978 2005-08-24  Stepan Kasal  <kasal@ucw.cz>
979
980         * glib/gtypes.h (G_MININT64): Cast the constant to gint64; it is
981         guint64 otherwise and that can produce warnings about comparison
982         between signed and unsigned.
983
984 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
985
986         * glib/gutils.c: Fix the crt_externs.h include.
987
988 2005-08-23  Stepan Kasal  <kasal@ucw.cz>
989
990         * NEWS: Fix spelling of my first name.
991
992 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
993
994         * Bump version
995
996         * === Released 2.8.1 ===
997
998         * NEWS: Updates
999
1000 2005-08-20  Hans Breuer  <hans@breuer.org>
1001
1002         * glib/makefile.msc.in : link with ws2_32.lib
1003
1004 2005-08-18  Tor Lillqvist  <tml@novell.com>
1005
1006         * configure.in: Check for <sys/wait.h>
1007
1008         * glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
1009
1010 2005-08-18  Ross Burton  <ross@burtonini.com>
1011
1012         * glib/gstring.c:
1013         Optimise single-character insertions.
1014         
1015         * glib/gutf8.c:
1016         Note copied code.
1017         
1018         * tests/string-test.c:
1019         Add tests for new optimisation, and fix a leak.
1020
1021 2005-08-17  Matthias Clasen  <mclasen@redhat.com>
1022
1023         * configure.in: Check for crt_externs.h and _NSGetEnviron.
1024
1025         * glib/gutils.c: On Darwin, include crt-externs.h and
1026         define environ using _NSGetEnviron().  (#313731)
1027
1028 2005-08-16  Stepan Kasal  <kasal@ucw.cz>
1029
1030         * glib/gutils.c (g_get_any_init): Move the body of the big if...
1031         (g_get_any_init_do): ... to this new function.
1032         (g_get_any_init): Declare as inline.
1033         (g_get_any_init_locked): New inline function, does the locking.
1034         Make use of these two throughout the code.
1035
1036 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
1037
1038         * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
1039         the child process and then simply return. This makes 
1040         The "S" option work as documented in g_on_error_query().
1041         (#313125, Matthew F. Barnes)
1042
1043         * glib/gunicode.h: Update the link to Unicode category
1044         values.  (#313369, Behnam Esfahbod)
1045
1046         * glib/gqueue.c (g_queue_find_custom): Clarify docs
1047         a little.  (#311727, Tristan van Berkom)
1048
1049         * glib/abicheck.sh, gobject/abicheck.sh: Make the 
1050         check work on ia64 too, where some symbols ended up 
1051         in yet another section.
1052