diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-04-20 22:24:33 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-04-20 22:24:33 +0000 |
commit | 760c01e494692ae3c96f90ea4a64214ddd8e34b5 (patch) | |
tree | bf01d84615ecaa704bfb1be6fcee5c450d365a49 /libjava | |
parent | d4b9398e77e4c58779163b6800ec887753c88d53 (diff) | |
download | ppe42-gcc-760c01e494692ae3c96f90ea4a64214ddd8e34b5.tar.gz ppe42-gcc-760c01e494692ae3c96f90ea4a64214ddd8e34b5.zip |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33292 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/gcj/javaprims.h | 32 | ||||
-rw-r--r-- | libjava/include/jvm.h | 29 | ||||
-rw-r--r-- | libjava/java/lang/Class.h | 1 |
4 files changed, 36 insertions, 31 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 79ab55511e6..212e9aa2aac 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -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> diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 4216b4c0a98..3e7d2e2f0b7 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -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; diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index 625a11e2148..c9cae936932 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -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. diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index bad71b524b7..c25398cbb23 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -50,6 +50,7 @@ enum struct _Jv_Field; struct _Jv_VTable; +union _Jv_word; struct _Jv_Constants { |