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