defineclass.cc: Don't include alloca.h.

2001-02-15  Anthony Green  <green@redhat.com>

	* 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.

From-SVN: r39719
This commit is contained in:
Anthony Green 2001-02-15 14:03:14 +00:00 committed by Anthony Green
parent 85b99cbe64
commit c220009946
4 changed files with 17 additions and 23 deletions

View File

@ -1,3 +1,11 @@
2001-02-15 Anthony Green <green@redhat.com>
* 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 <bryce@albatross.co.nz>
* java/util/TreeSet.java (clone): Call TreeMap.clone(), not

View File

@ -25,9 +25,6 @@ details. */
#ifdef INTERPRETER
#include <stdlib.h>
#if HAVE_ALLOCA_H
#include <alloca.h>
#endif
#include <java-cpool.h>
#include <gcj/cni.h>
@ -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 */

View File

@ -36,9 +36,6 @@ details. */
#ifdef INTERPRETER
#include <stdlib.h>
#if HAVE_ALLOCA_H
#include <alloca.h>
#endif
static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 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--)
{

View File

@ -10,10 +10,6 @@ details. */
#include <config.h>
#if HAVE_ALLOCA_H
#include <alloca.h>
#endif
#include <stdlib.h>
#include <gcj/cni.h>
@ -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;