aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.y
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>1999-02-25 12:36:03 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-02-25 12:36:03 +0000
commit345137c78a04d79092b6c8633dd11470f30e7267 (patch)
tree903aff72bf90ad6a6e70ecc46ea0eda23be1817a /gcc/java/parse.y
parenta015305167fc1b3f303363003584e2bdb9ef2073 (diff)
downloadgcc-345137c78a04d79092b6c8633dd11470f30e7267.zip
gcc-345137c78a04d79092b6c8633dd11470f30e7267.tar.gz
gcc-345137c78a04d79092b6c8633dd11470f30e7267.tar.bz2
parse.y (read_import_dir): Use `|=', not `+=', to set `found'.
* parse.y (read_import_dir): Use `|=', not `+=', to set `found'. When reading a zip file, only use strncmp if both strings are bigger than the buffer length. Initialize `k' when looping through zip file. From-SVN: r25439
Diffstat (limited to 'gcc/java/parse.y')
-rw-r--r--gcc/java/parse.y11
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 8964e45..504d1dc 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -5018,15 +5018,16 @@ read_import_dir (wfl)
}
*filename->ptr++ = '/';
- for (; k < zipf->count; k++, zipd = ZIPDIR_NEXT (zipd))
+ for (k = 0; k < zipf->count; k++, zipd = ZIPDIR_NEXT (zipd))
{
char *current_entry = ZIPDIR_FILENAME (zipd);
int current_entry_len = zipd->filename_length;
- if (strncmp (filename->data, current_entry,
- BUFFER_LENGTH (filename)) != 0)
+ if (current_entry_len >= BUFFER_LENGTH (filename)
+ && strncmp (filename->data, current_entry,
+ BUFFER_LENGTH (filename)) != 0)
continue;
- found += note_possible_classname (current_entry,
+ found |= note_possible_classname (current_entry,
current_entry_len);
}
}
@@ -5059,7 +5060,7 @@ read_import_dir (wfl)
len = strlen (direntp->d_name);
buffer_grow (filename, len+1);
strcpy (filename->ptr, d_name);
- found += note_possible_classname (filename->data + entry_length,
+ found |= note_possible_classname (filename->data + entry_length,
package_length+len+1);
}
if (dirp)