Commit Graph

3299 Commits

Author SHA1 Message Date
Tor Lillqvist
f911ead382 Fix embarrassing bug: I was passing an incorrect third parameter to
2008-09-23  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c (poll_rest) [Win32]: Fix embarrassing bug: I was
	passing an incorrect third parameter to memmove(), had forgotten
	to multiply by the size of the table entry. Just use a for loop
	instead, clearer. Odd I didn't notice when testing this code.


svn path=/trunk/; revision=7533
2008-09-23 15:35:12 +00:00
Nelson Benítez León
811fcbcd95 Add new GFileCopyFlag
svn path=/trunk/; revision=7526
2008-09-21 23:53:40 +00:00
Hans Petter Jansson
991b625aea Rewrite most of GHashTable to use open addressing with quadratic probing
2008-09-19  Hans Petter Jansson  <hpj@novell.com>

	Rewrite most of GHashTable to use open addressing with quadratic
	probing instead of chaining. This has the potential to reduce memory
	fragmentation significantly, while being slightly faster due to
	better locality and no need to call alloc/free functions for nodes.
	Benchmarks suggest it also uses less memory overall.

	* glib/ghash.c (prime_mod): Table of suitable primes for
	initial-probe distribution.
	(g_hash_table_set_shift): New function.
	(g_hash_table_find_closest_shift): New function.
	(g_hash_table_set_shift_from_size): New function.
	(g_hash_table_lookup_node_for_insertion): New function.
	(g_hash_table_lookup_node): Rewritten to return node index instead of
	pointer, use quadratic probe on flat table, and not return insertion
	data. The latter saves some computation for read-only lookups.
	(g_hash_table_remove_node): Rewrite to take a pointer directly to the
	node structure to remove, and clear that. Remove unlinking code.
	(g_hash_table_remove_all_nodes): Rewrite to not clear nodes
	individually, but en masse using memset () after potentially calling
	notify functions.
	(iter_remove_or_steal): Use new data structure and algorithm. Vastly
	simplified - now just a call to g_hash_table_remove_node ().
	(g_hash_table_resize): New resize code, re-indexing with new prime
	and cleaning up tombstones.
	(g_hash_table_maybe_resize): Table may hold 8 buckets minimum, no less
	than 1/4 load excluding tombstones, and no more than 15/16 load
	including tombstones. These numbers are the results of a lot of
	benchmarking with multiple complex applications, and should not be
	changed lightly.
	(g_hash_table_iter_next)
	(g_hash_table_lookup)
	(g_hash_table_lookup_extended)
	(g_hash_table_insert_internal)
	(g_hash_table_remove_internal)
	(g_hash_table_foreach_remove_or_steal)
	(g_hash_table_foreach)
	(g_hash_table_find)
	(g_hash_table_get_keys)
	(g_hash_table_get_values): Use new data structure and algorithm,
	fairly trivial changes.


svn path=/trunk/; revision=7518
2008-09-20 04:05:11 +00:00
Tor Lillqvist
4c264998cb Look for man pages in share/man.
2008-09-19  Tor Lillqvist  <tml@novell.com>

	* glib-zip.in: Look for man pages in share/man.


svn path=/trunk/; revision=7512
2008-09-19 10:42:04 +00:00
Tor Lillqvist
bc8e1dd8c1 glib/gutils.c (_glib_get_dll_directory) Be a bit less restrictive, look
2008-09-19  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.c (_glib_get_dll_directory)
	* glib/gspawn-win32.c (do_spawn_with_pipes): Be a bit less
	restrictive, look for the helper programs in the same folder where
	the GLib DLL is, not necessarily in a "bin" subfolder of the top
	GLib installation folder.


svn path=/trunk/; revision=7511
2008-09-19 10:20:41 +00:00
Matthias Clasen
a44ff6ef33 Bump version to 2.19.0
2008-09-18  Matthias Clasen <mclasen@redhat.com>

        * configure.in: Bump version to 2.19.0

        * ChangeLog.pre-2-18: rotate ChangeLog

        * === branch for 2.18 ===


svn path=/trunk/; revision=7510
2008-09-18 14:47:14 +00:00
Matthias Clasen
d369843405 Bump version
svn path=/trunk/; revision=7507
2008-09-17 23:58:48 +00:00
Matthias Clasen
ac516ab07e 2.18.1
svn path=/trunk/; revision=7505
2008-09-17 23:56:04 +00:00
Matthias Clasen
042345d59e Updates
svn path=/trunk/; revision=7504
2008-09-17 22:52:48 +00:00
Tor Lillqvist
6af6a8dab0 time_t is 64 bits in all the newer Microsoft C libraries, not just 64-bit
2008-09-16  Tor Lillqvist  <tml@novell.com>

	* glib/gtimer.c (g_time_val_to_iso8601): time_t is 64 bits in all
	the newer Microsoft C libraries, not just 64-bit ones. So to avoid
	crash if compiled with newer MSVSes, use a separate time_t
	variable in all cases on Windows.


svn path=/trunk/; revision=7496
2008-09-15 22:52:12 +00:00
Tor Lillqvist
d4ad716a05 Define G_BREAKPOINT() also for 64-bit MSVC, using the __debugbreak()
2008-09-16  Tor Lillqvist  <tml@novell.com>

	* glib/gbacktrace.h: Define G_BREAKPOINT() also for 64-bit MSVC,
	using the __debugbreak() intrinsic.


svn path=/trunk/; revision=7495
2008-09-15 22:19:38 +00:00
Behdad Esfahbod
bf6222e785 Fix description of module shared library suffix.
2008-09-15  Behdad Esfahbod  <behdad@gnome.org>

        * configure.in: Fix description of module shared library suffix.


svn path=/trunk/; revision=7494
2008-09-15 18:59:25 +00:00
Tor Lillqvist
b006f4832f Update to match what the configure script produces. Just for uniformity,
2008-09-15  Tor Lillqvist  <tml@novell.com>

	* config.h.win32.in: Update to match what the configure script
	produces. Just for uniformity, only commented out parts affected.


svn path=/trunk/; revision=7489
2008-09-15 15:14:00 +00:00
Tor Lillqvist
e55fca9533 glib/gutils.h Deprecate G_WIN32_DLLMAIN_FOR_DLL_NAME(),
2008-09-13  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h
	* glib/gwin32.h: Deprecate G_WIN32_DLLMAIN_FOR_DLL_NAME(),
	g_win32_get_package_installation_directory() and
	g_win32_get_package_installation_subdirectory() as their
	documentation has warned for a while. Sorry that I forgot to do
	this before 2.18.0.

	* glib/gwin32.c (g_win32_get_package_installation_directory):
	Print a warning if a non-NULL package parameter is passed to this
	function, as that is deprecated usage, as the documentation says.


svn path=/trunk/; revision=7480
2008-09-13 20:23:17 +00:00
Matthias Clasen
dc85674b57 Bug 548321 – <string.h> is not included in gi18n-lib.h
2008-09-11  Matthias Clasen  <mclasen@redhat.com>

        Bug 548321 – <string.h> is not included in gi18n-lib.h

        * glib/gi18n.h:
        * glib/gi18n-lib.h: Include string.h, since strlen is used in
        the macros. Pointed out by Ignacio Casal Quinteiro


svn path=/trunk/; revision=7455
2008-09-11 16:48:44 +00:00
Matthias Clasen
6848d2578d Documentation improvements
svn path=/trunk/; revision=7453
2008-09-11 04:21:17 +00:00
Matthias Clasen
8f85da0b5e Add required includes
svn path=/trunk/; revision=7452
2008-09-10 22:39:05 +00:00
Matthias Clasen
0b890c6298 Bug 551228 – G_STRFUNC on recent Sun compiler should be expanded to
2008-09-09  Matthias Clasen  <mclasen@redhat.com>

        Bug 551228 – G_STRFUNC on recent Sun compiler should be expanded to
        __func__ rather than '???'

        * glib/gmacros.h: Don't use glibconfig.h defines in gmacros.h,
        as the comment up top says. Instead look at __STDC_VERSION__.
        Problem reported by Lin Ma.


svn path=/trunk/; revision=7451
2008-09-10 03:21:42 +00:00
Matthias Clasen
b36ea0b1c7 Bug 523463 – Core dump in gmain.c:2482:IA__g_main_context_check()
2008-09-09  Matthias Clasen  <mclasen@redhat.com>

        Bug 523463 – Core dump in gmain.c:2482:IA__g_main_context_check()

        * glib/gmain.c (g_main_context_check): Be robust against setting
        event fields on the fly, as e.g. happens in linc. Tracked down
        by Paul Smith, fix proposed by Owen Taylor.

svn path=/trunk/; revision=7447
2008-09-09 06:04:21 +00:00
Christian Dywan
2201cae29a Bug 550433 – g_test_init doesn't recognize --help
* glib/gtestutils.c (parse_args): Add detailed --help output

svn path=/trunk/; revision=7442
2008-09-08 08:25:29 +00:00
Matthias Clasen
6905f5c524 Bump version
svn path=/trunk/; revision=7436
2008-09-02 20:20:04 +00:00
Matthias Clasen
e43de8e0e6 2.18.0
svn path=/trunk/; revision=7434
2008-09-02 20:09:55 +00:00
Ryan Lortie
920f3bffb3 Bug 549771 – improved .gitignore for glib
2007-09-02  Ryan Lortie  <desrt@desrt.ca>

        Bug 549771 – improved .gitignore for glib

        * docs/reference/.gitignore:
        * docs/reference/gio/.gitignore:
        * docs/reference/gobject/tmpl/.gitignore:
        * gio/.gitignore:
        * gio/tests/.gitignore:
        * glib/.gitignore:
        * glib/libcharset/.gitignore:
        * glib/tests/.gitignore:
        * gmodule/.gitignore:
        * gobject/.gitignore:
        * gobject/tests/.gitignore:
        * po/.gitignore:
        * tests/.gitignore: new files
        * .gitignore: remove 'build' (since it's part of glib now), add more
        useful things.


svn path=/trunk/; revision=7432
2008-09-02 18:40:39 +00:00
Matthias Clasen
8f5a2e0d31 Updates
svn path=/trunk/; revision=7431
2008-09-02 18:36:48 +00:00
Matthias Clasen
691c77e37d Bump version to 2.18.0
svn path=/trunk/; revision=7430
2008-09-02 17:47:54 +00:00
Matthias Clasen
11cc2e2aeb Fix up docs
svn path=/trunk/; revision=7424
2008-09-02 16:48:40 +00:00
Michael Natterer
ed2bbc43cc add g_return_if_fail (checksum != NULL)
2008-09-02  Michael Natterer  <mitch@imendio.com>

	* glib/gchecksum.c (g_checksum_reset): add
	g_return_if_fail (checksum != NULL)


svn path=/trunk/; revision=7423
2008-09-02 14:07:27 +00:00
Paolo Borelli
e6eb809599 Bug 550040 - Move GString, rand and printf tests to the unit test
2008-09-01  Paolo Borelli  <pborelli@katamail.com>

	Bug 550040 - Move GString, rand and printf tests to the unit test
	framework

	* tests/printf-test.c:
	* tests/rand-test.c:
	* tests/string-test.c:
	Removed

	* glib/tests/printf.c:
	* glib/tests/rand.c:
	* glib/tests/string.c:
	Added

	* tests/Makefile.am:
	* glib/tests/Makefile.am:
	Updated for the above


svn path=/trunk/; revision=7419
2008-09-01 09:31:40 +00:00
Emmanuele Bassi
e701ea96b6 Bug 550096 – GBookmarkFile parser is not forward compatible
2008-08-31  Emmanuele Bassi  <ebassi@gnome.org>

	Bug 550096 – GBookmarkFile parser is not forward compatible

	* glib/gbookmarkfile.c:
	(parse_bookmark_element), (parse_application_element),
	(parse_mime_type_element), (parse_icon_element): Relax the
	attributes checking of the GBookmarkFile parser for the
	attributes that the desktop bookmark file specification
	defines and controls. This allows adding new attributes to
	the existing elements in newer versions without breaking the
	parser in older ones.

svn path=/trunk/; revision=7418
2008-08-31 19:53:21 +00:00
Ryan Lortie
2edf928499 Fixup for test case in previous commit.
2008-08-28  Ryan Lortie  <desrt@desrt.ca>

        Fixup for test case in previous commit.

        * glib/tests/strfuncs.c: don't fail if we can't open the test data.
        This happens if $(builddir) != $(srcdir) (like when doing 'make
        distcheck').  Quick workaround for now until #549783 can be fixed.


svn path=/trunk/; revision=7415
2008-08-29 06:02:47 +00:00
Ryan Lortie
2cf0f4853a [REVERT] Bug 548612 – g_strstr_len() should use memmem when available
2008-08-28  Ryan Lortie  <desrt@desrt.ca>

        [REVERT] Bug 548612 – g_strstr_len() should use memmem when available

        * glib/gstrfuncs.c (g_strstr_len): fix off-by-one memory access error
        * glib/tests/strfuncs.c (test_bounds): add some new test cases that
        would catch problems like this
        * glib/tests/4096-random-bytes: test data for the previous
        * glib/tests/Makefile.am: add previous to EXTRA_DIST


svn path=/trunk/; revision=7414
2008-08-28 23:03:24 +00:00
Ryan Lortie
ef4df848e0 [REVERT] Bug 548612 – g_strstr_len() should use memmem when available
2008-08-28  Ryan Lortie  <desrt@desrt.ca>

        [REVERT] Bug 548612 – g_strstr_len() should use memmem when available

        * configure.in:
        * glib/gstrfuncs.c (g_strstr_len): revert use of memmem (see bug)


svn path=/trunk/; revision=7413
2008-08-28 22:55:36 +00:00
Matthias Clasen
0eca17a9f2 Fix selinux linking
svn path=/trunk/; revision=7412
2008-08-28 19:45:58 +00:00
Michael Natterer
13fe35b66d make "endptr" const since it's always a pointer into the const string
2008-08-28  Michael Natterer  <mitch@imendio.com>

	* glib/gstrfuncs.c (g_parse_long_long): make "endptr" const since
	it's always a pointer into the const string passed. Remove some
	casting to (gchar*) in this function.

	(g_ascii_strtoull)
	(g_ascii_strtoll): cast "endptr" to (const gchar**) here when
	passing it to above function.


svn path=/trunk/; revision=7410
2008-08-28 14:47:56 +00:00
Bastien Nocera
f84518e35b Bug 548612 – g_strstr_len() should use memmem when available
2008-08-28  Bastien Nocera  <hadess@hadess.net>

	Bug 548612 – g_strstr_len() should use memmem when available

	* glib/tests/strfuncs.c (test_strstr):
	* tests/string-test.c (main): Patch by Paolo Borelli
	<pborelli@katamail.com> to move the tests to the right place,
	and add more tests

	* glib/gstrfuncs.c (g_strstr_len): Fix problem with memmem ignoring
	nul-terminators in strings, and using the haystack_len instead


svn path=/trunk/; revision=7409
2008-08-28 12:53:59 +00:00
Bastien Nocera
5e2a6047ea Bug 548612 – g_strstr_len() should use memmem when available
2008-08-28  Bastien Nocera  <hadess@hadess.net>

	Bug 548612 – g_strstr_len() should use memmem when available

	* configure.in: detect whether memmem is available in the C library
	* glib/gstrfuncs.c (g_strstr_len): use memmem for g_strstr_len() if
	available in it's available, as it could be optimised by the C library
	* tests/string-test.c (main): Add a few tests for g_strstr_len()


svn path=/trunk/; revision=7407
2008-08-27 23:23:23 +00:00
Tor Lillqvist
2c5de8ed26 Stylistic changes. Plug an unlikely memory leak that occurred in
2008-08-27  Tor Lillqvist  <tml@novell.com>

	* glib/giowin32.c: Stylistic changes. Plug an unlikely memory leak
	that occurred in create_thread() if closing the thread handle
	failed. Add more error messages to g_io_win32_free() that are
	printed only when debugging. Plug handle leak, a socket channel's
	event was never closed.


svn path=/trunk/; revision=7405
2008-08-27 16:49:17 +00:00
Tor Lillqvist
194493f3f8 Should not define HAVE_DIRENT_H when compiling with MSVC, as the only file
2008-08-27  Tor Lillqvist  <tml@novell.com>

	* config.h.win32.in: Should not define HAVE_DIRENT_H when
	compiling with MSVC, as the only file which checks HAVE_DIRENT_H
	is gdir.c, and that includes the dirent.h and wdirent.c from
	build/win32/dirent explicitly anyway when being compiled with
	MSVC.


svn path=/trunk/; revision=7403
2008-08-27 12:48:57 +00:00
Björn Lindqvist
886c0e0d81 Bug 523939 – Example program for GValue
2008-08-22  Björn Lindqvist  <bjourne@gmail.com>

	Bug 523939 – Example program for GValue

	* gobject/gvalue.c: Add code example that demonstrates GValue's
	features.

svn path=/trunk/; revision=7387
2008-08-22 18:23:05 +00:00
Tor Lillqvist
54d62aa368 Don't bother compiling the binary compatibility
2008-08-21  Tor Lillqvist  <tml@novell.com>

	* glib/giowin32.c: Don't bother compiling the binary
	compatibility g_io_channel_win32_new_stream_socket()
	function that has not been mentioned in any header since 2.0 on
	Win64.

	* glib/glib.symbols: Mark it, too, private, and don't export it on
	Win64.


svn path=/trunk/; revision=7384
2008-08-21 11:47:04 +00:00
Tor Lillqvist
5becc45bf4 Improve run-time warning messages. Drop some #if 0 code.
2008-08-21  Tor Lillqvist  <tml@novell.com>

	* glib/giowin32.c: Improve run-time warning messages. Drop
	some #if 0 code.


svn path=/trunk/; revision=7383
2008-08-21 11:35:51 +00:00
Tor Lillqvist
2da8893a72 Minor comment improvements.
2008-08-21  Tor Lillqvist  <tml@novell.com>

	* glib/giowin32.c: Minor comment improvements.


svn path=/trunk/; revision=7382
2008-08-21 11:24:00 +00:00
Tor Lillqvist
465d01a8c2 Improve last entry
svn path=/trunk/; revision=7380
2008-08-21 10:29:36 +00:00
Tor Lillqvist
605682521b Rework the g_poll() implementation on Windows to match poll() semantics
2008-08-21  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c: Rework the g_poll() implementation on Windows to
	match poll() semantics more closely. This makes the test program
	in bug #468910 behave better and doesn't seem to break anything
	else.

	If polling several GPollFDs, i.e. messages and/or waitable
	handles, first check if one or several of them are in the
	signalled state right away, and return indication for all that are
	in that case.

	If not, then poll with timeout and indicate only the single one
	that the Win32 wait function tells us as before.

	Remove unnecessary ifdefs, as we always have G_MAIN_POLL_DEBUG
	defined on Windows.

	Initialise g_main_poll_debug in g_main_context_new() so we have it
	before testing it in one case.

	Don't add several copies of a handle in the array of handles to
	wait for. The documentation says this is not allowed, although it
	did seem to work fine in practise. But do as the documentations
	says anyway.


svn path=/trunk/; revision=7375
2008-08-21 02:27:13 +00:00
Tor Lillqvist
971ab2b50f Bug 500246 - Bug fixes for giowin32
2008-08-20  Tor Lillqvist  <tml@novell.com>

	Bug 500246 - Bug fixes for giowin32

	* glib/giowin32.c (read_thread) (write_thread): Change the nbytes
	variables to signed.
	(g_io_channel_win32_make_pollfd): Fix an obvious error in the file
	descriptor case leftover after the patch from bug #333098 on
	2006-03-02. Thanks to Marcus Brinkmann.


svn path=/trunk/; revision=7373
2008-08-20 01:30:31 +00:00
Tor Lillqvist
f7f48d5c08 Bug 324234 - Using g_io_add_watch_full() to wait for connect() to return
2008-08-20  Tor Lillqvist  <tml@novell.com>

	Bug 324234 - Using g_io_add_watch_full() to wait for connect() to
	return on a non-blocking socket returns prematurely

	Bug 548278 - Async GETs connections are always terminated
	unexpectedly on Windows

	* glib/giowin32.c: Add one more state variable to the
	GIOWin32Channel struct, ever_writable. Initialise it to FALSE, set
	to TRUE when the WSAEventSelect() indicates FD_WRITE, and never
	reset to FALSE.

	Don't do the WSASetEvent() in g_io_win32_prepare() unless
	ever_writable is TRUE. Don't automatically indicate G_IO_OUT in
	g_io_win32_check() unless ever_writable is TRUE.

	This fixes the behaviour of the test case program in bug #548278,
	and the "Testcase for the spurious OUT event bug" in bug
	#324234. It also doesn't seem to break anything. Not that there is
	any exhaustive test suite...

	Add a comment with a list of bugs that are related to the code in
	this file.


svn path=/trunk/; revision=7372
2008-08-19 23:48:16 +00:00
Matthias Clasen
f1d6c42b3d Bump version
svn path=/trunk/; revision=7369
2008-08-18 13:21:56 +00:00
Matthias Clasen
e17c805ce4 2.17.7
svn path=/trunk/; revision=7367
2008-08-18 13:17:39 +00:00
Sven Neumann
4848eec5a6 mention GWinHttpVfs.
2008-08-17  Sven Neumann  <sven@gimp.org>

	* NEWS: mention GWinHttpVfs.


svn path=/trunk/; revision=7365
2008-08-17 10:39:59 +00:00
Matthias Clasen
372712df9b Updates
svn path=/trunk/; revision=7362
2008-08-16 04:01:57 +00:00