ddf0fc6c9f
2000-03-07 Bryce McKinlay <bryce@albatross.co.nz> * resolve.cc (_Jv_SearchMethodInClass): New function. (_Jv_ResolvePoolEntry): Search superinterfaces for interface methods. * java/lang/Class.h (_Jv_SearchMethodInClass): New prototype. 2000-03-07 Bryce McKinlay <bryce@albatross.co.nz> * java/lang/Class.h (union _Jv_IDispatchTable): New declaration. (struct _Jv_ifaces): New declaration. JV_CLASS: New macro definition. (getComponentType): Relocate below isArray() for inlining. (getModifiers): Declare `inline'. (getSuperclass): Ditto. (isArray): Ditto. (isPrimitive): Ditto. (_Jv_IsAssignableFrom): New prototype. (_Jv_LookupInterfaceMethodIdx): New prototype. Predeclare with "C" linkage. (_Jv_InitClass): Move from natClass.cc. Declare `inline'. Check for JV_STATE_DONE before invoking initializeClass(). (_Jv_PrepareConstantTimeTables): New prototype. (_Jv_GetInterfaces): Ditto. (_Jv_GenerateITable): Ditto. (_Jv_GetMethodString): Ditto. (_Jv_AppendPartialITable): Ditto. (_Jv_FindIIndex): Ditto. depth, ancestors, idt: New class fields. * java/lang/natClass.cc (isAssignableFrom): Move functionality to inline function `_Jv_IsAssignableFrom'. Use that function. (isInstance): Declare `inline'. (initializeClass): Get lock on class before checking `state'. Unlock before calling resolveClass0. Call _Jv_PrepareConstantTimeTables with the lock held. (_Jv_LookupInterfaceMethod): Use _Jv_GetMessageString. (_Jv_IsAssignableFrom): New inline function. Test assignability using class->depth and ancestor table. (_Jv_IsInstanceOf): Use _Jv_IsAssignableFrom. (_Jv_CheckCast): Move from prims.cc. Use JV_CLASS and _Jv_IsAssignableFrom. (_Jv_CheckArrayStore): Ditto. (_Jv_LookupInterfaceMethodIdx): New function. INITIAL_IOFFSETS_LEN, INITIAL_IFACES_LEN: New #defines. (_Jv_PrepareConstantTimeTables): New function. (_Jv_IndexOf): Ditto. (_Jv_GetInterfaces): Ditto. (_Jv_GenerateITable): Ditto. (_Jv_GetMethodString): Ditto. (_Jv_AppendPartialITable): Ditto. iindex_mutex, iindex_mutex_initialized: New static fields. (_Jv_FindIIndex): New function. * java/lang/natClassLoader.cc (_Jv_NewClass): Set new jclass fields. * prims.cc (_Jv_CheckCast): Moved to natClass.cc. (_Jv_CheckArrayStore): Ditto. (JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray): Moved to gcj/array.h. (_Jv_Realloc): New function. * gcj/cni.h: Move _Jv_PrimClass definitions to gcj/array.h. * gcj/array.h: _Jv_PrimClass definitions moved from gcj/cni.h. (JvNewCharArray, JvNewBooleanArray, JvNewByteArray, JvNewShortArray, JvNewIntArray, JvNewLongArray, JvNewFloatArray, JvNewDoubleArray): Implementations moved from prims.cc and declared `inline'. * gcj/javaprims.h (_Jv_Realloc): Prototype. * include/jvm.h (_Jv_LookupInterfaceMethodIdx): Prototype. From-SVN: r32382 |
||
---|---|---|
.. | ||
doc | ||
gcj | ||
gnu/gcj | ||
include | ||
java | ||
libltdl | ||
scripts | ||
testsuite | ||
acconfig.h | ||
acinclude.m4 | ||
aclocal.m4 | ||
boehm.cc | ||
ChangeLog | ||
ChangeLog-1999 | ||
chartables.pl | ||
configure | ||
configure.host | ||
configure.in | ||
COPYING.LIB | ||
defineclass.cc | ||
exception.cc | ||
gij.cc | ||
interpret.cc | ||
jni.cc | ||
LIBGCJ_LICENSE | ||
libgcj-test.spec.in | ||
libgcj.spec.in | ||
libgcjdata.c | ||
libtool-version | ||
Makefile.am | ||
Makefile.in | ||
mauve-libgcj | ||
name-finder.cc | ||
NEWS | ||
no-threads.cc | ||
nogc.cc | ||
posix-threads.cc | ||
prims.cc | ||
README | ||
resolve.cc | ||
THANKS |
This is libgcj: the runtime library for gcj, the GNU Compiler for Java. libgcj provides a partial implementation of the Java Class Libraries. libgcj is free software. See the file COPYING.LIB for copying permission. DOCUMENTATION ============= All documentation, including detailed installation and usage instructions, can be found on the gcj web pages at the following URL: http://sourceware.cygnus.com/java/ QUICK INSTALLATION ================== > mkdir build > cd build > ../libgcj/configure --enable-java-gc=<GC TYPE> \ --enable-threads=<THREADS TYPE> > make > make install where: <GC TYPE> specifies the Garbage Collection library to be used by libgcj. Currently the only supported value is "boehm". <THREADS TYPE> specifies the threads library to be used by libgcj. Currently the possible values are "posix" and "none". This value must be the same as the value used when configuring gcc itself. Consult the gcj web pages for additional "configure" arguments. NOTE: libgcj can not be configured/built in the source directory. You must create a separate build directory. BUGS ==== Please submit bug reports to the following URL: http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?database=java