From 1c02a3d9640482c8e296f4f939381fde52fd9b18 Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Sat, 20 May 2000 23:30:46 +0000 Subject: re GNATS libgcj/226 (implicit __builtin_expect) and GNATS gcj/228 (compressed JAR files) 2000-05-20 Bryce McKinlay 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. From-SVN: r34064 --- libjava/ChangeLog | 13 +++++++++++++ libjava/java/lang/Class.h | 5 +++-- libjava/java/util/zip/ZipFile.java | 4 +++- libjava/java/util/zip/natInflater.cc | 3 ++- 4 files changed, 21 insertions(+), 4 deletions(-) (limited to 'libjava') diff --git a/libjava/ChangeLog b/libjava/ChangeLog index d544953..bd8c7fb 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +2000-05-20 Bryce McKinlay + + 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 * Makefile.in: Rebuilt. diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index 03fa439..31f143a 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 5e01d57..7825786 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 312027a..f3d258c 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: -- cgit v1.1