Commit Graph

2134 Commits

Author SHA1 Message Date
Tim Janik
733b1789c1 new slice allocator implementation.
Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>

        * glib/gslice.[hc]: new slice allocator implementation.

        * tests/slice-test.c: added random slice allocation test.

        * glib/gthread.[hc]: removed newly added private thread mem API.

        * glib/gthreadinit.h:
        * glib/gmessages.c:
        * glib/gthread.c:
        * glib/gmem.c: divided glib threading initialisation into three phases,
        initialisation where private keys and messaging are not available (only
        needed by gmem.c), initialisation without messaging but private keys
        available (gslice.c, gmessage.c), and full fledged initialisers that
        server the rest of glib. initialisation functions got renamed to reflect
        the limitations of their corresponding phases.

        * glib/gmem.c: removed memchunk code, defer allocations to
        g_slice_* instead.

        * glib/gmem.[hc]: removed g_slice_* skeletons.

        * glib/glib.symbols: added g_slice_* symbols.

        * configure.in: check for availability of posix_memalign(3), memalign(3)
        and valloc(3).

        * glib/Makefile.am: added gslice.[hc].
2005-12-01 16:34:33 +00:00
Tor Lillqvist
4a964f2566 In the Win32 implementation, strip trailing slash(es) for non-root
2005-12-01  Tor Lillqvist  <tml@novell.com>

	* glib/gstdio.c (g_stat): In the Win32 implementation, strip
	trailing slash(es) for non-root folders. stat() fails if non-root
	folders are specified with trailing slashes. It's too much hassle
	to demand that callers strip such slashes themselves, especially
	as it is easy to get it wrong and strip the slash of a root
	folder.
	(g_rename): On NT-based Windows, use MoveFileEx() with
	MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.
2005-12-01 04:03:58 +00:00
Matthias Clasen
6796398522 Fix G_STMT_START / G_STMT_END on Solaris. (#321972, Andrew Paprocki)
2005-11-28  Matthias Clasen  <mclasen@redhat.com>

        Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
        Andrew Paprocki)

        * configure.in: Check whether do { } while (0) works.

        * glib/gmacros.h: Use do { } while (0) for G_STMT_START /
        G_STMT_END if it works.
2005-11-30 04:54:57 +00:00
Matthias Clasen
09b118f462 Silence compiler warnings.
2005-11-28  Matthias Clasen  <mclasen@redhat.com>

	* glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal):
	* glib/gnode.c (g_node_depth_traverse_level):
	* glib/gmem.c (g_allocator_new):
	* glib/ghash.c (g_hash_table_unref, g_hash_table_destroy)
	(g_hash_table_foreach_remove_or_steal): Silence compiler
	warnings.
2005-11-28 18:31:03 +00:00
Matthias Clasen
bb5ce4b2d3 Don't read beyond len. (#322520, Christian Persch)
2005-11-27  Matthias Clasen  <mclasen@redhat.com>

	* glib/gunicollate.c (g_utf8_collate_key_for_filename):
	Don't read beyond len.  (#322520, Christian Persch)
2005-11-27 20:15:41 +00:00
Tim Janik
2027d87b5b access datalist flags via atomic pointer access funcitons, instead of
Wed Nov 23 17:34:01 2005  Tim Janik  <timj@imendio.com>

        * glib/gdataset.c: access datalist flags via atomic pointer access
        funcitons, instead of acquiring the dataset lock. this is faster and
        also matches the atomic pointer readouts in gdatalistprivate.h and
        direct pointer modifications required by gobject.c.
2005-11-23 17:54:57 +00:00
Tim Janik
311094aeab streamlined initialization code somewhat, removed GData node cache.
Wed Nov 23 13:35:31 2005  Tim Janik  <timj@gtk.org>

        * glib/gdataset.c: streamlined initialization code somewhat,
        removed GData node cache.
2005-11-23 12:37:20 +00:00
Matthias Clasen
fe749cbd3b Documentation improvements 2005-11-23 04:29:43 +00:00
Matthias Clasen
9ee3896017 Avoid double locking in g_intern_string (#322133, Benedikt Meurer)
2005-11-22  Matthias Clasen  <mclasen@redhat.com>

	Avoid double locking in g_intern_string (#322133,
	Benedikt Meurer)

	* glib/gdataset.c (g_quark_from_string_internal): New
	internal function which factors out common parts of
	g_quark_from[_static]_string.
	(g_quark_from_string, g_quark_from_static_string):
	Use g_quark_from_string_internal.
	(g_intern_string, g_intern_static_string): Use
	g_quark_from_string_internal, and only take the
	lock once.
	(g_quark_new): Don't store the strings shifted by -1
	in the g_quarks array.
	(g_quark_to_string): Adapt to the previous change.
2005-11-22 15:34:09 +00:00
Tim Janik
3e847a090c g_hash_table_new_full(): create hash tables with a ref count of 1.
Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>

        * glib/ghash.h:
        * glib/ghash.c:
        g_hash_table_new_full(): create hash tables with a ref count of 1.
        g_hash_table_ref(): atomically ref_count+=1
        g_hash_table_unref(): atomically ref_count-=1, destroys hash table
        when refcount reaches 0.
        g_hash_table_destroy(): just destroy keys and values, unref by 1.
        g_hash_table_insert():
        g_hash_table_replace(): assert ref_count>0.

        * glib/gatomic.h:
        * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
        integer pointers.
2005-11-22 13:16:58 +00:00
Behdad Esfahbod
79209e5d56 Oops, copy-pasted Matthias's sig line!
2005-11-20  Behdad Esfahbod  <behdad@gnome.org>

        * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
        variables. (#321984, Andrew Paprocki)
2005-11-21 00:50:04 +00:00
Matthias Clasen
dad87b1a75 Remove unused variables. (#321984, Andrew Paprocki)
2005-11-18  Matthias Clasen  <mclasen@redhat.com>

        * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
        variables. (#321984, Andrew Paprocki)
2005-11-21 00:47:54 +00:00
Matthias Clasen
ee90a04fcb Bump version 2005-11-18 14:01:59 +00:00
Matthias Clasen
d7deadb1e2 2.9.0 2005-11-18 13:58:48 +00:00
Matthias Clasen
f59aac306d Prepare for 2.9.0 2005-11-17 21:33:07 +00:00
Matthias Clasen
2966c751b1 Updates
2005-11-17  Matthias Clasen  <mclasen@redhat.com>

	* NEWS: Updates

	* glib/gthread.c (g_thread_foreach): Mark as new api.

	* README.in: Updates.
2005-11-17 19:05:59 +00:00
Matthias Clasen
9f90f2f23e Add functions to set a date from a time_t and from a GTimeVal.
2005-11-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gdate.h:
	* glib/gdate.c (g_date_set_time_t):
	(g_date_set_time_val): Add functions to set a date from
	a time_t and from a GTimeVal.
	(g_date_set_time): Deprecate.  (#314067, Roger Leigh)
2005-11-17 17:51:59 +00:00
Matthias Clasen
1ee0917984 Unit tests for g_utf8_pointer_to_offset and g_utf8_offset_to_pointer.
2005-11-17  Matthias Clasen  <mclasen@redhat.com>

	* tests/Makefile.am:
	* tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
	and g_utf8_offset_to_pointer.

	* glib/gutf8.c (g_utf8_pointer_to_offset)
	(g_utf8_offset_to_pointer): Handle negative offsets, and use
	"stutter stepping" for going backwards. (#320638, Larry
	Ewing)
2005-11-17 15:50:31 +00:00
Matthias Clasen
92ea153ae9 const correctness fixes, found by Arjan van de Ven and gcc.
2005-11-17  Matthias Clasen  <mclasen@redhat.com>

	* glib/gbacktrace.c:
	* glib/gdate.c:
	* glib/gthread.c: const correctness fixes, found
	by Arjan van de Ven and gcc.
2005-11-17 13:17:22 +00:00
Behdad Esfahbod
cac3d6ea8d Correct typo on mentioning @G_UNICODE_BREAK_UNKNOWN that should be
2005-11-16  Behdad Esfahbod  <behdad@gnome.org>

        * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
        @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
2005-11-17 03:39:47 +00:00
Behdad Esfahbod
8bd94d0eb8 Use bit hacks instead when checking a general category value against
2005-11-09  Behdad Esfahbod  <behdad@gnome.org>

        * glib/guniprop.c: Use bit hacks instead when checking a general
        category value against multiple values.

        * glib/gutf8.c: Change ISO10646 to Unicode in docs.
2005-11-10 01:15:11 +00:00
Simos Xenitellis
5fd0cf735c Added Tatar translation by Albert Fazlí 2005-11-10 00:29:41 +00:00
Tor Lillqvist
4884c293d1 Don't call g_warning(). (#320688) Instead set error and return failure.
2005-11-05  Tor Lillqvist  <tml@novell.com>

	* glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
	(#320688) Instead set error and return failure.
2005-11-08 08:46:57 +00:00
Matthias Clasen
6d763bd97c Don't call cb_funcs->unref while holding the context lock. (#320886, Andy
2005-11-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
	while holding the context lock.  (#320886, Andy Wingo)
2005-11-07 20:15:48 +00:00
Billy Biggs
e8e3891c0f Add a missing reference to libglib in the LDADD for this test.
2005-11-07  Billy Biggs <vektor@dumbterm.net>

	* tests/refcount/Makefile.am: Add a missing reference to libglib
	in the LDADD for this test.
2005-11-07 16:29:19 +00:00
Matthias Clasen
7efd9fe3c8 We need to set n_preallocs to a nonzero value, otherwise GTK+ 2.8 breaks
2005-11-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
	nonzero value, otherwise GTK+ 2.8 breaks when compiled against
	GLib 2.9.  (#320755, Luca Ferretti)
2005-11-07 15:36:21 +00:00
Matthias Clasen
e9852a17be Apply a patch from Behdad Esfahbod to use a faster lookup table for
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

	* glib/Makefile.am: Apply a patch from Behdad Esfahbod to
	use a faster lookup table for g_unichar_get_mirror_char().
	* glib/gmirroringtable.h: The new table.
	* glib/gunichartables.h: Remove bidi_mirroring_table.
	* glib/gen-unicode-tables.pl: Don't generate the mirroring
	table.
	* glib/glib-mirroring-tab/*: Sources for the program
	which generated gmirroringtable.h.

	* glib/glist.c: Avoid some code duplication.
2005-11-04 22:27:04 +00:00
Matthias Clasen
747c3b63bb Include gdataset.h. (#320322)
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gscanner.h: Include gdataset.h.  (#320322)
2005-11-04 19:17:42 +00:00
Matthias Clasen
8b14175a3e add new GDebugFlag for fatal_criticals handle G_DEBUG=fatal_criticals, to
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gdebug.h: add new GDebugFlag for fatal_criticals
        * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
        to help find critical warnings in applications.  (#320017,
        Vincent Untz)
2005-11-04 19:05:30 +00:00
Tor Lillqvist
eff8f7511e Remove large amount of trailing whitespace from one line. Remove #ifdef
2005-11-02  Tor Lillqvist  <tml@novell.com>

	* glib/glib.symbols: Remove large amount of trailing whitespace
	from one line. Remove #ifdef G_UNDEFINED from around
	g_hash_table_new and g_hash_table_new_full symbols, what was the
	purpose of that? Add the g_slice functions.
2005-11-01 23:04:09 +00:00
Tim Janik
0cba1b531d prepared deprecation of GMemChunk and GAllocator. added g_slice_*() API to
Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>

        * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
        added g_slice_*() API to allocate and cache small bits of memory.
        an actuall allocator implementation for g_slice_*() is still pending.

        * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
        changed GRealThread list to use in-structure *next; fields instead
        of GSList, in order for thread iteration to not depenend on g_slice_*()
        indirectly.
        _g_thread_mem_private_get():
        _g_thread_mem_private_set(): added accessors for private memory,
        needed because the ordinary GPrivate implementation relies on GArray
        and GSList and therefore indirectly on working g_slice_*() allocations.

        * glib/gthread.[hc]:
        g_thread_foreach(): new public API function to loop over all existing threads.

        * glib/gdataset.c:
        * glib/gstring.c:
        * glib/gcache.c:
        * glib/garray.c:
        * glib/gqueue.c:
        * glib/gslist.c:
        * glib/glist.c:
        * glib/ghash.c:
        * glib/gtree.c:
        * glib/ghook.c:
        * glib/gmain.c:
        * glib/gnode.c:
        removed GAllocator and free list usages and accompanying locks.
        use g_slice_*() API to allocate and cache small bits of memory.

        * glib/ghook.h: removed GMemChunk field from public API.

        * glib/gslist.h:
        * glib/glist.h: deprecate allocator API, provide _free1() for consistency.

        * glib/gnode.h: deprecate allocator API.

        * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
        be used for poll rec lists.

        * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
        g_relation_destroy(): free all tuples from the all_tuples hash table,
        this effectively maintains the life time track keeping of tuples.
        g_relation_delete_tuple(): free tuples which are removed from the
        all_tuples hash table. this fixes a temporary leak that was present
        in the memchunk code until the destruction of the relation.
2005-11-01 18:10:31 +00:00
Matthias Clasen
3a042a8959 Add some tests for conversions between UTF-8, UCS-4 and UTF-16.
2005-10-29  Matthias Clasen  <mclasen@redhat.com>

	* tests/convert-test.c: Add some tests for conversions between
	UTF-8, UCS-4 and UTF-16.

	* glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
	of len == -1, noticed by Morten Welinder.
2005-10-30 03:05:21 +00:00
Erdal Ronahi
ff1b39b754 Added Kurdish translation 2005-10-27 18:36:09 +00:00
Matthias Clasen
79fa3efec2 Fix 319806 2005-10-26 13:10:55 +00:00
Manish Singh
03e630f025 Use AC_CHECK_FUNCS for _NSGetEnviron, to get the config.h symbol
2005-10-19  Manish Singh  <yosh@gimp.org>

        * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
        config.h symbol automatically. Fixes bug #313731.
2005-10-19 18:37:48 +00:00
Tor Lillqvist
bf58342275 Return a g_strdup()ed copy of the value stored in the hash table, so that
2005-10-19  Tor Lillqvist  <tml@novell.com>

	* glib/gwin32.c (g_win32_get_package_installation_directory):
	Return a g_strdup()ed copy of the value stored in the hash table,
	so that it can be g_free()d without leaving a dangling pointer in
	the hash table. (#319232)
2005-10-19 15:38:44 +00:00
Matthias Clasen
df2746311f Fix sorting of 0 sequences in filenames 2005-10-07 03:04:03 +00:00
Matthias Clasen
9414478982 Doc addition
2005-10-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c (g_markup_escape_text): Doc addition
2005-10-05 20:11:25 +00:00
Matthias Clasen
d433419b14 Add Collation tests.
2005-10-05  Matthias Clasen  <mclasen@redhat.com>

	* Makefile.am: Add Collation tests.

	* tests/collate/*: Inputs and expected outputs for collation tests.

	* tests/run-collate-tests.sh: Script to run collation tests.

	* tests/unicode-collate.c (main): Rework slightly to make
	it usable in unit tests. Also test g_utf8_collate_key_for_filename().
2005-10-05 17:37:46 +00:00
Behdad Esfahbod
c83e2b3349 Updated to Unicode 4.1. There are five new GUnicodeBreakType types. That
2005-10-01  Behdad Esfahbod  <behdad@gnome.org>

        * docs/reference/glib/tmpl/unicode.sgml:
        * glib/gen-unicode-tables.pl:
        * glib/gunibreak.h:
        * glib/gunichartables.h:
        * glib/gunicode.h:
        * tests/casefold.txt:
        * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
        GUnicodeBreakType types.  That may break some applications, like
        Pango <= 1.10.
2005-10-01 12:34:21 +00:00
David Odin
09a819fef9 Moved the ChangeLog entry to the right ChangeLog 2005-09-27 19:01:53 +00:00
David Odin
31659726ea initialize all the fields of GInterfaceInfo in the G_IMPLEMENT_INTERFACE
* gobject/gtype.h: initialize all the fields of GInterfaceInfo in the
  G_IMPLEMENT_INTERFACE macro, to shut up a warning when compiling at -W
2005-09-26 18:35:32 +00:00
Matthias Clasen
4d83c82f47 Add details to the docs. (#314393, Matthew F. Barnes)
2005-09-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gstrfuncs.c (g_ascii_strtoull): Add details to the
	docs.  (#314393, Matthew F. Barnes)
2005-09-26 14:44:01 +00:00
Matthias Clasen
5b60a98d99 Remove g_snprintf() and g_vsnprintf(), since they are already declared in
2005-09-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
	they are already declared in glib.h. This doesn't break documented
	use of gprintf.h, but should probably be pointed out in the
	release notes for 2.10. (#314232, Behdad Esfahbod)
2005-09-26 14:33:00 +00:00
Tim Janik
744a4397ff applied significant recursion complexity optimization, based on a patch
Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>

        * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
        complexity optimization, based on a patch from Matthias Clasen.

        * tests/patterntest.c: more tests, mostly from matthias.
2005-09-20 11:20:23 +00:00
Matthias Clasen
3fef89349b Doc fixes 2005-09-20 05:50:24 +00:00
Tim Janik
a2ff6e7982 applied a patch from matthias which checks on the upper bound of
Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>

        * glib/gpattern.c: applied a patch from matthias which checks on the
        upper bound of GPatternSpec length to optimize matches.
        cosmetic fixups.

        * tests/patterntest.c: added more match cases.
2005-09-19 15:27:17 +00:00
Tor Lillqvist
3fc9c7a45a Add warning to doc comment that these functions should not be used on
2005-09-16  Tor Lillqvist  <tml@novell.com>

	* glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
	warning to doc comment that these functions should not be used on
	encodings like CP932.
2005-09-15 23:41:25 +00:00
Matthias Clasen
81719cc164 Add a test for grup names of length 1.
2005-09-14  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c: Add a test for grup names of length 1.

	* glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
	of length 1.  (#316309)
2005-09-14 18:04:53 +00:00
Matthias Clasen
047558bc21 Clarify docs.
2005-09-12  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmarkup.c (g_markup_escape_text): Clarify docs.
2005-09-12 18:23:43 +00:00