diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-03 06:06:01 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-06-03 06:06:01 +0000 |
commit | 2dda64a6258fe213cb75f8a1b381d6a8ce338bb4 (patch) | |
tree | 69dc5d71503b8283d8144704ac5beaf98a8a2c94 /libiberty | |
parent | d3ed35175e394ed9bf2721192f14f57c91c1fbe9 (diff) | |
download | gcc-2dda64a6258fe213cb75f8a1b381d6a8ce338bb4.tar.gz |
2009-06-03 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r148111
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@148114 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty')
-rw-r--r-- | libiberty/ChangeLog | 16 | ||||
-rw-r--r-- | libiberty/fibheap.c | 10 | ||||
-rw-r--r-- | libiberty/pex-win32.c | 5 | ||||
-rw-r--r-- | libiberty/snprintf.c | 16 | ||||
-rw-r--r-- | libiberty/vsnprintf.c | 16 |
5 files changed, 48 insertions, 15 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 850979abb9a..69d3617d6e8 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,19 @@ +2009-05-30 Eli Zaretskii <eliz@gnu.org> + + * snprintf.c: Doc fix. + + * vsnprintf.c: Doc fix. + +2009-05-29 Kai Tietz <kai.tietz@onevision.com> + + * pex-win32.c (pex_win32_fdopenr): Set INHERIT to false. + +2009-05-29 Michael Matz <matz@suse.de> + + * fibheap.c (fibheap_replace_key_data): Make sure we don't early + out when forcing the minimum. + (fibheap_delete_node): Assert that we managed to force the minimum. + 2009-05-25 Tristan Gingold <gingold@adacore.com> * config.h-vms: Rewritten. Define configure macros. diff --git a/libiberty/fibheap.c b/libiberty/fibheap.c index c032149c0c2..a37ee4ef270 100644 --- a/libiberty/fibheap.c +++ b/libiberty/fibheap.c @@ -214,7 +214,10 @@ fibheap_replace_key_data (fibheap_t heap, fibnode_t node, node->key = key; y = node->parent; - if (okey == key) + /* Short-circuit if the key is the same, as we then don't have to + do anything. Except if we're trying to force the new node to + be the new minimum for delete. */ + if (okey == key && okey != FIBHEAPKEY_MIN) return odata; /* These two compares are specifically <= 0 to make sure that in the case @@ -256,6 +259,11 @@ fibheap_delete_node (fibheap_t heap, fibnode_t node) /* To perform delete, we just make it the min key, and extract. */ fibheap_replace_key (heap, node, FIBHEAPKEY_MIN); + if (node != heap->min) + { + fprintf (stderr, "Can't force minimum on fibheap.\n"); + abort (); + } fibheap_extract_min (heap); return ret; diff --git a/libiberty/pex-win32.c b/libiberty/pex-win32.c index 91e0bc882ff..44274067482 100644 --- a/libiberty/pex-win32.c +++ b/libiberty/pex-win32.c @@ -915,6 +915,11 @@ static FILE * pex_win32_fdopenr (struct pex_obj *obj ATTRIBUTE_UNUSED, int fd, int binary) { + HANDLE h = (HANDLE) _get_osfhandle (fd); + if (h == INVALID_HANDLE_VALUE) + return NULL; + if (! SetHandleInformation (h, HANDLE_FLAG_INHERIT, 0)) + return NULL; return fdopen (fd, binary ? "rb" : "r"); } diff --git a/libiberty/snprintf.c b/libiberty/snprintf.c index f1ba49f980f..36c8e9b3430 100644 --- a/libiberty/snprintf.c +++ b/libiberty/snprintf.c @@ -27,13 +27,15 @@ the executable file might be covered by the GNU General Public License. */ @deftypefn Supplemental int snprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, ...) -This function is similar to sprintf, but it will print at most @var{n} -characters. On error the return value is -1, otherwise it returns the -number of characters that would have been printed had @var{n} been -sufficiently large, regardless of the actual value of @var{n}. Note -some pre-C99 system libraries do not implement this correctly so users -cannot generally rely on the return value if the system version of -this function is used. +This function is similar to @code{sprintf}, but it will write to +@var{buf} at most @code{@var{n}-1} bytes of text, followed by a +terminating null byte, for a total of @var{n} bytes. +On error the return value is -1, otherwise it returns the number of +bytes, not including the terminating null byte, that would have been +written had @var{n} been sufficiently large, regardless of the actual +value of @var{n}. Note some pre-C99 system libraries do not implement +this correctly so users cannot generally rely on the return value if +the system version of this function is used. @end deftypefn diff --git a/libiberty/vsnprintf.c b/libiberty/vsnprintf.c index 7df5bd88e52..5470df2223b 100644 --- a/libiberty/vsnprintf.c +++ b/libiberty/vsnprintf.c @@ -27,13 +27,15 @@ the executable file might be covered by the GNU General Public License. */ @deftypefn Supplemental int vsnprintf (char *@var{buf}, size_t @var{n}, const char *@var{format}, va_list @var{ap}) -This function is similar to vsprintf, but it will print at most -@var{n} characters. On error the return value is -1, otherwise it -returns the number of characters that would have been printed had -@var{n} been sufficiently large, regardless of the actual value of -@var{n}. Note some pre-C99 system libraries do not implement this -correctly so users cannot generally rely on the return value if the -system version of this function is used. +This function is similar to @code{vsprintf}, but it will write to +@var{buf} at most @code{@var{n}-1} bytes of text, followed by a +terminating null byte, for a total of @var{n} bytes. On error the +return value is -1, otherwise it returns the number of characters that +would have been printed had @var{n} been sufficiently large, +regardless of the actual value of @var{n}. Note some pre-C99 system +libraries do not implement this correctly so users cannot generally +rely on the return value if the system version of this function is +used. @end deftypefn |