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