diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 5c3c429a8edb6f1825a7566dce1612d0ff973b93..b5f3f9b29e4a44d51ff36827ff8839072a6871ca 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,17 @@ +2000-04-08 Anthony Green <green@cygnus.com> + + * java/lang/natObject.cc (_Jv_MonitorEnter): Only perform null + check when we have to. + + * gcj/array.h: Mark elements(JArray<T>& x) and elements(JArray<T>* + x) as `inline'. + + * java/util/StringTokenizer.java: Minor optimization. Eliminates + one method call. + + * java/util/Vector.java (VectorEnumeration.nextElement): Manually + inline hasMoreElements. + 2000-04-05 Tom Tromey <tromey@cygnus.com> * configure: Rebuilt. diff --git a/libjava/gcj/array.h b/libjava/gcj/array.h index bbea902d5f5699950ad8291e005668b324d51cf9..8b0a416d7589e61c33da58b78cbb4dc5ee933eba 100644 --- a/libjava/gcj/array.h +++ b/libjava/gcj/array.h @@ -36,9 +36,9 @@ public: }; template<class T> -T* elements(JArray<T>& x) { return x.data; } +inline T* elements(JArray<T>& x) { return x.data; } template<class T> -T* elements(JArray<T>* x) { return x->data; } +inline T* elements(JArray<T>* x) { return x->data; } }; // end extern "Java" diff --git a/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc index 25b29660ae0aef18945db5930c9227ba6f81d2ff..99e7ac518babd8da81b67871419ab99cfa89d36b 100644 --- a/libjava/java/lang/natObject.cc +++ b/libjava/java/lang/natObject.cc @@ -18,6 +18,7 @@ details. */ #include <jvm.h> #include <java/lang/Object.h> #include <java-threads.h> +#include <java-signal.h> #include <java/lang/CloneNotSupportedException.h> #include <java/lang/IllegalArgumentException.h> #include <java/lang/IllegalMonitorStateException.h> @@ -224,8 +225,10 @@ _Jv_InitializeSyncMutex (void) jint _Jv_MonitorEnter (jobject obj) { +#ifndef HANDLE_SEGV if (! obj) JvThrow (new java::lang::NullPointerException); +#endif if (INIT_NEEDED (obj)) obj->sync_init (); _Jv_SyncInfo *si = (_Jv_SyncInfo *) obj->sync_info; diff --git a/libjava/java/util/StringTokenizer.java b/libjava/java/util/StringTokenizer.java index b55c8f7714cd12c6afad0622f22c0c80c379e963..1686a0399e838c547203f82c8487de379f573209 100644 --- a/libjava/java/util/StringTokenizer.java +++ b/libjava/java/util/StringTokenizer.java @@ -180,6 +180,6 @@ public class StringTokenizer implements Enumeration // more readable this way, so we'll take the hit on efficiency. private boolean isDelimiter(char ch) { - return delimiters.indexOf(ch) >= 0; + return delimiters.indexOf(ch, 0) >= 0; } } diff --git a/libjava/java/util/Vector.java b/libjava/java/util/Vector.java index 737c5b498f60e36f77d6809796e03196191394b4..d98068082ad68bca02676d04158cfdd904aec37a 100644 --- a/libjava/java/util/Vector.java +++ b/libjava/java/util/Vector.java @@ -38,7 +38,7 @@ class VectorEnumeration implements Enumeration public Object nextElement() { - if (!hasMoreElements()) + if (! (enumIndex < enumVec.size())) throw new NoSuchElementException(); return enumVec.elementData[enumIndex++];