diff --git a/libjava/ChangeLog b/libjava/ChangeLog index bb56489a572..ecf60575f19 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2001-02-15 Anthony Green + + * defineclass.cc: Don't include alloca.h. + (prepare_pool_entry): Convert alloca to __builtin_alloca. + * interpret.cc (run_normal): Ditto. + (continue1): Ditto. + * java/lang/natDouble.cc (parseDouble): Ditto. + 2001-02-15 Bryce McKinlay * java/util/TreeSet.java (clone): Call TreeMap.clone(), not diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc index 49774839abf..d58051677dd 100644 --- a/libjava/defineclass.cc +++ b/libjava/defineclass.cc @@ -25,9 +25,6 @@ details. */ #ifdef INTERPRETER #include -#if HAVE_ALLOCA_H -#include -#endif #include #include @@ -678,7 +675,7 @@ _Jv_ClassReader::prepare_pool_entry (int index, unsigned char this_tag) // order to accomondate gcj's internal representation. int len = get2u (this_data); - char *buffer = (char*) alloca (len); + char *buffer = (char*) __builtin_alloca (len); char *s = ((char*) this_data)+2; /* FIXME: avoid using a buffer here */ diff --git a/libjava/interpret.cc b/libjava/interpret.cc index aba1e2f966e..44dc1ca1f10 100644 --- a/libjava/interpret.cc +++ b/libjava/interpret.cc @@ -36,9 +36,6 @@ details. */ #ifdef INTERPRETER #include -#if HAVE_ALLOCA_H -#include -#endif static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("", 6); @@ -336,8 +333,8 @@ void _Jv_InterpMethod::run_normal (ffi_cif* cif, // "run" ro be inlined. Otherwise gcc will ignore the inline directive. int storage_size = _this->max_stack+_this->max_locals; _Jv_InterpMethodInvocation* inv = (_Jv_InterpMethodInvocation*) - alloca (sizeof (_Jv_InterpMethodInvocation) - + storage_size * sizeof (_Jv_word)); + __builtin_alloca (sizeof (_Jv_InterpMethodInvocation) + + storage_size * sizeof (_Jv_word)); jobject ex = _this->run (cif, ret, args, inv); if (ex != 0) _Jv_Throw (ex); @@ -353,8 +350,8 @@ void _Jv_InterpMethod::run_synch_object (ffi_cif* cif, int storage_size = _this->max_stack+_this->max_locals; _Jv_InterpMethodInvocation* inv = (_Jv_InterpMethodInvocation*) - alloca (sizeof (_Jv_InterpMethodInvocation) - + storage_size * sizeof (_Jv_word)); + __builtin_alloca (sizeof (_Jv_InterpMethodInvocation) + + storage_size * sizeof (_Jv_word)); _Jv_MonitorEnter (rcv); jobject ex = _this->run (cif, ret, args, inv); @@ -373,8 +370,8 @@ void _Jv_InterpMethod::run_synch_class (ffi_cif* cif, int storage_size = _this->max_stack+_this->max_locals; _Jv_InterpMethodInvocation* inv = (_Jv_InterpMethodInvocation*) - alloca (sizeof (_Jv_InterpMethodInvocation) - + storage_size * sizeof (_Jv_word)); + __builtin_alloca (sizeof (_Jv_InterpMethodInvocation) + + storage_size * sizeof (_Jv_word)); _Jv_MonitorEnter (sync); jobject ex = _this->run (cif, ret, args, inv); @@ -2380,7 +2377,7 @@ void _Jv_InterpMethod::continue1 (_Jv_InterpMethodInvocation *inv) jclass type = (_Jv_ResolvePoolEntry (defining_class, kind_index)).clazz; _Jv_InitClass (type); - jint *sizes = (jint*) alloca (sizeof (jint)*dim); + jint *sizes = (jint*) __builtin_alloca (sizeof (jint)*dim); for (int i = dim - 1; i >= 0; i--) { diff --git a/libjava/java/lang/natDouble.cc b/libjava/java/lang/natDouble.cc index bc60ddaec28..9ed7e53910d 100644 --- a/libjava/java/lang/natDouble.cc +++ b/libjava/java/lang/natDouble.cc @@ -10,10 +10,6 @@ details. */ #include -#if HAVE_ALLOCA_H -#include -#endif - #include #include @@ -166,11 +162,7 @@ java::lang::Double::parseDouble(jstring str) int length = str->length(); // Note that UTF can expand 3x. -#ifdef HAVE_ALLOCA - char *data = (char *) alloca (3 * length + 1); -#else -#error --- need an alternate implementation here --- -#endif + char *data = (char *) __builtin_alloca (3 * length + 1); data[_Jv_GetStringUTFRegion (str, 0, length, data)] = 0;