diff options
author | Tom Tromey <tromey@cygnus.com> | 1999-02-25 12:36:03 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-02-25 12:36:03 +0000 |
commit | 345137c78a04d79092b6c8633dd11470f30e7267 (patch) | |
tree | 903aff72bf90ad6a6e70ecc46ea0eda23be1817a /gcc/java/parse.y | |
parent | a015305167fc1b3f303363003584e2bdb9ef2073 (diff) | |
download | gcc-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.y | 11 |
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) |