diff options
author | Tom Tromey <tromey@cygnus.com> | 2000-04-19 16:05:03 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2000-04-19 16:05:03 +0000 |
commit | ecb3660479fa03a9b8f619205587646acf66615c (patch) | |
tree | ba66829bb6ebc43c631aae81f5ddee18cf22d6b9 /gcc/java | |
parent | f64bedbd7d93173ad2077cd86d7af11064205a22 (diff) | |
download | gcc-ecb3660479fa03a9b8f619205587646acf66615c.zip gcc-ecb3660479fa03a9b8f619205587646acf66615c.tar.gz gcc-ecb3660479fa03a9b8f619205587646acf66615c.tar.bz2 |
* gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
From-SVN: r33261
Diffstat (limited to 'gcc/java')
-rw-r--r-- | gcc/java/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/java/gjavah.c | 11 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 87e6f4c..dc1d3e0 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2000-04-19 Tom Tromey <tromey@cygnus.com> + + * gjavah.c (cxx_keyword_subst): Avoid potential infinite loop. + 2000-04-18 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (maybe_make_nested_class_name): Use `obstack_grow0'. diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c index 0ee85a5..4c6d81d 100644 --- a/gcc/java/gjavah.c +++ b/gcc/java/gjavah.c @@ -407,12 +407,15 @@ cxx_keyword_subst (str, length) { int last = sizeof (cxx_keywords) / sizeof (const char *); int first = 0; - int mid, r; + int mid = (last + first) / 2; + int old = -1; - while (last != first) + for (mid = (last + first) / 2; + mid != old; + old = mid, mid = (last + first) / 2) { - mid = (last + first) / 2; - r = utf8_cmp (str, length, cxx_keywords[mid]); + int r = utf8_cmp (str, length, cxx_keywords[mid]); + if (r == 0) { char *str = xmalloc (9 + strlen (cxx_keywords[mid])); |