diff options
| author | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-20 23:30:46 +0000 |
|---|---|---|
| committer | bryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-20 23:30:46 +0000 |
| commit | 36143eef6be2ce9255998b5914b38194df6d169d (patch) | |
| tree | 88a48b421e4bd8ac7064e837896ccf0ff941907b | |
| parent | 21724bde63544ace635db468cf2a9dd3ca1ec106 (diff) | |
| download | ppe42-gcc-36143eef6be2ce9255998b5914b38194df6d169d.tar.gz ppe42-gcc-36143eef6be2ce9255998b5914b38194df6d169d.zip | |
2000-05-20 Bryce McKinlay <bryce@albatross.co.nz>
Fix for PR libgcj/226:
* java/lang/Class.h (_Jv_InitClass): Don't call __builtin_expect,
since this is an installed header.
Fix for PR libgcj/228:
* java/util/zip/ZipFile (getInputStream): Create inflater with
nowrapper option.
* java/util/zip/natInflater.cc (inflate): Throw zlib's error message
with DataFormatException.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34064 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | libjava/ChangeLog | 13 | ||||
| -rw-r--r-- | libjava/java/lang/Class.h | 5 | ||||
| -rw-r--r-- | libjava/java/util/zip/ZipFile.java | 4 | ||||
| -rw-r--r-- | libjava/java/util/zip/natInflater.cc | 3 |
4 files changed, 21 insertions, 4 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d544953ec70..bd8c7fbd648 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +2000-05-20 Bryce McKinlay <bryce@albatross.co.nz> + + Fix for PR libgcj/226: + * java/lang/Class.h (_Jv_InitClass): Don't call __builtin_expect, + since this is an installed header. + + Fix for PR libgcj/228: + * java/util/zip/ZipFile (getInputStream): Create inflater with + nowrapper option. + + * java/util/zip/natInflater.cc (inflate): Throw zlib's error message + with DataFormatException. + 2000-05-20 Tom Tromey <tromey@cygnus.com> * Makefile.in: Rebuilt. diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index 03fa439b0b7..31f143ac577 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -206,8 +206,9 @@ private: inline friend void _Jv_InitClass (jclass klass) { - if (__builtin_expect (klass->state != JV_STATE_DONE, false)) - klass->initializeClass (); + if (klass->state == JV_STATE_DONE) + return; + klass->initializeClass (); } friend _Jv_Method* _Jv_LookupDeclaredMethod (jclass, _Jv_Utf8Const *, diff --git a/libjava/java/util/zip/ZipFile.java b/libjava/java/util/zip/ZipFile.java index 5e01d57923b..78257869fe9 100644 --- a/libjava/java/util/zip/ZipFile.java +++ b/libjava/java/util/zip/ZipFile.java @@ -133,7 +133,9 @@ public class ZipFile implements ZipConstants InputStream is = new ByteArrayInputStream (buffer); if (ze.getMethod() == ZipEntry.DEFLATED) - is = new InflaterInputStream (is); + // Data in zipfile entries does not have a zlib header, so construct + // an Inflater with the `nowrapper' option. + is = new InflaterInputStream (is, new Inflater (true), 512); return is; } diff --git a/libjava/java/util/zip/natInflater.cc b/libjava/java/util/zip/natInflater.cc index 312027a2d8c..f3d258cdd59 100644 --- a/libjava/java/util/zip/natInflater.cc +++ b/libjava/java/util/zip/natInflater.cc @@ -117,7 +117,8 @@ java::util::zip::Inflater::inflate (jbyteArray buf, jint off, jint len) break; case Z_DATA_ERROR: - _Jv_Throw (new java::util::zip::DataFormatException); + _Jv_Throw (new java::util::zip::DataFormatException + (s->msg == NULL ? NULL : JvNewStringLatin1 (s->msg))); break; case Z_MEM_ERROR: |

