- To: egcs-bugs at egcs dot cygnus dot com
- Subject: Internal compiler error in `fundamental_type_code', at dwarfout.c:1400
- From: Oliver Imbusch <flabes at brainaid>
- Date: Mon, 3 May 99 18:08 MET DST
- Reply-To: flabes at eurem dot de
Hi,
----------------------------------------------------------------------
Source tree:
ftp://sourceware.cygnus.com/pub/java/snapshots/libgcj-snapshot-1999-05-03.tar.bz2
----------------------------------------------------------------------
Make command line:
env PATH=/usr/local/egcs-19990502/bin:$PATH gmake CXX="c++ -v --save-temps"
----------------------------------------------------------------------
Resulting C++ command line:
c++ -v --save-temps -DHAVE_CONFIG_H -I. -I../../../libgcj-snapshot-1999-05-03/libjava -I./include -Iinclude -I../../../libgcj-snapshot-1999-05-03/libjava/include -I../../../libgcj-snapshot-1999-05-03/libjava/../boehm-gc -I./../boehm-gc -DSILENT=1 -DNO_SIGNALS=1 -DNO_DEBUGGING=1 -DJAVA_FINALIZATION=1 -I../../../libgcj-snapshot-1999-05-03/libjava/../compat-include -fno-rtti -fvtable-thunks -W -Wall -g -O2 -Wp,-MD,.deps/prims.pp -c -fPIC -DPIC ../../../libgcj-snapshot-1999-05-03/libjava/prims.cc -o .libs/prims.lo
Reading specs from /usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/specs
gcc version egcs-2.93.21 19990502 (gcc2 ss-980929 experimental)
/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/cpp -lang-c++ -v -I. -I../../../libgcj-snapshot-1999-05-03/libjava -I./include -Iinclude -I../../../libgcj-snapshot-1999-05-03/libjava/include -I../../../libgcj-snapshot-1999-05-03/libjava/../boehm-gc -I./../boehm-gc -I../../../libgcj-snapshot-1999-05-03/libjava/../compat-include -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=93 -Dunix -D__svr4__ -D__SVR4 -Dsun -D__unix__ -D__svr4__ -D__SVR4 -D__sun__ -D__unix -D__sun -Asystem(svr4) -D__EXCEPTIONS -D__OPTIMIZE__ -g -W -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -DHAVE_CONFIG_H -DSILENT=1 -DNO_SIGNALS=1 -DNO_DEBUGGING=1 -DJAVA_FINALIZATION=1 -DPIC -MD .deps/prims.pp ../../../libgcj-snapshot-1999-05-03/libjava/prims.cc prims.ii
GNU CPP version egcs-2.93.21 19990502 (gcc2 ss-980929 experimental) (i386 System V Release 4)
#include "..." search starts here:
#include <...> search starts here:
.
../../../libgcj-snapshot-1999-05-03/libjava
include
../../../libgcj-snapshot-1999-05-03/libjava/include
../../../libgcj-snapshot-1999-05-03/libjava/../boehm-gc
../boehm-gc
../../../libgcj-snapshot-1999-05-03/libjava/../compat-include
/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/../../../../include/g++-2
/usr/local/include
/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/../../../../i386-pc-solaris2.5/include
/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/include
/usr/include
----------------------------------------------------------------------
Preprocessed source file, prims.ii:
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc"
# 1 "include/config.h" 1
# 11 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "/usr/include/stdlib.h" 1 3 4
#pragma ident "@(#)stdlib.h 1.27 95/08/28 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
#pragma ident "@(#)feature_tests.h 1.7 94/12/06 SMI"
extern "C" {
}
# 13 "/usr/include/stdlib.h" 2 3 4
extern "C" {
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
typedef struct {
long long quot;
long long rem;
} lldiv_t;
typedef unsigned int size_t;
typedef long uid_t;
typedef long wchar_t;
extern unsigned char __ctype[];
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int rand(void);
extern void srand(unsigned int);
extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);
extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern char *getenv(const char *);
extern int system(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(const char *);
extern void setkey(const char *);
extern void swab(const char *, char *, int);
extern long a64l(const char *);
extern int dup2(int, int);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern int getpw(uid_t, char *);
extern char *gcvt(double, int, char *);
extern int isatty(int);
extern char *l64a(long);
extern void *memalign(size_t, size_t);
extern char *mktemp(char *);
extern char *realpath(char *, char *);
extern char *ttyname(int);
extern int ttyslot(void);
extern void *valloc(size_t);
extern char *ptsname(int);
extern int grantpt(int);
extern int unlockpt(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
# 276 "/usr/include/stdlib.h" 3 4
}
# 13 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/include/stdarg.h" 1 3 4
typedef char *__gnuc_va_list;
void va_end (__gnuc_va_list);
typedef __gnuc_va_list va_list;
# 204 "/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/include/stdarg.h" 3 4
# 14 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "/usr/include/stdio.h" 1 3 4
#pragma ident "@(#)stdio.h 1.37 95/08/29 SMI"
extern "C" {
typedef long fpos_t;
typedef struct
{
int _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
} FILE;
extern FILE __iob[60 ];
extern FILE *_lastbuf;
extern unsigned char *_bufendtab[];
extern unsigned char _sibuf[], _sobuf[];
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, void *);
extern int vprintf(const char *, void *);
extern int vsprintf(char *, const char *, void *);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int getchar(void);
extern char *gets(char *);
extern int putc(int, FILE *);
extern int putchar(int);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 232 "/usr/include/stdio.h" 3 4
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
# 336 "/usr/include/stdio.h" 3 4
# 390 "/usr/include/stdio.h" 3 4
}
# 15 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "/usr/include/string.h" 1 3 4
#pragma ident "@(#)string.h 1.17 95/08/28 SMI"
extern "C" {
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);
extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
extern char *strstr(const char *, const char *);
extern char *strtok(char *, const char *);
extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);
extern void *memccpy(void *, const void *, int, size_t);
extern char *strdup(const char *);
extern char *strsignal(int);
extern int ffs(const int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
# 119 "/usr/include/string.h" 3 4
}
# 16 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
#pragma implementation "java-array.h"
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/cni.h" 1
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 1
#pragma interface
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/javaprims.h" 1
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 File;
class FileDescriptor;
class FileInputStream;
class FileNotFoundException;
class FileOutputStream;
class FileReader;
class FileWriter;
class FilenameFilter;
class FilterInputStream;
class FilterOutputStream;
class FilterReader;
class FilterWriter;
class IOException;
class InputStream;
class InputStreamReader;
class InterruptedIOException;
class LineNumberInputStream;
class LineNumberReader;
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 StreamTokenizer;
class StringBufferInputStream;
class StringReader;
class StringWriter;
class SyncFailedException;
class UTFDataFormatException;
class UnsupportedEncodingException;
class Writer;
};
namespace lang
{
class AbstractMethodError;
class ArithmeticException;
class ArrayIndexOutOfBoundsException;
class ArrayStoreException;
class Boolean;
class Byte;
class Character;
class Class;
class ClassCastException;
class ClassCircularityError;
class ClassFormatError;
class ClassLoader;
class ClassNotFoundException;
class CloneNotSupportedException;
class Cloneable;
class Comparable;
class Compiler;
class Double;
class Error;
class Exception;
class ExceptionInInitializerError;
class FirstThread;
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 Process;
class Runnable;
class Runtime;
class RuntimeException;
class SecurityException;
class SecurityManager;
class Short;
class StackOverflowError;
class String;
class StringBuffer;
class StringIndexOutOfBoundsException;
class System;
class Thread;
class ThreadDeath;
class ThreadGroup;
class Throwable;
class UnknownError;
class UnsatisfiedLinkError;
class UnsupportedOperationException;
class VerifyError;
class VirtualMachineError;
class Void;
namespace reflect
{
class AccessibleObject;
class Array;
class Constructor;
class Field;
class InvocationTargetException;
class Member;
class Method;
class Modifier;
};
};
namespace util
{
class BitSet;
class Calendar;
class ConcurrentModificationException;
class Date;
class Dictionary;
class EmptyStackException;
class Enumeration;
class EventListener;
class EventObject;
class GregorianCalendar;
class Hashtable;
class HashtableEntry;
class HashtableEnumeration;
class ListResourceBundle;
class Locale;
class MissingResourceException;
class NoSuchElementException;
class Observable;
class Observer;
class Properties;
class Random;
class ResourceBundle;
class SimpleTimeZone;
class Stack;
class StringTokenizer;
class TimeZone;
class TooManyListenersException;
class Vector;
class VectorEnumeration;
namespace zip
{
class Adler32;
class CRC32;
class Checksum;
class Deflater;
class DeflaterOutputStream;
class ZipConstants;
class ZipEntry;
class ZipEnumeration;
class ZipException;
class ZipFile;
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);
extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
extern "C" jstring _Jv_AllocString(jsize);
extern "C" jstring _Jv_NewString (const jchar*, jsize);
extern "C" jchar* _Jv_GetStringChars (jstring str);
extern "C" jint _Jv_MonitorEnter (jobject);
extern "C" jint _Jv_MonitorExit (jobject);
extern "C" jstring _Jv_NewStringLatin1(const char*, jsize);
extern "C" jsize _Jv_GetStringUTFLength (jstring);
extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__));
extern "C" void* _Jv_Malloc (jsize);
extern "C" void _Jv_Free (void*);
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];
};
# 16 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-assert.h" 1
void _Jv_Abort (const char *, const char *, int, const char *)
__attribute__ ((__noreturn__));
# 29 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-assert.h"
# 17 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2
# 1 "include/java-threads.h" 1
# 1 "include/config.h" 1
# 15 "include/java-threads.h" 2
# 1 "/usr/include/unistd.h" 1 3 4
#pragma ident "@(#)unistd.h 1.33 95/08/28 SMI"
# 1 "/usr/include/sys/types.h" 1 3 4
#pragma ident "@(#)types.h 1.36 94/12/20 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
#pragma ident "@(#)isa_defs.h 1.1 93/07/01 SMI"
extern "C" {
# 147 "/usr/include/sys/isa_defs.h" 3 4
}
# 14 "/usr/include/sys/types.h" 2 3 4
# 1 "/usr/include/sys/machtypes.h" 1 3 4
#pragma ident "@(#)machtypes.h 1.5 94/11/05 SMI"
extern "C" {
typedef struct _physadr_t { int r[1]; } *physadr_t;
typedef struct _label_t { int val[6]; } label_t;
typedef unsigned char lock_t;
}
# 19 "/usr/include/sys/types.h" 2 3 4
extern "C" {
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef char * caddr_t;
typedef long daddr_t;
typedef long off_t;
typedef short cnt_t;
typedef ulong_t paddr_t;
typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
# 66 "/usr/include/sys/types.h" 3 4
typedef longlong_t offset_t;
typedef longlong_t diskaddr_t;
typedef union {
offset_t _f;
struct {
off_t _l;
long _u;
} _p;
} lloff_t;
# 95 "/usr/include/sys/types.h" 3 4
typedef union {
diskaddr_t _f;
struct {
daddr_t _l;
long _u;
} _p;
} lldaddr_t;
# 115 "/usr/include/sys/types.h" 3 4
typedef ulong_t k_fltset_t;
typedef long id_t;
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef short pri_t;
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;
typedef int key_t;
typedef ulong_t mode_t;
typedef uid_t gid_t;
typedef ulong_t nlink_t;
typedef ulong_t dev_t;
typedef ulong_t ino_t;
typedef long pid_t;
typedef int ssize_t;
typedef long time_t;
typedef long clock_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
# 231 "/usr/include/sys/types.h" 3 4
typedef long hostid_t;
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { long val[2]; } quad;
# 1 "/usr/include/sys/select.h" 1 3 4
#pragma ident "@(#)select.h 1.10 92/07/14 SMI"
# 1 "/usr/include/sys/time.h" 1 3 4
#pragma ident "@(#)time.h 2.47 95/08/24 SMI"
extern "C" {
struct timeval {
long tv_sec;
long tv_usec;
};
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
}
# 1 "/usr/include/sys/types.h" 1 3 4
# 299 "/usr/include/sys/types.h" 3 4
# 61 "/usr/include/sys/time.h" 2 3 4
extern "C" {
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
typedef struct timespec timestruc_t;
# 172 "/usr/include/sys/time.h" 3 4
typedef struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
} itimerspec_t;
typedef longlong_t hrtime_t;
# 236 "/usr/include/sys/time.h" 3 4
int adjtime(struct timeval *, struct timeval *);
int getitimer(int, struct itimerval *);
int setitimer(int, const struct itimerval *, struct itimerval *);
int gettimeofday(struct timeval *, void *);
int settimeofday(struct timeval *, void *);
hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);
# 278 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
#pragma ident "@(#)time.h 1.23 95/08/28 SMI"
extern "C" {
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime(const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);
extern char *strptime(const char *, const char *, struct tm *);
# 1 "/usr/include/sys/time.h" 1 3 4
# 290 "/usr/include/sys/time.h" 3 4
# 89 "/usr/include/time.h" 2 3 4
# 1 "/usr/include/sys/siginfo.h" 1 3 4
#pragma ident "@(#)siginfo.h 1.36 95/08/24 SMI"
extern "C" {
union sigval {
int sival_int;
void *sival_ptr;
};
struct sigevent {
int sigev_notify;
union {
int _sigev_signo;
void (*_sigev_notify_function)(union sigval);
} _sigev_un;
union sigval sigev_value;
int _sigev_pad1;
void *_sigev_notify_attributes;
int _sigev_pad2;
};
# 1 "/usr/include/sys/machsig.h" 1 3 4
#pragma ident "@(#)machsig.h 1.4 94/11/05 SMI"
extern "C" {
# 1 "/usr/include/vm/faultcode.h" 1 3 4
#pragma ident "@(#)faultcode.h 1.15 92/07/14 SMI"
extern "C" {
typedef int faultcode_t;
}
# 37 "/usr/include/sys/machsig.h" 2 3 4
}
# 71 "/usr/include/sys/siginfo.h" 2 3 4
# 1 "/usr/include/sys/time.h" 1 3 4
# 290 "/usr/include/sys/time.h" 3 4
# 124 "/usr/include/sys/siginfo.h" 2 3 4
typedef struct
siginfo
{
int si_signo;
int si_code;
int si_errno;
union {
int _pad[((128 / sizeof (int)) - 3) ];
struct {
pid_t _pid;
union {
struct {
uid_t _uid;
union sigval _value;
} _kill;
struct {
clock_t _utime;
int _status;
clock_t _stime;
} _cld;
} _pdata;
} _proc;
struct {
caddr_t _addr;
int _trapno;
} _fault;
struct {
int _fd;
long _band;
} _file;
struct {
caddr_t _faddr;
timestruc_t _tstamp;
short _syscall;
char _nsysarg;
char _fault;
long _sysarg[8];
long _mstate[17];
} _prof;
} _data;
} siginfo_t;
typedef struct k_siginfo {
int si_signo;
int si_code;
int si_errno;
union {
struct {
pid_t _pid;
union {
struct {
uid_t _uid;
union sigval _value;
} _kill;
struct {
clock_t _utime;
int _status;
clock_t _stime;
} _cld;
} _pdata;
} _proc;
struct {
caddr_t _addr;
int _trapno;
} _fault;
struct {
int _fd;
long _band;
} _file;
struct {
caddr_t _faddr;
timestruc_t _tstamp;
short _syscall;
char _nsysarg;
char _fault;
} _prof;
} _data;
} k_siginfo_t;
typedef struct sigqueue {
struct sigqueue *sq_next;
k_siginfo_t sq_info;
void (*sq_func)(struct sigqueue *);
void *sq_backptr;
} sigqueue_t;
}
# 90 "/usr/include/time.h" 2 3 4
extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
extern long timezone;
extern int daylight;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);
extern int getdate_err;
# 171 "/usr/include/time.h" 3 4
# 249 "/usr/include/time.h" 3 4
}
# 280 "/usr/include/sys/time.h" 2 3 4
}
# 14 "/usr/include/sys/select.h" 2 3 4
extern "C" {
typedef long fd_mask;
typedef struct fd_set {
fd_mask fds_bits[((( 1024 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ];
} fd_set;
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
}
# 275 "/usr/include/sys/types.h" 2 3 4
}
# 15 "/usr/include/unistd.h" 2 3 4
# 1 "/usr/include/sys/unistd.h" 1 3 4
#pragma ident "@(#)unistd.h 1.23 95/08/24 SMI"
extern "C" {
}
# 16 "/usr/include/unistd.h" 2 3 4
extern "C" {
extern int usleep(unsigned int useconds);
extern int access(const char *, int);
extern int acct(const char *);
extern unsigned alarm(unsigned);
extern int brk(void *);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int chroot(const char *);
extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);
extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);
extern int fdatasync(int);
extern int fdetach(const char *);
extern pid_t fork(void);
extern pid_t fork1(void);
extern long fpathconf(int, int);
extern int fsync(int);
extern int ftruncate(int, off_t);
extern char *getcwd(char *, size_t);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern char *getlogin(void);
extern pid_t getpgid(pid_t);
extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);
char *gettxt(const char *, const char *);
extern pid_t getsid(pid_t);
extern uid_t getuid(void);
extern int ioctl(int, int, ...);
extern int isatty(int);
extern int link(const char *, const char *);
extern int lchown(const char *, uid_t, gid_t);
extern offset_t llseek(int, offset_t, int);
extern int lockf(int, int, long);
extern off_t lseek(int, off_t, int);
extern int mincore(caddr_t, size_t, char *);
extern int nice(int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, unsigned int, unsigned int, unsigned int);
extern int ptrace(int, pid_t, int, int);
extern ssize_t pwrite(int, const void *, size_t, off_t);
extern ssize_t read(int, void *, unsigned);
extern int readlink(const char *, void *, int);
extern int rename(const char *, const char *);
extern int rmdir(const char *);
extern void *sbrk(int);
extern int setgid(gid_t);
extern int setegid(gid_t);
extern int setgroups(int, const gid_t *);
extern int setpgid(pid_t, pid_t);
extern pid_t setpgrp(void);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern int seteuid(uid_t);
extern unsigned sleep(unsigned);
extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);
extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern int truncate(const char *, off_t);
extern char *ttyname(int);
extern int unlink(const char *);
extern pid_t vfork(void);
extern void vhangup(void);
extern ssize_t write(int, const void *, unsigned);
extern void yield(void);
# 450 "/usr/include/unistd.h" 3 4
# 542 "/usr/include/unistd.h" 3 4
}
# 19 "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)
{
}
inline void
_Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *)
{
*data = 0 ;
}
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_ThreadCancel (_Jv_Thread_t *, void *)
{
_Jv_Abort (0, 0, 0, "_Jv_ThreadCancel" ) ;
}
inline void
_Jv_ThreadDestroy (_Jv_Thread_t *)
{
_Jv_Abort (0, 0, 0, "_Jv_ThreadDestroy" ) ;
}
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 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2
# 1 "include/java-gc.h" 1
extern "C"
{
void *_Jv_MarkObj (void *, void *, void *, void *) ;
void *_Jv_MarkArray (void *, void *, void *, void *) ;
};
# 19 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2
struct _JvObjectPrefix
{
protected:
virtual void finalize () = 0;
};
class java::lang::Object : public _JvObjectPrefix
{
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 jint _Jv_MonitorEnter (jobject obj);
friend jint _Jv_MonitorExit (jobject obj);
friend void _Jv_InitializeSyncMutex (void);
friend void _Jv_FinalizeObject (jobject obj);
friend void *_Jv_MarkObj (void *, void *, void *, void *) ;
friend void *_Jv_MarkArray (void *, void *, void *, void *) ;
protected:
virtual jobject clone (void);
virtual void finalize (void);
private:
jobject sync_info;
void sync_init (void);
static void hack12_6 (jobject f);
};
# 16 "../../../libgcj-snapshot-1999-05-03/libjava/include/cni.h" 2
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Class.h" 1
#pragma interface
# 1 "java/lang/String.h" 1
#pragma interface
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-array.h" 1
#pragma interface
extern "Java" {
class __JArray : public java::lang::Object
{
public:
int 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>
T* elements(JArray<T>& x) { return x.data; }
template<class T>
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;
typedef JArray<jcharArray> *jobjectArrayjchar;
extern "C" jbooleanArray JvNewBooleanArray (jint length);
extern "C" jbyteArray JvNewByteArray (jint length);
extern "C" jcharArray JvNewCharArray (jint length);
extern "C" jshortArray JvNewShortArray (jint length);
extern "C" jintArray JvNewIntArray (jint length);
extern "C" jlongArray JvNewLongArray (jint length);
extern "C" jfloatArray JvNewFloatArray (jint length);
extern "C" jdoubleArray JvNewDoubleArray (jint length);
extern "C" jobjectArray _Jv_NewObjectArray(jsize length, jclass, jobject init);
inline jobjectArray JvNewObjectArray (jsize length, jclass cls, jobject init)
{ return _Jv_NewObjectArray (length, cls, init); }
extern "C" jstringArray JvConvertArgv(int argc, const char **argv);
extern "C" void JvRunMain (jclass klass, int argc, const char **argv);
inline jsize JvGetArrayLength (jarray array) { return array->length; }
# 9 "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 *);
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::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 *);
void unintern ();
static void rehash ();
java::lang::Object *data;
jint boffset;
jint count;
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);
};
# 18 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Class.h" 2
extern "C" void _Jv_InitClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);
struct _Jv_Field;
struct _Jv_VTable;
struct _Jv_Constants
{
jint size;
jbyte *tags;
void **data;
};
struct _Jv_Method
{
_Jv_Utf8Const *name;
_Jv_Utf8Const *signature;
unsigned short accflags;
void *ncode;
};
class java::lang::Class : public java::lang::Object
{
public:
static jclass forName (jstring className);
JArray<jclass> *getClasses (void);
java::lang::ClassLoader *getClassLoader (void)
{
return loader;
}
jclass getComponentType (void)
{
return isArray () ? (* (jclass *) &methods) : 0;
}
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:
java::lang::reflect::Field *getField (jstring, jint);
public:
JArray<java::lang::reflect::Field *> *getFields (void);
JArray<jclass> *getInterfaces (void);
java::lang::reflect::Method *getMethod (jstring, JArray<jclass> *);
JArray<java::lang::reflect::Method *> *getMethods (void);
jint getModifiers (void)
{
return accflags;
}
jstring getName (void);
java::io::InputStream *getResourceAsStream (jstring resourceName);
JArray<jobject> *getSigners (void);
jclass getSuperclass (void)
{
return superclass;
}
jboolean isArray (void)
{
return name->data[0] == '[';
}
jboolean isAssignableFrom (jclass cls);
jboolean isInstance (jobject obj);
jboolean isInterface (void);
jboolean isPrimitive (void)
{
return vtable == ((_Jv_VTable *) -1) ;
}
jobject newInstance (void);
jstring toString (void);
jint size (void)
{
return size_in_bytes;
}
private:
void checkMemberAccess (jint flags);
void resolveConstants (void);
java::lang::Throwable *hackTrampoline (jint, java::lang::Throwable *);
void hackRunInitializers (void);
void initializeClass (void);
friend _Jv_Method *_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
_Jv_Utf8Const *signature);
friend void _Jv_InitClass (jclass klass);
friend void _Jv_RegisterClasses (jclass *classes);
friend jclass _Jv_FindClassInCache (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
friend jclass _Jv_FindArrayClass (jclass element);
friend jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
java::lang::ClassLoader *loader);
friend jfieldID JvGetFirstInstanceField (jclass);
friend jint JvNumInstanceFields (jclass);
friend jobject _Jv_AllocObject (jclass, jint);
friend jobjectArray _Jv_NewObjectArray (jsize, jclass, jobject);
friend jobject _Jv_NewPrimArray (jclass, jint);
friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID);
friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
friend class _Jv_PrimClass;
friend void *_Jv_MarkObj (void *, void *, void *, void *) ;
jclass next;
_Jv_Utf8Const *name;
unsigned short accflags;
jclass superclass;
_Jv_Constants constants;
_Jv_Method *methods;
short method_count;
short vtable_method_count;
_Jv_Field *fields;
int size_in_bytes;
short field_count;
short static_field_count;
_Jv_VTable *vtable;
jclass *interfaces;
java::lang::ClassLoader *loader;
short interface_count;
jbyte state;
java::lang::Thread *thread;
};
# 17 "../../../libgcj-snapshot-1999-05-03/libjava/include/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);
}
extern class _Jv_PrimClass _Jv_byteClass, _Jv_shortClass, _Jv_intClass,
_Jv_longClass, _Jv_booleanClass, _Jv_charClass, _Jv_floatClass,
_Jv_doubleClass, _Jv_voidClass;
class JvSynchronize
{
private:
jobject obj;
public:
JvSynchronize (const jobject &o) : obj (o)
{ _Jv_MonitorEnter (obj); }
~JvSynchronize ()
{ _Jv_MonitorExit (obj); }
};
extern void JvThrow (jobject obj) __attribute__ ((__noreturn__));
extern inline void
JvThrow (jobject obj)
{
_Jv_Throw ((void *) obj);
}
extern inline void *
JvMalloc (jsize size)
{
return _Jv_Malloc (size);
}
extern inline void
JvFree (void *ptr)
{
return _Jv_Free (ptr);
}
# 20 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/jvm.h" 1
# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-field.h" 1
# 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;
};
# 8 "java/lang/reflect/Field.h" 2
class java::lang::reflect::Field : public java::lang::reflect::AccessibleObject
{
public:
Field ();
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 ();
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);
friend java::lang::Class;
};
# 15 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-field.h" 2
struct _Jv_Field
{
struct _Jv_Utf8Const* name;
jclass type;
_Jv_ushort flags;
_Jv_ushort bsize;
union {
int 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 getNextInstanceField () { return this + 1; }
jboolean isRef () { return ! isResolved () || ! type->isPrimitive (); }
int getModifiers() { return 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 jboolean
JvFieldIsRef (jfieldID field)
{
return field->isRef ();
}
extern inline jobject
JvGetObjectField (jobject obj, _Jv_Field* field)
{
return _Jv_GetObjectField (obj, field);
}
# 15 "../../../libgcj-snapshot-1999-05-03/libjava/include/jvm.h" 2
struct _Jv_VTable
{
jclass clas;
void *method[1];
};
# 38 "../../../libgcj-snapshot-1999-05-03/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);
extern jboolean _Jv_equalUtf8Consts (_Jv_Utf8Const *, _Jv_Utf8Const *);
extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint);
extern java::lang::Class _CL_Q34java4lang6String ;
typedef void _Jv_FinalizerFunc (jobject);
void *_Jv_AllocObj (jsize size);
void *_Jv_AllocArray (jsize size);
void *_Jv_AllocBytes (jsize size);
void _Jv_InitGC (void);
void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method);
void _Jv_RunFinalizers (void);
void _Jv_RunAllFinalizers (void);
void _Jv_RunGC (void);
long _Jv_GCTotalMemory (void);
long _Jv_GCFreeMemory (void);
void *_Jv_AllocBytesChecked (jsize size);
inline jint
_Jv_HashCode (jobject obj)
{
return (jint) obj;
}
extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index);
extern "C" jobject _Jv_NewArray (jint type, jint size);
extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...);
extern "C" void *_Jv_CheckCast (jclass klass, jobject obj);
extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name,
Utf8Const *signature);
extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj);
extern "C" void _Jv_RegisterClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);
extern jclass _Jv_FindClass (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
extern jclass _Jv_FindClassFromSignature (char *,
java::lang::ClassLoader *loader);
extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims);
# 21 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "include/java-signal.h" 1
# 22 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/Runtime.h" 1
#pragma interface
class java::lang::Runtime : public java::lang::Object
{
public:
virtual java::lang::Process *exec (java::lang::String *);
virtual java::lang::Process *exec (java::lang::String *, JArray<java::lang::String *> *);
virtual java::lang::Process *exec (JArray<java::lang::String *> *);
virtual java::lang::Process *exec (JArray<java::lang::String *> *, JArray<java::lang::String *> *);
private:
static void checkExit (jint);
public:
virtual void exit (jint);
virtual jlong freeMemory ();
virtual void gc ();
virtual java::io::InputStream *getLocalizedInputStream (java::io::InputStream *);
virtual java::io::OutputStream *getLocalizedOutputStream (java::io::OutputStream *);
static java::lang::Runtime *getRuntime ();
private:
void checkLink (java::lang::String *);
public:
virtual void load (java::lang::String *);
virtual void loadLibrary (java::lang::String *);
virtual void runFinalization ();
static void runFinalizersOnExit (jboolean);
virtual jlong totalMemory ();
virtual void traceInstructions (jboolean);
virtual void traceMethodCalls (jboolean);
private:
Runtime ();
static java::lang::Runtime *self;
jboolean finalize_on_exit;
};
# 25 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/Thread.h" 1
#pragma interface
class java::lang::Thread : public java::lang::Object
{
public:
static jint activeCount ();
virtual 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 ();
jboolean isAlive () { return alive_flag; }
jboolean isDaemon () { return daemon_flag; }
void join ();
void join (jlong);
void join (jlong, jint);
void resume ();
private:
static void run__ (java::lang::Object *);
void finish_ ();
void run_ ();
public:
virtual void run ();
void setDaemon (jboolean);
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 *);
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;
jboolean interrupt_flag;
jboolean alive_flag;
java::lang::Object *data;
static jint nextThreadNumber;
};
# 27 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/ThreadGroup.h" 1
#pragma interface
class java::lang::ThreadGroup : public java::lang::Object
{
public:
virtual jint activeCount ();
virtual jint activeGroupCount ();
virtual jboolean allowThreadSuspension (jboolean);
void checkAccess ();
private:
void remove (java::lang::ThreadGroup *);
public:
void remove (java::lang::Thread *);
void add (java::lang::Thread *);
private:
jboolean canDestroy ();
public:
void destroy ();
private:
jint enumerate (JArray<java::lang::Thread *> *, jint, jboolean);
public:
virtual jint enumerate (JArray<java::lang::Thread *> *);
virtual jint enumerate (JArray<java::lang::Thread *> *, jboolean);
private:
jint enumerate (JArray<java::lang::ThreadGroup *> *, jint, jboolean);
public:
virtual jint enumerate (JArray<java::lang::ThreadGroup *> *);
virtual jint enumerate (JArray<java::lang::ThreadGroup *> *, jboolean);
jint getMaxPriority () { return maxpri; }
java::lang::String *getName () { return name; }
java::lang::ThreadGroup *getParent () { return parent; }
jboolean isDaemon () { return daemon_flag; }
virtual jboolean isDestroyed ();
private:
void list (java::lang::String *);
public:
virtual void list ();
jboolean parentOf (java::lang::ThreadGroup *);
void resume ();
void setDaemon (jboolean);
void setMaxPriority (jint);
void stop ();
void suspend ();
ThreadGroup ();
ThreadGroup (java::lang::String *);
ThreadGroup (java::lang::ThreadGroup *, java::lang::String *);
private:
ThreadGroup (jint);
public:
virtual java::lang::String *toString ();
virtual void uncaughtException (java::lang::Thread *, java::lang::Throwable *);
private:
java::lang::ThreadGroup *parent;
java::lang::String *name;
jint maxpri;
java::util::Vector *threads;
java::util::Vector *groups;
jboolean daemon_flag;
jboolean destroyed_flag;
friend void JvRunMain (jclass klass, int argc, const char **argv);
};
# 28 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/FirstThread.h" 1
#pragma interface
class java::lang::FirstThread : public java::lang::Thread
{
public:
void run ();
FirstThread (java::lang::ThreadGroup *, java::lang::Class *, java::lang::Object *);
private:
static void die (java::lang::String *);
java::lang::Class *klass;
java::lang::Object *args;
friend void JvRunMain (jclass klass, int argc, const char **argv);
};
# 29 "../../../libgcj-snapshot-1999-05-03/libjava/prims.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
# 1 "java/lang/Throwable.h" 1
#pragma interface
class java::lang::Throwable : public java::lang::Object
{
public:
virtual java::lang::Throwable *fillInStackTrace () { return this; }
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:
java::lang::String *detailMessage;
};
# 8 "java/lang/Exception.h" 2
class java::lang::Exception : public java::lang::Throwable
{
public:
Exception ();
Exception (java::lang::String *);
};
# 8 "java/lang/RuntimeException.h" 2
class java::lang::RuntimeException : public java::lang::Exception
{
public:
RuntimeException ();
RuntimeException (java::lang::String *);
};
# 8 "java/lang/IndexOutOfBoundsException.h" 2
class java::lang::IndexOutOfBoundsException : public java::lang::RuntimeException
{
public:
IndexOutOfBoundsException ();
IndexOutOfBoundsException (java::lang::String *);
};
# 8 "java/lang/ArrayIndexOutOfBoundsException.h" 2
class java::lang::ArrayIndexOutOfBoundsException : public java::lang::IndexOutOfBoundsException
{
public:
ArrayIndexOutOfBoundsException ();
ArrayIndexOutOfBoundsException (jint);
ArrayIndexOutOfBoundsException (java::lang::String *);
};
# 30 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/ArithmeticException.h" 1
#pragma interface
class java::lang::ArithmeticException : public java::lang::RuntimeException
{
public:
ArithmeticException ();
ArithmeticException (java::lang::String *);
};
# 31 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/ClassFormatError.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 *);
};
# 8 "java/lang/LinkageError.h" 2
class java::lang::LinkageError : public java::lang::Error
{
public:
LinkageError ();
LinkageError (java::lang::String *);
};
# 8 "java/lang/ClassFormatError.h" 2
class java::lang::ClassFormatError : public java::lang::LinkageError
{
public:
ClassFormatError ();
ClassFormatError (java::lang::String *);
};
# 32 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/ClassCastException.h" 1
#pragma interface
class java::lang::ClassCastException : public java::lang::RuntimeException
{
public:
ClassCastException ();
ClassCastException (java::lang::String *);
};
# 33 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/NegativeArraySizeException.h" 1
#pragma interface
class java::lang::NegativeArraySizeException : public java::lang::RuntimeException
{
public:
NegativeArraySizeException ();
NegativeArraySizeException (java::lang::String *);
};
# 34 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/NullPointerException.h" 1
#pragma interface
class java::lang::NullPointerException : public java::lang::RuntimeException
{
public:
NullPointerException ();
NullPointerException (java::lang::String *);
};
# 35 "../../../libgcj-snapshot-1999-05-03/libjava/prims.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 *);
};
# 8 "java/lang/OutOfMemoryError.h" 2
class java::lang::OutOfMemoryError : public java::lang::VirtualMachineError
{
public:
OutOfMemoryError ();
OutOfMemoryError (java::lang::String *);
};
# 36 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/ArrayStoreException.h" 1
#pragma interface
class java::lang::ArrayStoreException : public java::lang::RuntimeException
{
public:
ArrayStoreException ();
ArrayStoreException (java::lang::String *);
};
# 37 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/System.h" 1
#pragma interface
class java::lang::System : public java::lang::Object
{
public:
static void arraycopy (java::lang::Object *, jint, java::lang::Object *, jint, jint);
static jlong currentTimeMillis ();
static void exit (jint);
static void gc ();
static java::lang::String *getenv (java::lang::String *);
private:
static void init_properties ();
public:
static java::util::Properties *getProperties ();
static java::lang::String *getProperty (java::lang::String *);
static java::lang::String *getProperty (java::lang::String *, java::lang::String *);
static java::lang::SecurityManager *getSecurityManager ();
static jint identityHashCode (java::lang::Object *);
static void load (java::lang::String *);
static void loadLibrary (java::lang::String *);
static void runFinalization ();
static void runFinalizersOnExit (jboolean);
private:
static void checkSetIO ();
public:
static void setErr (java::io::PrintStream *);
static void setIn (java::io::InputStream *);
static void setOut (java::io::PrintStream *);
static void setProperties (java::util::Properties *);
static void setSecurityManager (java::lang::SecurityManager *);
private:
System ();
public:
static java::io::InputStream *in;
static java::io::PrintStream *out;
static java::io::PrintStream *err;
private:
static java::lang::SecurityManager *secman;
static java::util::Properties *properties;
static jboolean prop_init;
};
# 38 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/lang/reflect/Modifier.h" 1
#pragma interface
class java::lang::reflect::Modifier : public java::lang::Object
{
public:
Modifier ();
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 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:
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;
};
# 39 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
# 1 "java/io/PrintStream.h" 1
#pragma interface
# 1 "java/io/FilterOutputStream.h" 1
#pragma interface
# 1 "java/io/OutputStream.h" 1
#pragma interface
class java::io::OutputStream : public java::lang::Object
{
public:
OutputStream ();
virtual void write (jint) = 0;
virtual void write (jbyteArray);
virtual void write (jbyteArray, jint, jint);
virtual void flush ();
virtual void close ();
};
# 8 "java/io/FilterOutputStream.h" 2
class java::io::FilterOutputStream : public java::io::OutputStream
{
public:
virtual void close ();
FilterOutputStream (java::io::OutputStream *);
virtual void flush ();
virtual void write (jint);
virtual void write (jbyteArray);
virtual void write (jbyteArray, jint, jint);
public:
java::io::OutputStream *out;
};
# 8 "java/io/PrintStream.h" 2
extern "Java"
{
namespace gnu
{
namespace gcj
{
namespace convert
{
class UnicodeToBytes;
};
};
};
};
class java::io::PrintStream : public java::io::FilterOutputStream
{
public:
virtual jboolean checkError () { return error; }
virtual void close ();
virtual void flush ();
private:
void print (java::lang::String *, jboolean);
void print (jcharArray, jint, jint, jboolean);
void writeChars (jcharArray, jint, jint);
void writeChars (java::lang::String *, jint, jint);
public:
virtual void print (jboolean);
virtual void print (jint);
virtual void print (jlong);
virtual void print (jfloat);
virtual void print (jdouble);
virtual void print (java::lang::Object *);
virtual void print (java::lang::String *);
virtual void print (jchar);
virtual void print (jcharArray);
virtual void println ();
virtual void println (jboolean);
virtual void println (jint);
virtual void println (jlong);
virtual void println (jfloat);
virtual void println (jdouble);
virtual void println (java::lang::Object *);
virtual void println (java::lang::String *);
virtual void println (jchar);
virtual void println (jcharArray);
PrintStream (java::io::OutputStream *);
PrintStream (java::io::OutputStream *, jboolean);
public:
virtual void setError ();
public:
virtual void write (jint);
virtual void write (jbyteArray, jint, jint);
public:
java::io::BufferedOutputStream *out;
gnu::gcj::convert::UnicodeToBytes *converter;
jcharArray work;
private:
jboolean error;
jboolean auto_flush;
static jcharArray line_separator;
};
# 40 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2
extern java::lang::Class _CL_Q34java4lang6Object ;
static java::lang::OutOfMemoryError *no_memory;
jboolean
_Jv_equalUtf8Consts (Utf8Const* a, Utf8Const *b)
{
register int len;
register _Jv_ushort *aptr, *bptr;
if (a == b)
return true;
if (a->hash != b->hash)
return false;
len = a->length;
if (b->length != len)
return false;
aptr = (_Jv_ushort *)a->data;
bptr = (_Jv_ushort *)b->data;
len = (len + 1) >> 1;
while (--len >= 0)
if (*aptr++ != *bptr++)
return false;
return true;
}
jboolean
_Jv_equal (Utf8Const* a, jstring str, jint hash)
{
if (a->hash != (_Jv_ushort) hash)
return false;
jint len = str->length();
jint i = 0;
jchar *sptr = _Jv_GetStringChars (str);
register unsigned char* ptr = (unsigned char*) a->data;
register unsigned char* limit = ptr + a->length;
for (;; i++, sptr++)
{
int ch = (( ptr ) >= ( limit ) ? -1 : *( ptr ) < 128 ? *( ptr )++ : (*( ptr )&0xE0) == 0xC0 && (( ptr )+=2)<=( limit ) && (( ptr )[-1]&0xC0) == 0x80 ? ((( ptr )[-2] & 0x1F) << 6) + (( ptr )[-1] & 0x3F) : (*( ptr ) & 0xF0) == 0xE0 && (( ptr ) += 3) <= ( limit ) && (( ptr )[-2] & 0xC0) == 0x80 && (( ptr )[-1] & 0xC0) == 0x80 ? ((( ptr )[-3]&0x0F) << 12) + ((( ptr )[-2]&0x3F) << 6) + (( ptr )[-1]&0x3F) : (( ptr )++, -1)) ;
if (i == len)
return ch < 0;
if (ch != *sptr)
return false;
}
return true;
}
int
_Jv_strLengthUtf8(char* str, int len)
{
register unsigned char* ptr;
register unsigned char* limit;
int str_length;
ptr = (unsigned char*) str;
limit = ptr + len;
str_length = 0;
for (; ptr < limit; str_length++) {
if ((( ptr ) >= ( limit ) ? -1 : *( ptr ) < 128 ? *( ptr )++ : (*( ptr )&0xE0) == 0xC0 && (( ptr )+=2)<=( limit ) && (( ptr )[-1]&0xC0) == 0x80 ? ((( ptr )[-2] & 0x1F) << 6) + (( ptr )[-1] & 0x3F) : (*( ptr ) & 0xF0) == 0xE0 && (( ptr ) += 3) <= ( limit ) && (( ptr )[-2] & 0xC0) == 0x80 && (( ptr )[-1] & 0xC0) == 0x80 ? ((( ptr )[-3]&0x0F) << 12) + ((( ptr )[-2]&0x3F) << 6) + (( ptr )[-1]&0x3F) : (( ptr )++, -1)) < 0) {
return (-1);
}
}
return (str_length);
}
static jint
hashUtf8String (char* str, int len)
{
register unsigned char* ptr = (unsigned char*) str;
register unsigned char* limit = ptr + len;
jint hash = 0;
for (; ptr < limit;)
{
int ch = (( ptr ) >= ( limit ) ? -1 : *( ptr ) < 128 ? *( ptr )++ : (*( ptr )&0xE0) == 0xC0 && (( ptr )+=2)<=( limit ) && (( ptr )[-1]&0xC0) == 0x80 ? ((( ptr )[-2] & 0x1F) << 6) + (( ptr )[-1] & 0x3F) : (*( ptr ) & 0xF0) == 0xE0 && (( ptr ) += 3) <= ( limit ) && (( ptr )[-2] & 0xC0) == 0x80 && (( ptr )[-1] & 0xC0) == 0x80 ? ((( ptr )[-3]&0x0F) << 12) + ((( ptr )[-2]&0x3F) << 6) + (( ptr )[-1]&0x3F) : (( ptr )++, -1)) ;
hash = (31 * hash) + ch;
}
return hash;
}
_Jv_Utf8Const *
_Jv_makeUtf8Const (char* s, int len)
{
if (len < 0)
len = strlen (s);
Utf8Const* m = (Utf8Const*) _Jv_AllocBytes (sizeof(Utf8Const) + len + 1);
if (! m)
JvThrow (no_memory);
memcpy (m->data, s, len);
m->data[len] = 0;
m->length = len;
m->hash = hashUtf8String (s, len) & 0xFFFF;
return (m);
}
void
_Jv_Abort (const char *, const char *, int, const char *message)
{
java::io::PrintStream *err = java::lang::System::err;
err->print(JvNewStringLatin1 ("libgcj failure: "));
err->println(JvNewStringLatin1 (message));
err->flush();
abort ();
}
static void
fail_on_finalization (jobject)
{
_Jv_Abort (0, 0, 0, "object was finalized" ) ;
}
void
_Jv_GCWatch (jobject obj)
{
_Jv_RegisterFinalizer (obj, fail_on_finalization);
}
void
_Jv_ThrowBadArrayIndex(jint bad_index)
{
JvThrow (new java::lang::ArrayIndexOutOfBoundsException
(java::lang::String::valueOf(bad_index)));
}
void*
_Jv_CheckCast (jclass c, jobject obj)
{
if (obj != 0 && ! c->isAssignableFrom(obj->getClass()))
JvThrow (new java::lang::ClassCastException);
return obj;
}
void
_Jv_CheckArrayStore (jobject arr, jobject obj)
{
if (obj)
{
;
jclass arr_class = arr->getClass();
;
jclass elt_class = arr_class->getComponentType();
jclass obj_class = obj->getClass();
if (! elt_class->isAssignableFrom(obj_class))
JvThrow (new java::lang::ArrayStoreException);
}
}
void *
_Jv_AllocBytesChecked (jsize size)
{
void *r = _Jv_AllocBytes (size);
if (! r)
_Jv_Throw (no_memory);
return r;
}
jobject
_Jv_AllocObject (jclass c, jint size)
{
_Jv_InitClass (c);
jobject obj = (jobject) _Jv_AllocObj (size);
if (! obj)
JvThrow (no_memory);
*((_Jv_VTable **) obj) = c->vtable;
if (c->vtable->method[1] != _CL_Q34java4lang6Object .vtable->method[1])
_Jv_RegisterFinalizer (obj, _Jv_FinalizeObject);
return obj;
}
jobjectArray
_Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
{
if (count < 0)
JvThrow (new java::lang::NegativeArraySizeException);
if ((size_t) count > (((size_t) (~ (size_t) 0)) - sizeof (__JArray)) / sizeof (jobject))
JvThrow (no_memory);
size_t size = count * sizeof (jobject) + sizeof (__JArray);
jclass clas = _Jv_FindArrayClass (elementClass);
jobjectArray obj = (jobjectArray) _Jv_AllocArray (size);
if (! obj)
JvThrow (no_memory);
obj->length = count;
jobject* ptr = elements(obj);
if (init)
{
while (--count >= 0)
*ptr++ = init;
}
*((_Jv_VTable **) obj) = clas->vtable;
return obj;
}
jobject
_Jv_NewPrimArray (jclass eltype, jint count)
{
int elsize = eltype->size();
if (count < 0)
JvThrow (new java::lang::NegativeArraySizeException ());
if ((size_t) count > (((size_t) (~ (size_t) 0)) - sizeof (__JArray)) / elsize)
JvThrow (no_memory);
__JArray *arr = (__JArray*) _Jv_AllocObj (sizeof (__JArray)
+ elsize * count);
if (! arr)
JvThrow (no_memory);
arr->length = count;
jclass klass = _Jv_FindArrayClass (eltype);
*((_Jv_VTable **) arr) = klass->vtable;
return arr;
}
jcharArray
JvNewCharArray (jint length)
{
return (jcharArray) _Jv_NewPrimArray (((jclass) & _Jv_charClass) , length);
}
jbooleanArray
JvNewBooleanArray (jint length)
{
return (jbooleanArray) _Jv_NewPrimArray (((jclass) & _Jv_booleanClass) , length);
}
jbyteArray
JvNewByteArray (jint length)
{
return (jbyteArray) _Jv_NewPrimArray (((jclass) & _Jv_byteClass) , length);
}
jshortArray
JvNewShortArray (jint length)
{
return (jshortArray) _Jv_NewPrimArray (((jclass) & _Jv_shortClass) , length);
}
jintArray
JvNewIntArray (jint length)
{
return (jintArray) _Jv_NewPrimArray (((jclass) & _Jv_intClass) , length);
}
jlongArray
JvNewLongArray (jint length)
{
return (jlongArray) _Jv_NewPrimArray (((jclass) & _Jv_longClass) , length);
}
jfloatArray
JvNewFloatArray (jint length)
{
return (jfloatArray) _Jv_NewPrimArray (((jclass) & _Jv_floatClass) , length);
}
jdoubleArray
JvNewDoubleArray (jint length)
{
return (jdoubleArray) _Jv_NewPrimArray (((jclass) & _Jv_doubleClass) , length);
}
jobject
_Jv_NewArray (jint type, jint size)
{
switch (type)
{
case 4: return JvNewBooleanArray (size);
case 5: return JvNewCharArray (size);
case 6: return JvNewFloatArray (size);
case 7: return JvNewDoubleArray (size);
case 8: return JvNewByteArray (size);
case 9: return JvNewShortArray (size);
case 10: return JvNewIntArray (size);
case 11: return JvNewLongArray (size);
}
_Jv_Abort (0, 0, 0, "newarray - bad type code" ) ;
return 0 ;
}
jobject
_Jv_NewMultiArray (jclass type, jint dimensions, jint *sizes)
{
;
jclass element_type = type->getComponentType();
jobject result;
if (element_type->isPrimitive())
result = _Jv_NewPrimArray (element_type, sizes[0]);
else
result = _Jv_NewObjectArray (sizes[0], element_type, 0 );
if (dimensions > 1)
{
;
;
jobject *contents = elements ((jobjectArray) result);
for (int i = 0; i < sizes[0]; ++i)
contents[i] = _Jv_NewMultiArray (element_type, dimensions - 1,
sizes + 1);
}
return result;
}
jobject
_Jv_NewMultiArray (jclass array_type, jint dimensions, ...)
{
va_list args;
jint sizes[dimensions];
( args = ((__gnuc_va_list) __builtin_next_arg ( dimensions ))) ;
for (int i = 0; i < dimensions; ++i)
{
jint size = ( args = (__gnuc_va_list) ((char *) ( args ) + (((sizeof ( jint ) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) ), *(( jint *) (void *) ((char *) ( args ) - (((sizeof ( jint ) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) ))) ;
sizes[i] = size;
}
((void)0) ;
return _Jv_NewMultiArray (array_type, dimensions, sizes);
}
class _Jv_PrimClass : public java::lang::Class
{
public:
_Jv_PrimClass (jobject cname, jbyte sig, jint len)
{
using namespace java::lang::reflect;
next = 0 ;
name = _Jv_makeUtf8Const ((char *) cname, -1);
accflags = Modifier::PUBLIC | Modifier::FINAL;
superclass = 0 ;
constants.size = 0;
constants.tags = 0 ;
constants.data = 0 ;
methods = 0 ;
method_count = sig;
vtable_method_count = 0;
fields = 0 ;
size_in_bytes = len;
field_count = 0;
static_field_count = 0;
vtable = ((_Jv_VTable *) -1) ;
interfaces = 0 ;
loader = 0 ;
interface_count = 0;
state = 0;
thread = 0 ;
}
};
_Jv_PrimClass _Jv_byteClass((jobject) "byte", (jbyte) 'B' , (jint) 1 ) ;
_Jv_PrimClass _Jv_shortClass((jobject) "short", (jbyte) 'S' , (jint) 2 ) ;
_Jv_PrimClass _Jv_intClass((jobject) "int", (jbyte) 'I' , (jint) 4 ) ;
_Jv_PrimClass _Jv_longClass((jobject) "long", (jbyte) 'J' , (jint) 8 ) ;
_Jv_PrimClass _Jv_booleanClass((jobject) "boolean", (jbyte) 'Z' , (jint) 1 ) ;
_Jv_PrimClass _Jv_charClass((jobject) "char", (jbyte) 'C' , (jint) 2 ) ;
_Jv_PrimClass _Jv_floatClass((jobject) "float", (jbyte) 'F' , (jint) 4 ) ;
_Jv_PrimClass _Jv_doubleClass((jobject) "double", (jbyte) 'D' , (jint) 8 ) ;
_Jv_PrimClass _Jv_voidClass((jobject) "void", (jbyte) 'V' , (jint) 0 ) ;
jclass
_Jv_FindClassFromSignature (char *sig, java::lang::ClassLoader *loader)
{
switch (*sig)
{
case 'B':
return ((jclass) & _Jv_byteClass) ;
case 'S':
return ((jclass) & _Jv_shortClass) ;
case 'I':
return ((jclass) & _Jv_intClass) ;
case 'J':
return ((jclass) & _Jv_longClass) ;
case 'Z':
return ((jclass) & _Jv_booleanClass) ;
case 'C':
return ((jclass) & _Jv_charClass) ;
case 'F':
return ((jclass) & _Jv_floatClass) ;
case 'D':
return ((jclass) & _Jv_doubleClass) ;
case 'V':
return ((jclass) & _Jv_voidClass) ;
case 'L':
{
int i;
for (i = 1; sig[i] && sig[i] != ';'; ++i)
;
_Jv_Utf8Const *name = _Jv_makeUtf8Const (&sig[1], i - 1);
return _Jv_FindClass (name, loader);
}
case '[':
return _Jv_FindArrayClass (_Jv_FindClassFromSignature (&sig[1], loader));
}
_Jv_Abort (0, 0, 0, "couldn't understand class signature" ) ;
return 0 ;
}
JArray<jstring> *
JvConvertArgv (int argc, const char **argv)
{
if (argc < 0)
argc = 0;
jobjectArray ar = JvNewObjectArray(argc, & _CL_Q34java4lang6String , 0 );
jobject* ptr = elements(ar);
for (int i = 0; i < argc; i++)
{
const char *arg = argv[i];
*ptr++ = JvNewStringLatin1(arg, strlen(arg));
}
return (JArray<jstring>*) ar;
}
static jobject arg_vec;
static java::lang::ThreadGroup *main_group;
static java::lang::Thread *main_thread;
void
JvRunMain (jclass klass, int argc, const char **argv)
{
do {} while (0) ;
do {} while (0) ;
no_memory = new java::lang::OutOfMemoryError;
arg_vec = JvConvertArgv (argc - 1, argv + 1);
main_group = new java::lang::ThreadGroup (23);
main_thread = new java::lang::FirstThread (main_group, klass, arg_vec);
main_thread->start();
_Jv_ThreadWait ();
java::lang::Runtime::getRuntime ()->exit (0);
}
void *
_Jv_Malloc (jsize size)
{
if (size == 0)
size = 1;
void *ptr = malloc ((size_t) size);
if (ptr == 0 )
JvThrow (no_memory);
return ptr;
}
void
_Jv_Free (void* ptr)
{
return free (ptr);
}
----------------------------------------------------------------------
Ciao
Oliver
------=_NextPart_000_634f27d6_f3115a6$6c24e94f--