re GNATS libgcj/212 (build is broken on Linux/Alpha)

Fix for PR libgcj/212:
	* gcj/javaprims.h (_Jv_word, _Jv_word2): Removed definitions.
	* include/jvm.h (_Jv_word, _Jv_word2): Define.
	* java/lang/Class.h (_Jv_word): Declare.

From-SVN: r33292
This commit is contained in:
Tom Tromey 2000-04-20 22:24:33 +00:00 committed by Tom Tromey
parent dea4b2db61
commit 18fcc4961b
4 changed files with 36 additions and 31 deletions

View File

@ -1,5 +1,10 @@
2000-04-20 Tom Tromey <tromey@cygnus.com>
Fix for PR libgcj/212:
* gcj/javaprims.h (_Jv_word, _Jv_word2): Removed definitions.
* include/jvm.h (_Jv_word, _Jv_word2): Define.
* java/lang/Class.h (_Jv_word): Declare.
* jni.cc (_Jv_JNI_PopSystemFrame): Clear `env->ex'.
2000-04-19 Tom Tromey <tromey@cygnus.com>

View File

@ -1,6 +1,6 @@
// javaprims.h - Main external header file for libgcj. -*- c++ -*-
/* Copyright (C) 1998, 1999 Free Software Foundation
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
This file is part of libgcj.
@ -278,36 +278,6 @@ extern "C" void _Jv_Free (void*);
typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
typedef union {
jobject o;
jint i; // Also stores smaller integral types.
jfloat f;
jint ia[1]; // Half of _Jv_word2.
void* p;
// We use __LP64__ and not SIZEOF_VOID_P here because we want
// something that will be predefined by the compiler. FIXME -- this
// definition probably shouldn't appear here anyway.
#ifdef __LP64__
// We can safely put a long or a double in here without increasing
// the size of _Jv_Word; we take advantage of this in the interpreter.
jlong l;
jdouble d;
#endif
jclass clazz;
jstring string;
struct _Jv_Field *field;
struct _Jv_Utf8Const *utf8;
struct _Jv_ResolvedMethod *rmethod;
} _Jv_word;
typedef union {
jint ia[2];
jlong l;
jdouble d;
} _Jv_word2;
struct _Jv_Utf8Const
{
_Jv_ushort hash;

View File

@ -31,6 +31,35 @@ struct _Jv_VTable
void *method[1];
};
union _Jv_word
{
jobject o;
jint i; // Also stores smaller integral types.
jfloat f;
jint ia[1]; // Half of _Jv_word2.
void* p;
#if SIZEOF_VOID_P == 8
// We can safely put a long or a double in here without increasing
// the size of _Jv_Word; we take advantage of this in the interpreter.
jlong l;
jdouble d;
#endif
jclass clazz;
jstring string;
struct _Jv_Field *field;
struct _Jv_Utf8Const *utf8;
struct _Jv_ResolvedMethod *rmethod;
};
union _Jv_word2
{
jint ia[2];
jlong l;
jdouble d;
};
/* Extract a character from a Java-style Utf8 string.
* PTR points to the current character.
* LIMIT points to the end of the Utf8 string.

View File

@ -50,6 +50,7 @@ enum
struct _Jv_Field;
struct _Jv_VTable;
union _Jv_word;
struct _Jv_Constants
{