Linux3.1 Java Bootstrap Failure
Jeffrey Oldham
oldham@codesourcery.com
Sun Sep 16 10:57:00 GMT 2001
For i686-pc-linux-gnu 3.1, bootstrap fails:
/home/oldham/gcc/gcc2/objdir/gcc/cc1plus -fpreprocessed jni.ii -quiet -o jni.s
/home/oldham/gcc/gcc2/libjava/jni.cc: In function `void
array_from_valist(jvalue*, JArray<java::lang::Class*>*, void*)':
/home/oldham/gcc/gcc2/libjava/jni.cc:659: `jbyte' is promoted to `int' when
passed through `...'
/home/oldham/gcc/gcc2/libjava/jni.cc:659: (so you should pass `int' not `jbyte'
to `va_arg')
/home/oldham/gcc/gcc2/libjava/jni.cc:661: `jshort' is promoted to `int' when
passed through `...'
/home/oldham/gcc/gcc2/libjava/jni.cc:671: `jboolean' is promoted to `int' when
passed through `...'
/home/oldham/gcc/gcc2/libjava/jni.cc:673: `jchar' is promoted to `int' when
passed through `...'
The failure started sometime 15Sep or 16Sep.
Thanks,
Jeffrey D. Oldham
oldham@codesourcery.com
# 1 "/home/oldham/gcc/gcc2/libjava/jni.cc"
# 1 "<builtin>"
# 1 "<command line>"
# 1 "/home/oldham/gcc/gcc2/libjava/jni.cc"
# 11 "/home/oldham/gcc/gcc2/libjava/jni.cc"
# 1 "include/config.h" 1
# 12 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 147 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 3
typedef int ptrdiff_t;
# 201 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 3
typedef unsigned int size_t;
# 14 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 250 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 251 "/usr/include/features.h" 2 3
# 278 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 279 "/usr/include/features.h" 2 3
# 27 "/usr/include/string.h" 2 3
extern "C" {
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void * memcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) throw ();
extern void * memmove (void * __dest, __const void * __src, size_t __n) throw ();
extern void * memccpy (void * __dest, __const void * __src, int __c, size_t __n) throw ();
extern void * memset (void * __s, int __c, size_t __n) throw ();
extern int memcmp (__const void * __s1, __const void * __s2, size_t __n) throw ();
extern void * memchr (__const void * __s, int __c, size_t __n) throw ();
extern void * rawmemchr (__const void * __s, int __c) throw ();
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) throw ();
extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw ();
extern char *strcat (char *__restrict __dest, __const char *__restrict __src) throw ();
extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw ();
extern int strcmp (__const char *__s1, __const char *__s2) throw ();
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) throw ();
extern int strcoll (__const char *__s1, __const char *__s2) throw ();
extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw ();
# 1 "/usr/include/xlocale.h" 1 3
# 28 "/usr/include/xlocale.h" 3
typedef struct __locale_struct
{
struct locale_data *__locales[6];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
} *__locale_t;
# 100 "/usr/include/string.h" 2 3
extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) throw ();
extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) throw ();
extern char *__strdup (__const char *__s) throw ();
extern char *strdup (__const char *__s) throw ();
extern char *strndup (__const char *__string, size_t __n) throw ();
# 146 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) throw ();
extern char *strrchr (__const char *__s, int __c) throw ();
extern char *strchrnul (__const char *__s, int __c) throw ();
extern size_t strcspn (__const char *__s, __const char *__reject) throw ();
extern size_t strspn (__const char *__s, __const char *__accept) throw ();
extern char *strpbrk (__const char *__s, __const char *__accept) throw ();
extern char *strstr (__const char *__haystack, __const char *__needle) throw ();
extern char *__strcasestr (__const char *__haystack, __const char *__needle) throw ();
extern char *strcasestr (__const char *__haystack, __const char *__needle) throw ();
extern char *strtok (char *__restrict __s, __const char *__restrict __delim) throw ();
extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw ();
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) throw ();
# 194 "/usr/include/string.h" 3
extern void * memmem (__const void * __haystack, size_t __haystacklen, __const void * __needle, size_t __needlelen) throw ();
extern void * __mempcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) throw ();
extern void * mempcpy (void * __restrict __dest, __const void * __restrict __src, size_t __n) throw ();
extern size_t strlen (__const char *__s) throw ();
extern size_t strnlen (__const char *__string, size_t __maxlen) throw ();
extern char *strerror (int __errnum) throw ();
extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen) throw ();
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw ();
extern void __bzero (void * __s, size_t __n) throw ();
extern void bcopy (__const void * __src, void * __dest, size_t __n) throw ();
extern void bzero (void * __s, size_t __n) throw ();
extern int bcmp (__const void * __s1, __const void * __s2, size_t __n) throw ();
extern char *index (__const char *__s, int __c) throw ();
extern char *rindex (__const char *__s, int __c) throw ();
extern int __ffs (int __i) throw () __attribute__ ((const));
extern int ffs (int __i) throw () __attribute__ ((const));
extern int ffsl (long int __l) throw () __attribute__ ((const));
__extension__ extern int ffsll (long long int __ll) throw ()
__attribute__ ((const));
extern int __strcasecmp (__const char *__s1, __const char *__s2) throw ();
extern int strcasecmp (__const char *__s1, __const char *__s2) throw ();
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) throw ();
extern int __strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) throw ();
extern int __strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) throw ();
extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) throw ();
extern int strverscmp (__const char *__s1, __const char *__s2) throw ();
extern char *strsignal (int __sig) throw ();
extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) throw ();
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) throw ();
extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw ();
extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) throw ();
extern char *strfry (char *__string) throw ();
extern void * memfrob (void * __s, size_t __n) throw ();
extern char *basename (__const char *__filename) throw ();
# 350 "/usr/include/string.h" 3
}
# 15 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "/home/oldham/gcc/gcc2/libjava/gcj/cni.h" 1
# 16 "/home/oldham/gcc/gcc2/libjava/gcj/cni.h"
# 1 "/home/oldham/gcc/gcc2/libjava/java/lang/Object.h" 1
# 14 "/home/oldham/gcc/gcc2/libjava/java/lang/Object.h"
#pragma interface
# 1 "/home/oldham/gcc/gcc2/libjava/gcj/javaprims.h" 1
# 15 "/home/oldham/gcc/gcc2/libjava/gcj/javaprims.h"
#pragma GCC java_exceptions
# 1 "gcj/libgcj-config.h" 1
# 18 "/home/oldham/gcc/gcc2/libjava/gcj/javaprims.h" 2
# 29 "/home/oldham/gcc/gcc2/libjava/gcj/javaprims.h"
extern "Java"
{
typedef __java_byte jbyte;
typedef __java_short jshort;
typedef __java_int jint;
typedef __java_long jlong;
typedef __java_float jfloat;
typedef __java_double jdouble;
typedef __java_char jchar;
typedef __java_boolean jboolean;
typedef jint jsize;
namespace java
{
namespace io
{
class BufferedInputStream;
class BufferedOutputStream;
class BufferedReader;
class BufferedWriter;
class ByteArrayInputStream;
class ByteArrayOutputStream;
class CharArrayReader;
class CharArrayWriter;
class CharConversionException;
class DataInput;
class DataInputStream;
class DataOutput;
class DataOutputStream;
class EOFException;
class Externalizable;
class File;
class FileDescriptor;
class FileFilter;
class FileInputStream;
class FileNotFoundException;
class FileOutputStream;
class FilePermission;
class FileReader;
class FileWriter;
class FilenameFilter;
class FilterInputStream;
class FilterOutputStream;
class FilterReader;
class FilterWriter;
class IOException;
class InputStream;
class InputStreamReader;
class InterfaceComparator;
class InterruptedIOException;
class InvalidClassException;
class InvalidObjectException;
class LineNumberInputStream;
class LineNumberReader;
class MemberComparator;
class NotActiveException;
class NotSerializableException;
class ObjectInput;
class ObjectInputStream;
class ObjectInputStream$GetField;
class ObjectInputValidation;
class ObjectOutput;
class ObjectOutputStream;
class ObjectOutputStream$PutField;
class ObjectStreamClass;
class ObjectStreamConstants;
class ObjectStreamException;
class ObjectStreamField;
class OptionalDataException;
class OutputStream;
class OutputStreamWriter;
class PipedInputStream;
class PipedOutputStream;
class PipedReader;
class PipedWriter;
class PrintStream;
class PrintWriter;
class PushbackInputStream;
class PushbackReader;
class RandomAccessFile;
class Reader;
class SequenceInputStream;
class Serializable;
class SerializablePermission;
class StreamCorruptedException;
class StreamTokenizer;
class StringBufferInputStream;
class StringReader;
class StringWriter;
class SyncFailedException;
class UTFDataFormatException;
class UnsupportedEncodingException;
class ValidatorAndPriority;
class WriteAbortedException;
class Writer;
};
namespace lang
{
class AbstractMethodError;
class ArithmeticException;
class ArrayIndexOutOfBoundsException;
class ArrayStoreException;
class Boolean;
class Byte;
class CPlusPlusDemangler;
class Character;
class Character$Subset;
class Character$UnicodeBlock;
class Class;
class ClassCastException;
class ClassCircularityError;
class ClassFormatError;
class ClassLoader;
class ClassNotFoundException;
class CloneNotSupportedException;
class Cloneable;
class Comparable;
class Compiler;
class ConcreteProcess;
class Double;
class Error;
class Exception;
class ExceptionInInitializerError;
class Float;
class IllegalAccessError;
class IllegalAccessException;
class IllegalArgumentException;
class IllegalMonitorStateException;
class IllegalStateException;
class IllegalThreadStateException;
class IncompatibleClassChangeError;
class IndexOutOfBoundsException;
class InstantiationError;
class InstantiationException;
class Integer;
class InternalError;
class InterruptedException;
class LinkageError;
class Long;
class Math;
class NegativeArraySizeException;
class NoClassDefFoundError;
class NoSuchFieldError;
class NoSuchFieldException;
class NoSuchMethodError;
class NoSuchMethodException;
class NullPointerException;
class Number;
class NumberFormatException;
class Object;
class OutOfMemoryError;
class Package;
class Process;
class Runnable;
class Runtime;
class RuntimeException;
class RuntimePermission;
class SecurityContext;
class SecurityException;
class SecurityManager;
class Short;
class StackOverflowError;
class String;
class StringBuffer;
class StringIndexOutOfBoundsException;
class System;
class Thread;
class ThreadDeath;
class ThreadGroup;
class ThreadLocal;
class ThreadLocal$Value;
class Throwable;
class UnknownError;
class UnsatisfiedLinkError;
class UnsupportedClassVersionError;
class UnsupportedOperationException;
class VMClassLoader;
class VMSecurityManager;
class VerifyError;
class VirtualMachineError;
class Void;
namespace ref
{
class PhantomReference;
class Reference;
class ReferenceQueue;
class SoftReference;
class WeakReference;
};
namespace reflect
{
class AccessibleObject;
class Array;
class Constructor;
class Field;
class InvocationTargetException;
class Member;
class Method;
class Modifier;
class ReflectPermission;
};
};
namespace util
{
class AbstractCollection;
class AbstractList;
class AbstractList$AbstractListItr;
class AbstractMap;
class AbstractSequentialList;
class AbstractSet;
class ArrayList;
class Arrays;
class Arrays$ListImpl;
class BasicMapEntry;
class BitSet;
class Calendar;
class Collection;
class Collections;
class Collections$ReverseComparator;
class Collections$SynchronizedCollection;
class Collections$SynchronizedIterator;
class Collections$SynchronizedList;
class Collections$SynchronizedListIterator;
class Collections$SynchronizedMap;
class Collections$SynchronizedSet;
class Collections$SynchronizedSortedMap;
class Collections$SynchronizedSortedSet;
class Collections$UnmodifiableCollection;
class Collections$UnmodifiableIterator;
class Collections$UnmodifiableList;
class Collections$UnmodifiableListIterator;
class Collections$UnmodifiableMap;
class Collections$UnmodifiableSet;
class Collections$UnmodifiableSortedMap;
class Collections$UnmodifiableSortedSet;
class Comparator;
class ConcurrentModificationException;
class Date;
class Dictionary;
class EmptyStackException;
class Enumeration;
class EventListener;
class EventObject;
class GregorianCalendar;
class HashMap;
class HashMap$Entry;
class HashMap$HashIterator;
class HashSet;
class Hashtable;
class Hashtable$Entry;
class Hashtable$Enumerator;
class Hashtable$HashIterator;
class IdentityHashMap;
class IdentityHashMap$IdentityIterator;
class Iterator;
class LinkedList;
class LinkedList$Entry;
class LinkedList$LinkedListItr;
class List;
class ListIterator;
class ListResourceBundle;
class Locale;
class Map;
class Map$Entry;
class MissingResourceException;
class NoSuchElementException;
class Observable;
class Observer;
class Properties;
class PropertyPermission;
class PropertyResourceBundle;
class Random;
class ResourceBundle;
class Set;
class SimpleTimeZone;
class SortedMap;
class SortedSet;
class Stack;
class StringTokenizer;
class SubList;
class TimeZone;
class Timer;
class Timer$Scheduler;
class Timer$TaskQueue;
class TimerTask;
class TooManyListenersException;
class TreeMap;
class TreeMap$Node;
class TreeMap$SubMap;
class TreeMap$TreeIterator;
class TreeMap$VerifyResult;
class TreeSet;
class Vector;
class WeakHashMap;
class WeakHashMap$Entry;
class WeakHashMap$WeakBucket;
class WeakHashMap$WeakEntrySet;
namespace jar
{
class Attributes;
class Attributes$Name;
class JarEntry;
class JarException;
class JarFile;
class JarFile$JarEnumeration;
class JarInputStream;
class JarOutputStream;
class Manifest;
};
namespace zip
{
class Adler32;
class CRC32;
class CheckedInputStream;
class CheckedOutputStream;
class Checksum;
class DataFormatException;
class Deflater;
class DeflaterOutputStream;
class GZIPInputStream;
class GZIPOutputStream;
class Inflater;
class InflaterInputStream;
class ZipConstants;
class ZipEntry;
class ZipEnumeration;
class ZipException;
class ZipFile;
class ZipInputStream;
class ZipOutputStream;
};
};
};
};
typedef struct java::lang::Object* jobject;
typedef class java::lang::Class* jclass;
typedef class java::lang::Throwable* jthrowable;
typedef class java::lang::String* jstring;
struct _Jv_JNIEnv;
typedef struct _Jv_Field *jfieldID;
typedef struct _Jv_Method *jmethodID;
extern "C" jobject _Jv_AllocObject (jclass, jint) __attribute__((__malloc__));
static inline jobject _Jv_AllocPtrFreeObject (jclass klass, jint sz)
{
return _Jv_AllocObject(klass, sz);
}
extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
extern "C" jstring _Jv_NewString (const jchar*, jsize)
__attribute__((__malloc__));
extern jint _Jv_FormatInt (jchar* bufend, jint num);
extern "C" jchar* _Jv_GetStringChars (jstring str);
extern "C" void _Jv_MonitorEnter (jobject);
extern "C" void _Jv_MonitorExit (jobject);
extern "C" jstring _Jv_NewStringLatin1(const char*, jsize)
__attribute__((__malloc__));
extern "C" jsize _Jv_GetStringUTFLength (jstring);
extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
extern jint _Jv_CreateJavaVM (void* );
void
_Jv_ThreadRun (java::lang::Thread* thread);
jint
_Jv_AttachCurrentThread(java::lang::Thread* thread);
extern "C" java::lang::Thread*
_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);
extern "C" jint _Jv_DetachCurrentThread (void);
extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
extern "C" void* _Jv_Realloc (void *, jsize);
extern "C" void _Jv_Free (void*);
extern void (*_Jv_RegisterClassHook) (jclass cl);
extern "C" void _Jv_RegisterClassHookDefault (jclass);
typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));
struct _Jv_Utf8Const
{
_Jv_ushort hash;
_Jv_ushort length;
char data[1];
};
# 17 "/home/oldham/gcc/gcc2/libjava/java/lang/Object.h" 2
struct _JvObjectPrefix
{
protected:
virtual void nacd_1 (void) {};
virtual void nacd_2 (void) {};
};
class java::lang::Object : public _JvObjectPrefix
{
protected:
virtual void finalize (void);
public:
jclass getClass (void);
virtual jint hashCode (void);
void notify (void);
void notifyAll (void);
void wait (jlong timeout, jint nanos);
virtual jboolean equals (jobject obj);
Object (void);
virtual jstring toString (void);
void wait (void);
void wait (jlong timeout);
friend void _Jv_MonitorEnter (jobject obj);
friend void _Jv_MonitorExit (jobject obj);
friend void _Jv_InitializeSyncMutex (void);
friend void _Jv_FinalizeObject (jobject obj);
# 57 "/home/oldham/gcc/gcc2/libjava/java/lang/Object.h"
static java::lang::Class class$;
protected:
virtual jobject clone (void);
private:
jobject sync_info;
void sync_init (void);
};
# 17 "/home/oldham/gcc/gcc2/libjava/gcj/cni.h" 2
# 1 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h" 1
# 15 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h"
#pragma interface
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 18 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h" 2
# 1 "java/lang/String.h" 1
#pragma interface
# 1 "/home/oldham/gcc/gcc2/libjava/gcj/array.h" 1
# 16 "/home/oldham/gcc/gcc2/libjava/gcj/array.h"
extern "Java" {
class __JArray : public java::lang::Object
{
protected:
__JArray () : length (0)
{
}
public:
const jsize length;
friend jsize JvGetArrayLength (__JArray*);
};
template<class T>
class JArray : public __JArray
{
T data[0];
public:
friend T* elements<>(JArray<T>& x);
friend T* elements<>(JArray<T>* x);
};
template<class T>
inline T* elements(JArray<T>& x) { return x.data; }
template<class T>
inline T* elements(JArray<T>* x) { return x->data; }
};
typedef __JArray *jarray;
typedef JArray<jobject> *jobjectArray;
typedef JArray<jboolean> *jbooleanArray;
typedef JArray<jbyte> *jbyteArray;
typedef JArray<jchar> *jcharArray;
typedef JArray<jshort> *jshortArray;
typedef JArray<jint> *jintArray;
typedef JArray<jlong> *jlongArray;
typedef JArray<jfloat> *jfloatArray;
typedef JArray<jdouble> *jdoubleArray;
typedef JArray<jstring> *jstringArray;
extern java::lang::Class _Jv_byteClass, _Jv_shortClass, _Jv_intClass,
_Jv_longClass, _Jv_booleanClass, _Jv_charClass, _Jv_floatClass,
_Jv_doubleClass, _Jv_voidClass;
extern "C" jobjectArray _Jv_NewObjectArray(jsize length, jclass, jobject init);
extern "C" jobject _Jv_NewPrimArray (jclass eltype, jint count);
extern inline jobjectArray
JvNewObjectArray (jsize length, jclass cls, jobject init)
{
return _Jv_NewObjectArray (length, cls, init);
}
extern inline jcharArray
JvNewCharArray (jint length)
{
return (jcharArray) _Jv_NewPrimArray ((& _Jv_charClass), length);
}
extern inline jbooleanArray
JvNewBooleanArray (jint length)
{
return (jbooleanArray) _Jv_NewPrimArray ((& _Jv_booleanClass), length);
}
extern inline jbyteArray
JvNewByteArray (jint length)
{
return (jbyteArray) _Jv_NewPrimArray ((& _Jv_byteClass), length);
}
extern inline jshortArray
JvNewShortArray (jint length)
{
return (jshortArray) _Jv_NewPrimArray ((& _Jv_shortClass), length);
}
extern inline jintArray
JvNewIntArray (jint length)
{
return (jintArray) _Jv_NewPrimArray ((& _Jv_intClass), length);
}
extern inline jlongArray
JvNewLongArray (jint length)
{
return (jlongArray) _Jv_NewPrimArray ((& _Jv_longClass), length);
}
extern inline jfloatArray
JvNewFloatArray (jint length)
{
return (jfloatArray) _Jv_NewPrimArray ((& _Jv_floatClass), length);
}
extern inline jdoubleArray
JvNewDoubleArray (jint length)
{
return (jdoubleArray) _Jv_NewPrimArray ((& _Jv_doubleClass), length);
}
extern "C" jstringArray JvConvertArgv(int argc, const char **argv);
inline jsize JvGetArrayLength (jarray array) { return array->length; }
# 10 "java/lang/String.h" 2
class ::java::lang::String : public ::java::lang::Object
{
public:
String ();
String (::java::lang::String *);
String (::java::lang::StringBuffer *);
String (jcharArray);
String (jcharArray, jint, jint);
String (jbyteArray);
String (jbyteArray, jint, jint);
String (jbyteArray, ::java::lang::String *);
String (jbyteArray, jint, jint, ::java::lang::String *);
static ::java::lang::String *copyValueOf (jcharArray);
static ::java::lang::String *copyValueOf (jcharArray, jint, jint);
String (jbyteArray, jint);
String (jbyteArray, jint, jint, jint);
::java::lang::String *toString () { return this; }
jboolean equals (::java::lang::Object *);
jint hashCode ();
jint length () { return count; }
jchar charAt (jint);
void getChars (jint, jint, jcharArray, jint);
jbyteArray getBytes ();
jbyteArray getBytes (::java::lang::String *);
void getBytes (jint, jint, jbyteArray, jint);
jcharArray toCharArray ();
jboolean equalsIgnoreCase (::java::lang::String *);
jint compareTo (::java::lang::String *);
jint compareTo (::java::lang::Object *);
jint compareToIgnoreCase (::java::lang::String *);
jboolean regionMatches (jint, ::java::lang::String *, jint, jint);
jboolean regionMatches (jboolean, jint, ::java::lang::String *, jint, jint);
jboolean startsWith (::java::lang::String *);
jboolean startsWith (::java::lang::String *, jint);
jboolean endsWith (::java::lang::String *);
jint indexOf (jint);
jint indexOf (jint, jint);
jint indexOf (::java::lang::String *);
jint indexOf (::java::lang::String *, jint);
jint lastIndexOf (jint);
jint lastIndexOf (jint, jint);
jint lastIndexOf (::java::lang::String *);
jint lastIndexOf (::java::lang::String *, jint);
::java::lang::String *substring (jint);
::java::lang::String *substring (jint, jint);
::java::lang::String *concat (::java::lang::String *);
::java::lang::String *replace (jchar, jchar);
::java::lang::String *toLowerCase (::java::util::Locale *);
::java::lang::String *toUpperCase (::java::util::Locale *);
::java::lang::String *toLowerCase ();
::java::lang::String *toUpperCase ();
::java::lang::String *trim ();
static ::java::lang::String *valueOf (::java::lang::Object *);
static ::java::lang::String *valueOf (jcharArray);
static ::java::lang::String *valueOf (jcharArray, jint, jint);
static ::java::lang::String *valueOf (jboolean);
static ::java::lang::String *valueOf (jchar);
static ::java::lang::String *valueOf (jint);
static ::java::lang::String *valueOf (jlong);
static ::java::lang::String *valueOf (jfloat);
static ::java::lang::String *valueOf (jdouble);
::java::lang::String *intern ();
private:
void init ();
void init (jcharArray, jint, jint, jboolean);
void init (jbyteArray, jint, jint, jint);
void init (jbyteArray, jint, jint, ::java::lang::String *);
static void rehash ();
::java::lang::Object *data;
jint boffset;
jint count;
static const jlong serialVersionUID = -6849794470754667710LL;
public:
static ::java::util::Comparator *CASE_INSENSITIVE_ORDER;
friend jchar* _Jv_GetStringChars (jstring str);
friend jstring* _Jv_StringFindSlot (jchar*, jint, jint);
friend jstring* _Jv_StringGetSlot (jstring);
friend jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);
friend jstring _Jv_NewStringLatin1 (const char*, jsize);
friend jstring _Jv_AllocString (jsize);
static ::java::lang::Class class$;
};
# 20 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h" 2
# 1 "java/net/URL.h" 1
#pragma interface
extern "Java"
{
namespace java
{
namespace net
{
class URLConnection;
class URL;
class URLStreamHandlerFactory;
class URLStreamHandler;
}
}
};
class ::java::net::URL : public ::java::lang::Object
{
public:
URL (::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *);
URL (::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
URL (::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::net::URLStreamHandler *);
URL (::java::lang::String *);
URL (::java::net::URL *, ::java::lang::String *);
URL (::java::net::URL *, ::java::lang::String *, ::java::net::URLStreamHandler *);
jboolean equals (::java::lang::Object *);
::java::lang::Object *getContent ();
::java::lang::String *getFile () { return file; }
::java::lang::String *getHost () { return host; }
jint getPort () { return port; }
::java::lang::String *getProtocol () { return protocol; }
::java::lang::String *getRef () { return ref; }
jint hashCode ();
::java::net::URLConnection *openConnection ();
::java::io::InputStream *openStream ();
jboolean sameFile (::java::net::URL *);
public:
void set (::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *);
public:
static void setURLStreamHandlerFactory (::java::net::URLStreamHandlerFactory *);
::java::lang::String *toExternalForm ();
::java::lang::String *toString ();
private:
::java::net::URLStreamHandler *setURLStreamHandler (::java::lang::String *);
void readObject (::java::io::ObjectInputStream *);
void writeObject (::java::io::ObjectOutputStream *);
::java::lang::String *protocol;
::java::lang::String *host;
jint port;
::java::lang::String *file;
::java::lang::String *ref;
jint hashCode__;
::java::net::URLStreamHandler *handler;
static ::java::util::Hashtable *handlers;
static ::java::net::URLStreamHandlerFactory *factory;
static const jlong serialVersionUID = -7627629688361524110LL;
public:
static ::java::lang::Class class$;
};
# 21 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h" 2
# 1 "java/lang/reflect/Modifier.h" 1
#pragma interface
class ::java::lang::reflect::Modifier : public ::java::lang::Object
{
public:
static jboolean isAbstract (jint);
static jboolean isFinal (jint);
static jboolean isInterface (jint);
static jboolean isNative (jint);
static jboolean isPrivate (jint);
static jboolean isProtected (jint);
static jboolean isPublic (jint);
static jboolean isStatic (jint);
static jboolean isStrict (jint);
static jboolean isSynchronized (jint);
static jboolean isTransient (jint);
static jboolean isVolatile (jint);
static ::java::lang::String *toString (jint);
public:
static void toString (jint, ::java::lang::StringBuffer *);
public:
Modifier ();
static const jint PUBLIC = 1L;
static const jint PRIVATE = 2L;
static const jint PROTECTED = 4L;
static const jint STATIC = 8L;
static const jint FINAL = 16L;
static const jint SYNCHRONIZED = 32L;
static const jint VOLATILE = 64L;
static const jint TRANSIENT = 128L;
static const jint NATIVE = 256L;
static const jint INTERFACE = 512L;
static const jint ABSTRACT = 1024L;
static const jint STRICT = 2048L;
public:
static const jint ALL_FLAGS = 4095L;
public:
static ::java::lang::Class class$;
};
# 22 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h" 2
# 1 "java/security/ProtectionDomain.h" 1
#pragma interface
extern "Java"
{
namespace java
{
namespace security
{
class ProtectionDomain;
class Permission;
class PermissionCollection;
class CodeSource;
}
}
};
class ::java::security::ProtectionDomain : public ::java::lang::Object
{
public:
ProtectionDomain (::java::security::CodeSource *, ::java::security::PermissionCollection *);
::java::security::CodeSource *getCodeSource () { return code_source; }
::java::security::PermissionCollection *getPermissions () { return perms; }
virtual jboolean implies (::java::security::Permission *);
virtual ::java::lang::String *toString ();
private:
static ::java::lang::String *linesep;
::java::security::CodeSource *code_source;
::java::security::PermissionCollection *perms;
public:
static ::java::lang::Class class$;
};
# 23 "/home/oldham/gcc/gcc2/libjava/java/lang/Class.h" 2
extern "C" void _Jv_InitClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);
extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
int meth_idx);
enum
{
JV_STATE_NOTHING = 0,
JV_STATE_PRELOADING = 1,
JV_STATE_LOADING = 3,
JV_STATE_LOADED = 5,
JV_STATE_COMPILED = 6,
JV_STATE_PREPARED = 7,
JV_STATE_LINKED = 9,
JV_STATE_IN_PROGRESS = 10,
JV_STATE_DONE = 12,
JV_STATE_ERROR = 14
};
struct _Jv_Field;
struct _Jv_VTable;
union _Jv_word;
struct _Jv_Constants
{
jint size;
jbyte *tags;
_Jv_word *data;
};
struct _Jv_Method
{
_Jv_Utf8Const *name;
_Jv_Utf8Const *signature;
_Jv_ushort accflags;
void *ncode;
_Jv_Utf8Const **throws;
_Jv_Method *getNextMethod ()
{ return this + 1; }
};
union _Jv_IDispatchTable
{
struct
{
jshort iindex;
jshort itable_length;
void **itable;
} cls;
struct
{
jshort *ioffsets;
} iface;
};
struct _Jv_ifaces
{
jclass *list;
jshort len;
jshort count;
};
union _Jv_Self
{
char *vtable_ptr;
jclass self;
};
class java::lang::Class : public java::lang::Object
{
public:
static jclass forName (jstring className, jboolean initialize,
java::lang::ClassLoader *loader);
static jclass forName (jstring className);
JArray<jclass> *getClasses (void);
java::lang::ClassLoader *getClassLoader (void)
{
return loader;
}
java::lang::reflect::Constructor *getConstructor (JArray<jclass> *);
JArray<java::lang::reflect::Constructor *> *getConstructors (void);
java::lang::reflect::Constructor *getDeclaredConstructor (JArray<jclass> *);
JArray<java::lang::reflect::Constructor *> *getDeclaredConstructors (void);
java::lang::reflect::Field *getDeclaredField (jstring);
JArray<java::lang::reflect::Field *> *getDeclaredFields (void);
java::lang::reflect::Method *getDeclaredMethod (jstring, JArray<jclass> *);
JArray<java::lang::reflect::Method *> *getDeclaredMethods (void);
JArray<jclass> *getDeclaredClasses (void);
jclass getDeclaringClass (void);
java::lang::reflect::Field *getField (jstring);
private:
jint _getFields (JArray<java::lang::reflect::Field *> *result, jint offset);
JArray<java::lang::reflect::Constructor *> *_getConstructors (jboolean);
java::lang::reflect::Field *getField (jstring, jint);
jint _getMethods (JArray<java::lang::reflect::Method *> *result,
jint offset);
java::lang::reflect::Field *getPrivateField (jstring);
java::lang::reflect::Method *getPrivateMethod (jstring, JArray<jclass> *);
java::security::ProtectionDomain *getProtectionDomain0 ();
public:
JArray<java::lang::reflect::Field *> *getFields (void);
JArray<jclass> *getInterfaces (void);
void getSignature (java::lang::StringBuffer *buffer);
static jstring getSignature (JArray<jclass> *, jboolean is_constructor);
java::lang::reflect::Method *getMethod (jstring, JArray<jclass> *);
JArray<java::lang::reflect::Method *> *getMethods (void);
inline jint getModifiers (void)
{
return accflags;
}
jstring getName (void);
java::net::URL *getResource (jstring resourceName);
java::io::InputStream *getResourceAsStream (jstring resourceName);
JArray<jobject> *getSigners (void);
inline jclass getSuperclass (void)
{
return superclass;
}
inline jboolean isArray (void)
{
return name->data[0] == '[';
}
inline jclass getComponentType (void)
{
return isArray () ? (* (jclass *) &methods) : 0;
}
jboolean isAssignableFrom (jclass cls);
jboolean isInstance (jobject obj);
inline jboolean isInterface (void)
{
return (accflags & java::lang::reflect::Modifier::INTERFACE) != 0;
}
inline jboolean isPrimitive (void)
{
return vtable == ((_Jv_VTable *) -1);
}
jobject newInstance (void);
jstring toString (void);
jint size (void)
{
return size_in_bytes;
}
void finalize ();
Class (jobject cname, jbyte sig, jint len, jobject array_vtable)
{
using namespace java::lang::reflect;
_Jv_Utf8Const *_Jv_makeUtf8Const (char *s, int len);
((_Jv_Self *)this)->vtable_ptr -= 2 * sizeof (void *);
name = _Jv_makeUtf8Const ((char *) cname, -1);
accflags = Modifier::PUBLIC | Modifier::FINAL | Modifier::ABSTRACT;
method_count = sig;
size_in_bytes = len;
vtable = ((_Jv_VTable *) -1);
state = JV_STATE_DONE;
depth = -1;
if (method_count != 'V')
_Jv_NewArrayClass (this, __null, (_Jv_VTable *) array_vtable);
}
static java::lang::Class class$;
private:
Class ();
void checkMemberAccess (jint flags);
void initializeClass (void);
friend _Jv_Method *_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
_Jv_Utf8Const *signature);
friend jboolean _Jv_IsAssignableFrom(jclass, jclass);
friend jboolean _Jv_InterfaceAssignableFrom (jclass, jclass);
friend void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
int method_idx);
inline friend void
_Jv_InitClass (jclass klass)
{
if (__builtin_expect (klass->state == JV_STATE_DONE, true))
return;
klass->initializeClass ();
}
friend _Jv_Method* _Jv_LookupDeclaredMethod (jclass, _Jv_Utf8Const *,
_Jv_Utf8Const*);
friend jfieldID JvGetFirstInstanceField (jclass);
friend jint JvNumInstanceFields (jclass);
friend jfieldID JvGetFirstStaticField (jclass);
friend jint JvNumStaticFields (jclass);
friend jobject _Jv_AllocObject (jclass, jint);
friend void *_Jv_AllocObj (jint, jclass);
friend void *_Jv_AllocPtrFreeObj (jint, jclass);
friend void *_Jv_AllocArray (jint, jclass);
friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID,
jboolean);
friend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID,
jboolean);
friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
friend jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
friend jint JvNumMethods (jclass);
friend jmethodID JvGetFirstMethod (jclass);
friend class java::lang::ClassLoader;
friend class java::io::ObjectOutputStream;
friend class java::io::ObjectInputStream;
friend class java::io::ObjectStreamClass;
friend void _Jv_WaitForState (jclass, int);
friend void _Jv_RegisterClasses (jclass *classes);
friend void _Jv_RegisterClassHookDefault (jclass klass);
friend void _Jv_RegisterInitiatingLoader (jclass,java::lang::ClassLoader*);
friend void _Jv_UnregisterClass (jclass);
friend jclass _Jv_FindClass (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
friend jclass _Jv_FindClassInCache (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
friend void _Jv_NewArrayClass (jclass element,
java::lang::ClassLoader *loader,
_Jv_VTable *array_vtable = 0);
friend jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
java::lang::ClassLoader *loader);
friend void _Jv_PrepareCompiledClass (jclass);
friend void _Jv_PrepareConstantTimeTables (jclass);
friend jshort _Jv_GetInterfaces (jclass, _Jv_ifaces *);
friend void _Jv_GenerateITable (jclass, _Jv_ifaces *, jshort *);
friend jstring _Jv_GetMethodString(jclass, _Jv_Utf8Const *);
friend jshort _Jv_AppendPartialITable (jclass, jclass, void **, jshort);
friend jshort _Jv_FindIIndex (jclass *, jshort *, jshort);
inline friend jclass
_Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader)
{
if (__builtin_expect (!klass->arrayclass, false))
_Jv_NewArrayClass (klass, loader);
return klass->arrayclass;
}
friend jboolean _Jv_IsInterpretedClass (jclass);
friend void _Jv_InitField (jobject, jclass, _Jv_Field*);
friend int _Jv_DetermineVTableIndex (jclass, _Jv_Utf8Const *,
_Jv_Utf8Const*);
friend void _Jv_InitField (jobject, jclass, int);
friend _Jv_word _Jv_ResolvePoolEntry (jclass, int);
friend _Jv_Method *_Jv_SearchMethodInClass (jclass cls, jclass klass,
_Jv_Utf8Const *method_name,
_Jv_Utf8Const *method_signature);
friend void _Jv_PrepareClass (jclass);
friend class _Jv_ClassReader;
friend class _Jv_InterpClass;
friend class _Jv_InterpMethod;
friend class _Jv_InterpMethodInvocation;
jclass next;
_Jv_Utf8Const *name;
_Jv_ushort accflags;
jclass superclass;
_Jv_Constants constants;
_Jv_Method *methods;
jshort method_count;
jshort vtable_method_count;
_Jv_Field *fields;
jint size_in_bytes;
jshort field_count;
jshort static_field_count;
_Jv_VTable *vtable;
jclass *interfaces;
java::lang::ClassLoader *loader;
jshort interface_count;
jbyte state;
java::lang::Thread *thread;
jshort depth;
jclass *ancestors;
_Jv_IDispatchTable *idt;
jclass arrayclass;
java::security::ProtectionDomain *protectionDomain;
};
# 18 "/home/oldham/gcc/gcc2/libjava/gcj/cni.h" 2
extern inline jobject
JvAllocObject (jclass cls)
{
return _Jv_AllocObject (cls, cls->size());
}
extern inline jobject
JvAllocObject (jclass cls, jsize sz)
{
return _Jv_AllocObject (cls, sz);
}
extern "C" jstring _Jv_NewStringUTF (const char *bytes);
extern "C" void _Jv_InitClass (jclass);
extern inline void
JvInitClass (jclass cls)
{
return _Jv_InitClass (cls);
}
extern inline jstring
JvAllocString (jsize sz)
{
return _Jv_AllocString (sz);
}
extern inline jstring
JvNewString (const jchar *chars, jsize len)
{
return _Jv_NewString (chars, len);
}
extern inline jstring
JvNewStringLatin1 (const char *bytes, jsize len)
{
return _Jv_NewStringLatin1 (bytes, len);
}
extern inline jstring
JvNewStringLatin1 (const char *bytes)
{
return _Jv_NewStringLatin1 (bytes, strlen (bytes));
}
extern inline jchar *
_Jv_GetStringChars (jstring str)
{
return (jchar*)((char*) str->data + str->boffset);
}
extern inline jchar*
JvGetStringChars (jstring str)
{
return _Jv_GetStringChars (str);
}
extern inline jsize
JvGetStringUTFLength (jstring string)
{
return _Jv_GetStringUTFLength (string);
}
extern inline jsize
JvGetStringUTFRegion (jstring str, jsize start, jsize len, char *buf)
{
return _Jv_GetStringUTFRegion (str, start, len, buf);
}
extern inline jstring
JvNewStringUTF (const char *bytes)
{
return _Jv_NewStringUTF (bytes);
}
class JvSynchronize
{
private:
jobject obj;
public:
JvSynchronize (const jobject &o) : obj (o)
{ _Jv_MonitorEnter (obj); }
~JvSynchronize ()
{ _Jv_MonitorExit (obj); }
};
extern inline void *
JvMalloc (jsize size)
{
return _Jv_Malloc (size);
}
extern inline void
JvFree (void *ptr)
{
return _Jv_Free (ptr);
}
extern inline jint
JvCreateJavaVM (void* vm_args)
{
return _Jv_CreateJavaVM (vm_args);
}
extern inline java::lang::Thread*
JvAttachCurrentThread (jstring name, java::lang::ThreadGroup* group)
{
return _Jv_AttachCurrentThread (name, group);
}
extern inline jint
JvDetachCurrentThread (void)
{
return _Jv_DetachCurrentThread ();
}
# 20 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "/home/oldham/gcc/gcc2/libjava/include/jvm.h" 1
# 16 "/home/oldham/gcc/gcc2/libjava/include/jvm.h"
# 1 "/home/oldham/gcc/gcc2/libjava/include/java-assert.h" 1
# 16 "/home/oldham/gcc/gcc2/libjava/include/java-assert.h"
void _Jv_Abort (const char *, const char *, int, const char *)
__attribute__ ((__noreturn__));
# 17 "/home/oldham/gcc/gcc2/libjava/include/jvm.h" 2
# 1 "include/java-threads.h" 1
# 15 "include/java-threads.h"
# 1 "include/config.h" 1
# 16 "include/java-threads.h" 2
# 1 "/usr/include/stdlib.h" 1 3
# 33 "/usr/include/stdlib.h" 3
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 34 "/usr/include/stdlib.h" 2 3
extern "C" {
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# 80 "/usr/include/stdlib.h" 3
extern size_t __ctype_get_mb_cur_max (void) throw ();
extern double atof (__const char *__nptr) throw ();
extern int atoi (__const char *__nptr) throw ();
extern long int atol (__const char *__nptr) throw ();
__extension__ extern long long int atoll (__const char *__nptr) throw ();
extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw ();
extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw ();
extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw ();
extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ();
extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ();
__extension__
extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ();
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ();
# 132 "/usr/include/stdlib.h" 3
__extension__
extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ();
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) throw ();
# 161 "/usr/include/stdlib.h" 3
extern long int __strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw ();
extern unsigned long int __strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw ();
__extension__
extern long long int __strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw ();
__extension__
extern unsigned long long int __strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) throw ();
extern double __strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw ();
extern float __strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw ();
extern long double __strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) throw ();
# 196 "/usr/include/stdlib.h" 3
extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw ();
extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) throw ();
extern long double __strtold_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __group) throw ();
extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw ();
extern unsigned long int __strtoul_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) throw ();
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) throw ();
__extension__
extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, int __group) throw ();
# 242 "/usr/include/stdlib.h" 3
extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
int __base) throw ()
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
int __base) throw ()
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
extern __inline float
strtof (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
{
return __strtof_internal (__nptr, __endptr, 0);
}
extern __inline long double
strtold (__const char *__restrict __nptr, char **__restrict __endptr) throw ()
{
return __strtold_internal (__nptr, __endptr, 0);
}
__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base) throw ()
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
int __base) throw ()
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
int __base) throw ()
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
int __base) throw ()
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
atof (__const char *__nptr) throw ()
{
return strtod (__nptr, (char **) __null);
}
extern __inline int
atoi (__const char *__nptr) throw ()
{
return (int) strtol (__nptr, (char **) __null, 10);
}
extern __inline long int
atol (__const char *__nptr) throw ()
{
return strtol (__nptr, (char **) __null, 10);
}
__extension__ extern __inline long long int
atoll (__const char *__nptr) throw ()
{
return strtoll (__nptr, (char **) __null, 10);
}
# 333 "/usr/include/stdlib.h" 3
extern char *l64a (long int __n) throw ();
extern long int a64l (__const char *__s) throw ();
# 1 "/usr/include/sys/types.h" 1 3
# 28 "/usr/include/sys/types.h" 3
extern "C" {
# 1 "/usr/include/bits/types.h" 1 3
# 29 "/usr/include/bits/types.h" 3
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 30 "/usr/include/bits/types.h" 2 3
typedef unsigned char __u_char;
typedef unsigned short __u_short;
typedef unsigned int __u_int;
typedef unsigned long __u_long;
__extension__ typedef unsigned long long int __u_quad_t;
__extension__ typedef long long int __quad_t;
# 49 "/usr/include/bits/types.h" 3
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
typedef __quad_t *__qaddr_t;
typedef __u_quad_t __dev_t;
typedef __u_int __uid_t;
typedef __u_int __gid_t;
typedef __u_long __ino_t;
typedef __u_int __mode_t;
typedef __u_int __nlink_t;
typedef long int __off_t;
typedef __quad_t __loff_t;
typedef int __pid_t;
typedef int __ssize_t;
typedef long int __rlim_t;
typedef __quad_t __rlim64_t;
typedef __u_int __id_t;
typedef struct
{
int __val[2];
} __fsid_t;
typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef unsigned long int __fd_mask;
# 100 "/usr/include/bits/types.h" 3
typedef struct
{
__fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
} __fd_set;
typedef int __key_t;
typedef unsigned short int __ipc_pid_t;
typedef long int __blkcnt_t;
typedef __quad_t __blkcnt64_t;
typedef __u_long __fsblkcnt_t;
typedef __u_quad_t __fsblkcnt64_t;
typedef __u_long __fsfilcnt_t;
typedef __u_quad_t __fsfilcnt64_t;
typedef __u_long __ino64_t;
typedef __loff_t __off64_t;
typedef long int __t_scalar_t;
typedef unsigned long int __t_uscalar_t;
typedef int __intptr_t;
# 1 "/usr/include/bits/pthreadtypes.h" 1 3
# 23 "/usr/include/bits/pthreadtypes.h" 3
# 1 "/usr/include/bits/sched.h" 1 3
# 68 "/usr/include/bits/sched.h" 3
struct __sched_param
{
int sched_priority;
};
# 24 "/usr/include/bits/pthreadtypes.h" 2 3
struct _pthread_fastlock
{
long int __status;
int __spinlock;
};
typedef struct _pthread_descr_struct *_pthread_descr;
typedef struct
{
int __detachstate;
int __schedpolicy;
struct __sched_param __schedparam;
int __inheritsched;
int __scope;
size_t __guardsize;
int __stackaddr_set;
void *__stackaddr;
size_t __stacksize;
} pthread_attr_t;
typedef struct
{
struct _pthread_fastlock __c_lock;
_pthread_descr __c_waiting;
} pthread_cond_t;
typedef struct
{
int __dummy;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef struct
{
int __m_reserved;
int __m_count;
_pthread_descr __m_owner;
int __m_kind;
struct _pthread_fastlock __m_lock;
} pthread_mutex_t;
typedef struct
{
int __mutexkind;
} pthread_mutexattr_t;
typedef int pthread_once_t;
typedef struct _pthread_rwlock_t
{
struct _pthread_fastlock __rw_lock;
int __rw_readers;
_pthread_descr __rw_writer;
_pthread_descr __rw_read_waiting;
_pthread_descr __rw_write_waiting;
int __rw_kind;
int __rw_pshared;
} pthread_rwlock_t;
typedef struct
{
int __lockkind;
int __pshared;
} pthread_rwlockattr_t;
typedef unsigned long int pthread_t;
# 151 "/usr/include/bits/types.h" 2 3
# 31 "/usr/include/sys/types.h" 2 3
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
typedef __ino64_t ino64_t;
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
typedef __off64_t off64_t;
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "/usr/include/time.h" 1 3
# 60 "/usr/include/time.h" 3
typedef __clock_t clock_t;
# 71 "/usr/include/time.h" 3
typedef __time_t time_t;
# 123 "/usr/include/sys/types.h" 2 3
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 126 "/usr/include/sys/types.h" 2 3
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 169 "/usr/include/sys/types.h" 3
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 191 "/usr/include/sys/types.h" 3
# 1 "/usr/include/endian.h" 1 3
# 35 "/usr/include/endian.h" 3
# 1 "/usr/include/bits/endian.h" 1 3
# 36 "/usr/include/endian.h" 2 3
# 192 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/select.h" 1 3
# 31 "/usr/include/sys/select.h" 3
# 1 "/usr/include/bits/select.h" 1 3
# 32 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/bits/sigset.h" 1 3
# 23 "/usr/include/bits/sigset.h" 3
typedef int __sig_atomic_t;
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 35 "/usr/include/sys/select.h" 2 3
# 1 "/usr/include/time.h" 1 3
# 83 "/usr/include/time.h" 3
struct timespec
{
long int tv_sec;
long int tv_nsec;
};
# 39 "/usr/include/sys/select.h" 2 3
extern "C" {
struct timeval;
typedef __fd_mask fd_mask;
typedef __fd_set fd_set;
# 74 "/usr/include/sys/select.h" 3
extern int __select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) throw ();
extern int select (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, struct timeval *__timeout) throw ();
# 87 "/usr/include/sys/select.h" 3
extern int pselect (int __nfds, __fd_set *__readfds, __fd_set *__writefds, __fd_set *__exceptfds, const struct timespec *__timeout, const __sigset_t *__sigmask) throw ();
}
# 195 "/usr/include/sys/types.h" 2 3
# 1 "/usr/include/sys/sysmacros.h" 1 3
# 198 "/usr/include/sys/types.h" 2 3
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
}
# 340 "/usr/include/stdlib.h" 2 3
extern int32_t random (void) throw ();
extern void srandom (unsigned int __seed) throw ();
extern void * initstate (unsigned int __seed, void * __statebuf, size_t __statelen) throw ();
extern void * setstate (void * __statebuf) throw ();
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) throw ();
extern int srandom_r (unsigned int __seed, struct random_data *__buf) throw ();
extern int initstate_r (unsigned int __seed, void * __restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) throw ();
extern int setstate_r (void * __restrict __statebuf, struct random_data *__restrict __buf) throw ();
extern int rand (void) throw ();
extern void srand (unsigned int __seed) throw ();
extern int rand_r (unsigned int *__seed) throw ();
extern double drand48 (void) throw ();
extern double erand48 (unsigned short int __xsubi[3]) throw ();
extern long int lrand48 (void) throw ();
extern long int nrand48 (unsigned short int __xsubi[3]) throw ();
extern long int mrand48 (void) throw ();
extern long int jrand48 (unsigned short int __xsubi[3]) throw ();
extern void srand48 (long int __seedval) throw ();
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) throw ();
extern void lcong48 (unsigned short int __param[7]) throw ();
struct drand48_data
{
unsigned short int x[3];
unsigned short int a[3];
unsigned short int c;
unsigned short int old_x[3];
int init;
};
extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) throw ();
extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) throw ();
extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw ();
extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw ();
extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) throw ();
extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) throw ();
extern int srand48_r (long int __seedval, struct drand48_data *__buffer) throw ();
extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) throw ();
extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) throw ();
# 474 "/usr/include/stdlib.h" 3
extern void * malloc (size_t __size) throw ();
extern void * calloc (size_t __nmemb, size_t __size) throw ();
extern void * realloc (void * __ptr, size_t __size) throw ();
extern void free (void * __ptr) throw ();
extern void cfree (void * __ptr) throw ();
# 1 "/usr/include/alloca.h" 1 3
# 25 "/usr/include/alloca.h" 3
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 26 "/usr/include/alloca.h" 2 3
extern "C" {
extern void * alloca (size_t __size) throw ();
}
# 493 "/usr/include/stdlib.h" 2 3
extern void * valloc (size_t __size) throw ();
extern void abort (void) throw () __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) throw ();
extern int __on_exit (void (*__func) (int __status, void * __arg), void * __arg) throw ();
extern int on_exit (void (*__func) (int __status, void * __arg), void * __arg) throw ();
extern void exit (int __status) throw () __attribute__ ((__noreturn__));
extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
extern char *getenv (__const char *__name) throw ();
extern char *__secure_getenv (__const char *__name) throw ();
extern int putenv (char *__string) throw ();
extern int setenv (__const char *__name, __const char *__value, int __replace) throw ();
extern void unsetenv (__const char *__name) throw ();
extern int clearenv (void) throw ();
# 566 "/usr/include/stdlib.h" 3
extern char *mktemp (char *__template) throw ();
extern int mkstemp (char *__template) throw ();
extern int system (__const char *__command) throw ();
extern char *canonicalize_file_name (__const char *__name) throw ();
# 595 "/usr/include/stdlib.h" 3
extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) throw ();
typedef int (*__compar_fn_t) (__const void *, __const void *);
typedef __compar_fn_t comparison_fn_t;
extern void * bsearch (__const void * __key, __const void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern void qsort (void * __base, size_t __nmemb, size_t __size, __compar_fn_t __compar);
extern int abs (int __x) throw () __attribute__ ((__const__));
extern long int labs (long int __x) throw () __attribute__ ((__const__));
__extension__ extern long long int llabs (long long int __x) throw ()
__attribute__ ((__const__));
extern div_t div (int __numer, int __denom) throw () __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom) throw ()
__attribute__ ((__const__));
__extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) throw ()
__attribute__ ((__const__));
# 651 "/usr/include/stdlib.h" 3
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw ();
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw ();
extern char *gcvt (double __value, int __ndigit, char *__buf) throw ();
extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw ();
extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) throw ();
extern char *qgcvt (long double __value, int __ndigit, char *__buf) throw ();
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw ();
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw ();
extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw ();
extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) throw ();
# 695 "/usr/include/stdlib.h" 3
extern int mblen (__const char *__s, size_t __n) throw ();
extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) throw ();
extern int wctomb (char *__s, wchar_t __wchar) throw ();
extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) throw ();
extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) throw ();
# 718 "/usr/include/stdlib.h" 3
extern int rpmatch (__const char *__response) throw ();
# 729 "/usr/include/stdlib.h" 3
extern int getsubopt (char **__restrict __optionp, __const char *__const *__restrict __tokens, char **__restrict __valuep) throw ();
# 738 "/usr/include/stdlib.h" 3
extern void setkey (__const char *__key) throw ();
extern int grantpt (int __fd) throw ();
extern int unlockpt (int __fd) throw ();
extern char *ptsname (int __fd) throw ();
extern int ptsname_r (int __fd, char *__buf, size_t __buflen) throw ();
extern int getpt (void) throw ();
}
# 18 "include/java-threads.h" 2
# 1 "/usr/include/unistd.h" 1 3
# 28 "/usr/include/unistd.h" 3
extern "C" {
# 175 "/usr/include/unistd.h" 3
# 1 "/usr/include/bits/posix_opt.h" 1 3
# 176 "/usr/include/unistd.h" 2 3
# 1 "/usr/include/bits/environments.h" 1 3
# 23 "/usr/include/bits/environments.h" 3
# 1 "/usr/include/bits/wordsize.h" 1 3
# 24 "/usr/include/bits/environments.h" 2 3
# 180 "/usr/include/unistd.h" 2 3
# 199 "/usr/include/unistd.h" 3
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 200 "/usr/include/unistd.h" 2 3
# 235 "/usr/include/unistd.h" 3
typedef __intptr_t intptr_t;
# 248 "/usr/include/unistd.h" 3
extern int access (__const char *__name, int __type) throw ();
extern int euidaccess (__const char *__name, int __type) throw ();
# 277 "/usr/include/unistd.h" 3
extern __off_t __lseek (int __fd, __off_t __offset, int __whence) throw ();
extern __off_t lseek (int __fd, __off_t __offset, int __whence) throw ();
# 291 "/usr/include/unistd.h" 3
extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) throw ();
extern int __close (int __fd) throw ();
extern int close (int __fd) throw ();
extern ssize_t __read (int __fd, void * __buf, size_t __nbytes) throw ();
extern ssize_t read (int __fd, void * __buf, size_t __nbytes) throw ();
extern ssize_t __write (int __fd, __const void * __buf, size_t __n) throw ();
extern ssize_t write (int __fd, __const void * __buf, size_t __n) throw ();
extern ssize_t __pread64 (int __fd, void * __buf, size_t __nbytes, __off64_t __offset) throw ();
extern ssize_t __pwrite64 (int __fd, __const void * __buf, size_t __n, __off64_t __offset) throw ();
extern ssize_t pread (int __fd, void * __buf, size_t __nbytes, __off_t __offset) throw ();
extern ssize_t pwrite (int __fd, __const void * __buf, size_t __n, __off_t __offset) throw ();
# 338 "/usr/include/unistd.h" 3
extern ssize_t pread64 (int __fd, void * __buf, size_t __nbytes, __off64_t __offset) throw ();
extern ssize_t pwrite64 (int __fd, __const void * __buf, size_t __n, __off64_t __offset) throw ();
# 349 "/usr/include/unistd.h" 3
extern int pipe (int __pipedes[2]) throw ();
# 358 "/usr/include/unistd.h" 3
extern unsigned int alarm (unsigned int __seconds) throw ();
# 367 "/usr/include/unistd.h" 3
extern unsigned int sleep (unsigned int __seconds) throw ();
extern unsigned int ualarm (unsigned int __value, unsigned int __interval) throw ();
extern void usleep (unsigned int __useconds) throw ();
extern int pause (void) throw ();
extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) throw ();
extern int fchown (int __fd, __uid_t __owner, __gid_t __group) throw ();
extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) throw ();
extern int chdir (__const char *__path) throw ();
extern int fchdir (int __fd) throw ();
# 419 "/usr/include/unistd.h" 3
extern char *getcwd (char *__buf, size_t __size) throw ();
extern char *get_current_dir_name (void) throw ();
extern char *getwd (char *__buf) throw ();
extern int dup (int __fd) throw ();
extern int dup2 (int __fd, int __fd2) throw ();
extern char **__environ;
extern char **environ;
extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) throw ();
extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) throw ();
extern int execv (__const char *__path, char *__const __argv[]) throw ();
extern int execle (__const char *__path, __const char *__arg, ...) throw ();
extern int execl (__const char *__path, __const char *__arg, ...) throw ();
extern int execvp (__const char *__file, char *__const __argv[]) throw ();
extern int execlp (__const char *__file, __const char *__arg, ...) throw ();
extern int nice (int __inc) throw ();
extern void _exit (int __status) __attribute__ ((__noreturn__));
# 1 "/usr/include/bits/confname.h" 1 3
# 25 "/usr/include/bits/confname.h" 3
enum
{
_PC_LINK_MAX,
_PC_MAX_CANON,
_PC_MAX_INPUT,
_PC_NAME_MAX,
_PC_PATH_MAX,
_PC_PIPE_BUF,
_PC_CHOWN_RESTRICTED,
_PC_NO_TRUNC,
_PC_VDISABLE,
_PC_SYNC_IO,
_PC_ASYNC_IO,
_PC_PRIO_IO,
_PC_SOCK_MAXBUF,
_PC_FILESIZEBITS
};
enum
{
_SC_ARG_MAX,
_SC_CHILD_MAX,
_SC_CLK_TCK,
_SC_NGROUPS_MAX,
_SC_OPEN_MAX,
_SC_STREAM_MAX,
_SC_TZNAME_MAX,
_SC_JOB_CONTROL,
_SC_SAVED_IDS,
_SC_REALTIME_SIGNALS,
_SC_PRIORITY_SCHEDULING,
_SC_TIMERS,
_SC_ASYNCHRONOUS_IO,
_SC_PRIORITIZED_IO,
_SC_SYNCHRONIZED_IO,
_SC_FSYNC,
_SC_MAPPED_FILES,
_SC_MEMLOCK,
_SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION,
_SC_MESSAGE_PASSING,
_SC_SEMAPHORES,
_SC_SHARED_MEMORY_OBJECTS,
_SC_AIO_LISTIO_MAX,
_SC_AIO_MAX,
_SC_AIO_PRIO_DELTA_MAX,
_SC_DELAYTIMER_MAX,
_SC_MQ_OPEN_MAX,
_SC_MQ_PRIO_MAX,
_SC_VERSION,
_SC_PAGESIZE,
_SC_RTSIG_MAX,
_SC_SEM_NSEMS_MAX,
_SC_SEM_VALUE_MAX,
_SC_SIGQUEUE_MAX,
_SC_TIMER_MAX,
_SC_BC_BASE_MAX,
_SC_BC_DIM_MAX,
_SC_BC_SCALE_MAX,
_SC_BC_STRING_MAX,
_SC_COLL_WEIGHTS_MAX,
_SC_EQUIV_CLASS_MAX,
_SC_EXPR_NEST_MAX,
_SC_LINE_MAX,
_SC_RE_DUP_MAX,
_SC_CHARCLASS_NAME_MAX,
_SC_2_VERSION,
_SC_2_C_BIND,
_SC_2_C_DEV,
_SC_2_FORT_DEV,
_SC_2_FORT_RUN,
_SC_2_SW_DEV,
_SC_2_LOCALEDEF,
_SC_PII,
_SC_PII_XTI,
_SC_PII_SOCKET,
_SC_PII_INTERNET,
_SC_PII_OSI,
_SC_POLL,
_SC_SELECT,
_SC_UIO_MAXIOV,
_SC_PII_INTERNET_STREAM,
_SC_PII_INTERNET_DGRAM,
_SC_PII_OSI_COTS,
_SC_PII_OSI_CLTS,
_SC_PII_OSI_M,
_SC_T_IOV_MAX,
_SC_THREADS,
_SC_THREAD_SAFE_FUNCTIONS,
_SC_GETGR_R_SIZE_MAX,
_SC_GETPW_R_SIZE_MAX,
_SC_LOGIN_NAME_MAX,
_SC_TTY_NAME_MAX,
_SC_THREAD_DESTRUCTOR_ITERATIONS,
_SC_THREAD_KEYS_MAX,
_SC_THREAD_STACK_MIN,
_SC_THREAD_THREADS_MAX,
_SC_THREAD_ATTR_STACKADDR,
_SC_THREAD_ATTR_STACKSIZE,
_SC_THREAD_PRIORITY_SCHEDULING,
_SC_THREAD_PRIO_INHERIT,
_SC_THREAD_PRIO_PROTECT,
_SC_THREAD_PROCESS_SHARED,
_SC_NPROCESSORS_CONF,
_SC_NPROCESSORS_ONLN,
_SC_PHYS_PAGES,
_SC_AVPHYS_PAGES,
_SC_ATEXIT_MAX,
_SC_PASS_MAX,
_SC_XOPEN_VERSION,
_SC_XOPEN_XCU_VERSION,
_SC_XOPEN_UNIX,
_SC_XOPEN_CRYPT,
_SC_XOPEN_ENH_I18N,
_SC_XOPEN_SHM,
_SC_2_CHAR_TERM,
_SC_2_C_VERSION,
_SC_2_UPE,
_SC_XOPEN_XPG2,
_SC_XOPEN_XPG3,
_SC_XOPEN_XPG4,
_SC_CHAR_BIT,
_SC_CHAR_MAX,
_SC_CHAR_MIN,
_SC_INT_MAX,
_SC_INT_MIN,
_SC_LONG_BIT,
_SC_WORD_BIT,
_SC_MB_LEN_MAX,
_SC_NZERO,
_SC_SSIZE_MAX,
_SC_SCHAR_MAX,
_SC_SCHAR_MIN,
_SC_SHRT_MAX,
_SC_SHRT_MIN,
_SC_UCHAR_MAX,
_SC_UINT_MAX,
_SC_ULONG_MAX,
_SC_USHRT_MAX,
_SC_NL_ARGMAX,
_SC_NL_LANGMAX,
_SC_NL_MSGMAX,
_SC_NL_NMAX,
_SC_NL_SETMAX,
_SC_NL_TEXTMAX,
_SC_XBS5_ILP32_OFF32,
_SC_XBS5_ILP32_OFFBIG,
_SC_XBS5_LP64_OFF64,
_SC_XBS5_LPBIG_OFFBIG,
_SC_XOPEN_LEGACY,
_SC_XOPEN_REALTIME,
_SC_XOPEN_REALTIME_THREADS
};
enum
{
_CS_PATH
,
_CS_LFS_CFLAGS = 1000,
_CS_LFS_LDFLAGS,
_CS_LFS_LIBS,
_CS_LFS_LINTFLAGS,
_CS_LFS64_CFLAGS,
_CS_LFS64_LDFLAGS,
_CS_LFS64_LIBS,
_CS_LFS64_LINTFLAGS
,
_CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
_CS_XBS5_ILP32_OFF32_LDFLAGS,
_CS_XBS5_ILP32_OFF32_LIBS,
_CS_XBS5_ILP32_OFF32_LINTFLAGS,
_CS_XBS5_ILP32_OFFBIG_CFLAGS,
_CS_XBS5_ILP32_OFFBIG_LDFLAGS,
_CS_XBS5_ILP32_OFFBIG_LIBS,
_CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
_CS_XBS5_LP64_OFF64_CFLAGS,
_CS_XBS5_LP64_OFF64_LDFLAGS,
_CS_XBS5_LP64_OFF64_LIBS,
_CS_XBS5_LP64_OFF64_LINTFLAGS,
_CS_XBS5_LPBIG_OFFBIG_CFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
_CS_XBS5_LPBIG_OFFBIG_LIBS,
_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
};
# 498 "/usr/include/unistd.h" 2 3
extern long int pathconf (__const char *__path, int __name) throw ();
extern long int fpathconf (int __fd, int __name) throw ();
extern long int sysconf (int __name) throw ();
extern size_t confstr (int __name, char *__buf, size_t __len) throw ();
extern __pid_t __getpid (void) throw ();
extern __pid_t getpid (void) throw ();
extern __pid_t getppid (void) throw ();
extern __pid_t getpgrp (void) throw ();
# 534 "/usr/include/unistd.h" 3
extern __pid_t __getpgid (__pid_t __pid) throw ();
extern __pid_t getpgid (__pid_t __pid) throw ();
extern int __setpgid (__pid_t __pid, __pid_t __pgid) throw ();
extern int setpgid (__pid_t __pid, __pid_t __pgid) throw ();
# 561 "/usr/include/unistd.h" 3
extern int setpgrp (void) throw ();
# 579 "/usr/include/unistd.h" 3
extern __pid_t setsid (void) throw ();
extern __pid_t getsid (__pid_t __pid) throw ();
extern __uid_t getuid (void) throw ();
extern __uid_t geteuid (void) throw ();
extern __gid_t getgid (void) throw ();
extern __gid_t getegid (void) throw ();
extern int getgroups (int __size, __gid_t __list[]) throw ();
extern int group_member (__gid_t __gid) throw ();
extern int setuid (__uid_t __uid) throw ();
extern int setreuid (__uid_t __ruid, __uid_t __euid) throw ();
extern int seteuid (__uid_t __uid) throw ();
extern int setgid (__gid_t __gid) throw ();
extern int setregid (__gid_t __rgid, __gid_t __egid) throw ();
extern int setegid (__gid_t __gid) throw ();
extern __pid_t __fork (void) throw ();
extern __pid_t fork (void) throw ();
extern __pid_t vfork (void) throw ();
extern char *ttyname (int __fd) throw ();
extern int ttyname_r (int __fd, char *__buf, size_t __buflen) throw ();
extern int isatty (int __fd) throw ();
extern int ttyslot (void) throw ();
extern int link (__const char *__from, __const char *__to) throw ();
extern int symlink (__const char *__from, __const char *__to) throw ();
extern int readlink (__const char *__path, char *__buf, size_t __len) throw ();
extern int unlink (__const char *__name) throw ();
extern int rmdir (__const char *__path) throw ();
extern __pid_t tcgetpgrp (int __fd) throw ();
extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) throw ();
extern char *getlogin (void) throw ();
# 715 "/usr/include/unistd.h" 3
extern int setlogin (__const char *__name) throw ();
# 724 "/usr/include/unistd.h" 3
# 1 "/usr/include/getopt.h" 1 3
# 27 "/usr/include/getopt.h" 3
extern "C" {
# 36 "/usr/include/getopt.h" 3
extern char *optarg;
# 50 "/usr/include/getopt.h" 3
extern int optind;
extern int opterr;
extern int optopt;
# 134 "/usr/include/getopt.h" 3
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
# 163 "/usr/include/getopt.h" 3
}
# 725 "/usr/include/unistd.h" 2 3
# 733 "/usr/include/unistd.h" 3
extern int gethostname (char *__name, size_t __len) throw ();
extern int sethostname (__const char *__name, size_t __len) throw ();
extern int sethostid (long int __id) throw ();
extern int getdomainname (char *__name, size_t __len) throw ();
extern int setdomainname (__const char *__name, size_t __len) throw ();
extern int fsync (int __fd) throw ();
extern int vhangup (void) throw ();
extern int revoke (__const char *__file) throw ();
extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) throw ();
extern int acct (__const char *__name) throw ();
extern int chroot (__const char *__path) throw ();
extern char *getusershell (void) throw ();
extern void endusershell (void) throw ();
extern void setusershell (void) throw ();
extern char *getpass (__const char *__prompt) throw ();
extern int daemon (int __nochdir, int __noclose) throw ();
extern long int gethostid (void) throw ();
extern int sync (void) throw ();
extern int __getpagesize (void) throw () __attribute__ ((__const__));
extern int getpagesize (void) throw () __attribute__ ((__const__));
extern int truncate (__const char *__file, __off_t __length) throw ();
# 829 "/usr/include/unistd.h" 3
extern int truncate64 (__const char *__file, __off64_t __length) throw ();
extern int __ftruncate (int __fd, __off_t __length) throw ();
extern int ftruncate (int __fd, __off_t __length) throw ();
# 845 "/usr/include/unistd.h" 3
extern int ftruncate64 (int __fd, __off64_t __length) throw ();
extern int getdtablesize (void) throw ();
# 860 "/usr/include/unistd.h" 3
extern int brk (void * __addr) throw ();
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 864 "/usr/include/unistd.h" 2 3
extern void * __sbrk (ptrdiff_t __delta) throw ();
extern void * sbrk (ptrdiff_t __delta) throw ();
# 885 "/usr/include/unistd.h" 3
extern long int syscall (long int __sysno, ...) throw ();
# 905 "/usr/include/unistd.h" 3
extern int lockf (int __fd, int __cmd, __off_t __len) throw ();
# 915 "/usr/include/unistd.h" 3
extern int lockf64 (int __fd, int __cmd, __off64_t __len) throw ();
# 938 "/usr/include/unistd.h" 3
extern int __libc_enable_secure;
extern int fdatasync (int __fildes) throw ();
extern char *crypt (__const char *__key, __const char *__salt) throw ();
extern void setkey (__const char *__key) throw ();
extern void encrypt (char *__block, int __edflag) throw ();
extern void swab (__const void * __from, void * __to, ssize_t __n) throw ();
extern char *ctermid (char *__s) throw ();
extern char *cuserid (char *__s) throw ();
extern int rename (__const char *__old, __const char *__new) throw ();
# 999 "/usr/include/unistd.h" 3
extern int pthread_atfork (void (*__prepare) (void), void (*__parent) (void), void (*__child) (void)) throw ();
}
# 20 "include/java-threads.h" 2
typedef int _Jv_ConditionVariable_t;
typedef int _Jv_Mutex_t;
typedef int _Jv_Thread_t;
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);
inline void
_Jv_CondInit (_Jv_ConditionVariable_t *)
{
}
inline int
_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *,
jlong millis, jint nanos)
{
if (millis == 0 && nanos == 0)
_Jv_Abort (0, 0, 0, "_Jv_CondWait without timeout");
int seconds = millis / 1000;
if (seconds > 0)
sleep (seconds);
return 0;
}
inline int
_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
{
return 0;
}
inline int
_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
{
return 0;
}
inline void
_Jv_MutexInit (_Jv_Mutex_t *)
{
}
inline int
_Jv_MutexLock (_Jv_Mutex_t *)
{
return 0;
}
inline int
_Jv_MutexUnlock (_Jv_Mutex_t *)
{
return 0;
}
inline void
_Jv_InitThreads (void)
{
}
_Jv_Thread_t *
_Jv_ThreadInitData (java::lang::Thread *);
inline void
_Jv_ThreadDestroyData (_Jv_Thread_t *data)
{
}
inline java::lang::Thread *
_Jv_ThreadCurrent (void)
{
extern java::lang::Thread *_Jv_OnlyThread;
return _Jv_OnlyThread;
}
inline void
_Jv_ThreadYield (void)
{
}
inline void
_Jv_ThreadSetPriority (_Jv_Thread_t *, jint)
{
}
inline void
_Jv_ThreadRegister (_Jv_Thread_t *data)
{
}
inline void
_Jv_ThreadUnRegister (void)
{
}
void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *,
_Jv_ThreadStartFunc *meth);
inline void
_Jv_ThreadWait (void)
{
}
inline void
_Jv_ThreadInterrupt (_Jv_Thread_t *)
{
}
# 18 "/home/oldham/gcc/gcc2/libjava/include/jvm.h" 2
# 1 "include/java-gc.h" 1
# 18 "include/java-gc.h"
extern "C"
{
void *_Jv_MarkObj (void *, void *, void *, void *);
void *_Jv_MarkArray (void *, void *, void *, void *);
};
extern "C" void * GC_gcj_malloc(size_t, void *);
extern "C" void * GC_malloc_atomic(size_t);
inline void *
_Jv_AllocObj (jsize size, jclass klass)
{
return GC_gcj_malloc (size, klass->vtable);
}
inline void *
_Jv_AllocPtrFreeObj (jsize size, jclass klass)
{
void * obj = GC_gcj_malloc(size, klass->vtable);
return obj;
}
# 20 "/home/oldham/gcc/gcc2/libjava/include/jvm.h" 2
# 1 "/home/oldham/gcc/gcc2/libjava/gcj/field.h" 1
# 15 "/home/oldham/gcc/gcc2/libjava/gcj/field.h"
# 1 "java/lang/reflect/Field.h" 1
#pragma interface
# 1 "java/lang/reflect/AccessibleObject.h" 1
#pragma interface
class ::java::lang::reflect::AccessibleObject : public ::java::lang::Object
{
public:
AccessibleObject ();
public:
virtual jboolean isAccessible () { return flag; }
static void setAccessible (JArray< ::java::lang::reflect::AccessibleObject *> *, jboolean);
virtual void setAccessible (jboolean);
private:
static void checkPermission ();
jboolean flag;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/reflect/Field.h" 2
class ::java::lang::reflect::Field : public ::java::lang::reflect::AccessibleObject
{
public:
jboolean equals (::java::lang::Object *);
::java::lang::Class *getDeclaringClass () { return declaringClass; }
::java::lang::String *getName ();
::java::lang::Class *getType ();
jint getModifiers ();
jint hashCode ();
jboolean getBoolean (::java::lang::Object *);
jchar getChar (::java::lang::Object *);
jbyte getByte (::java::lang::Object *);
jshort getShort (::java::lang::Object *);
jint getInt (::java::lang::Object *);
jlong getLong (::java::lang::Object *);
jfloat getFloat (::java::lang::Object *);
jdouble getDouble (::java::lang::Object *);
::java::lang::Object *get (::java::lang::Object *);
private:
jboolean getBoolean (::java::lang::Class *, ::java::lang::Object *);
jchar getChar (::java::lang::Class *, ::java::lang::Object *);
jbyte getByte (::java::lang::Class *, ::java::lang::Object *);
jshort getShort (::java::lang::Class *, ::java::lang::Object *);
jint getInt (::java::lang::Class *, ::java::lang::Object *);
jlong getLong (::java::lang::Class *, ::java::lang::Object *);
jfloat getFloat (::java::lang::Class *, ::java::lang::Object *);
jdouble getDouble (::java::lang::Class *, ::java::lang::Object *);
public:
::java::lang::Object *get (::java::lang::Class *, ::java::lang::Object *);
void setByte (::java::lang::Object *, jbyte);
void setShort (::java::lang::Object *, jshort);
void setInt (::java::lang::Object *, jint);
void setLong (::java::lang::Object *, jlong);
void setFloat (::java::lang::Object *, jfloat);
void setDouble (::java::lang::Object *, jdouble);
void setChar (::java::lang::Object *, jchar);
void setBoolean (::java::lang::Object *, jboolean);
void setByte (::java::lang::Class *, ::java::lang::Object *, jbyte);
void setShort (::java::lang::Class *, ::java::lang::Object *, jshort);
void setInt (::java::lang::Class *, ::java::lang::Object *, jint);
void setLong (::java::lang::Class *, ::java::lang::Object *, jlong);
void setFloat (::java::lang::Class *, ::java::lang::Object *, jfloat);
void setDouble (::java::lang::Class *, ::java::lang::Object *, jdouble);
void setChar (::java::lang::Class *, ::java::lang::Object *, jchar);
void setBoolean (::java::lang::Class *, ::java::lang::Object *, jboolean);
private:
void set (::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *, ::java::lang::Class *);
public:
void set (::java::lang::Object *, ::java::lang::Object *);
void set (::java::lang::Class *, ::java::lang::Object *, ::java::lang::Object *);
::java::lang::String *toString ();
Field ();
private:
::java::lang::Class *declaringClass;
::java::lang::String *name;
jint offset;
friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID, jboolean);
friend class java::lang::Class;
public:
static ::java::lang::Class class$;
};
# 16 "/home/oldham/gcc/gcc2/libjava/gcj/field.h" 2
# 1 "gnu/gcj/RawData.h" 1
#pragma interface
extern "Java"
{
namespace gnu
{
namespace gcj
{
class RawData;
}
}
};
class ::gnu::gcj::RawData : public ::java::lang::Object
{
private:
RawData ();
public:
static ::java::lang::Class class$;
};
# 18 "/home/oldham/gcc/gcc2/libjava/gcj/field.h" 2
struct _Jv_Field
{
struct _Jv_Utf8Const* name;
jclass type;
_Jv_ushort flags;
_Jv_ushort bsize;
union {
jint boffset;
void* addr;
} u;
jboolean isResolved ()
{ return ! (flags & 0x8000); }
public:
int getOffset () { return u.boffset; }
jobject getObjectField (jobject obj)
{ return *(jobject *)((char *)obj + getOffset ()); }
jfieldID getNextField () { return this + 1; }
jboolean isRef ()
{
if (!isResolved ())
{
char first = ((_Jv_Utf8Const*)type)->data[0];
return first == '[' || first == 'L';
}
else
{
return ! type->isPrimitive ();
}
}
jclass getClass ()
{
return type;
}
int getModifiers()
{
return flags & java::lang::reflect::Modifier::ALL_FLAGS;
}
_Jv_Utf8Const * getNameUtf8Const (jclass) { return name; }
};
inline jbyte
_Jv_GetStaticByteField (jclass, _Jv_Field* field)
{
return * (jbyte *) field->u.addr;
}
inline jshort
_Jv_GetStaticShortField (jclass, _Jv_Field* field)
{
return * (jshort *) field->u.addr;
}
inline jint
_Jv_GetStaticIntField (jclass, _Jv_Field* field)
{
return * (jint *) field->u.addr;
}
inline jlong
_Jv_GetStaticLongField (jclass, _Jv_Field* field)
{
return * (jlong *) field->u.addr;
}
inline jobject
_Jv_GetObjectField (jobject obj, _Jv_Field* field)
{
return field->getObjectField (obj);
}
inline jbyte
_Jv_GetByteField (jobject obj, _Jv_Field* field)
{
return * (jbyte *) ((char*) obj + field->getOffset ());
}
inline jshort
_Jv_GetShortField (jobject obj, _Jv_Field* field)
{
return * (jshort *) ((char*) obj + field->getOffset ());
}
inline jint
_Jv_GetIntField (jobject obj, _Jv_Field* field)
{
return * (jint *) ((char*) obj + field->getOffset ());
}
inline jlong
_Jv_GetLongField (jobject obj, _Jv_Field* field)
{
return * (jlong *) ((char*) obj + field->getOffset ());
}
extern inline jfieldID
_Jv_FromReflectedField (java::lang::reflect::Field *field)
{
return (jfieldID) ((char *) field->declaringClass->fields + field->offset);
}
extern inline jfieldID
JvGetFirstInstanceField (jclass klass)
{
return &(klass->fields[klass->static_field_count]);
}
extern inline jint
JvNumInstanceFields (jclass klass)
{
return klass->field_count - klass->static_field_count;
}
extern inline jfieldID
JvGetFirstStaticField (jclass klass)
{
return &(klass->fields[0]);
}
extern inline jint
JvNumStaticFields (jclass klass)
{
return klass->static_field_count;
}
extern inline jboolean
JvFieldIsRef (jfieldID field)
{
return field->isRef () && field->type != &gnu::gcj::RawData::class$;
}
extern inline jobject
JvGetObjectField (jobject obj, _Jv_Field* field)
{
return _Jv_GetObjectField (obj, field);
}
# 26 "/home/oldham/gcc/gcc2/libjava/include/jvm.h" 2
struct _Jv_VTable
{
jclass clas;
void *gc_descr;
void *method[1];
void *get_finalizer() { return method[0]; }
};
struct _Jv_ArrayVTable
{
jclass clas;
void *gc_descr;
void *method[5];
void *get_finalizer() { return method[0]; }
};
union _Jv_word
{
jobject o;
jint i;
jfloat f;
jint ia[1];
void* p;
# 64 "/home/oldham/gcc/gcc2/libjava/include/jvm.h"
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;
};
# 93 "/home/oldham/gcc/gcc2/libjava/include/jvm.h"
extern int _Jv_strLengthUtf8(char* str, int len);
typedef struct _Jv_Utf8Const Utf8Const;
_Jv_Utf8Const *_Jv_makeUtf8Const (char *s, int len);
_Jv_Utf8Const *_Jv_makeUtf8Const (jstring string);
extern jboolean _Jv_equalUtf8Consts (_Jv_Utf8Const *, _Jv_Utf8Const *);
extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint);
extern jboolean _Jv_equaln (_Jv_Utf8Const *, jstring, jint);
typedef void _Jv_FinalizerFunc (jobject);
void *_Jv_AllocObj (jsize size, jclass cl) __attribute__((__malloc__));
void *_Jv_AllocPtrFreeObj (jsize size, jclass cl) __attribute__((__malloc__));
void *_Jv_AllocArray (jsize size, jclass cl) __attribute__((__malloc__));
void *_Jv_AllocBytes (jsize size) __attribute__((__malloc__));
void *_Jv_AllocRawObj (jsize size) __attribute__((__malloc__));
void _Jv_ThrowNoMemory() __attribute__((__noreturn__));
void *_Jv_AllocTraceOne (jsize size );
void _Jv_InitGC (void);
void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method);
void * _Jv_BuildGCDescr(jclass);
void *_Jv_MallocUnchecked (jsize size) __attribute__((__malloc__));
void _Jv_RunFinalizers (void);
void _Jv_RunAllFinalizers (void);
void _Jv_RunGC (void);
void _Jv_DisableGC (void);
void _Jv_EnableGC (void);
long _Jv_GCTotalMemory (void);
long _Jv_GCFreeMemory (void);
void _Jv_GCSetInitialHeapSize (size_t size);
void _Jv_GCSetMaximumHeapSize (size_t size);
void _Jv_SetInitialHeapSize (const char *arg);
void _Jv_SetMaximumHeapSize (const char *arg);
extern "C" void JvRunMain (jclass klass, int argc, const char **argv);
void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
bool is_jar);
inline jint
_Jv_HashCode (jobject obj)
{
return (jint) ((unsigned long) obj % 0x7fffffff);
}
inline char *
_Jv_GetArrayElementFromElementType (jobject array,
jclass element_type)
{
char *elts;
if (element_type == (& _Jv_byteClass))
elts = (char *) elements ((jbyteArray) array);
else if (element_type == (& _Jv_shortClass))
elts = (char *) elements ((jshortArray) array);
else if (element_type == (& _Jv_intClass))
elts = (char *) elements ((jintArray) array);
else if (element_type == (& _Jv_longClass))
elts = (char *) elements ((jlongArray) array);
else if (element_type == (& _Jv_booleanClass))
elts = (char *) elements ((jbooleanArray) array);
else if (element_type == (& _Jv_charClass))
elts = (char *) elements ((jcharArray) array);
else if (element_type == (& _Jv_floatClass))
elts = (char *) elements ((jfloatArray) array);
else if (element_type == (& _Jv_doubleClass))
elts = (char *) elements ((jdoubleArray) array);
else
elts = (char *) elements ((jobjectArray) array);
return elts;
}
extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index);
extern "C" void _Jv_ThrowNullPointerException (void);
extern "C" jobject _Jv_NewArray (jint type, jint size)
__attribute__((__malloc__));
extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...)
__attribute__((__malloc__));
extern "C" void *_Jv_CheckCast (jclass klass, jobject obj);
extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name,
Utf8Const *signature);
extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
int meth_idx);
extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj);
extern "C" void _Jv_RegisterClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);
extern "C" void _Jv_RegisterResource (void *vptr);
extern void _Jv_UnregisterClass (_Jv_Utf8Const*, java::lang::ClassLoader*);
extern void _Jv_ResolveField (_Jv_Field *, java::lang::ClassLoader*);
extern jclass _Jv_FindClass (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
extern jclass _Jv_FindClassFromSignature (char *,
java::lang::ClassLoader *loader);
extern void _Jv_GetTypesFromSignature (jmethodID method,
jclass declaringClass,
JArray<jclass> **arg_types_out,
jclass *return_type_out);
extern jobject _Jv_CallAnyMethodA (jobject obj, jclass return_type,
jmethodID meth, jboolean is_constructor,
JArray<jclass> *parameter_types,
jobjectArray args);
union jvalue;
extern jthrowable _Jv_CallAnyMethodA (jobject obj,
jclass return_type,
jmethodID meth,
jboolean is_constructor,
JArray<jclass> *parameter_types,
jvalue *args,
jvalue *result);
extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims)
__attribute__((__malloc__));
extern "C"
{
jint _Jv_divI (jint, jint);
jint _Jv_remI (jint, jint);
jlong _Jv_divJ (jlong, jlong);
jlong _Jv_remJ (jlong, jlong);
}
extern char *_Jv_ThisExecutable (void);
extern void _Jv_ThisExecutable (const char *);
void *_Jv_FindSymbolInExecutable (const char *);
extern void _Jv_JNI_Init (void);
_Jv_JNIEnv *_Jv_GetCurrentJNIEnv ();
void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *);
struct _Jv_JavaVM;
_Jv_JavaVM *_Jv_GetJavaVM ();
# 1 "/home/oldham/gcc/gcc2/libjava/include/jvmpi.h" 1
# 17 "/home/oldham/gcc/gcc2/libjava/include/jvmpi.h"
# 1 "/home/oldham/gcc/gcc2/libjava/include/jni.h" 1
# 17 "/home/oldham/gcc/gcc2/libjava/include/jni.h"
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stdarg.h" 1 3
# 43 "/home/oldham/gcc/gcc2/objdir/gcc/include/stdarg.h" 3
typedef __builtin_va_list __gnuc_va_list;
# 110 "/home/oldham/gcc/gcc2/objdir/gcc/include/stdarg.h" 3
typedef __gnuc_va_list va_list;
# 18 "/home/oldham/gcc/gcc2/libjava/include/jni.h" 2
# 26 "/home/oldham/gcc/gcc2/libjava/include/jni.h"
typedef struct _Jv_JNIEnv JNIEnv;
typedef struct _Jv_JavaVM JavaVM;
# 72 "/home/oldham/gcc/gcc2/libjava/include/jni.h"
typedef jobject jweak;
# 89 "/home/oldham/gcc/gcc2/libjava/include/jni.h"
extern "C"
{
extern jint JNI_OnLoad (JavaVM *, void *);
extern void JNI_OnUnload (JavaVM *, void *);
extern jint JNI_GetDefaultJavaVMInitArgs (void *);
extern jint JNI_CreateJavaVM (JavaVM **, void **, void *);
extern jint JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
};
typedef union jvalue
{
jboolean z;
jbyte b;
jchar c;
jshort s;
jint i;
jlong j;
jfloat f;
jdouble d;
jobject l;
} jvalue;
typedef void * (*_Jv_func) (...);
typedef struct
{
char *name;
char *signature;
void *fnPtr;
} JNINativeMethod;
struct JNINativeInterface
{
_Jv_func reserved0;
_Jv_func reserved1;
_Jv_func reserved2;
_Jv_func reserved3;
jint (*GetVersion) (JNIEnv *);
jclass (*DefineClass) (JNIEnv *, jobject,
const jbyte *, jsize);
jclass (*FindClass) (JNIEnv *, const char *);
jmethodID (*FromReflectedMethod) (JNIEnv *, jobject);
jfieldID (*FromReflectedField) (JNIEnv *, jobject);
jobject (*ToReflectedMethod) (JNIEnv *, jclass, jmethodID,
jboolean);
jclass (*GetSuperclass) (JNIEnv *, jclass);
jboolean (*IsAssignableFrom) (JNIEnv *, jclass, jclass);
jobject (*ToReflectedField) (JNIEnv *, jclass, jfieldID,
jboolean);
jint (*Throw) (JNIEnv *, jthrowable);
jint (*ThrowNew) (JNIEnv *, jclass, const char *);
jthrowable (*ExceptionOccurred) (JNIEnv *);
void (*ExceptionDescribe) (JNIEnv *);
void (*ExceptionClear) (JNIEnv *);
void (*FatalError) (JNIEnv *, const char *);
jint (*PushLocalFrame) (JNIEnv *, jint);
jobject (*PopLocalFrame) (JNIEnv *, jobject);
jobject (*NewGlobalRef) (JNIEnv *, jobject);
void (*DeleteGlobalRef) (JNIEnv *, jobject);
void (*DeleteLocalRef) (JNIEnv *, jobject);;
jboolean (*IsSameObject) (JNIEnv *, jobject, jobject);
jobject (*NewLocalRef) (JNIEnv *, jobject);
jint (*EnsureLocalCapacity) (JNIEnv *, jint);
jobject (*AllocObject) (JNIEnv *, jclass);
jobject (*NewObject) (JNIEnv *, jclass, jmethodID, ...);
jobject (*NewObjectV) (JNIEnv *, jclass, jmethodID,
va_list);
jobject (*NewObjectA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jclass (*GetObjectClass) (JNIEnv *, jobject);
jboolean (*IsInstanceOf) (JNIEnv *, jobject, jclass);
jmethodID (*GetMethodID) (JNIEnv *, jclass, const char *,
const char *);
jobject (*CallObjectMethod) (JNIEnv *, jobject, jmethodID,
...);
jobject (*CallObjectMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jobject (*CallObjectMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jboolean (*CallBooleanMethod) (JNIEnv *, jobject, jmethodID,
...);
jboolean (*CallBooleanMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jboolean (*CallBooleanMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jbyte (*CallByteMethod) (JNIEnv *, jobject, jmethodID,
...);
jbyte (*CallByteMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jbyte (*CallByteMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jchar (*CallCharMethod) (JNIEnv *, jobject, jmethodID,
...);
jchar (*CallCharMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jchar (*CallCharMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jshort (*CallShortMethod) (JNIEnv *, jobject, jmethodID,
...);
jshort (*CallShortMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jshort (*CallShortMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jint (*CallIntMethod) (JNIEnv *, jobject, jmethodID,
...);
jint (*CallIntMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jint (*CallIntMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jlong (*CallLongMethod) (JNIEnv *, jobject, jmethodID,
...);
jlong (*CallLongMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jlong (*CallLongMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jfloat (*CallFloatMethod) (JNIEnv *, jobject, jmethodID,
...);
jfloat (*CallFloatMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jfloat (*CallFloatMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jdouble (*CallDoubleMethod) (JNIEnv *, jobject, jmethodID,
...);
jdouble (*CallDoubleMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jdouble (*CallDoubleMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
void (*CallVoidMethod) (JNIEnv *, jobject, jmethodID,
...);
void (*CallVoidMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
void (*CallVoidMethodA) (JNIEnv *, jobject, jmethodID,
jvalue *);
jobject (*CallNonvirtualObjectMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jobject (*CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jobject (*CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jboolean (*CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jboolean (*CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jboolean (*CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jbyte (*CallNonvirtualByteMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jbyte (*CallNonvirtualByteMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jbyte (*CallNonvirtualByteMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jchar (*CallNonvirtualCharMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jchar (*CallNonvirtualCharMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jchar (*CallNonvirtualCharMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jshort (*CallNonvirtualShortMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jshort (*CallNonvirtualShortMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jshort (*CallNonvirtualShortMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jint (*CallNonvirtualIntMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jint (*CallNonvirtualIntMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jint (*CallNonvirtualIntMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jlong (*CallNonvirtualLongMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jlong (*CallNonvirtualLongMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jlong (*CallNonvirtualLongMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jfloat (*CallNonvirtualFloatMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jfloat (*CallNonvirtualFloatMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jfloat (*CallNonvirtualFloatMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jdouble (*CallNonvirtualDoubleMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jdouble (*CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jdouble (*CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
void (*CallNonvirtualVoidMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
void (*CallNonvirtualVoidMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
void (*CallNonvirtualVoidMethodA) (JNIEnv *, jobject, jclass,
jmethodID, jvalue *);
jfieldID (*GetFieldID) (JNIEnv *, jclass, const char *,
const char *);
jobject (*GetObjectField) (JNIEnv *, jobject, jfieldID);
jboolean (*GetBooleanField) (JNIEnv *, jobject, jfieldID);
jbyte (*GetByteField) (JNIEnv *, jobject, jfieldID);
jchar (*GetCharField) (JNIEnv *, jobject, jfieldID);
jshort (*GetShortField) (JNIEnv *, jobject, jfieldID);
jint (*GetIntField) (JNIEnv *, jobject, jfieldID);
jlong (*GetLongField) (JNIEnv *, jobject, jfieldID);
jfloat (*GetFloatField) (JNIEnv *, jobject, jfieldID);
jdouble (*GetDoubleField) (JNIEnv *, jobject, jfieldID);
void (*SetObjectField) (JNIEnv *, jobject,
jfieldID, jobject);
void (*SetBooleanField) (JNIEnv *, jobject,
jfieldID, jboolean);
void (*SetByteField) (JNIEnv *, jobject,
jfieldID, jbyte);
void (*SetCharField) (JNIEnv *, jobject,
jfieldID, jchar);
void (*SetShortField) (JNIEnv *, jobject,
jfieldID, jshort);
void (*SetIntField) (JNIEnv *, jobject,
jfieldID, jint);
void (*SetLongField) (JNIEnv *, jobject,
jfieldID, jlong);
void (*SetFloatField) (JNIEnv *, jobject,
jfieldID, jfloat);
void (*SetDoubleField) (JNIEnv *, jobject,
jfieldID, jdouble);
jmethodID (*GetStaticMethodID) (JNIEnv *, jclass, const char *,
const char *);
jobject (*CallStaticObjectMethod) (JNIEnv *, jclass, jmethodID,
...);
jobject (*CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jobject (*CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jboolean (*CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
...);
jboolean (*CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jboolean (*CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jbyte (*CallStaticByteMethod) (JNIEnv *, jclass, jmethodID,
...);
jbyte (*CallStaticByteMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jbyte (*CallStaticByteMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jchar (*CallStaticCharMethod) (JNIEnv *, jclass, jmethodID,
...);
jchar (*CallStaticCharMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jchar (*CallStaticCharMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jshort (*CallStaticShortMethod) (JNIEnv *, jclass, jmethodID,
...);
jshort (*CallStaticShortMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jshort (*CallStaticShortMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jint (*CallStaticIntMethod) (JNIEnv *, jclass, jmethodID,
...);
jint (*CallStaticIntMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jint (*CallStaticIntMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jlong (*CallStaticLongMethod) (JNIEnv *, jclass, jmethodID,
...);
jlong (*CallStaticLongMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jlong (*CallStaticLongMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jfloat (*CallStaticFloatMethod) (JNIEnv *, jclass, jmethodID,
...);
jfloat (*CallStaticFloatMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jfloat (*CallStaticFloatMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jdouble (*CallStaticDoubleMethod) (JNIEnv *, jclass, jmethodID,
...);
jdouble (*CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jdouble (*CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
void (*CallStaticVoidMethod) (JNIEnv *, jclass, jmethodID,
...);
void (*CallStaticVoidMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
void (*CallStaticVoidMethodA) (JNIEnv *, jclass, jmethodID,
jvalue *);
jfieldID (*GetStaticFieldID) (JNIEnv *, jclass, const char *,
const char *);
jobject (*GetStaticObjectField) (JNIEnv *, jclass, jfieldID);
jboolean (*GetStaticBooleanField) (JNIEnv *, jclass, jfieldID);
jbyte (*GetStaticByteField) (JNIEnv *, jclass, jfieldID);
jchar (*GetStaticCharField) (JNIEnv *, jclass, jfieldID);
jshort (*GetStaticShortField) (JNIEnv *, jclass, jfieldID);
jint (*GetStaticIntField) (JNIEnv *, jclass, jfieldID);
jlong (*GetStaticLongField) (JNIEnv *, jclass, jfieldID);
jfloat (*GetStaticFloatField) (JNIEnv *, jclass, jfieldID);
jdouble (*GetStaticDoubleField) (JNIEnv *, jclass, jfieldID);
void (*SetStaticObjectField) (JNIEnv *, jclass,
jfieldID, jobject);
void (*SetStaticBooleanField) (JNIEnv *, jclass,
jfieldID, jboolean);
void (*SetStaticByteField) (JNIEnv *, jclass,
jfieldID, jbyte);
void (*SetStaticCharField) (JNIEnv *, jclass,
jfieldID, jchar);
void (*SetStaticShortField) (JNIEnv *, jclass,
jfieldID, jshort);
void (*SetStaticIntField) (JNIEnv *, jclass,
jfieldID, jint);
void (*SetStaticLongField) (JNIEnv *, jclass,
jfieldID, jlong);
void (*SetStaticFloatField) (JNIEnv *, jclass,
jfieldID, jfloat);
void (*SetStaticDoubleField) (JNIEnv *, jclass,
jfieldID, jdouble);
jstring (*NewString) (JNIEnv *, const jchar *, jsize);
jint (*GetStringLength) (JNIEnv *, jstring);
const jchar * (*GetStringChars) (JNIEnv *, jstring, jboolean *);
void (*ReleaseStringChars) (JNIEnv *, jstring, const jchar *);
jstring (*NewStringUTF) (JNIEnv *, const char *);
jsize (*GetStringUTFLength) (JNIEnv *, jstring);
const char * (*GetStringUTFChars) (JNIEnv *, jstring, jboolean *);
void (*ReleaseStringUTFChars) (JNIEnv *, jstring, const char *);
jsize (*GetArrayLength) (JNIEnv *, jarray);
jarray (*NewObjectArray) (JNIEnv *, jsize, jclass, jobject);
jobject (*GetObjectArrayElement) (JNIEnv *, jobjectArray, jsize);
void (*SetObjectArrayElement) (JNIEnv *, jobjectArray, jsize,
jobject);
jbooleanArray (*NewBooleanArray) (JNIEnv *, jsize);
jbyteArray (*NewByteArray) (JNIEnv *, jsize);
jcharArray (*NewCharArray) (JNIEnv *, jsize);
jshortArray (*NewShortArray) (JNIEnv *, jsize);
jintArray (*NewIntArray) (JNIEnv *, jsize);
jlongArray (*NewLongArray) (JNIEnv *, jsize);
jfloatArray (*NewFloatArray) (JNIEnv *, jsize);
jdoubleArray (*NewDoubleArray) (JNIEnv *, jsize);
jboolean * (*GetBooleanArrayElements) (JNIEnv *, jbooleanArray,
jboolean *);
jbyte * (*GetByteArrayElements) (JNIEnv *, jbyteArray,
jboolean *);
jchar * (*GetCharArrayElements) (JNIEnv *, jcharArray,
jboolean *);
jshort * (*GetShortArrayElements) (JNIEnv *, jshortArray,
jboolean *);
jint * (*GetIntArrayElements) (JNIEnv *, jintArray,
jboolean *);
jlong * (*GetLongArrayElements) (JNIEnv *, jlongArray,
jboolean *);
jfloat * (*GetFloatArrayElements) (JNIEnv *, jfloatArray,
jboolean *);
jdouble * (*GetDoubleArrayElements) (JNIEnv *, jdoubleArray,
jboolean *);
void (*ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray,
jboolean *, jint);
void (*ReleaseByteArrayElements) (JNIEnv *, jbyteArray,
jbyte *, jint);
void (*ReleaseCharArrayElements) (JNIEnv *, jcharArray,
jchar *, jint);
void (*ReleaseShortArrayElements) (JNIEnv *, jshortArray,
jshort *, jint);
void (*ReleaseIntArrayElements) (JNIEnv *, jintArray,
jint *, jint);
void (*ReleaseLongArrayElements) (JNIEnv *, jlongArray,
jlong *, jint);
void (*ReleaseFloatArrayElements) (JNIEnv *, jfloatArray,
jfloat *, jint);
void (*ReleaseDoubleArrayElements) (JNIEnv *, jdoubleArray,
jdouble *, jint);
void (*GetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
jsize, jsize, jboolean *);
void (*GetByteArrayRegion) (JNIEnv *, jbyteArray,
jsize, jsize, jbyte *);
void (*GetCharArrayRegion) (JNIEnv *, jcharArray,
jsize, jsize, jchar *);
void (*GetShortArrayRegion) (JNIEnv *, jshortArray,
jsize, jsize, jshort *);
void (*GetIntArrayRegion) (JNIEnv *, jintArray,
jsize, jsize, jint *);
void (*GetLongArrayRegion) (JNIEnv *, jlongArray,
jsize, jsize, jlong *);
void (*GetFloatArrayRegion) (JNIEnv *, jfloatArray,
jsize, jsize, jfloat *);
void (*GetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
jsize, jsize, jdouble *);
void (*SetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
jsize, jsize, jboolean *);
void (*SetByteArrayRegion) (JNIEnv *, jbyteArray,
jsize, jsize, jbyte *);
void (*SetCharArrayRegion) (JNIEnv *, jcharArray,
jsize, jsize, jchar *);
void (*SetShortArrayRegion) (JNIEnv *, jshortArray,
jsize, jsize, jshort *);
void (*SetIntArrayRegion) (JNIEnv *, jintArray,
jsize, jsize, jint *);
void (*SetLongArrayRegion) (JNIEnv *, jlongArray,
jsize, jsize, jlong *);
void (*SetFloatArrayRegion) (JNIEnv *, jfloatArray,
jsize, jsize, jfloat *);
void (*SetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
jsize, jsize, jdouble *);
jint (*RegisterNatives) (JNIEnv *, jclass,
const JNINativeMethod *, jint);
jint (*UnregisterNatives) (JNIEnv *, jclass);
jint (*MonitorEnter) (JNIEnv *, jobject);
jint (*MonitorExit) (JNIEnv *, jobject);
jint (*GetJavaVM) (JNIEnv *, JavaVM **);
void (*GetStringRegion) (JNIEnv *, jstring, jsize,
jsize, jchar *);
void (*GetStringUTFRegion) (JNIEnv *, jstring, jsize,
jsize, char *);
void * (*GetPrimitiveArrayCritical) (JNIEnv *, jarray, jboolean *);
void (*ReleasePrimitiveArrayCritical) (JNIEnv *, jarray, void *, jint);
const jchar * (*GetStringCritical) (JNIEnv *, jstring, jboolean *);
void (*ReleaseStringCritical) (JNIEnv *, jstring, const jchar *);
jweak (*NewWeakGlobalRef) (JNIEnv *, jobject);
void (*DeleteWeakGlobalRef) (JNIEnv *, jweak);
jboolean (*ExceptionCheck) (JNIEnv *);
};
class _Jv_JNIEnv
{
public:
struct JNINativeInterface *p;
jthrowable ex;
jclass klass;
struct _Jv_JNI_LocalFrame *locals;
public:
jint GetVersion ()
{ return p->GetVersion (this); }
jclass DefineClass (jobject obj0, const jbyte * val1, jsize val2)
{ return p->DefineClass (this, obj0, val1, val2); }
jclass FindClass (const char * val0)
{ return p->FindClass (this, val0); }
jmethodID FromReflectedMethod (jobject obj0)
{ return p->FromReflectedMethod (this, obj0); }
jfieldID FromReflectedField (jobject obj0)
{ return p->FromReflectedField (this, obj0); }
jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
{ return p->ToReflectedMethod (this, cl0, meth1, val2); }
jclass GetSuperclass (jclass cl0)
{ return p->GetSuperclass (this, cl0); }
jboolean IsAssignableFrom (jclass cl0, jclass cl1)
{ return p->IsAssignableFrom (this, cl0, cl1); }
jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
{ return p->ToReflectedField (this, cl0, fld1, val2); }
jint Throw (jthrowable val0)
{ return p->Throw (this, val0); }
jint ThrowNew (jclass cl0, const char * val1)
{ return p->ThrowNew (this, cl0, val1); }
jthrowable ExceptionOccurred ()
{ return p->ExceptionOccurred (this); }
void ExceptionDescribe ()
{ p->ExceptionDescribe (this); }
void ExceptionClear ()
{ p->ExceptionClear (this); }
void FatalError (const char * val0)
{ p->FatalError (this, val0); }
jint PushLocalFrame (jint val0)
{ return p->PushLocalFrame (this, val0); }
jobject PopLocalFrame (jobject obj0)
{ return p->PopLocalFrame (this, obj0); }
jobject NewGlobalRef (jobject obj0)
{ return p->NewGlobalRef (this, obj0); }
void DeleteGlobalRef (jobject obj0)
{ p->DeleteGlobalRef (this, obj0); }
void DeleteLocalRef (jobject obj0)
{ p->DeleteLocalRef (this, obj0); }
jboolean IsSameObject (jobject obj0, jobject obj1)
{ return p->IsSameObject (this, obj0, obj1); }
jobject NewLocalRef (jobject obj0)
{ return p->NewLocalRef (this, obj0); }
jint EnsureLocalCapacity (jint val0)
{ return p->EnsureLocalCapacity (this, val0); }
jobject AllocObject (jclass cl0)
{ return p->AllocObject (this, cl0); }
jobject NewObject (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jobject result = p->NewObjectV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jobject NewObjectV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->NewObjectV (this, cl0, meth1, val2); }
jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->NewObjectA (this, cl0, meth1, val2); }
jclass GetObjectClass (jobject obj0)
{ return p->GetObjectClass (this, obj0); }
jboolean IsInstanceOf (jobject obj0, jclass cl1)
{ return p->IsInstanceOf (this, obj0, cl1); }
jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
{ return p->GetMethodID (this, cl0, val1, val2); }
jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jobject CallObjectMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallObjectMethodV (this, obj0, meth1, val2); }
jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallObjectMethodA (this, obj0, meth1, val2); }
jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallBooleanMethodV (this, obj0, meth1, val2); }
jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallBooleanMethodA (this, obj0, meth1, val2); }
jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallByteMethodV (this, obj0, meth1, val2); }
jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallByteMethodA (this, obj0, meth1, val2); }
jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jchar result = p->CallCharMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallCharMethodV (this, obj0, meth1, val2); }
jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallCharMethodA (this, obj0, meth1, val2); }
jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jshort result = p->CallShortMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallShortMethodV (this, obj0, meth1, val2); }
jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallShortMethodA (this, obj0, meth1, val2); }
jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jint result = p->CallIntMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jint CallIntMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallIntMethodV (this, obj0, meth1, val2); }
jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallIntMethodA (this, obj0, meth1, val2); }
jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jlong result = p->CallLongMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallLongMethodV (this, obj0, meth1, val2); }
jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallLongMethodA (this, obj0, meth1, val2); }
jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallFloatMethodV (this, obj0, meth1, val2); }
jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallFloatMethodA (this, obj0, meth1, val2); }
jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
return result;
}
jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallDoubleMethodV (this, obj0, meth1, val2); }
jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ return p->CallDoubleMethodA (this, obj0, meth1, val2); }
void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
p->CallVoidMethodV (this, obj0, meth1, args);
__builtin_va_end (args);
}
void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ p->CallVoidMethodV (this, obj0, meth1, val2); }
void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
{ p->CallVoidMethodA (this, obj0, meth1, val2); }
jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
return result;
}
jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
__builtin_stdarg_start((args),meth2);
p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
__builtin_va_end (args);
}
void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
{ p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
{ return p->GetFieldID (this, cl0, val1, val2); }
jobject GetObjectField (jobject obj0, jfieldID fld1)
{ return p->GetObjectField (this, obj0, fld1); }
jboolean GetBooleanField (jobject obj0, jfieldID fld1)
{ return p->GetBooleanField (this, obj0, fld1); }
jbyte GetByteField (jobject obj0, jfieldID fld1)
{ return p->GetByteField (this, obj0, fld1); }
jchar GetCharField (jobject obj0, jfieldID fld1)
{ return p->GetCharField (this, obj0, fld1); }
jshort GetShortField (jobject obj0, jfieldID fld1)
{ return p->GetShortField (this, obj0, fld1); }
jint GetIntField (jobject obj0, jfieldID fld1)
{ return p->GetIntField (this, obj0, fld1); }
jlong GetLongField (jobject obj0, jfieldID fld1)
{ return p->GetLongField (this, obj0, fld1); }
jfloat GetFloatField (jobject obj0, jfieldID fld1)
{ return p->GetFloatField (this, obj0, fld1); }
jdouble GetDoubleField (jobject obj0, jfieldID fld1)
{ return p->GetDoubleField (this, obj0, fld1); }
void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
{ p->SetObjectField (this, obj0, fld1, obj2); }
void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
{ p->SetBooleanField (this, obj0, fld1, val2); }
void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
{ p->SetByteField (this, obj0, fld1, val2); }
void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
{ p->SetCharField (this, obj0, fld1, val2); }
void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
{ p->SetShortField (this, obj0, fld1, val2); }
void SetIntField (jobject obj0, jfieldID fld1, jint val2)
{ p->SetIntField (this, obj0, fld1, val2); }
void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
{ p->SetLongField (this, obj0, fld1, val2); }
void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
{ p->SetFloatField (this, obj0, fld1, val2); }
void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
{ p->SetDoubleField (this, obj0, fld1, val2); }
jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
{ return p->GetStaticMethodID (this, cl0, val1, val2); }
jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
return result;
}
jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
__builtin_stdarg_start((args),meth1);
p->CallStaticVoidMethodV (this, cl0, meth1, args);
__builtin_va_end (args);
}
void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
{ p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
{ return p->GetStaticFieldID (this, cl0, val1, val2); }
jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
{ return p->GetStaticObjectField (this, cl0, fld1); }
jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
{ return p->GetStaticBooleanField (this, cl0, fld1); }
jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
{ return p->GetStaticByteField (this, cl0, fld1); }
jchar GetStaticCharField (jclass cl0, jfieldID fld1)
{ return p->GetStaticCharField (this, cl0, fld1); }
jshort GetStaticShortField (jclass cl0, jfieldID fld1)
{ return p->GetStaticShortField (this, cl0, fld1); }
jint GetStaticIntField (jclass cl0, jfieldID fld1)
{ return p->GetStaticIntField (this, cl0, fld1); }
jlong GetStaticLongField (jclass cl0, jfieldID fld1)
{ return p->GetStaticLongField (this, cl0, fld1); }
jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
{ return p->GetStaticFloatField (this, cl0, fld1); }
jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
{ return p->GetStaticDoubleField (this, cl0, fld1); }
void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
{ p->SetStaticObjectField (this, cl0, fld1, obj2); }
void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
{ p->SetStaticBooleanField (this, cl0, fld1, val2); }
void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
{ p->SetStaticByteField (this, cl0, fld1, val2); }
void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
{ p->SetStaticCharField (this, cl0, fld1, val2); }
void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
{ p->SetStaticShortField (this, cl0, fld1, val2); }
void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
{ p->SetStaticIntField (this, cl0, fld1, val2); }
void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
{ p->SetStaticLongField (this, cl0, fld1, val2); }
void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
{ p->SetStaticFloatField (this, cl0, fld1, val2); }
void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
{ p->SetStaticDoubleField (this, cl0, fld1, val2); }
jstring NewString (const jchar * val0, jsize val1)
{ return p->NewString (this, val0, val1); }
jint GetStringLength (jstring val0)
{ return p->GetStringLength (this, val0); }
const jchar * GetStringChars (jstring val0, jboolean * val1)
{ return p->GetStringChars (this, val0, val1); }
void ReleaseStringChars (jstring val0, const jchar * val1)
{ p->ReleaseStringChars (this, val0, val1); }
jstring NewStringUTF (const char * val0)
{ return p->NewStringUTF (this, val0); }
jsize GetStringUTFLength (jstring val0)
{ return p->GetStringUTFLength (this, val0); }
const char * GetStringUTFChars (jstring val0, jboolean * val1)
{ return p->GetStringUTFChars (this, val0, val1); }
void ReleaseStringUTFChars (jstring val0, const char * val1)
{ p->ReleaseStringUTFChars (this, val0, val1); }
jsize GetArrayLength (jarray val0)
{ return p->GetArrayLength (this, val0); }
jarray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
{ return p->NewObjectArray (this, val0, cl1, obj2); }
jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
{ return p->GetObjectArrayElement (this, val0, val1); }
void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
{ p->SetObjectArrayElement (this, val0, val1, obj2); }
jbooleanArray NewBooleanArray (jsize val0)
{ return p->NewBooleanArray (this, val0); }
jbyteArray NewByteArray (jsize val0)
{ return p->NewByteArray (this, val0); }
jcharArray NewCharArray (jsize val0)
{ return p->NewCharArray (this, val0); }
jshortArray NewShortArray (jsize val0)
{ return p->NewShortArray (this, val0); }
jintArray NewIntArray (jsize val0)
{ return p->NewIntArray (this, val0); }
jlongArray NewLongArray (jsize val0)
{ return p->NewLongArray (this, val0); }
jfloatArray NewFloatArray (jsize val0)
{ return p->NewFloatArray (this, val0); }
jdoubleArray NewDoubleArray (jsize val0)
{ return p->NewDoubleArray (this, val0); }
jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
{ return p->GetBooleanArrayElements (this, val0, val1); }
jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
{ return p->GetByteArrayElements (this, val0, val1); }
jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
{ return p->GetCharArrayElements (this, val0, val1); }
jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
{ return p->GetShortArrayElements (this, val0, val1); }
jint * GetIntArrayElements (jintArray val0, jboolean * val1)
{ return p->GetIntArrayElements (this, val0, val1); }
jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
{ return p->GetLongArrayElements (this, val0, val1); }
jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
{ return p->GetFloatArrayElements (this, val0, val1); }
jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
{ return p->GetDoubleArrayElements (this, val0, val1); }
void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
{ p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
{ p->ReleaseByteArrayElements (this, val0, val1, val2); }
void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
{ p->ReleaseCharArrayElements (this, val0, val1, val2); }
void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
{ p->ReleaseShortArrayElements (this, val0, val1, val2); }
void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
{ p->ReleaseIntArrayElements (this, val0, val1, val2); }
void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
{ p->ReleaseLongArrayElements (this, val0, val1, val2); }
void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
{ p->ReleaseFloatArrayElements (this, val0, val1, val2); }
void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
{ p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
{ p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
{ p->GetByteArrayRegion (this, val0, val1, val2, val3); }
void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
{ p->GetCharArrayRegion (this, val0, val1, val2, val3); }
void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
{ p->GetShortArrayRegion (this, val0, val1, val2, val3); }
void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
{ p->GetIntArrayRegion (this, val0, val1, val2, val3); }
void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
{ p->GetLongArrayRegion (this, val0, val1, val2, val3); }
void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
{ p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
{ p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
{ p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
{ p->SetByteArrayRegion (this, val0, val1, val2, val3); }
void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
{ p->SetCharArrayRegion (this, val0, val1, val2, val3); }
void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
{ p->SetShortArrayRegion (this, val0, val1, val2, val3); }
void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
{ p->SetIntArrayRegion (this, val0, val1, val2, val3); }
void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
{ p->SetLongArrayRegion (this, val0, val1, val2, val3); }
void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
{ p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
{ p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
{ return p->RegisterNatives (this, cl0, val1, val2); }
jint UnregisterNatives (jclass cl0)
{ return p->UnregisterNatives (this, cl0); }
jint MonitorEnter (jobject obj0)
{ return p->MonitorEnter (this, obj0); }
jint MonitorExit (jobject obj0)
{ return p->MonitorExit (this, obj0); }
jint GetJavaVM (JavaVM ** val0)
{ return p->GetJavaVM (this, val0); }
void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
{ p->GetStringRegion (this, val0, val1, val2, val3); }
void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
{ p->GetStringUTFRegion (this, val0, val1, val2, val3); }
void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
{ return p->GetPrimitiveArrayCritical (this, val0, val1); }
void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
{ p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
const jchar * GetStringCritical (jstring val0, jboolean * val1)
{ return p->GetStringCritical (this, val0, val1); }
void ReleaseStringCritical (jstring val0, const jchar * val1)
{ p->ReleaseStringCritical (this, val0, val1); }
jweak NewWeakGlobalRef (jobject obj0)
{ return p->NewWeakGlobalRef (this, obj0); }
void DeleteWeakGlobalRef (jweak val0)
{ p->DeleteWeakGlobalRef (this, val0); }
jboolean ExceptionCheck ()
{ return p->ExceptionCheck (this); }
};
struct JNIInvokeInterface
{
_Jv_func reserved0;
_Jv_func reserved1;
_Jv_func reserved2;
jint (*DestroyJavaVM) (JavaVM *);
jint (*AttachCurrentThread) (JavaVM *, void **, void *);
jint (*DetachCurrentThread) (JavaVM *);
jint (*GetEnv) (JavaVM *, void **, jint);
};
class _Jv_JavaVM
{
public:
const struct JNIInvokeInterface *functions;
private:
public:
jint DestroyJavaVM ()
{ return functions->DestroyJavaVM (this); }
jint AttachCurrentThread (void **penv, void *args)
{ return functions->AttachCurrentThread (this, penv, args); }
jint DetachCurrentThread ()
{ return functions->DetachCurrentThread (this); }
jint GetEnv (void **penv, jint version)
{ return functions->GetEnv (this, penv, version); }
};
typedef struct JavaVMAttachArgs
{
jint version;
char *name;
jobject group;
} JavaVMAttachArgs;
typedef struct JavaVMOption
{
char *optionString;
void *extraInfo;
} JavaVMOption;
typedef struct JavaVMInitArgs
{
jint version;
jint nOptions;
JavaVMOption *options;
jboolean ignoreUnrecognized;
} JavaVMInitArgs;
# 18 "/home/oldham/gcc/gcc2/libjava/include/jvmpi.h" 2
# 30 "/home/oldham/gcc/gcc2/libjava/include/jvmpi.h"
struct _jobjectID;
typedef struct _jobjectID * jobjectID;
typedef struct
{
jint lineno;
jmethodID method_id;
} JVMPI_CallFrame;
typedef struct
{
JNIEnv *env_id;
jint num_frames;
JVMPI_CallFrame *frames;
} JVMPI_CallTrace;
typedef struct
{
char *field_name;
char *field_signature;
} JVMPI_Field;
# 66 "/home/oldham/gcc/gcc2/libjava/include/jvmpi.h"
typedef struct
{
jint heap_dump_level;
} JVMPI_HeapDumpArg;
typedef struct
{
jint offset;
jint lineno;
} JVMPI_Lineno;
typedef struct
{
char *method_name;
char *method_signature;
jint start_lineno;
jint end_lineno;
jmethodID method_id;
} JVMPI_Method;
struct _JVMPI_RawMonitor;
typedef struct _JVMPI_RawMonitor *JVMPI_RawMonitor;
# 140 "/home/oldham/gcc/gcc2/libjava/include/jvmpi.h"
typedef struct
{
jint event_type;
JNIEnv *env_id;
union
{
struct
{
char *class_name;
char *source_name;
jint num_interfaces;
jint num_methods;
JVMPI_Method *methods;
jint num_static_fields;
JVMPI_Field *statics;
jint num_instance_fields;
JVMPI_Field *instances;
jobjectID class_id;
} class_load;
struct
{
jobjectID class_id;
} class_unload;
struct
{
jint arena_id;
jobjectID class_id;
jint is_array;
jint size;
jobjectID obj_id;
} obj_alloc;
struct
{
char *thread_name;
char *group_name;
char *parent_name;
jobjectID thread_id;
JNIEnv *thread_env_id;
} thread_start;
} u;
} JVMPI_Event;
typedef struct
{
jint version;
void (*NotifyEvent) (JVMPI_Event *event);
jint (*EnableEvent) (jint event_type, void *arg);
jint (*DisableEvent) (jint event_type, void *arg);
jint (*RequestEvent) (jint event_type, void *arg);
void (*GetCallTrace) (JVMPI_CallTrace *trace, jint depth);
void (*ProfilerExit) (jint);
JVMPI_RawMonitor (*RawMonitorCreate) (char *lock_name);
void (*RawMonitorEnter) (JVMPI_RawMonitor lock_id);
void (*RawMonitorExit) (JVMPI_RawMonitor lock_id);
void (*RawMonitorWait) (JVMPI_RawMonitor lock_id, jlong ms);
void (*RawMonitorNotifyAll) (JVMPI_RawMonitor lock_id);
void (*RawMonitorDestroy) (JVMPI_RawMonitor lock_id);
jlong (*GetCurrentThreadCpuTime) (void);
void (*SuspendThread) (JNIEnv *env);
void (*ResumeThread) (JNIEnv *env);
jint (*GetThreadStatus) (JNIEnv *env);
jboolean (*ThreadHasRun) (JNIEnv *env);
jint (*CreateSystemThread) (char *name, jint priority, void (*f) (void *));
void (*SetThreadLocalStorage) (JNIEnv *env_id, void *ptr);
void *(*GetThreadLocalStorage) (JNIEnv *env_id);
void (*DisableGC) (void);
void (*EnableGC) (void);
void (*RunGC) (void);
jobjectID (*GetThreadObject) (JNIEnv *env);
jobjectID (*GetMethodClass) (jmethodID mid);
} JVMPI_Interface;
# 288 "/home/oldham/gcc/gcc2/libjava/include/jvm.h" 2
extern void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event);
extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event);
extern void (*_Jv_JVMPI_Notify_THREAD_END) (JVMPI_Event *event);
# 21 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/ClassLoader.h" 1
#pragma interface
extern "Java"
{
namespace java
{
namespace net
{
class URL;
}
namespace security
{
class ProtectionDomain;
class Permission;
}
}
};
class ::java::lang::ClassLoader : public ::java::lang::Object
{
public:
::java::lang::ClassLoader *getParent () { return parent; }
static ::java::lang::ClassLoader *getSystemClassLoader ();
public:
ClassLoader ();
ClassLoader (::java::lang::ClassLoader *);
public:
virtual ::java::lang::Class *loadClass (::java::lang::String *);
public:
virtual ::java::lang::Class *loadClass (::java::lang::String *, jboolean);
virtual ::java::lang::Class *findClass (::java::lang::String *);
::java::lang::Class *defineClass (jbyteArray, jint, jint);
::java::lang::Class *defineClass (::java::lang::String *, jbyteArray, jint, jint);
::java::lang::Class *defineClass (::java::lang::String *, jbyteArray, jint, jint, ::java::security::ProtectionDomain *);
private:
::java::lang::Class *defineClass0 (::java::lang::String *, jbyteArray, jint, jint, ::java::security::ProtectionDomain *);
public:
void resolveClass (::java::lang::Class *);
public:
static void resolveClass0 (::java::lang::Class *);
private:
static void linkClass0 (::java::lang::Class *);
static void markClassErrorState0 (::java::lang::Class *);
public:
virtual ::java::lang::Package *definePackage (::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::net::URL *);
virtual ::java::lang::Package *getPackage (::java::lang::String *);
virtual JArray< ::java::lang::Package *> *getPackages ();
::java::lang::Class *findSystemClass (::java::lang::String *);
void setSigners (::java::lang::Class *, JArray< ::java::lang::Object *> *) { }
::java::lang::Class *findLoadedClass (::java::lang::String *);
public:
static ::java::io::InputStream *getSystemResourceAsStream (::java::lang::String *);
static ::java::net::URL *getSystemResource (::java::lang::String *);
virtual ::java::io::InputStream *getResourceAsStream (::java::lang::String *);
virtual ::java::net::URL *getResource (::java::lang::String *);
public:
virtual ::java::net::URL *findResource (::java::lang::String *) { return 0; }
public:
::java::util::Enumeration *getResources (::java::lang::String *);
public:
virtual ::java::util::Enumeration *findResources (::java::lang::String *) { return 0; }
private:
::java::lang::ClassLoader *parent;
::java::util::HashMap *definedPackages;
public:
static ::java::security::Permission *protectionDomainPermission;
static ::java::security::ProtectionDomain *unknownProtectionDomain;
static ::java::security::ProtectionDomain *defaultProtectionDomain;
friend jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);
friend void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);
public:
static ::java::lang::Class class$;
};
# 29 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/Throwable.h" 1
#pragma interface
class ::java::lang::Throwable : public ::java::lang::Object
{
public:
virtual ::java::lang::Throwable *fillInStackTrace ();
virtual ::java::lang::String *getLocalizedMessage ();
virtual ::java::lang::String *getMessage () { return detailMessage; }
virtual void printStackTrace ();
virtual void printStackTrace (::java::io::PrintStream *);
virtual void printStackTrace (::java::io::PrintWriter *);
Throwable ();
Throwable (::java::lang::String *);
virtual ::java::lang::String *toString ();
private:
void printRawStackTrace (::java::io::PrintWriter *);
::java::lang::String *detailMessage;
public:
static jboolean trace_enabled;
private:
jbyteArray stackTrace;
static const jlong serialVersionUID = -3042686055658047285LL;
public:
static ::java::lang::Class class$;
};
# 30 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/ArrayIndexOutOfBoundsException.h" 1
#pragma interface
# 1 "java/lang/IndexOutOfBoundsException.h" 1
#pragma interface
# 1 "java/lang/RuntimeException.h" 1
#pragma interface
# 1 "java/lang/Exception.h" 1
#pragma interface
class ::java::lang::Exception : public ::java::lang::Throwable
{
public:
Exception ();
Exception (::java::lang::String *);
public:
static const jlong serialVersionUID = -3387516993124229948LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/RuntimeException.h" 2
class ::java::lang::RuntimeException : public ::java::lang::Exception
{
public:
RuntimeException ();
RuntimeException (::java::lang::String *);
public:
static const jlong serialVersionUID = -7034897190745766939LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/IndexOutOfBoundsException.h" 2
class ::java::lang::IndexOutOfBoundsException : public ::java::lang::RuntimeException
{
public:
IndexOutOfBoundsException ();
IndexOutOfBoundsException (::java::lang::String *);
public:
static const jlong serialVersionUID = 234122996006267687LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/ArrayIndexOutOfBoundsException.h" 2
class ::java::lang::ArrayIndexOutOfBoundsException : public ::java::lang::IndexOutOfBoundsException
{
public:
ArrayIndexOutOfBoundsException ();
ArrayIndexOutOfBoundsException (::java::lang::String *);
ArrayIndexOutOfBoundsException (jint);
public:
static const jlong serialVersionUID = -5116101128118950844LL;
public:
static ::java::lang::Class class$;
};
# 31 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/StringIndexOutOfBoundsException.h" 1
#pragma interface
class ::java::lang::StringIndexOutOfBoundsException : public ::java::lang::IndexOutOfBoundsException
{
public:
StringIndexOutOfBoundsException ();
StringIndexOutOfBoundsException (::java::lang::String *);
StringIndexOutOfBoundsException (jint);
public:
static const jlong serialVersionUID = -6762910422159637258LL;
public:
static ::java::lang::Class class$;
};
# 32 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/AbstractMethodError.h" 1
#pragma interface
# 1 "java/lang/IncompatibleClassChangeError.h" 1
#pragma interface
# 1 "java/lang/LinkageError.h" 1
#pragma interface
# 1 "java/lang/Error.h" 1
#pragma interface
class ::java::lang::Error : public ::java::lang::Throwable
{
public:
Error ();
Error (::java::lang::String *);
public:
static const jlong serialVersionUID = 4980196508277280342LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/LinkageError.h" 2
class ::java::lang::LinkageError : public ::java::lang::Error
{
public:
LinkageError ();
LinkageError (::java::lang::String *);
public:
static const jlong serialVersionUID = 3579600108157160122LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/IncompatibleClassChangeError.h" 2
class ::java::lang::IncompatibleClassChangeError : public ::java::lang::LinkageError
{
public:
IncompatibleClassChangeError ();
IncompatibleClassChangeError (::java::lang::String *);
public:
static const jlong serialVersionUID = -4914975503642802119LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/AbstractMethodError.h" 2
class ::java::lang::AbstractMethodError : public ::java::lang::IncompatibleClassChangeError
{
public:
AbstractMethodError ();
AbstractMethodError (::java::lang::String *);
public:
static const jlong serialVersionUID = -1654391082989018462LL;
public:
static ::java::lang::Class class$;
};
# 33 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/InstantiationException.h" 1
#pragma interface
class ::java::lang::InstantiationException : public ::java::lang::Exception
{
public:
InstantiationException ();
InstantiationException (::java::lang::String *);
public:
static const jlong serialVersionUID = -8441929162975509110LL;
public:
static ::java::lang::Class class$;
};
# 34 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/NoSuchFieldError.h" 1
#pragma interface
class ::java::lang::NoSuchFieldError : public ::java::lang::IncompatibleClassChangeError
{
public:
NoSuchFieldError ();
NoSuchFieldError (::java::lang::String *);
public:
static const jlong serialVersionUID = -3456430195886129035LL;
public:
static ::java::lang::Class class$;
};
# 35 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/NoSuchMethodError.h" 1
#pragma interface
class ::java::lang::NoSuchMethodError : public ::java::lang::IncompatibleClassChangeError
{
public:
NoSuchMethodError ();
NoSuchMethodError (::java::lang::String *);
public:
static const jlong serialVersionUID = -3765521442372831335LL;
public:
static ::java::lang::Class class$;
};
# 36 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/reflect/Constructor.h" 1
#pragma interface
class ::java::lang::reflect::Constructor : public ::java::lang::reflect::AccessibleObject
{
public:
jboolean equals (::java::lang::Object *);
::java::lang::Class *getDeclaringClass () { return declaringClass; }
JArray< ::java::lang::Class *> *getExceptionTypes ();
jint getModifiers ();
::java::lang::String *getName ();
JArray< ::java::lang::Class *> *getParameterTypes ();
jint hashCode ();
private:
void getType ();
public:
::java::lang::Object *newInstance (JArray< ::java::lang::Object *> *);
::java::lang::String *toString ();
private:
Constructor ();
::java::lang::Class *declaringClass;
JArray< ::java::lang::Class *> *exception_types;
JArray< ::java::lang::Class *> *parameter_types;
jint offset;
friend jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
friend class java::lang::Class;
friend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
public:
static ::java::lang::Class class$;
};
# 37 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/reflect/Method.h" 1
#pragma interface
class ::java::lang::reflect::Method : public ::java::lang::reflect::AccessibleObject
{
public:
jboolean equals (::java::lang::Object *);
::java::lang::Class *getDeclaringClass () { return declaringClass; }
JArray< ::java::lang::Class *> *getExceptionTypes ();
jint getModifiers ();
::java::lang::String *getName ();
private:
void getType ();
public:
JArray< ::java::lang::Class *> *getParameterTypes ();
::java::lang::Class *getReturnType ();
jint hashCode ();
::java::lang::Object *invoke (::java::lang::Object *, JArray< ::java::lang::Object *> *);
public:
static void appendClassName (::java::lang::StringBuffer *, ::java::lang::Class *);
public:
::java::lang::String *toString ();
private:
Method ();
::java::lang::Class *declaringClass;
JArray< ::java::lang::Class *> *exception_types;
::java::lang::String *name;
JArray< ::java::lang::Class *> *parameter_types;
::java::lang::Class *return_type;
jint offset;
friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
friend class java::lang::Class;
friend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID, jboolean);
public:
static ::java::lang::Class class$;
};
# 38 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/OutOfMemoryError.h" 1
#pragma interface
# 1 "java/lang/VirtualMachineError.h" 1
#pragma interface
class ::java::lang::VirtualMachineError : public ::java::lang::Error
{
public:
VirtualMachineError ();
VirtualMachineError (::java::lang::String *);
public:
static const jlong serialVersionUID = 4161983926571568670LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/OutOfMemoryError.h" 2
class ::java::lang::OutOfMemoryError : public ::java::lang::VirtualMachineError
{
public:
OutOfMemoryError ();
OutOfMemoryError (::java::lang::String *);
public:
static const jlong serialVersionUID = 8228564086184010517LL;
public:
static ::java::lang::Class class$;
};
# 40 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/util/IdentityHashMap.h" 1
#pragma interface
# 1 "java/util/AbstractMap.h" 1
#pragma interface
class ::java::util::AbstractMap : public ::java::lang::Object
{
public:
virtual void clear ();
public:
virtual ::java::lang::Object *clone ();
public:
virtual jboolean containsKey (::java::lang::Object *);
virtual jboolean containsValue (::java::lang::Object *);
virtual ::java::util::Set *entrySet () = 0;
virtual jboolean equals (::java::lang::Object *);
virtual ::java::lang::Object *get (::java::lang::Object *);
virtual jint hashCode ();
virtual jboolean isEmpty ();
virtual ::java::util::Set *keySet ();
virtual ::java::lang::Object *put (::java::lang::Object *, ::java::lang::Object *);
virtual void putAll (::java::util::Map *);
virtual ::java::lang::Object *remove (::java::lang::Object *);
virtual jint size ();
virtual ::java::lang::String *toString ();
virtual ::java::util::Collection *values ();
AbstractMap ();
private:
::java::util::Collection *valueCollection;
::java::util::Set *keySet__;
public:
static ::java::lang::Class class$;
};
# 9 "java/util/IdentityHashMap.h" 2
class ::java::util::IdentityHashMap : public ::java::util::AbstractMap
{
public:
IdentityHashMap ();
IdentityHashMap (jint);
IdentityHashMap (::java::util::Map *);
virtual void clear ();
virtual ::java::lang::Object *clone ();
virtual jboolean containsKey (::java::lang::Object *);
virtual jboolean containsValue (::java::lang::Object *);
virtual ::java::util::Set *entrySet ();
virtual ::java::lang::Object *get (::java::lang::Object *);
virtual jboolean isEmpty ();
virtual ::java::util::Set *keySet ();
virtual ::java::lang::Object *put (::java::lang::Object *, ::java::lang::Object *);
virtual ::java::lang::Object *remove (::java::lang::Object *);
virtual jint size () { return size__; }
virtual ::java::util::Collection *values ();
private:
void readObject (::java::io::ObjectInputStream *);
void writeObject (::java::io::ObjectOutputStream *);
static const jint DEFAULT_CAPACITY = 21L;
jint size__;
JArray< ::java::lang::Object *> *table;
::java::lang::Object *tombstone;
::java::lang::Object *emptyslot;
public:
static ::java::lang::Class class$;
};
# 41 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/Integer.h" 1
#pragma interface
# 1 "java/lang/Number.h" 1
#pragma interface
class ::java::lang::Number : public ::java::lang::Object
{
public:
virtual jbyte byteValue ();
virtual jshort shortValue ();
virtual jint intValue () = 0;
virtual jlong longValue () = 0;
virtual jfloat floatValue () = 0;
virtual jdouble doubleValue () = 0;
Number ();
private:
static const jlong serialVersionUID = -8742448824652078965LL;
public:
static ::java::lang::Class class$;
};
# 9 "java/lang/Integer.h" 2
class ::java::lang::Integer : public ::java::lang::Number
{
public:
Integer (jint);
Integer (::java::lang::String *);
jint hashCode () { return value; }
jboolean equals (::java::lang::Object *);
static ::java::lang::Integer *getInteger (::java::lang::String *);
static ::java::lang::Integer *getInteger (::java::lang::String *, jint);
static ::java::lang::Integer *getInteger (::java::lang::String *, ::java::lang::Integer *);
private:
static ::java::lang::String *toUnsignedString (jint, jint);
public:
static ::java::lang::String *toHexString (jint);
static ::java::lang::String *toOctalString (jint);
static ::java::lang::String *toBinaryString (jint);
static ::java::lang::String *toString (jint);
::java::lang::String *toString ();
static ::java::lang::String *toString (jint, jint);
static ::java::lang::Integer *valueOf (::java::lang::String *);
static ::java::lang::Integer *valueOf (::java::lang::String *, jint);
static jint parseInt (::java::lang::String *);
static jint parseInt (::java::lang::String *, jint);
private:
static jint parseInt (::java::lang::String *, jint, jint, jboolean, jint);
public:
static ::java::lang::Integer *decode (::java::lang::String *);
jbyte byteValue ();
jshort shortValue ();
jint intValue () { return value; }
jlong longValue ();
jfloat floatValue ();
jdouble doubleValue ();
jint compareTo (::java::lang::Integer *);
jint compareTo (::java::lang::Object *);
private:
static const jlong serialVersionUID = 1360826667806852920LL;
public:
static const jint MIN_VALUE = -2147483647L - 1;
static const jint MAX_VALUE = 2147483647L;
static ::java::lang::Class *TYPE;
private:
jint value;
public:
static ::java::lang::Class class$;
};
# 42 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/ThreadGroup.h" 1
#pragma interface
class ::java::lang::ThreadGroup : public ::java::lang::Object
{
private:
ThreadGroup ();
public:
ThreadGroup (::java::lang::String *);
ThreadGroup (::java::lang::ThreadGroup *, ::java::lang::String *);
::java::lang::String *getName () { return name; }
::java::lang::ThreadGroup *getParent () { return parent; }
void setMaxPriority (jint);
jint getMaxPriority () { return maxpri; }
void setDaemon (jboolean);
jboolean isDaemon () { return daemon_flag; }
virtual jboolean isDestroyed ();
jboolean parentOf (::java::lang::ThreadGroup *);
virtual jint activeCount ();
virtual jint activeGroupCount ();
virtual jint enumerate (JArray< ::java::lang::Thread *> *);
virtual jint enumerate (JArray< ::java::lang::Thread *> *, jboolean);
private:
jint enumerate (JArray< ::java::lang::Thread *> *, jint, jboolean);
public:
virtual jint enumerate (JArray< ::java::lang::ThreadGroup *> *);
virtual jint enumerate (JArray< ::java::lang::ThreadGroup *> *, jboolean);
private:
jint enumerate (JArray< ::java::lang::ThreadGroup *> *, jint, jboolean);
public:
void interrupt ();
void stop ();
void suspend ();
void resume ();
private:
void checkDestroy ();
public:
void destroy ();
virtual void list ();
private:
void list (::java::lang::String *);
public:
virtual void uncaughtException (::java::lang::Thread *, ::java::lang::Throwable *);
virtual jboolean allowThreadSuspension (jboolean);
virtual ::java::lang::String *toString ();
void checkAccess ();
public:
void addThread (::java::lang::Thread *);
void removeThread (::java::lang::Thread *);
void addGroup (::java::lang::ThreadGroup *);
void removeGroup (::java::lang::ThreadGroup *);
static ::java::lang::ThreadGroup *root;
static jboolean had_uncaught_exception;
private:
::java::lang::ThreadGroup *parent;
::java::lang::String *name;
::java::util::Vector *threads;
::java::util::Vector *groups;
jboolean daemon_flag;
jint maxpri;
public:
static ::java::lang::Class class$;
};
# 43 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "java/lang/Thread.h" 1
#pragma interface
class _Jv_JNIEnv;
class ::java::lang::Thread : public ::java::lang::Object
{
public:
static jint activeCount ();
void checkAccess ();
virtual jint countStackFrames ();
static ::java::lang::Thread *currentThread ();
virtual void destroy ();
static void dumpStack ();
static jint enumerate (JArray< ::java::lang::Thread *> *);
::java::lang::String *getName () { return name; }
jint getPriority () { return priority; }
::java::lang::ThreadGroup *getThreadGroup () { return group; }
virtual void interrupt ();
static jboolean interrupted ();
virtual jboolean isInterrupted () { return interrupt_flag; }
jboolean isAlive () { return alive_flag; }
jboolean isDaemon () { return daemon_flag; }
void join ();
void join (jlong);
void join (jlong, jint);
void resume ();
private:
void finish_ ();
jboolean isInterrupted (jboolean);
public:
virtual void run ();
void setDaemon (jboolean);
virtual ::java::lang::ClassLoader *getContextClassLoader ();
virtual void setContextClassLoader (::java::lang::ClassLoader *);
void setName (::java::lang::String *);
void setPriority (jint);
static void sleep (jlong);
static void sleep (jlong, jint);
virtual void start ();
void stop ();
void stop (::java::lang::Throwable *);
void suspend ();
private:
void initialize_native ();
static ::java::lang::String *gen_name ();
public:
Thread (::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
private:
Thread (::java::lang::Thread *, ::java::lang::ThreadGroup *, ::java::lang::Runnable *, ::java::lang::String *);
public:
Thread ();
Thread (::java::lang::Runnable *);
Thread (::java::lang::String *);
Thread (::java::lang::ThreadGroup *, ::java::lang::Runnable *);
Thread (::java::lang::ThreadGroup *, ::java::lang::String *);
Thread (::java::lang::Runnable *, ::java::lang::String *);
virtual ::java::lang::String *toString ();
static void yield ();
static const jint MAX_PRIORITY = 10L;
static const jint MIN_PRIORITY = 1L;
static const jint NORM_PRIORITY = 5L;
private:
::java::lang::ThreadGroup *group;
::java::lang::String *name;
::java::lang::Runnable *runnable;
jint priority;
jboolean daemon_flag;
public:
jboolean interrupt_flag;
private:
jboolean alive_flag;
jboolean startable_flag;
::java::lang::ClassLoader *context_class_loader;
::java::lang::Object *data;
friend _Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();
friend void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);
friend void _Jv_ThreadRun (java::lang::Thread* thread);
friend jint _Jv_AttachCurrentThread(java::lang::Thread* thread);
friend java::lang::Thread* _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);
friend jint _Jv_DetachCurrentThread ();
public:
static ::java::lang::Class class$;
};
# 44 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "/home/oldham/gcc/gcc2/libjava/gcj/method.h" 1
# 16 "/home/oldham/gcc/gcc2/libjava/gcj/method.h"
extern inline jmethodID
_Jv_FromReflectedMethod (java::lang::reflect::Method *method)
{
return (jmethodID)
((char *) method->declaringClass->methods + method->offset);
}
extern inline jmethodID
_Jv_FromReflectedConstructor (java::lang::reflect::Constructor *constructor)
{
return (jmethodID)
((char *) constructor->declaringClass->methods + constructor->offset);
}
extern inline jint
JvNumMethods (jclass klass)
{
return klass->method_count;
}
extern inline jmethodID
JvGetFirstMethod (jclass klass)
{
return &klass->methods[0];
}
# 46 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
# 1 "/home/oldham/gcc/gcc2/libjava/include/java-interp.h" 1
# 15 "/home/oldham/gcc/gcc2/libjava/include/java-interp.h"
# 1 "/home/oldham/gcc/gcc2/libjava/include/java-cpool.h" 1
# 34 "/home/oldham/gcc/gcc2/libjava/include/java-cpool.h"
extern inline void
_Jv_storeIndexes (_Jv_word *data,
_Jv_ushort index0,
_Jv_ushort index1)
{
data->i = (((jint)index0) << 16) | (jint) index1;
}
extern inline void
_Jv_loadIndexes (const _Jv_word *data,
_Jv_ushort& index0,
_Jv_ushort& index1)
{
jint udata = data->i;
_Jv_uint uindex0 = ((udata >> 16) & 0xffff);
_Jv_uint uindex1 = udata & 0xffff;
index0 = uindex0;
index1 = uindex1;
}
extern inline void
_Jv_storeFloat (_Jv_word *data, jfloat f)
{
data->f = f;
}
extern inline jfloat
_Jv_loadFloat (_Jv_word *data)
{
return data->f;
}
extern inline void
_Jv_storeInt (_Jv_word *data, jint i)
{
data->i = i;
}
extern inline jint
_Jv_loadInt (_Jv_word *data)
{
return data->i;
}
extern inline void
_Jv_storeLong (_Jv_word *data, jlong l)
{
_Jv_word2 tmp;
tmp.l = l;
data[0].ia[0] = tmp.ia[0];
data[1].ia[0] = tmp.ia[1];
}
extern inline jlong
_Jv_loadLong (_Jv_word *data)
{
_Jv_word2 tmp;
tmp.ia[0] = data[0].ia[0];
tmp.ia[1] = data[1].ia[0];
return tmp.l;
}
extern inline void
_Jv_storeDouble (_Jv_word *data, jdouble d)
{
_Jv_word2 tmp;
tmp.d = d;
data[0].ia[0] = tmp.ia[0];
data[1].ia[0] = tmp.ia[1];
}
extern inline jdouble
_Jv_loadDouble (_Jv_word *data)
{
_Jv_word2 tmp;
tmp.ia[0] = data[0].ia[0];
tmp.ia[1] = data[1].ia[0];
return tmp.d;
}
# 16 "/home/oldham/gcc/gcc2/libjava/include/java-interp.h" 2
#pragma interface
extern "C" {
# 1 "../libffi/include/ffi.h" 1
# 55 "../libffi/include/ffi.h"
extern "C" {
# 1 "../libffi/include/fficonfig.h" 1
# 64 "../libffi/include/ffi.h" 2
# 1 "/home/oldham/gcc/gcc2/objdir/gcc/include/stddef.h" 1 3
# 67 "../libffi/include/ffi.h" 2
# 175 "../libffi/include/ffi.h"
typedef enum ffi_abi {
FFI_FIRST_ABI = 0,
# 194 "../libffi/include/ffi.h"
FFI_SYSV,
FFI_DEFAULT_ABI = FFI_SYSV,
# 243 "../libffi/include/ffi.h"
FFI_LAST_ABI
} ffi_abi;
typedef struct _ffi_type
{
size_t size;
unsigned short alignment;
unsigned short type;
struct _ffi_type **elements;
} ffi_type;
extern ffi_type ffi_type_void;
extern ffi_type ffi_type_uint8;
extern ffi_type ffi_type_sint8;
extern ffi_type ffi_type_uint16;
extern ffi_type ffi_type_sint16;
extern ffi_type ffi_type_uint32;
extern ffi_type ffi_type_sint32;
extern ffi_type ffi_type_uint64;
extern ffi_type ffi_type_sint64;
extern ffi_type ffi_type_float;
extern ffi_type ffi_type_double;
extern ffi_type ffi_type_longdouble;
extern ffi_type ffi_type_pointer;
typedef enum {
FFI_OK = 0,
FFI_BAD_TYPEDEF,
FFI_BAD_ABI
} ffi_status;
typedef unsigned FFI_TYPE;
typedef struct {
ffi_abi abi;
unsigned nargs;
ffi_type **arg_types;
ffi_type *rtype;
unsigned bytes;
unsigned flags;
} ffi_cif;
# 316 "../libffi/include/ffi.h"
typedef union {
int sint;
unsigned int uint;
float flt;
char data[4];
void* ptr;
} ffi_raw;
void ffi_raw_call ( ffi_cif *cif,
void (*fn)(),
void *rvalue,
ffi_raw *avalue);
void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
size_t ffi_raw_size (ffi_cif *cif);
void ffi_java_raw_call ( ffi_cif *cif,
void (*fn)(),
void *rvalue,
ffi_raw *avalue);
void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
size_t ffi_java_raw_size (ffi_cif *cif);
# 404 "../libffi/include/ffi.h"
typedef struct {
char tramp[10];
ffi_cif *cif;
void (*fun)(ffi_cif*,void*,void**,void*);
void *user_data;
} ffi_closure;
ffi_status
ffi_prep_closure (ffi_closure*,
ffi_cif *,
void (*fun)(ffi_cif*,void*,void**,void*),
void *user_data);
typedef struct {
char tramp[10];
ffi_cif *cif;
# 435 "../libffi/include/ffi.h"
void (*fun)(ffi_cif*,void*,ffi_raw*,void*);
void *user_data;
} ffi_raw_closure;
ffi_status
ffi_prep_raw_closure (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data);
ffi_status
ffi_prep_java_raw_closure (ffi_raw_closure*,
ffi_cif *cif,
void (*fun)(ffi_cif*,void*,ffi_raw*,void*),
void *user_data);
ffi_status ffi_prep_cif( ffi_cif *cif,
ffi_abi abi,
unsigned int nargs,
ffi_type *rtype,
ffi_type **atypes);
void ffi_call( ffi_cif *cif,
void (*fn)(),
void *rvalue,
void **avalue);
# 502 "../libffi/include/ffi.h"
}
# 26 "/home/oldham/gcc/gcc2/libjava/include/java-interp.h" 2
}
extern inline jboolean
_Jv_IsInterpretedClass (jclass c)
{
return (c->loader != 0);
}
struct _Jv_ResolvedMethod;
bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig);
bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig);
bool _Jv_VerifyClassName (unsigned char* ptr, _Jv_ushort length);
bool _Jv_VerifyClassName (_Jv_Utf8Const *name);
bool _Jv_VerifyIdentifier (_Jv_Utf8Const *);
bool _Jv_ClassNameSamePackage (_Jv_Utf8Const *name1, _Jv_Utf8Const *name2);
void _Jv_DefineClass (jclass, jbyteArray, jint, jint);
void _Jv_InitField (jobject, jclass, int);
void * _Jv_AllocMethodInvocation (jsize size);
class _Jv_InterpClass;
class _Jv_InterpMethod;
class _Jv_InterpMethodInvocation;
class _Jv_InterpException {
int start_pc;
int end_pc;
int handler_pc;
int handler_type;
friend class _Jv_ClassReader;
friend class _Jv_InterpMethod;
};
class _Jv_MethodBase
{
protected:
_Jv_InterpClass *defining_class;
_Jv_Method *self;
_Jv_ushort args_raw_size;
public:
_Jv_Method *get_method ()
{
return self;
}
};
class _Jv_InterpMethod : public _Jv_MethodBase
{
_Jv_ushort max_stack;
_Jv_ushort max_locals;
int code_length;
_Jv_ushort exc_count;
unsigned char* bytecode ()
{
return
((unsigned char*)this)
+ (((((unsigned) ((sizeof (_Jv_InterpMethod) + exc_count*sizeof (_Jv_InterpException))))-1) | ((4)-1))+1);
}
_Jv_InterpException * exceptions ()
{
return (_Jv_InterpException*) (this+1);
}
static size_t size (int exc_count, int code_length)
{
return
(((((unsigned) ((sizeof (_Jv_InterpMethod) + (exc_count * sizeof (_Jv_InterpException)))))-1) | ((4)-1))+1)
+ code_length;
}
void *ncode ();
void continue1 (_Jv_InterpMethodInvocation *inv);
static void run_normal (ffi_cif*, void*, ffi_raw*, void*);
static void run_synch_object (ffi_cif*, void*, ffi_raw*, void*);
static void run_synch_class (ffi_cif*, void*, ffi_raw*, void*);
inline jobject run (ffi_cif*, void*, ffi_raw*,
_Jv_InterpMethodInvocation*);
bool find_exception (jobject ex,
_Jv_InterpMethodInvocation *inv);
public:
static void dump_object(jobject o);
friend class _Jv_ClassReader;
friend class _Jv_InterpMethodInvocation;
friend void _Jv_PrepareClass(jclass);
};
class _Jv_InterpMethodInvocation {
_Jv_InterpMethod *running;
_Jv_word *sp;
unsigned char *pc;
_Jv_word state[0];
_Jv_word* stack_base () { return &state[0]; }
_Jv_word* local_base () { return &state[running->max_stack]; }
friend class _Jv_InterpMethod;
};
class _Jv_InterpClass : public java::lang::Class
{
_Jv_MethodBase **interpreted_methods;
_Jv_ushort *field_initializers;
friend class _Jv_ClassReader;
friend class _Jv_InterpMethod;
friend void _Jv_PrepareClass(jclass);
friend void _Jv_InitField (jobject, jclass, int);
friend void *_Jv_MarkObj (void *, void *, void *, void *);
friend _Jv_MethodBase ** _Jv_GetFirstMethod (_Jv_InterpClass *klass);
};
extern inline _Jv_MethodBase **
_Jv_GetFirstMethod (_Jv_InterpClass *klass)
{
return klass->interpreted_methods;
}
struct _Jv_ResolvedMethod {
jint stack_item_count;
jint vtable_index;
jclass klass;
_Jv_Method* method;
ffi_cif cif;
ffi_type * arg_types[0];
};
class _Jv_JNIMethod : public _Jv_MethodBase
{
void *function;
ffi_cif jni_cif;
ffi_type **jni_arg_types;
static void call (ffi_cif *, void *, ffi_raw *, void *);
void *ncode ();
friend class _Jv_ClassReader;
friend void _Jv_PrepareClass(jclass);
public:
void set_function (void *f)
{
function = f;
}
};
# 49 "/home/oldham/gcc/gcc2/libjava/jni.cc" 2
enum invocation_type
{
normal,
nonvirtual,
static_type,
constructor
};
extern struct JNINativeInterface _Jv_JNIFunctions;
extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
# 77 "/home/oldham/gcc/gcc2/libjava/jni.cc"
struct _Jv_JNI_LocalFrame
{
int marker : 2;
int size : 30;
_Jv_JNI_LocalFrame *next;
jobject vec[0];
};
static java::util::IdentityHashMap *local_ref_table;
static java::util::IdentityHashMap *global_ref_table;
static JavaVM *the_vm;
static JVMPI_Interface _Jv_JVMPI_Interface;
static jint
jvmpiEnableEvent (jint event_type, void *)
{
switch (event_type)
{
case 27:
_Jv_JVMPI_Notify_OBJECT_ALLOC = _Jv_JVMPI_Interface.NotifyEvent;
break;
case 35:
_Jv_JVMPI_Notify_THREAD_START = _Jv_JVMPI_Interface.NotifyEvent;
break;
case 34:
_Jv_JVMPI_Notify_THREAD_END = _Jv_JVMPI_Interface.NotifyEvent;
break;
default:
return 2;
}
return 0;
}
static jint
jvmpiDisableEvent (jint event_type, void *)
{
switch (event_type)
{
case 27:
_Jv_JVMPI_Notify_OBJECT_ALLOC = __null;
break;
default:
return 2;
}
return 0;
}
void
_Jv_JNI_Init (void)
{
local_ref_table = new java::util::IdentityHashMap;
global_ref_table = new java::util::IdentityHashMap;
_Jv_JVMPI_Interface.version = 1;
_Jv_JVMPI_Interface.EnableEvent = &jvmpiEnableEvent;
_Jv_JVMPI_Interface.DisableEvent = &jvmpiDisableEvent;
_Jv_JVMPI_Interface.EnableGC = &_Jv_EnableGC;
_Jv_JVMPI_Interface.DisableGC = &_Jv_DisableGC;
_Jv_JVMPI_Interface.RunGC = &_Jv_RunGC;
}
static void
mark_for_gc (jobject obj, java::util::IdentityHashMap *ref_table)
{
JvSynchronize sync (ref_table);
using namespace java::lang;
Integer *refcount = (Integer *) ref_table->get (obj);
jint val = (refcount == __null) ? 0 : refcount->intValue ();
ref_table->put (obj, new Integer (val + 1));
}
static void
unmark_for_gc (jobject obj, java::util::IdentityHashMap *ref_table)
{
JvSynchronize sync (ref_table);
using namespace java::lang;
Integer *refcount = (Integer *) ref_table->get (obj);
# 185 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
jint val = refcount->intValue () - 1;
# 187 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
if (val == 0)
ref_table->remove (obj);
else
ref_table->put (obj, new Integer (val));
}
static jobject
_Jv_JNI_NewGlobalRef (JNIEnv *, jobject obj)
{
mark_for_gc (obj, global_ref_table);
return obj;
}
static void
_Jv_JNI_DeleteGlobalRef (JNIEnv *, jobject obj)
{
unmark_for_gc (obj, global_ref_table);
}
static void
_Jv_JNI_DeleteLocalRef (JNIEnv *env, jobject obj)
{
_Jv_JNI_LocalFrame *frame;
for (frame = env->locals; frame != __null; frame = frame->next)
{
for (int i = 0; i < 32; ++i)
{
if (frame->vec[i] == obj)
{
frame->vec[i] = __null;
unmark_for_gc (obj, local_ref_table);
return;
}
}
# 228 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
}
# 231 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
}
static jint
_Jv_JNI_EnsureLocalCapacity (JNIEnv *env, jint size)
{
_Jv_JNI_LocalFrame *frame;
try
{
frame = (_Jv_JNI_LocalFrame *) _Jv_Malloc (sizeof (_Jv_JNI_LocalFrame)
+ size * sizeof (jobject));
}
catch (jthrowable t)
{
env->ex = t;
return -1;
}
frame->marker = 0;
frame->size = size;
memset (&frame->vec[0], 0, size * sizeof (jobject));
frame->next = env->locals;
env->locals = frame;
return 0;
}
static jint
_Jv_JNI_PushLocalFrame (JNIEnv *env, jint size)
{
jint r = _Jv_JNI_EnsureLocalCapacity (env, size);
if (r < 0)
return r;
env->locals->marker = 1;
return 0;
}
static jobject
_Jv_JNI_NewLocalRef (JNIEnv *env, jobject obj)
{
_Jv_JNI_LocalFrame *frame = env->locals;
bool done = false, set = false;
for (; frame != __null && ! done; frame = frame->next)
{
for (int i = 0; i < frame->size; ++i)
{
if (frame->vec[i] == __null)
{
set = true;
done = true;
frame->vec[i] = obj;
break;
}
}
if (done || frame->marker != 0)
break;
}
if (! set)
{
_Jv_JNI_EnsureLocalCapacity (env, 16);
env->locals->vec[0] = obj;
}
mark_for_gc (obj, local_ref_table);
return obj;
}
static jobject
_Jv_JNI_PopLocalFrame (JNIEnv *env, jobject result, int stop)
{
_Jv_JNI_LocalFrame *rf = env->locals;
bool done = false;
while (rf != __null && ! done)
{
for (int i = 0; i < rf->size; ++i)
if (rf->vec[i] != __null)
unmark_for_gc (rf->vec[i], local_ref_table);
done = (rf->marker == stop);
_Jv_JNI_LocalFrame *n = rf->next;
if (n == __null)
{
memset (&rf->vec[0], 0, rf->size * sizeof (jobject));
break;
}
_Jv_Free (rf);
rf = n;
}
env->locals = rf;
return result == __null ? __null : _Jv_JNI_NewLocalRef (env, result);
}
static jobject
_Jv_JNI_PopLocalFrame (JNIEnv *env, jobject result)
{
return _Jv_JNI_PopLocalFrame (env, result, 1);
}
extern "C" void
_Jv_JNI_PopSystemFrame (JNIEnv *env)
{
_Jv_JNI_PopLocalFrame (env, __null, 2);
if (env->ex)
{
jthrowable t = env->ex;
env->ex = __null;
throw t;
}
}
template<typename T>
static T
wrap_value (JNIEnv *, T value)
{
return value;
}
template<typename T>
static T *
wrap_value (JNIEnv *env, T *value)
{
return (value == __null
? value
: (T *) _Jv_JNI_NewLocalRef (env, (jobject) value));
}
static jint
_Jv_JNI_GetVersion (JNIEnv *)
{
return 0x00010002;
}
static jclass
_Jv_JNI_DefineClass (JNIEnv *env, jobject loader,
const jbyte *buf, jsize bufLen)
{
try
{
jbyteArray bytes = JvNewByteArray (bufLen);
jbyte *elts = elements (bytes);
memcpy (elts, buf, bufLen * sizeof (jbyte));
java::lang::ClassLoader *l
= reinterpret_cast<java::lang::ClassLoader *> (loader);
jclass result = l->defineClass (bytes, 0, bufLen);
return (jclass) wrap_value (env, result);
}
catch (jthrowable t)
{
env->ex = t;
return __null;
}
}
static jclass
_Jv_JNI_FindClass (JNIEnv *env, const char *name)
{
int len = strlen (name);
char s[len + 1];
for (int i = 0; i <= len; ++i)
s[i] = (name[i] == '/') ? '.' : name[i];
jclass r = __null;
try
{
jstring n = JvNewStringUTF (s);
java::lang::ClassLoader *loader = __null;
if (env->klass != __null)
loader = env->klass->getClassLoader ();
if (loader == __null)
{
loader = java::lang::ClassLoader::getSystemClassLoader ();
}
r = loader->loadClass (n);
}
catch (jthrowable t)
{
env->ex = t;
}
return (jclass) wrap_value (env, r);
}
static jclass
_Jv_JNI_GetSuperclass (JNIEnv *env, jclass clazz)
{
return (jclass) wrap_value (env, clazz->getSuperclass ());
}
static jboolean
_Jv_JNI_IsAssignableFrom(JNIEnv *, jclass clazz1, jclass clazz2)
{
return clazz1->isAssignableFrom (clazz2);
}
static jint
_Jv_JNI_Throw (JNIEnv *env, jthrowable obj)
{
# 474 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
env->ex = obj;
return 0;
}
static jint
_Jv_JNI_ThrowNew (JNIEnv *env, jclass clazz, const char *message)
{
using namespace java::lang::reflect;
# 484 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
int r = 0;
try
{
JArray<jclass> *argtypes
= (JArray<jclass> *) JvNewObjectArray (1, &java::lang::Class::class$,
__null);
jclass *elts = elements (argtypes);
elts[0] = &java::lang::String::class$;
Constructor *cons = clazz->getConstructor (argtypes);
jobjectArray values = JvNewObjectArray (1, &java::lang::String::class$, __null);
jobject *velts = elements (values);
velts[0] = JvNewStringUTF (message);
jobject obj = cons->newInstance (values);
env->ex = reinterpret_cast<jthrowable> (obj);
}
catch (jthrowable t)
{
env->ex = t;
r = -1;
}
return r;
}
static jthrowable
_Jv_JNI_ExceptionOccurred (JNIEnv *env)
{
return (jthrowable) wrap_value (env, env->ex);
}
static void
_Jv_JNI_ExceptionDescribe (JNIEnv *env)
{
if (env->ex != __null)
env->ex->printStackTrace();
}
static void
_Jv_JNI_ExceptionClear (JNIEnv *env)
{
env->ex = __null;
}
static jboolean
_Jv_JNI_ExceptionCheck (JNIEnv *env)
{
return env->ex != __null;
}
static void
_Jv_JNI_FatalError (JNIEnv *, const char *message)
{
_Jv_Abort (0, 0, 0, message);
}
static jboolean
_Jv_JNI_IsSameObject (JNIEnv *, jobject obj1, jobject obj2)
{
return obj1 == obj2;
}
static jobject
_Jv_JNI_AllocObject (JNIEnv *env, jclass clazz)
{
jobject obj = __null;
using namespace java::lang::reflect;
try
{
# 562 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
if (clazz->isInterface() || Modifier::isAbstract(clazz->getModifiers()))
env->ex = new java::lang::InstantiationException ();
else
{
obj = JvAllocObject (clazz);
}
}
catch (jthrowable t)
{
env->ex = t;
}
return wrap_value (env, obj);
}
static jclass
_Jv_JNI_GetObjectClass (JNIEnv *env, jobject obj)
{
# 582 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
return (jclass) wrap_value (env, obj->getClass());
}
static jboolean
_Jv_JNI_IsInstanceOf (JNIEnv *, jobject obj, jclass clazz)
{
return clazz->isInstance(obj);
}
template<jboolean is_static>
static jmethodID
_Jv_JNI_GetAnyMethodID (JNIEnv *env, jclass clazz,
const char *name, const char *sig)
{
try
{
_Jv_InitClass (clazz);
_Jv_Utf8Const *name_u = _Jv_makeUtf8Const ((char *) name, -1);
int len = strlen (sig);
char s[len + 1];
for (int i = 0; i <= len; ++i)
s[i] = (sig[i] == '/') ? '.' : sig[i];
_Jv_Utf8Const *sig_u = _Jv_makeUtf8Const ((char *) s, -1);
# 616 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
using namespace java::lang::reflect;
while (clazz != __null)
{
jint count = JvNumMethods (clazz);
jmethodID meth = JvGetFirstMethod (clazz);
for (jint i = 0; i < count; ++i)
{
if (((is_static && Modifier::isStatic (meth->accflags))
|| (! is_static && ! Modifier::isStatic (meth->accflags)))
&& _Jv_equalUtf8Consts (meth->name, name_u)
&& _Jv_equalUtf8Consts (meth->signature, sig_u))
return meth;
meth = meth->getNextMethod();
}
clazz = clazz->getSuperclass ();
}
env->ex = new java::lang::NoSuchMethodError ();
}
catch (jthrowable t)
{
env->ex = t;
}
return __null;
}
static void
array_from_valist (jvalue *values, JArray<jclass> *arg_types, va_list vargs)
{
jclass *arg_elts = elements (arg_types);
for (int i = 0; i < arg_types->length; ++i)
{
if (arg_elts[i] == (& _Jv_byteClass))
values[i].b = __builtin_va_arg (vargs, jbyte);
else if (arg_elts[i] == (& _Jv_shortClass))
values[i].s = __builtin_va_arg (vargs, jshort);
else if (arg_elts[i] == (& _Jv_intClass))
values[i].i = __builtin_va_arg (vargs, jint);
else if (arg_elts[i] == (& _Jv_longClass))
values[i].j = __builtin_va_arg (vargs, jlong);
else if (arg_elts[i] == (& _Jv_floatClass))
values[i].f = __builtin_va_arg (vargs, jfloat);
else if (arg_elts[i] == (& _Jv_doubleClass))
values[i].d = __builtin_va_arg (vargs, jdouble);
else if (arg_elts[i] == (& _Jv_booleanClass))
values[i].z = __builtin_va_arg (vargs, jboolean);
else if (arg_elts[i] == (& _Jv_charClass))
values[i].c = __builtin_va_arg (vargs, jchar);
else
{
values[i].l = __builtin_va_arg (vargs, jobject);
}
}
}
template<typename T, invocation_type style>
static T
_Jv_JNI_CallAnyMethodV (JNIEnv *env, jobject obj, jclass klass,
jmethodID id, va_list vargs)
{
if (style == normal)
id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
jclass decl_class = klass ? klass : obj->getClass ();
# 693 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
jclass return_type;
JArray<jclass> *arg_types;
try
{
_Jv_GetTypesFromSignature (id, decl_class,
&arg_types, &return_type);
jvalue args[arg_types->length];
array_from_valist (args, arg_types, vargs);
if (style == constructor)
return_type = klass;
jvalue result;
jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
style == constructor,
arg_types, args, &result);
if (ex != __null)
env->ex = ex;
return wrap_value (env, * (T *) &result);
}
catch (jthrowable t)
{
env->ex = t;
}
return wrap_value (env, (T) 0);
}
template<typename T, invocation_type style>
static T
_Jv_JNI_CallAnyMethod (JNIEnv *env, jobject obj, jclass klass,
jmethodID method, ...)
{
va_list args;
T result;
__builtin_stdarg_start((args),method);
result = _Jv_JNI_CallAnyMethodV<T, style> (env, obj, klass, method, args);
__builtin_va_end (args);
return result;
}
template<typename T, invocation_type style>
static T
_Jv_JNI_CallAnyMethodA (JNIEnv *env, jobject obj, jclass klass,
jmethodID id, jvalue *args)
{
if (style == normal)
id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
jclass decl_class = klass ? klass : obj->getClass ();
# 753 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
jclass return_type;
JArray<jclass> *arg_types;
try
{
_Jv_GetTypesFromSignature (id, decl_class,
&arg_types, &return_type);
if (style == constructor)
return_type = klass;
jvalue result;
jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
style == constructor,
arg_types, args, &result);
if (ex != __null)
env->ex = ex;
return wrap_value (env, * (T *) &result);
}
catch (jthrowable t)
{
env->ex = t;
}
return wrap_value (env, (T) 0);
}
template<invocation_type style>
static void
_Jv_JNI_CallAnyVoidMethodV (JNIEnv *env, jobject obj, jclass klass,
jmethodID id, va_list vargs)
{
if (style == normal)
id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
jclass decl_class = klass ? klass : obj->getClass ();
# 794 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
jclass return_type;
JArray<jclass> *arg_types;
try
{
_Jv_GetTypesFromSignature (id, decl_class,
&arg_types, &return_type);
jvalue args[arg_types->length];
array_from_valist (args, arg_types, vargs);
if (style == constructor)
return_type = klass;
jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
style == constructor,
arg_types, args, __null);
if (ex != __null)
env->ex = ex;
}
catch (jthrowable t)
{
env->ex = t;
}
}
template<invocation_type style>
static void
_Jv_JNI_CallAnyVoidMethod (JNIEnv *env, jobject obj, jclass klass,
jmethodID method, ...)
{
va_list args;
__builtin_stdarg_start((args),method);
_Jv_JNI_CallAnyVoidMethodV<style> (env, obj, klass, method, args);
__builtin_va_end (args);
}
template<invocation_type style>
static void
_Jv_JNI_CallAnyVoidMethodA (JNIEnv *env, jobject obj, jclass klass,
jmethodID id, jvalue *args)
{
if (style == normal)
id = _Jv_LookupDeclaredMethod (obj->getClass (), id->name, id->signature);
jclass decl_class = klass ? klass : obj->getClass ();
# 844 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
jclass return_type;
JArray<jclass> *arg_types;
try
{
_Jv_GetTypesFromSignature (id, decl_class,
&arg_types, &return_type);
jthrowable ex = _Jv_CallAnyMethodA (obj, return_type, id,
style == constructor,
arg_types, args, __null);
if (ex != __null)
env->ex = ex;
}
catch (jthrowable t)
{
env->ex = t;
}
}
template<typename T>
static T
_Jv_JNI_CallMethodV (JNIEnv *env, jobject obj, jmethodID id, va_list args)
{
return _Jv_JNI_CallAnyMethodV<T, normal> (env, obj, __null, id, args);
}
template<typename T>
static T
_Jv_JNI_CallMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
{
va_list args;
T result;
__builtin_stdarg_start((args),id);
result = _Jv_JNI_CallAnyMethodV<T, normal> (env, obj, __null, id, args);
__builtin_va_end (args);
return result;
}
template<typename T>
static T
_Jv_JNI_CallMethodA (JNIEnv *env, jobject obj, jmethodID id, jvalue *args)
{
return _Jv_JNI_CallAnyMethodA<T, normal> (env, obj, __null, id, args);
}
static void
_Jv_JNI_CallVoidMethodV (JNIEnv *env, jobject obj, jmethodID id, va_list args)
{
_Jv_JNI_CallAnyVoidMethodV<normal> (env, obj, __null, id, args);
}
static void
_Jv_JNI_CallVoidMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
{
va_list args;
__builtin_stdarg_start((args),id);
_Jv_JNI_CallAnyVoidMethodV<normal> (env, obj, __null, id, args);
__builtin_va_end (args);
}
static void
_Jv_JNI_CallVoidMethodA (JNIEnv *env, jobject obj, jmethodID id, jvalue *args)
{
_Jv_JNI_CallAnyVoidMethodA<normal> (env, obj, __null, id, args);
}
template<typename T>
static T
_Jv_JNI_CallStaticMethodV (JNIEnv *env, jclass klass,
jmethodID id, va_list args)
{
# 929 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
# 930 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
return _Jv_JNI_CallAnyMethodV<T, static_type> (env, __null, klass, id, args);
}
template<typename T>
static T
_Jv_JNI_CallStaticMethod (JNIEnv *env, jclass klass, jmethodID id, ...)
{
va_list args;
T result;
# 944 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
# 945 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
__builtin_stdarg_start((args),id);
result = _Jv_JNI_CallAnyMethodV<T, static_type> (env, __null, klass,
id, args);
__builtin_va_end (args);
return result;
}
template<typename T>
static T
_Jv_JNI_CallStaticMethodA (JNIEnv *env, jclass klass, jmethodID id,
jvalue *args)
{
# 962 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
# 963 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
return _Jv_JNI_CallAnyMethodA<T, static_type> (env, __null, klass, id, args);
}
static void
_Jv_JNI_CallStaticVoidMethodV (JNIEnv *env, jclass klass, jmethodID id,
va_list args)
{
_Jv_JNI_CallAnyVoidMethodV<static_type> (env, __null, klass, id, args);
}
static void
_Jv_JNI_CallStaticVoidMethod (JNIEnv *env, jclass klass, jmethodID id, ...)
{
va_list args;
__builtin_stdarg_start((args),id);
_Jv_JNI_CallAnyVoidMethodV<static_type> (env, __null, klass, id, args);
__builtin_va_end (args);
}
static void
_Jv_JNI_CallStaticVoidMethodA (JNIEnv *env, jclass klass, jmethodID id,
jvalue *args)
{
_Jv_JNI_CallAnyVoidMethodA<static_type> (env, __null, klass, id, args);
}
static jobject
_Jv_JNI_NewObjectV (JNIEnv *env, jclass klass,
jmethodID id, va_list args)
{
# 996 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
;
return _Jv_JNI_CallAnyMethodV<jobject, constructor> (env, __null, klass,
id, args);
}
static jobject
_Jv_JNI_NewObject (JNIEnv *env, jclass klass, jmethodID id, ...)
{
# 1010 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
;
va_list args;
jobject result;
__builtin_stdarg_start((args),id);
result = _Jv_JNI_CallAnyMethodV<jobject, constructor> (env, __null, klass,
id, args);
__builtin_va_end (args);
return result;
}
static jobject
_Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
jvalue *args)
{
# 1032 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
;
return _Jv_JNI_CallAnyMethodA<jobject, constructor> (env, __null, klass,
id, args);
}
template<typename T>
static T
_Jv_JNI_GetField (JNIEnv *env, jobject obj, jfieldID field)
{
# 1049 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
T *ptr = (T *) ((char *) obj + field->getOffset ());
return wrap_value (env, *ptr);
}
template<typename T>
static void
_Jv_JNI_SetField (JNIEnv *, jobject obj, jfieldID field, T value)
{
# 1058 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
T *ptr = (T *) ((char *) obj + field->getOffset ());
*ptr = value;
}
template<jboolean is_static>
static jfieldID
_Jv_JNI_GetAnyFieldID (JNIEnv *env, jclass clazz,
const char *name, const char *sig)
{
try
{
_Jv_InitClass (clazz);
_Jv_Utf8Const *a_name = _Jv_makeUtf8Const ((char *) name, -1);
int len = strlen (sig);
char s[len + 1];
for (int i = 0; i <= len; ++i)
s[i] = (sig[i] == '/') ? '.' : sig[i];
jclass field_class = _Jv_FindClassFromSignature ((char *) s, __null);
java::lang::ClassLoader *loader = clazz->getClassLoader ();
while (clazz != __null)
{
JvSynchronize sync (clazz);
jint count = (is_static
? JvNumStaticFields (clazz)
: JvNumInstanceFields (clazz));
jfieldID field = (is_static
? JvGetFirstStaticField (clazz)
: JvGetFirstInstanceField (clazz));
for (jint i = 0; i < count; ++i)
{
_Jv_Utf8Const *f_name = field->getNameUtf8Const(clazz);
_Jv_ResolveField (field, loader);
if (_Jv_equalUtf8Consts (f_name, a_name)
&& field->getClass() == field_class)
return field;
field = field->getNextField ();
}
clazz = clazz->getSuperclass ();
}
env->ex = new java::lang::NoSuchFieldError ();
}
catch (jthrowable t)
{
env->ex = t;
}
return __null;
}
template<typename T>
static T
_Jv_JNI_GetStaticField (JNIEnv *env, jclass, jfieldID field)
{
T *ptr = (T *) field->u.addr;
return wrap_value (env, *ptr);
}
template<typename T>
static void
_Jv_JNI_SetStaticField (JNIEnv *, jclass, jfieldID field, T value)
{
T *ptr = (T *) field->u.addr;
*ptr = value;
}
static jstring
_Jv_JNI_NewString (JNIEnv *env, const jchar *unichars, jsize len)
{
try
{
jstring r = _Jv_NewString (unichars, len);
return (jstring) wrap_value (env, r);
}
catch (jthrowable t)
{
env->ex = t;
return __null;
}
}
static jsize
_Jv_JNI_GetStringLength (JNIEnv *, jstring string)
{
return string->length();
}
static const jchar *
_Jv_JNI_GetStringChars (JNIEnv *, jstring string, jboolean *isCopy)
{
jchar *result = _Jv_GetStringChars (string);
mark_for_gc (string, global_ref_table);
if (isCopy)
*isCopy = false;
return (const jchar *) result;
}
static void
_Jv_JNI_ReleaseStringChars (JNIEnv *, jstring string, const jchar *)
{
unmark_for_gc (string, global_ref_table);
}
static jstring
_Jv_JNI_NewStringUTF (JNIEnv *env, const char *bytes)
{
try
{
jstring result = JvNewStringUTF (bytes);
return (jstring) wrap_value (env, result);
}
catch (jthrowable t)
{
env->ex = t;
return __null;
}
}
static jsize
_Jv_JNI_GetStringUTFLength (JNIEnv *, jstring string)
{
return JvGetStringUTFLength (string);
}
static const char *
_Jv_JNI_GetStringUTFChars (JNIEnv *env, jstring string, jboolean *isCopy)
{
jsize len = JvGetStringUTFLength (string);
try
{
char *r = (char *) _Jv_Malloc (len + 1);
JvGetStringUTFRegion (string, 0, len, r);
r[len] = '\0';
if (isCopy)
*isCopy = true;
return (const char *) r;
}
catch (jthrowable t)
{
env->ex = t;
return __null;
}
}
static void
_Jv_JNI_ReleaseStringUTFChars (JNIEnv *, jstring, const char *utf)
{
_Jv_Free ((void *) utf);
}
static void
_Jv_JNI_GetStringRegion (JNIEnv *env, jstring string, jsize start, jsize len,
jchar *buf)
{
jchar *result = _Jv_GetStringChars (string);
if (start < 0 || start > string->length ()
|| len < 0 || start + len > string->length ())
{
try
{
env->ex = new java::lang::StringIndexOutOfBoundsException ();
}
catch (jthrowable t)
{
env->ex = t;
}
}
else
memcpy (buf, &result[start], len * sizeof (jchar));
}
static void
_Jv_JNI_GetStringUTFRegion (JNIEnv *env, jstring str, jsize start,
jsize len, char *buf)
{
if (start < 0 || start > str->length ()
|| len < 0 || start + len > str->length ())
{
try
{
env->ex = new java::lang::StringIndexOutOfBoundsException ();
}
catch (jthrowable t)
{
env->ex = t;
}
}
else
_Jv_GetStringUTFRegion (str, start, len, buf);
}
static const jchar *
_Jv_JNI_GetStringCritical (JNIEnv *, jstring str, jboolean *isCopy)
{
jchar *result = _Jv_GetStringChars (str);
if (isCopy)
*isCopy = false;
return result;
}
static void
_Jv_JNI_ReleaseStringCritical (JNIEnv *, jstring, const jchar *)
{
}
static jsize
_Jv_JNI_GetArrayLength (JNIEnv *, jarray array)
{
return array->length;
}
static jarray
_Jv_JNI_NewObjectArray (JNIEnv *env, jsize length, jclass elementClass,
jobject init)
{
try
{
jarray result = JvNewObjectArray (length, elementClass, init);
return (jarray) wrap_value (env, result);
}
catch (jthrowable t)
{
env->ex = t;
return __null;
}
}
static jobject
_Jv_JNI_GetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index)
{
jobject *elts = elements (array);
return wrap_value (env, elts[index]);
}
static void
_Jv_JNI_SetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index,
jobject value)
{
try
{
_Jv_CheckArrayStore (array, value);
jobject *elts = elements (array);
elts[index] = value;
}
catch (jthrowable t)
{
env->ex = t;
}
}
template<typename T, jclass K>
static JArray<T> *
_Jv_JNI_NewPrimitiveArray (JNIEnv *env, jsize length)
{
try
{
return (JArray<T> *) wrap_value (env, _Jv_NewPrimArray (K, length));
}
catch (jthrowable t)
{
env->ex = t;
return __null;
}
}
template<typename T>
static T *
_Jv_JNI_GetPrimitiveArrayElements (JNIEnv *, JArray<T> *array,
jboolean *isCopy)
{
T *elts = elements (array);
if (isCopy)
{
*isCopy = false;
}
mark_for_gc (array, global_ref_table);
return elts;
}
template<typename T>
static void
_Jv_JNI_ReleasePrimitiveArrayElements (JNIEnv *, JArray<T> *array,
T *, jint )
{
unmark_for_gc (array, global_ref_table);
}
template<typename T>
static void
_Jv_JNI_GetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
jsize start, jsize len,
T *buf)
{
if (start < 0 || len < 0
|| (unsigned long) (start + len) > (unsigned long) array->length)
{
try
{
env->ex = new java::lang::ArrayIndexOutOfBoundsException ();
}
catch (jthrowable t)
{
env->ex = t;
}
}
else
{
T *elts = elements (array) + start;
memcpy (buf, elts, len * sizeof (T));
}
}
template<typename T>
static void
_Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
jsize start, jsize len, T *buf)
{
if (start < 0 || len < 0
|| (unsigned long) (start + len) > (unsigned long) array->length)
{
try
{
env->ex = new java::lang::ArrayIndexOutOfBoundsException ();
}
catch (jthrowable t)
{
env->ex = t;
}
}
else
{
T *elts = elements (array) + start;
memcpy (elts, buf, len * sizeof (T));
}
}
static void *
_Jv_JNI_GetPrimitiveArrayCritical (JNIEnv *, jarray array,
jboolean *isCopy)
{
jclass klass = array->getClass()->getComponentType();
# 1426 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
char *r = _Jv_GetArrayElementFromElementType (array, klass);
if (isCopy)
*isCopy = false;
return r;
}
static void
_Jv_JNI_ReleasePrimitiveArrayCritical (JNIEnv *, jarray, void *, jint)
{
}
static jint
_Jv_JNI_MonitorEnter (JNIEnv *env, jobject obj)
{
try
{
_Jv_MonitorEnter (obj);
return 0;
}
catch (jthrowable t)
{
env->ex = t;
}
return -1;
}
static jint
_Jv_JNI_MonitorExit (JNIEnv *env, jobject obj)
{
try
{
_Jv_MonitorExit (obj);
return 0;
}
catch (jthrowable t)
{
env->ex = t;
}
return -1;
}
jobject
_Jv_JNI_ToReflectedField (JNIEnv *env, jclass cls, jfieldID fieldID,
jboolean)
{
try
{
java::lang::reflect::Field *field = new java::lang::reflect::Field();
field->declaringClass = cls;
field->offset = (char*) fieldID - (char *) cls->fields;
field->name = _Jv_NewStringUtf8Const (fieldID->getNameUtf8Const (cls));
return wrap_value (env, field);
}
catch (jthrowable t)
{
env->ex = t;
}
return __null;
}
static jfieldID
_Jv_JNI_FromReflectedField (JNIEnv *, jobject f)
{
using namespace java::lang::reflect;
Field *field = reinterpret_cast<Field *> (f);
return _Jv_FromReflectedField (field);
}
jobject
_Jv_JNI_ToReflectedMethod (JNIEnv *env, jclass klass, jmethodID id,
jboolean)
{
using namespace java::lang::reflect;
static _Jv_Utf8Const *init_name = _Jv_makeUtf8Const ("<init>", 6);
jobject result = __null;
try
{
if (_Jv_equalUtf8Consts (id->name, init_name))
{
Constructor *cons = new Constructor ();
cons->offset = (char *) id - (char *) &klass->methods;
cons->declaringClass = klass;
result = cons;
}
else
{
Method *meth = new Method ();
meth->offset = (char *) id - (char *) &klass->methods;
meth->declaringClass = klass;
result = meth;
}
}
catch (jthrowable t)
{
env->ex = t;
}
return wrap_value (env, result);
}
static jmethodID
_Jv_JNI_FromReflectedMethod (JNIEnv *, jobject method)
{
using namespace java::lang::reflect;
if (Method::class$.isInstance (method))
return _Jv_FromReflectedMethod (reinterpret_cast<Method *> (method));
return
_Jv_FromReflectedConstructor (reinterpret_cast<Constructor *> (method));
}
static JNINativeMethod *nathash;
static int nathash_count = 0;
static int nathash_size = 0;
static int
hash (const JNINativeMethod *method)
{
char *ptr;
int hash = 0;
ptr = method->name;
while (*ptr)
hash = (31 * hash) + *ptr++;
ptr = method->signature;
while (*ptr)
hash = (31 * hash) + *ptr++;
return hash;
}
static JNINativeMethod *
nathash_find_slot (const JNINativeMethod *method)
{
jint h = hash (method);
int step = (h ^ (h >> 16)) | 1;
int w = h & (nathash_size - 1);
int del = -1;
for (;;)
{
JNINativeMethod *slotp = &nathash[w];
if (slotp->name == __null)
{
if (del >= 0)
return &nathash[del];
else
return slotp;
}
else if (slotp->name == ((char *) (~0)))
del = w;
else if (! strcmp (slotp->name, method->name)
&& ! strcmp (slotp->signature, method->signature))
return slotp;
w = (w + step) & (nathash_size - 1);
}
}
static void *
nathash_find (JNINativeMethod *method)
{
if (nathash == __null)
return __null;
JNINativeMethod *slot = nathash_find_slot (method);
if (slot->name == __null || slot->name == ((char *) (~0)))
return __null;
return slot->fnPtr;
}
static void
natrehash ()
{
if (nathash == __null)
{
nathash_size = 1024;
nathash =
(JNINativeMethod *) _Jv_AllocBytes (nathash_size
* sizeof (JNINativeMethod));
memset (nathash, 0, nathash_size * sizeof (JNINativeMethod));
}
else
{
int savesize = nathash_size;
JNINativeMethod *savehash = nathash;
nathash_size *= 2;
nathash =
(JNINativeMethod *) _Jv_AllocBytes (nathash_size
* sizeof (JNINativeMethod));
memset (nathash, 0, nathash_size * sizeof (JNINativeMethod));
for (int i = 0; i < savesize; ++i)
{
if (savehash[i].name != __null && savehash[i].name != ((char *) (~0)))
{
JNINativeMethod *slot = nathash_find_slot (&savehash[i]);
*slot = savehash[i];
}
}
}
}
static void
nathash_add (const JNINativeMethod *method)
{
if (3 * nathash_count >= 2 * nathash_size)
natrehash ();
JNINativeMethod *slot = nathash_find_slot (method);
if (slot->name != __null && slot->name != ((char *) (~0)))
return;
slot->name = strdup (method->name);
slot->signature = strdup (method->signature);
slot->fnPtr = method->fnPtr;
}
static jint
_Jv_JNI_RegisterNatives (JNIEnv *env, jclass klass,
const JNINativeMethod *methods,
jint nMethods)
{
JvSynchronize sync (global_ref_table);
for (int j = 0; j < nMethods; ++j)
{
bool found = false;
_Jv_Method *imeths = JvGetFirstMethod (klass);
for (int i = 0; i < JvNumMethods (klass); ++i)
{
_Jv_Method *self = &imeths[i];
if (! strcmp (self->name->data, methods[j].name)
&& ! strcmp (self->signature->data, methods[j].signature))
{
if (! (self->accflags
& java::lang::reflect::Modifier::NATIVE))
break;
found = true;
nathash_add (&methods[j]);
break;
}
}
if (! found)
{
jstring m = JvNewStringUTF (methods[j].name);
try
{
env->ex =new java::lang::NoSuchMethodError (m);
}
catch (jthrowable t)
{
env->ex = t;
}
return -1;
}
}
return 0;
}
static jint
_Jv_JNI_UnregisterNatives (JNIEnv *, jclass)
{
return -1;
}
static void
add_char (char *buf, jchar c, int *here)
{
if (c == '_')
{
buf[(*here)++] = '_';
buf[(*here)++] = '1';
}
else if (c == ';')
{
buf[(*here)++] = '_';
buf[(*here)++] = '2';
}
else if (c == '[')
{
buf[(*here)++] = '_';
buf[(*here)++] = '3';
}
else if (c == '/' || c == '.')
buf[(*here)++] = '_';
else if ((c >= '0' && c <= '9')
|| (c >= 'a' && c <= 'z')
|| (c >= 'A' && c <= 'Z'))
buf[(*here)++] = (char) c;
else
{
buf[(*here)++] = '_';
buf[(*here)++] = '0';
for (int i = 0; i < 4; ++i)
{
int val = c & 0x0f;
buf[(*here) + 3 - i] = (val > 10) ? ('a' + val - 10) : ('0' + val);
c >>= 4;
}
*here += 4;
}
}
static void
mangled_name (jclass klass, _Jv_Utf8Const *func_name,
_Jv_Utf8Const *signature, char *buf, int *long_start)
{
strcpy (buf, "Java_");
int here = 5;
jchar *chars = _Jv_GetStringChars (klass->getName ());
jint len = klass->getName ()->length ();
for (int i = 0; i < len; ++i)
add_char (buf, chars[i], &here);
buf[here++] = '_';
const unsigned char *fn = (const unsigned char *) func_name->data;
const unsigned char *limit = fn + func_name->length;
for (int i = 0; ; ++i)
{
int ch = ((fn) >= (limit) ? -1 : *(fn) < 128 ? *(fn)++ : (*(fn)&0xE0) == 0xC0 && ((fn)+=2)<=(limit) && ((fn)[-1]&0xC0) == 0x80 ? (((fn)[-2] & 0x1F) << 6) + ((fn)[-1] & 0x3F) : (*(fn) & 0xF0) == 0xE0 && ((fn) += 3) <= (limit) && ((fn)[-2] & 0xC0) == 0x80 && ((fn)[-1] & 0xC0) == 0x80 ? (((fn)[-3]&0x0F) << 12) + (((fn)[-2]&0x3F) << 6) + ((fn)[-1]&0x3F) : ((fn)++, -1));
if (ch < 0)
break;
add_char (buf, ch, &here);
}
*long_start = here;
buf[here++] = '_';
buf[here++] = '_';
const unsigned char *sig = (const unsigned char *) signature->data;
limit = sig + signature->length;
# 1805 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
++sig;
while (1)
{
int ch = ((sig) >= (limit) ? -1 : *(sig) < 128 ? *(sig)++ : (*(sig)&0xE0) == 0xC0 && ((sig)+=2)<=(limit) && ((sig)[-1]&0xC0) == 0x80 ? (((sig)[-2] & 0x1F) << 6) + ((sig)[-1] & 0x3F) : (*(sig) & 0xF0) == 0xE0 && ((sig) += 3) <= (limit) && ((sig)[-2] & 0xC0) == 0x80 && ((sig)[-1] & 0xC0) == 0x80 ? (((sig)[-3]&0x0F) << 12) + (((sig)[-2]&0x3F) << 6) + ((sig)[-1]&0x3F) : ((sig)++, -1));
if (ch == ')' || ch < 0)
break;
add_char (buf, ch, &here);
}
buf[here] = '\0';
}
extern "C" JNIEnv *
_Jv_GetJNIEnvNewFrame (jclass klass)
{
JNIEnv *env = _Jv_GetCurrentJNIEnv ();
if (env == __null)
{
env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
env->p = &_Jv_JNIFunctions;
env->ex = __null;
env->klass = klass;
env->locals = __null;
_Jv_SetCurrentJNIEnv (env);
}
_Jv_JNI_LocalFrame *frame
= (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
+ (32
* sizeof (jobject)));
frame->marker = 2;
frame->size = 32;
frame->next = env->locals;
env->locals = frame;
for (int i = 0; i < frame->size; ++i)
frame->vec[i] = __null;
return env;
}
extern "C" void *
_Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
_Jv_Utf8Const *signature)
{
char buf[10 + 6 * (name->length + signature->length)];
int long_start;
void *function;
JvSynchronize sync (global_ref_table);
strncpy (buf, name->data, name->length);
buf[name->length] = '\0';
strncpy (buf + name->length + 1, signature->data, signature->length);
buf[name->length + signature->length + 1] = '\0';
JNINativeMethod meth;
meth.name = buf;
meth.signature = buf + name->length + 1;
function = nathash_find (&meth);
if (function != __null)
return function;
mangled_name (klass, name, signature, buf, &long_start);
char c = buf[long_start];
buf[long_start] = '\0';
function = _Jv_FindSymbolInExecutable (buf);
if (function == __null)
{
buf[long_start] = c;
function = _Jv_FindSymbolInExecutable (buf);
if (function == __null)
{
jstring str = JvNewStringUTF (name->data);
throw new java::lang::AbstractMethodError (str);
}
}
return function;
}
void
_Jv_JNIMethod::call (ffi_cif *, void *ret, ffi_raw *args, void *__this)
{
_Jv_JNIMethod* _this = (_Jv_JNIMethod *) __this;
JNIEnv *env = _Jv_GetJNIEnvNewFrame (_this->defining_class);
# 1915 "/home/oldham/gcc/gcc2/libjava/jni.cc"
{
JvSynchronize sync (global_ref_table);
if (_this->function == __null)
_this->function = _Jv_LookupJNIMethod (_this->defining_class,
_this->self->name,
_this->self->signature);
}
# 1926 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
ffi_raw real_args[2 + _this->args_raw_size / sizeof (ffi_raw)];
int offset = 0;
real_args[offset++].ptr = env;
if ((_this->self->accflags & java::lang::reflect::Modifier::STATIC))
real_args[offset++].ptr = _this->defining_class;
memcpy (&real_args[offset], args, _this->args_raw_size);
ffi_raw_call (&_this->jni_cif, (void (*)()) _this->function,
ret, real_args);
_Jv_JNI_PopSystemFrame (env);
}
# 1957 "/home/oldham/gcc/gcc2/libjava/jni.cc"
static jint
_Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv, void *args)
{
JavaVMAttachArgs *attach = reinterpret_cast<JavaVMAttachArgs *> (args);
java::lang::ThreadGroup *group = __null;
if (attach)
{
if (attach->version != 0x00010002
&& attach->version != 0x00010001)
return -3;
# 1970 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
group = reinterpret_cast<java::lang::ThreadGroup *> (attach->group);
}
if (_Jv_GetCurrentJNIEnv () != __null)
return 0;
JNIEnv *env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
if (env == __null)
return -1;
env->p = &_Jv_JNIFunctions;
env->ex = __null;
env->klass = __null;
env->locals
= (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
+ (32
* sizeof (jobject)));
if (env->locals == __null)
{
_Jv_Free (env);
return -1;
}
*penv = reinterpret_cast<void *> (env);
if (_Jv_ThreadCurrent () == __null)
{
try
{
_Jv_AttachCurrentThread (name, group);
}
catch (jthrowable t)
{
return -1;
}
}
_Jv_SetCurrentJNIEnv (env);
return 0;
}
static jint
_Jv_JNI_AttachCurrentThread (JavaVM *vm, void **penv, void *args)
{
return _Jv_JNI_AttachCurrentThread (vm, __null, penv, args);
}
static jint
_Jv_JNI_DestroyJavaVM (JavaVM *vm)
{
# 2023 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
JNIEnv *env;
if (_Jv_ThreadCurrent () != __null)
{
jstring main_name;
try
{
main_name = JvNewStringLatin1 ("main");
}
catch (jthrowable t)
{
return -1;
}
jint r = _Jv_JNI_AttachCurrentThread (vm,
main_name,
reinterpret_cast<void **> (&env),
__null);
if (r < 0)
return r;
}
else
env = _Jv_GetCurrentJNIEnv ();
_Jv_ThreadWait ();
return -1;
}
jint
_Jv_JNI_DetachCurrentThread (JavaVM *)
{
jint code = _Jv_DetachCurrentThread ();
return code ? -2 : 0;
}
static jint
_Jv_JNI_GetEnv (JavaVM *, void **penv, jint version)
{
if (_Jv_ThreadCurrent () == __null)
{
*penv = __null;
return -2;
}
if (version == 0x00020001)
{
*penv = (void *) &_Jv_JVMPI_Interface;
return 0;
}
if (version != 0x00010002 && version != 0x00010001)
{
*penv = __null;
return -3;
}
*penv = (void *) _Jv_GetCurrentJNIEnv ();
return 0;
}
jint
JNI_GetDefaultJavaVMInitArgs (void *args)
{
jint version = * (jint *) args;
if (version != 0x00010002)
return -3;
JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
ia->version = 0x00010002;
ia->nOptions = 0;
ia->options = __null;
ia->ignoreUnrecognized = true;
return 0;
}
jint
JNI_CreateJavaVM (JavaVM **vm, void **penv, void *args)
{
# 2111 "/home/oldham/gcc/gcc2/libjava/jni.cc"
;
JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
if (nvm == __null)
return -1;
nvm->functions = &_Jv_JNI_InvokeFunctions;
if (args != __null)
{
jint version = * (jint *) args;
if (version != 0x00010002)
return -3;
JavaVMInitArgs *ia = reinterpret_cast<JavaVMInitArgs *> (args);
for (int i = 0; i < ia->nOptions; ++i)
{
if (! strcmp (ia->options[i].optionString, "vfprintf")
|| ! strcmp (ia->options[i].optionString, "exit")
|| ! strcmp (ia->options[i].optionString, "abort"))
{
continue;
}
else if (! strncmp (ia->options[i].optionString,
"-verbose", sizeof ("-verbose") - 1))
{
continue;
}
else if (! strncmp (ia->options[i].optionString, "-D", 2))
{
continue;
}
else if (ia->ignoreUnrecognized)
{
if (ia->options[i].optionString[0] == '_'
|| ! strncmp (ia->options[i].optionString, "-X", 2))
continue;
}
return -1;
}
}
jint r =_Jv_JNI_AttachCurrentThread (nvm, penv, __null);
if (r < 0)
return r;
the_vm = nvm;
*vm = the_vm;
_Jv_JNI_Init();
return 0;
}
jint
JNI_GetCreatedJavaVMs (JavaVM **vm_buffer, jsize buf_len, jsize *n_vms)
{
if (buf_len <= 0)
return -1;
if (the_vm != __null)
{
vm_buffer[0] = the_vm;
*n_vms = 1;
}
else
*n_vms = 0;
return 0;
}
JavaVM *
_Jv_GetJavaVM ()
{
if (! the_vm)
{
JavaVM *nvm = (JavaVM *) _Jv_MallocUnchecked (sizeof (JavaVM));
if (nvm != __null)
nvm->functions = &_Jv_JNI_InvokeFunctions;
the_vm = nvm;
}
if (_Jv_ThreadCurrent () != __null)
{
void *ignore;
_Jv_JNI_AttachCurrentThread (the_vm, &ignore, __null);
}
return the_vm;
}
static jint
_Jv_JNI_GetJavaVM (JNIEnv *, JavaVM **vm)
{
*vm = _Jv_GetJavaVM ();
return *vm == __null ? -1 : 0;
}
struct JNINativeInterface _Jv_JNIFunctions =
{
__null,
__null,
__null,
__null,
_Jv_JNI_GetVersion,
_Jv_JNI_DefineClass,
_Jv_JNI_FindClass,
_Jv_JNI_FromReflectedMethod,
_Jv_JNI_FromReflectedField,
_Jv_JNI_ToReflectedMethod,
_Jv_JNI_GetSuperclass,
_Jv_JNI_IsAssignableFrom,
_Jv_JNI_ToReflectedField,
_Jv_JNI_Throw,
_Jv_JNI_ThrowNew,
_Jv_JNI_ExceptionOccurred,
_Jv_JNI_ExceptionDescribe,
_Jv_JNI_ExceptionClear,
_Jv_JNI_FatalError,
_Jv_JNI_PushLocalFrame,
_Jv_JNI_PopLocalFrame,
_Jv_JNI_NewGlobalRef,
_Jv_JNI_DeleteGlobalRef,
_Jv_JNI_DeleteLocalRef,
_Jv_JNI_IsSameObject,
_Jv_JNI_NewLocalRef,
_Jv_JNI_EnsureLocalCapacity,
_Jv_JNI_AllocObject,
_Jv_JNI_NewObject,
_Jv_JNI_NewObjectV,
_Jv_JNI_NewObjectA,
_Jv_JNI_GetObjectClass,
_Jv_JNI_IsInstanceOf,
_Jv_JNI_GetAnyMethodID<false>,
_Jv_JNI_CallMethod<jobject>,
_Jv_JNI_CallMethodV<jobject>,
_Jv_JNI_CallMethodA<jobject>,
_Jv_JNI_CallMethod<jboolean>,
_Jv_JNI_CallMethodV<jboolean>,
_Jv_JNI_CallMethodA<jboolean>,
_Jv_JNI_CallMethod<jbyte>,
_Jv_JNI_CallMethodV<jbyte>,
_Jv_JNI_CallMethodA<jbyte>,
_Jv_JNI_CallMethod<jchar>,
_Jv_JNI_CallMethodV<jchar>,
_Jv_JNI_CallMethodA<jchar>,
_Jv_JNI_CallMethod<jshort>,
_Jv_JNI_CallMethodV<jshort>,
_Jv_JNI_CallMethodA<jshort>,
_Jv_JNI_CallMethod<jint>,
_Jv_JNI_CallMethodV<jint>,
_Jv_JNI_CallMethodA<jint>,
_Jv_JNI_CallMethod<jlong>,
_Jv_JNI_CallMethodV<jlong>,
_Jv_JNI_CallMethodA<jlong>,
_Jv_JNI_CallMethod<jfloat>,
_Jv_JNI_CallMethodV<jfloat>,
_Jv_JNI_CallMethodA<jfloat>,
_Jv_JNI_CallMethod<jdouble>,
_Jv_JNI_CallMethodV<jdouble>,
_Jv_JNI_CallMethodA<jdouble>,
_Jv_JNI_CallVoidMethod,
_Jv_JNI_CallVoidMethodV,
_Jv_JNI_CallVoidMethodA,
_Jv_JNI_CallAnyMethod<jobject, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jobject, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jobject, nonvirtual>,
_Jv_JNI_CallAnyMethod<jboolean, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jboolean, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jboolean, nonvirtual>,
_Jv_JNI_CallAnyMethod<jbyte, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jbyte, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jbyte, nonvirtual>,
_Jv_JNI_CallAnyMethod<jchar, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jchar, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jchar, nonvirtual>,
_Jv_JNI_CallAnyMethod<jshort, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jshort, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jshort, nonvirtual>,
_Jv_JNI_CallAnyMethod<jint, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jint, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jint, nonvirtual>,
_Jv_JNI_CallAnyMethod<jlong, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jlong, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jlong, nonvirtual>,
_Jv_JNI_CallAnyMethod<jfloat, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jfloat, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jfloat, nonvirtual>,
_Jv_JNI_CallAnyMethod<jdouble, nonvirtual>,
_Jv_JNI_CallAnyMethodV<jdouble, nonvirtual>,
_Jv_JNI_CallAnyMethodA<jdouble, nonvirtual>,
_Jv_JNI_CallAnyVoidMethod<nonvirtual>,
_Jv_JNI_CallAnyVoidMethodV<nonvirtual>,
_Jv_JNI_CallAnyVoidMethodA<nonvirtual>,
_Jv_JNI_GetAnyFieldID<false>,
_Jv_JNI_GetField<jobject>,
_Jv_JNI_GetField<jboolean>,
_Jv_JNI_GetField<jbyte>,
_Jv_JNI_GetField<jchar>,
_Jv_JNI_GetField<jshort>,
_Jv_JNI_GetField<jint>,
_Jv_JNI_GetField<jlong>,
_Jv_JNI_GetField<jfloat>,
_Jv_JNI_GetField<jdouble>,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_SetField,
_Jv_JNI_GetAnyMethodID<true>,
_Jv_JNI_CallStaticMethod<jobject>,
_Jv_JNI_CallStaticMethodV<jobject>,
_Jv_JNI_CallStaticMethodA<jobject>,
_Jv_JNI_CallStaticMethod<jboolean>,
_Jv_JNI_CallStaticMethodV<jboolean>,
_Jv_JNI_CallStaticMethodA<jboolean>,
_Jv_JNI_CallStaticMethod<jbyte>,
_Jv_JNI_CallStaticMethodV<jbyte>,
_Jv_JNI_CallStaticMethodA<jbyte>,
_Jv_JNI_CallStaticMethod<jchar>,
_Jv_JNI_CallStaticMethodV<jchar>,
_Jv_JNI_CallStaticMethodA<jchar>,
_Jv_JNI_CallStaticMethod<jshort>,
_Jv_JNI_CallStaticMethodV<jshort>,
_Jv_JNI_CallStaticMethodA<jshort>,
_Jv_JNI_CallStaticMethod<jint>,
_Jv_JNI_CallStaticMethodV<jint>,
_Jv_JNI_CallStaticMethodA<jint>,
_Jv_JNI_CallStaticMethod<jlong>,
_Jv_JNI_CallStaticMethodV<jlong>,
_Jv_JNI_CallStaticMethodA<jlong>,
_Jv_JNI_CallStaticMethod<jfloat>,
_Jv_JNI_CallStaticMethodV<jfloat>,
_Jv_JNI_CallStaticMethodA<jfloat>,
_Jv_JNI_CallStaticMethod<jdouble>,
_Jv_JNI_CallStaticMethodV<jdouble>,
_Jv_JNI_CallStaticMethodA<jdouble>,
_Jv_JNI_CallStaticVoidMethod,
_Jv_JNI_CallStaticVoidMethodV,
_Jv_JNI_CallStaticVoidMethodA,
_Jv_JNI_GetAnyFieldID<true>,
_Jv_JNI_GetStaticField<jobject>,
_Jv_JNI_GetStaticField<jboolean>,
_Jv_JNI_GetStaticField<jbyte>,
_Jv_JNI_GetStaticField<jchar>,
_Jv_JNI_GetStaticField<jshort>,
_Jv_JNI_GetStaticField<jint>,
_Jv_JNI_GetStaticField<jlong>,
_Jv_JNI_GetStaticField<jfloat>,
_Jv_JNI_GetStaticField<jdouble>,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_SetStaticField,
_Jv_JNI_NewString,
_Jv_JNI_GetStringLength,
_Jv_JNI_GetStringChars,
_Jv_JNI_ReleaseStringChars,
_Jv_JNI_NewStringUTF,
_Jv_JNI_GetStringUTFLength,
_Jv_JNI_GetStringUTFChars,
_Jv_JNI_ReleaseStringUTFChars,
_Jv_JNI_GetArrayLength,
_Jv_JNI_NewObjectArray,
_Jv_JNI_GetObjectArrayElement,
_Jv_JNI_SetObjectArrayElement,
_Jv_JNI_NewPrimitiveArray<jboolean, (& _Jv_booleanClass)>,
_Jv_JNI_NewPrimitiveArray<jbyte, (& _Jv_byteClass)>,
_Jv_JNI_NewPrimitiveArray<jchar, (& _Jv_charClass)>,
_Jv_JNI_NewPrimitiveArray<jshort, (& _Jv_shortClass)>,
_Jv_JNI_NewPrimitiveArray<jint, (& _Jv_intClass)>,
_Jv_JNI_NewPrimitiveArray<jlong, (& _Jv_longClass)>,
_Jv_JNI_NewPrimitiveArray<jfloat, (& _Jv_floatClass)>,
_Jv_JNI_NewPrimitiveArray<jdouble, (& _Jv_doubleClass)>,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_ReleasePrimitiveArrayElements,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_GetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_SetPrimitiveArrayRegion,
_Jv_JNI_RegisterNatives,
_Jv_JNI_UnregisterNatives,
_Jv_JNI_MonitorEnter,
_Jv_JNI_MonitorExit,
_Jv_JNI_GetJavaVM,
_Jv_JNI_GetStringRegion,
_Jv_JNI_GetStringUTFRegion,
_Jv_JNI_GetPrimitiveArrayCritical,
_Jv_JNI_ReleasePrimitiveArrayCritical,
_Jv_JNI_GetStringCritical,
_Jv_JNI_ReleaseStringCritical,
__null ,
__null ,
_Jv_JNI_ExceptionCheck
};
struct JNIInvokeInterface _Jv_JNI_InvokeFunctions =
{
__null,
__null,
__null,
_Jv_JNI_DestroyJavaVM,
_Jv_JNI_AttachCurrentThread,
_Jv_JNI_DetachCurrentThread,
_Jv_JNI_GetEnv
};
More information about the Gcc-bugs
mailing list