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