* gjavah.c (cxx_keyword_subst): Avoid potential infinite loop.
authorTom Tromey <tromey@cygnus.com>
Wed, 19 Apr 2000 16:05:03 +0000 (16:05 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Wed, 19 Apr 2000 16:05:03 +0000 (16:05 +0000)
From-SVN: r33261

gcc/java/ChangeLog
gcc/java/gjavah.c

index 87e6f4c6aeb0d170786bff1caf19d15ef4aade28..dc1d3e051f35e5bf6416752d2cdb6cef04a1e870 100644 (file)
@@ -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'.
index 0ee85a56638cae00d9e1cf1e54066ae3da574831..4c6d81de5434d7dc8e0f8693454f5d22b438b739 100644 (file)
@@ -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]));