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