g_hash_table_new_full(): create hash tables with a ref count of 1.
[platform/upstream/glib.git] / ChangeLog.pre-2-10
1 Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>
2
3         * glib/ghash.h: 
4         * glib/ghash.c: 
5         g_hash_table_new_full(): create hash tables with a ref count of 1.
6         g_hash_table_ref(): atomically ref_count+=1
7         g_hash_table_unref(): atomically ref_count-=1, destroys hash table
8         when refcount reaches 0.
9         g_hash_table_destroy(): just destroy keys and values, unref by 1.
10         g_hash_table_insert(): 
11         g_hash_table_replace(): assert ref_count>0.
12
13         * glib/gatomic.h: 
14         * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
15         integer pointers.
16
17 2005-11-20  Behdad Esfahbod  <behdad@gnome.org>
18
19         * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
20         variables. (#321984, Andrew Paprocki)
21
22 2005-11-18  Matthias Clasen  <mclasen@redhat.com>
23
24         * configure.in: Bump version
25
26 2005-11-17  Matthias Clasen  <mclasen@redhat.com>
27
28         * === Released 2.9.0 ===
29
30         * glib/glib.symbols: Updates
31
32         * glib/gutf8.c (g_utf8_offset_to_pointer): Add some performance
33         hints to the docs. (Paolo Borelli)
34         
35         * NEWS: Updates
36
37         * glib/gthread.c (g_thread_foreach): Mark as new api.
38
39         * README.in: Updates.
40
41         * glib/glib.symbols: 
42         * glib/gdate.h: 
43         * glib/gdate.c (g_date_set_time_t): 
44         (g_date_set_time_val): Add functions to set a date from
45         a time_t and from a GTimeVal.
46         (g_date_set_time): Deprecate.  (#314067, Roger Leigh)
47         
48         * tests/Makefile.am:
49         * tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
50         and g_utf8_offset_to_pointer.
51
52         * glib/gutf8.c (g_utf8_pointer_to_offset) 
53         (g_utf8_offset_to_pointer): Handle negative offsets, and use
54         "stutter stepping" for going backwards. (#320638, Larry
55         Ewing)
56
57         * glib/gbacktrace.c:
58         * glib/gdate.c:
59         * glib/gthread.c: const correctness fixes, found
60         by Arjan van de Ven and gcc.
61         
62 2005-11-16  Behdad Esfahbod  <behdad@gnome.org>
63
64         * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
65         @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
66
67 2005-11-09  Behdad Esfahbod  <behdad@gnome.org>
68
69         * glib/guniprop.c: Use bit hacks instead when checking a general
70         category value against multiple values.
71
72         * glib/gutf8.c: Change ISO10646 to Unicode in docs.
73
74 2005-11-10  Simos Xenitellis  <simos@gnome.org>
75
76         * configure.in: Added tt (Tatar) to ALL_LINGUAS.
77
78 2005-11-05  Tor Lillqvist  <tml@novell.com>
79
80         * glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
81         (#320688) Instead set error and return failure.
82
83 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
84
85         * glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
86         while holding the context lock.  (#320886, Andy Wingo)
87
88 2005-11-07  Billy Biggs <vektor@dumbterm.net>
89
90         * tests/refcount/Makefile.am: Add a missing reference to libglib
91         in the LDADD for this test.
92
93 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
94
95         * glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
96         nonzero value, otherwise GTK+ 2.8 breaks when compiled against
97         GLib 2.9.  (#320755, Luca Ferretti)
98
99 2005-11-04  Matthias Clasen  <mclasen@redhat.com>
100
101         * glib/Makefile.am: Apply a patch from Behdad Esfahbod to 
102         use a faster lookup table for g_unichar_get_mirror_char().
103         * glib/gmirroringtable.h: The new table.
104         * glib/gunichartables.h: Remove bidi_mirroring_table.
105         * glib/gen-unicode-tables.pl: Don't generate the mirroring
106         table.
107         * glib/glib-mirroring-tab/*: Sources for the program
108         which generated gmirroringtable.h.
109
110         * glib/glist.c: Avoid some code duplication.
111
112         * glib/gscanner.h: Include gdataset.h.  (#320322)
113
114         * glib/gdebug.h: add new GDebugFlag for fatal_criticals
115         * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
116         to help find critical warnings in applications.  (#320017,
117         Vincent Untz)
118
119 2005-11-02  Tor Lillqvist  <tml@novell.com>
120
121         * glib/glib.symbols: Remove large amount of trailing whitespace
122         from one line. Remove #ifdef G_UNDEFINED from around
123         g_hash_table_new and g_hash_table_new_full symbols, what was the
124         purpose of that? Add the g_slice functions.
125
126 Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>
127
128         * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
129         added g_slice_*() API to allocate and cache small bits of memory.
130         an actuall allocator implementation for g_slice_*() is still pending.
131
132         * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
133         changed GRealThread list to use in-structure *next; fields instead
134         of GSList, in order for thread iteration to not depenend on g_slice_*()
135         indirectly.
136         _g_thread_mem_private_get():
137         _g_thread_mem_private_set(): added accessors for private memory,
138         needed because the ordinary GPrivate implementation relies on GArray
139         and GSList and therefore indirectly on working g_slice_*() allocations.
140
141         * glib/gthread.[hc]:
142         g_thread_foreach(): new public API function to loop over all existing threads.
143
144         * glib/gdataset.c:
145         * glib/gstring.c:
146         * glib/gcache.c:
147         * glib/garray.c: 
148         * glib/gqueue.c:
149         * glib/gslist.c:
150         * glib/glist.c:
151         * glib/ghash.c:
152         * glib/gtree.c:
153         * glib/ghook.c:
154         * glib/gmain.c:
155         * glib/gnode.c:
156         removed GAllocator and free list usages and accompanying locks.
157         use g_slice_*() API to allocate and cache small bits of memory.
158
159         * glib/ghook.h: removed GMemChunk field from public API.
160
161         * glib/gslist.h:
162         * glib/glist.h: deprecate allocator API, provide _free1() for consistency.
163
164         * glib/gnode.h: deprecate allocator API.
165
166         * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
167         be used for poll rec lists.
168
169         * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
170         g_relation_destroy(): free all tuples from the all_tuples hash table,
171         this effectively maintains the life time track keeping of tuples.
172         g_relation_delete_tuple(): free tuples which are removed from the
173         all_tuples hash table. this fixes a temporary leak that was present
174         in the memchunk code until the destruction of the relation.
175
176 2005-10-29  Matthias Clasen  <mclasen@redhat.com>
177
178         * tests/convert-test.c: Add some tests for conversions between
179         UTF-8, UCS-4 and UTF-16.
180
181         * glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
182         of len == -1, noticed by Morten Welinder.
183
184 2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
185
186         * configure.in: Added ku (Kurdish) to ALL_LINGUAS
187
188 2005-10-26  Matthias Clasen  <mclasen@redhat.com>
189
190         * glib/gutf8.c (g_ucs4_to_utf8): Don't set items_read twice
191         in the error case, and add some documentation.  (#319806, Morten
192         Welinder)
193
194 2005-10-19  Manish Singh  <yosh@gimp.org>
195
196         * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
197         config.h symbol automatically. Fixes bug #313731.
198
199 2005-10-19  Tor Lillqvist  <tml@novell.com>
200
201         * glib/gwin32.c (g_win32_get_package_installation_directory):
202         Return a g_strdup()ed copy of the value stored in the hash table,
203         so that it can be g_free()d without leaving a dangling pointer in
204         the hash table. (#319232)
205
206 2005-10-06  Matthias Clasen  <mclasen@redhat.com>
207
208         * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
209         all-zero sequences correctly.  (#317930, Sebastien Bacher)
210
211 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
212
213         * glib/gmarkup.c (g_markup_escape_text): Doc addition
214
215         * Makefile.am: Add Collation tests.
216
217         * tests/collate/*: Inputs and expected outputs for collation tests.
218
219         * tests/run-collate-tests.sh: Script to run collation tests.
220
221         * tests/unicode-collate.c (main): Rework slightly to make
222         it usable in unit tests. Also test g_utf8_collate_key_for_filename().
223
224 2005-10-01  Behdad Esfahbod  <behdad@gnome.org>
225
226         * docs/reference/glib/tmpl/unicode.sgml:
227         * glib/gen-unicode-tables.pl:
228         * glib/gunibreak.h:
229         * glib/gunichartables.h:
230         * glib/gunicode.h:
231         * tests/casefold.txt:
232         * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
233         GUnicodeBreakType types.  That may break some applications, like
234         Pango <= 1.10.
235
236 2005-09-26  Matthias Clasen  <mclasen@redhat.com>
237
238         * glib/gstrfuncs.c (g_ascii_strtoull): Add details to the 
239         docs.  (#314393, Matthew F. Barnes)
240
241         * glib/glib.symbols:
242         * glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
243         they are already declared in glib.h. This doesn't break documented
244         use of gprintf.h, but should probably be pointed out in the 
245         release notes for 2.10. (#314232, Behdad Esfahbod)
246
247 Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>
248
249         * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
250         complexity optimization, based on a patch from Matthias Clasen.
251
252         * tests/patterntest.c: more tests, mostly from matthias.
253
254 2005-09-20  Matthias Clasen  <mclasen@redhat.com>
255
256         * glib/gqueue.c (g_queue_insert_sorted): Correct the docs.
257         (#316703, Mark Drago)
258
259 Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>
260
261         * glib/gpattern.c: applied a patch from matthias which checks on the
262         upper bound of GPatternSpec length to optimize matches.
263         cosmetic fixups.
264
265         * tests/patterntest.c: added more match cases.
266
267 2005-09-16  Tor Lillqvist  <tml@novell.com>
268
269         * glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
270         warning to doc comment that these functions should not be used on
271         encodings like CP932.
272
273 2005-09-14  Matthias Clasen  <mclasen@redhat.com>
274
275         * tests/keyfile-test.c: Add a test for grup names of length 1.
276
277         * glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
278         of length 1.  (#316309)
279         
280 2005-09-12  Matthias Clasen  <mclasen@redhat.com>
281
282         * glib/gmarkup.c (g_markup_escape_text): Clarify docs.
283
284 2005-09-11  Sebastian Wilhelmi  <seppi@seppi.de>
285
286         * tests/refcount/Makefile.am (INCLUDES): Link the the refcount
287         tests to the system thread library $(G_THREAD_LIBS). Fixes #313744
288         and #314217.
289
290 2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>
291
292         * glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
293         (child_watch_helper_thread): Remove some dead code. Closes
294         bug #315278.
295
296 2005-09-07  Tor Lillqvist  <tml@novell.com>
297
298         * glib/Makefile.am: Create also a console version of the
299         gspawn-win32-helper program, gspawn-win32-helper-console.exe.
300         It's otherwise identical to gspawn-win32-helper.exe, except marked
301         as a console application (linked without the -mwindows option).
302         
303         * glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
304         Drop the dont_wait parameter. Its truth value correlated 100% with
305         the NULLness of the exit_status parameter anyway, so it's enough
306         to check whether exit_status is NULL. Invert the sense of the
307         dont_return_handle parameter and rename it to do_return_handle, to
308         make the code easier to read by avoiding double negations.
309
310         (g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
311         to do_spawn_with_pipes() accordingly.
312
313         (do_spawn_with_pipes): If we have a console, use the console
314         version of the helper program, otherwise use the GUI one. This
315         avoids extra console windows opening up in some situations. (In
316         case a console application uses the GUI gspawn-win32-helper.exe to
317         spawn another console application we would get a separate console
318         for the spawned console application).
319
320         * glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
321
322 2005-09-05  Matthias Clasen  <mclasen@redhat.com>
323
324         * glib/gmappedfile.c (g_mapped_file_new): Report an error
325         if the file is too large.  (#315275, Kjartan Maraas)
326
327         * glib/gkeyfile.c (g_key_file_load_from_fd): The return value
328         of read() is signed.  (#315273, Kjartan Maraas)
329         
330 2005-08-31  Tor Lillqvist  <tml@novell.com>
331
332         * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
333         the EXE and each DLL have their own atexit function chains.
334
335         #define g_atexit as atexit instead. This means it has a
336         better chance of doing what the caller wants. For instance,
337         gtkhtml calls g_atexit() registering a function in gtkhtml
338         itself. This caused a crash when g_atexit() was implemented as a
339         function in the GLib DLL. The gtkhtml DLL was already unloaded by
340         the time the GLib DLL got unloaded.
341
342         * glib/gutils.c: #undef the #define mentioned above, to also get a
343         real g_atexit() into the DLL for backward compatibility. Document
344         the Windows behaviour of g_atexit(), and document the varying ways
345         atexit() can behave in the context of dynamically loaded modules
346         on Unix.
347
348 2005-08-31  Matthias Clasen  <mclasen@redhat.com>
349
350         * glib/glib.symbols: 
351         * glib/gquark.h: 
352         * glib/gdataset.c: Add string interning functions.
353
354 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
355
356         * glib/giochannel.c: Unify some near-duplicate strings. (#314654,
357         Clytie Siddall)
358         
359 2005-08-26  Matthias Clasen  <mclasen@redhat.com>
360
361         * configure.in: Bump version to 2.9.0
362
363 2005-08-25  Tor Lillqvist  <tml@novell.com>
364
365         Make also the g_spawn*() functions take parameters in the GLib
366         file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
367         API or ABI. Like the other GLib API that was earlier changed to
368         use UTF-8 on Windows, the names of the functions that take UTF-8
369         have _utf8 suffixes added by using preprocessor macros in the
370         header file. The old names are kept for functions with the old
371         behaviour, taking parameters in the system codepage, for DLL ABI
372         stability.
373         
374         * glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
375         g_spawn*() functions.
376         
377         * glib/gspawn-win32.c: Use wide-char API on NT-based
378         Windows. Convert parameters from UTF-8 to wide chars (NT) or
379         system codepage (Win9x) and call the C library _wspawn*() or
380         spawn*() functions respectvely. Add DLL ABI stability versions
381         that take parameters in the system codepage.
382
383         * glib/gspawn-win32-helper.c: On NT-based Windows use the
384         wide-char versions of argv and envp, and use wide-char API to
385         change directory and spawn the program to run. Remove the verbose
386         debugging output, it was too complex to modify for the wide-char
387         features. (Just add temporary debugging printouts if needed, no
388         need to have them permanently in the source.)
389
390         * glib/gspawn.c: Corresponding documentation updates.
391
392         * glib/glib.symbols: Corresponding changes: Mark the ABI stability
393         symbols as PRIVATE, add the new _utf8-suffixed ones.
394
395 2005-08-24  Stepan Kasal  <kasal@ucw.cz>
396
397         * glib/gtypes.h (G_MININT64): Cast the constant to gint64; it is
398         guint64 otherwise and that can produce warnings about comparison
399         between signed and unsigned.
400
401 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
402
403         * glib/gutils.c: Fix the crt_externs.h include.
404
405 2005-08-23  Stepan Kasal  <kasal@ucw.cz>
406
407         * NEWS: Fix spelling of my first name.
408
409 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
410
411         * Bump version
412
413         * === Released 2.8.1 ===
414
415         * NEWS: Updates
416
417 2005-08-20  Hans Breuer  <hans@breuer.org>
418
419         * glib/makefile.msc.in : link with ws2_32.lib
420
421 2005-08-18  Tor Lillqvist  <tml@novell.com>
422
423         * configure.in: Check for <sys/wait.h>
424
425         * glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
426
427 2005-08-18  Ross Burton  <ross@burtonini.com>
428
429         * glib/gstring.c:
430         Optimise single-character insertions.
431         
432         * glib/gutf8.c:
433         Note copied code.
434         
435         * tests/string-test.c:
436         Add tests for new optimisation, and fix a leak.
437
438 2005-08-17  Matthias Clasen  <mclasen@redhat.com>
439
440         * configure.in: Check for crt_externs.h and _NSGetEnviron.
441
442         * glib/gutils.c: On Darwin, include crt-externs.h and
443         define environ using _NSGetEnviron().  (#313731)
444
445 2005-08-16  Stepan Kasal  <kasal@ucw.cz>
446
447         * glib/gutils.c (g_get_any_init): Move the body of the big if...
448         (g_get_any_init_do): ... to this new function.
449         (g_get_any_init): Declare as inline.
450         (g_get_any_init_locked): New inline function, does the locking.
451         Make use of these two throughout the code.
452
453 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
454
455         * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
456         the child process and then simply return. This makes 
457         The "S" option work as documented in g_on_error_query().
458         (#313125, Matthew F. Barnes)
459
460         * glib/gunicode.h: Update the link to Unicode category
461         values.  (#313369, Behnam Esfahbod)
462
463         * glib/gqueue.c (g_queue_find_custom): Clarify docs
464         a little.  (#311727, Tristan van Berkom)
465
466         * glib/abicheck.sh, gobject/abicheck.sh: Make the 
467         check work on ia64 too, where some symbols ended up 
468         in yet another section.
469