Tom Tromey
3fd8010046
PR libgcj/12016, PR libgcj/18405, PR libgcj/17738:
...
* java/lang/Package.java (getPackages): Use VMClassLoader when
appropriate.
(getPackage): Likewise.
* prims.cc (_Jv_CreateJavaVM): Call
_Jv_RegisterBootstrapPackages.
* include/jvm.h (_Jv_RegisterBootstrapPackages): Declare.
* java/lang/VMClassLoader.java (getPackage): Rewrote.
(getPackages): Likewise.
(definedPackages): New field.
(definePackageForNative): New method.
* java/lang/Class.h (_Jv_FindClassInCache): Updated.
* java/lang/natVMClassLoader.cc (loadClass): Updated.
* defineclass.cc (handleClassBegin): Use
ClassLoader.findLoadedClass.
* java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader):
Rewrote.
(struct _Jv_LoaderInfo): Removed.
(initiated_classes): Likewise.
(_Jv_UnregisterClass): Don't use initiated_classes.
(_Jv_FindClassInCache): Likewise. Removed 'loader' argument.
(_Jv_FindClass): Register classes found during boostrap.
(BOOTSTRAP_CLASS_LIST_SIZE): New define.
(bootstrap_class_list): New global.
(bootstrap_index): Likewise.
(_Jv_RegisterBootstrapPackages): New function.
* gnu/gcj/runtime/natVMClassLoader.cc (findClass): Call
definePackageForNative.
(findClass): Updated.
* gnu/gcj/runtime/VMClassLoader.java (definePackageForNative):
New method.
From-SVN: r93155
2005-01-10 19:39:26 +00:00
Tom Tromey
367390404d
* Merged gcj-abi-2-dev-branch to trunk.
...
(Actual changes too large to list in the commit message;
see ChangeLog.)
From-SVN: r91270
2004-11-25 03:47:08 +00:00
Michael Koch
0791cb20bc
VMClassLoader.java: Reworked imports.
...
2004-01-23 Michael Koch <konqueror@gmx.de>
* java/lang/VMClassLoader.java: Reworked imports.
From-SVN: r76426
2004-01-23 15:29:38 +00:00
Tom Tromey
d801e245eb
VMClassLoader.java (loadClass): Now native.
...
* java/lang/VMClassLoader.java (loadClass): Now native.
* java/lang/natClassLoader.cc (loadClass): Implement.
* prims.cc (_Jv_RunMain): Initialize ClassLoader.
From-SVN: r72038
2003-10-02 15:34:28 +00:00
Tom Tromey
b9f42bb060
Proxy.java (generate): Uncomment protection domain code.
...
* java/lang/reflect/Proxy.java (generate): Uncomment protection
domain code.
* java/lang/natClassLoader.cc (defineClass): Added `loader'
argument.
(linkClass0): Now in VMClassLoader.
(markClassErrorState0): Likewise.
(getSystemClassLoaderInternal): New method.
* java/lang/natClass.cc (initializeClass): Use
VMClassLoader::resolveClass.
* java/lang/ClassLoader.java: New version, from Classpath.
* java/lang/Class.java (getProtectionDomain):
protectionDomainPermission and unknownProtectionDomain now in
VMClassLoader.
* java/lang/Class.h: VMClassLoader now a friend class.
* gnu/gcj/runtime/VMClassLoader.java (instance): Now
package-private.
* gcj/javaprims.h: Regenerated class list.
* resolve.cc (_Jv_PrepareClass): Use VMClassLoader::resolveClass.
* java/lang/VMClassLoader.java: New version from Classpath;
modified for libgcj use.
From-SVN: r71765
2003-09-25 07:46:19 +00:00
Anthony Green
d3cc3f10da
Add Proxy support.
...
From-SVN: r57635
2002-09-30 05:19:09 +00:00
Tom Tromey
419831367f
Class.h (Class::desiredAssertionStatus): Declare.
...
* java/lang/Class.h (Class::desiredAssertionStatus): Declare.
(Class::getPackagePortion): Likewise.
* java/lang/Class.java (desiredAssertionStatus): New method from
Classpath.
(getPackagePortion): Likewise.
* java/lang/VMClassLoader.java (defaultAssertionStatus,
packageAssertionStatus, classAssertionStatus): New methods from
Classpath.
* java/lang/ClassLoader.java (defaultAssertionStatus,
systemPackageAssertionStatus, packageAssertionStatus,
systemClassAssertionStatus, classAssertionStatus): New fields from
Classpath.
(setDefaultAssertionStatus, setPackageAssertionStatus,
setClassAssertionStatus, clearAssertionStatus): New methods from
Classpath.
* Makefile.in: Rebuilt.
* Makefile.am (core_java_source_files): Added AssertionError.java.
* java/lang/AssertionError.java: New from Classpath.
From-SVN: r54517
2002-06-11 17:33:22 +00:00
Bryce McKinlay
839f820424
VMClassLoader.java (getPrimitiveClass): Now native.
...
* java/lang/VMClassLoader.java (getPrimitiveClass): Now native. Now
takes a jchar type-code argument, not a string.
* java/lang/natClassLoader.cc (VMClassLoader::getPrimitiveClass):
New method. Just call _Jv_FindClassFromSignature.
* java/lang/Boolean.java (TYPE): Initialize from
VMClassLoader.getPrimitiveClass using type-code.
* java/lang/Character.java (TYPE): Likewise.
* java/lang/Double.java (TYPE): Likewise.
* java/lang/Float.java (TYPE): Likewise.
* java/lang/Integer.java (TYPE): Likewise.
* java/lang/Long.java (TYPE): Likewise.
* java/lang/Short.java (TYPE): Likewise.
* java/lang/Void.java (TYPE): Likewise.
From-SVN: r46521
2001-10-26 02:51:04 +01:00
Tom Tromey
82545bf72f
VMClassLoader.java (getPrimitiveClass): Return correct type.
...
* java/lang/VMClassLoader.java (getPrimitiveClass): Return correct
type.
From-SVN: r44296
2001-07-24 14:31:42 +00:00
Tom Tromey
e109d16f8c
javaprims.h: Rebuilt class list.
...
* gcj/javaprims.h: Rebuilt class list.
* Makefile.in: Rebuilt.
* Makefile.am (core_java_source_files): Added VMClassLoader.
* java/lang/VMClassLoader.java: New file.
* java/lang/Boolean.java: Merged with Classpath.
* java/lang/Byte.java: Merged with Classpath.
* java/lang/Integer.java: Merged with Classpath.
* java/lang/Long.java: Merged with Classpath.
* java/lang/Number.java: Merged with Classpath.
* java/lang/Short.java: Merged with Classpath.
From-SVN: r44274
2001-07-23 20:01:29 +00:00
Kresten Krab Thorup
eb4534a636
natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed from _Jv_InternClassStrings.
...
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed
from _Jv_InternClassStrings.
* prims.cc (_Jv_RunMain): New function.
(JvRunMain): Remove gij-support.
* gij.cc (main): Use _Jv_RunMain.
* java/util/zip/ZipFile.java: Call readDirectory in constructor.
* interpret.cc (PUSHA, PUSHI, PUSHF, PUSHL, PUSHD): Don't store
argument in temp variable.
(continue1): For all op_x2y insns, use temp variable for
intermediate value. Also remove some comments.
* java/lang/natClass.cc (newInstance): Call _Jv_InitClass.
(forName): Don't call _Jv_InitClass.
* java/lang/Class.java (getResource,getResourceAsStream): Implement.
* java/util/zip/ZipEntry.java (ZipEntry(ZipEntry)): New construcor.
* java/util/jar/JarInputStream.java: New file.
* java/util/jar/JarEntry.java: New file.
* java/util/jar/JarFile.java: New file.
* java/net/URLClassLoader.java: New file.
* java/net/JarURLConnection.java: New file.
* gnu/gcj/protocol/jar/Handler.java: New file.
* gnu/gcj/protocol/jar/Connection.java: New file.
* java/security/SecureClassLoader.java: New file.
* java/lang/ClassLoader.java (parent): New variable.
(ClassLoader (ClassLoader)): new constructor.
(findClass): New method.
(loadClass): Add default 1.2 implementation.
(getSystemResourceAsBytes, getResourceAsBytes): Removed.
(readfully): Removed.
* gnu/gcj/runtime/VMClassLoader.java: Moved from java/lang.
(findSystemClass): New method.
(VMClassLoader): Constructor rewritten.
(init): New method.
All other methods removed.
* java/lang/natClassLoader.cc: Change use of java::lang::VMClassLoader
to gnu::gcj::runtime::VMClassLoader.
(_Jv_InternClassStrings): Use _Jv_ResolvePoolEntry. Also handle
class entries.
(VMClassLoader::findSystemClass): renamed from findBootClass.
* Makefile.am: Add new files.
(FirstThread.h, ThreadGroup.h): Add _Jv_Main friend.
* Makefile.in: Rebuilt.
From-SVN: r28748
1999-08-18 14:16:42 +00:00
Anthony Green
58eb6e7cef
[multiple changes]
...
1999-08-09 Anthony Green <green@cygnus.com>
* gij.cc: New file.
* include/config.h.in: Rebuilt.
* acconfig.h: Add INTERPRETER.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (libffi_files): Identify the libffi object files for
inclusion in libgcj.
(LIBFFIINCS): Define.
* interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
Dummy definition for configurations without an interpreter.
* java/net/natPlainSocketImpl.cc (getOption): Disamiguate call to
java::lang::Boolean constructor.
* include/java-interp.h: Always include java-cpool.h.
* java/lang/natClassLoader.cc (getVMClassLoader0): Always return 0
when INTERPRETER not defined.
* java/lang/Class.h (finalize): Define.
* gnu/gcj/util/path/DirectoryPathEntry.java (getURL): Catch
IOException from File.getCanonicalPath.
(getStream): Likewise.
* NEWS: More news.
* THANKS: More thanks.
1999-08-09 Kresten Krab Thorup <krab@gnu.org>
* resolve.cc (get_ffi_type_from_signature): Generate uint16 for
jchar type.
(_Jv_PrepareClass): Allow non-abstract classes to
have abstract subclasses.
(_Jv_ResolvePoolEntry): Revert subclass check for protected
fields and methods.
* interpret.cc (continue1/perform_invoke): Don't sign extend
uint16 return val.
(continue1/lshl,lshr): Push long, not int.
(continue1/ulshr): Use UINT64, not long long.
* defineclass.cc (handleFieldsEnd): Handle case when all fields
are static.
* java/lang/natClass.cc (forName): Add call to _Jv_InitClass.
* java/lang/FirstThread.java (run): Add top-level exception
handler.
(run0): Renamed from run.
1999-08-08 Kresten Krab Thorup <krab@gnu.org>
* configure.in (--with-interpreter): Added.
* include/config.h.in (INTERPRETER): Added.
* java/lang/ClassLoader.java: File replaced.
* java/lang/VMClassLoader.java: New file.
* java/lang/natClassLoader.cc: New file.
* gnu/gcj/runtime/MethodInvocation.java: New file.
* gnu/gcj/util/path/SearchPath.java: New file.
* gnu/gcj/util/path/PathEntry.java: New file.
* gnu/gcj/util/path/DirectoryPathEntry.java: New file.
* gnu/gcj/util/path/ZipPathEntry.java: New file.
* gnu/gcj/util/path/URLPathEntry.java: New file.
* gnu/gcj/util/path/CacheEntry.java: New file.
* include/java-interp.h: New file.
* include/java-cpool.h: New file.
* include/java-insns.h: New file.
* defineclass.cc: New file.
* interpret.cc: New file.
* resolve.cc: New file.
* java/lang/natClass.cc (loaded_classes, _Jv_RegisterClass,
_Jv_RegisterClasses, _Jv_FindClassInCache, _Jv_FindClass,
_Jv_NewClass, _Jv_FindArrayClass): Moved to natClassLoader.cc.
(finalize): New.
(STATE_NOTHING, STATE_RESOLVED, STATE_IN_PROGRESS, STATE_DONE,
STATE_ERROR): Moved to java/lang/Class.h and renamed with JV_
prefix.
(initializeClass): Use new JV_ prefixed names. Also, call
ClassLoader::resolveClass instead of _Jv_ResolveClass.
* java/lang/Class.h (JV_STATE_PRELOADING, JV_STATE_LOADING,
JV_STATE_LOADED, JV_STATE_COMPILED, JV_STATE_PREPARED,
JV_STATE_LINKED): New.
(_Jv_WaitForState, _Jv_RegisterInitiatingLoader,
_Jv_UnregisterClass, _Jv_InternClassStrings): New friends.
(_Jv_IsInterpretedClass, _Jv_InitField, _Jv_LookupDeclaredMethod,
_Jv_DetermineVTableIndex, _Jv_ResolvePoolEntry, _Jv_PrepareClass,
_Jv_ClassReader, _Jv_InterpClass, _Jv_InterpMethod,
_Jv_InterpMethodInvocation): New friends for interpreter.
(finalize): New.
(CONSTANT_Class, CONSTANT_String, etc.): Moved to
include/java-cpool.h and renamed with JV_ prefix.
* include/jvm.h (_Jv_makeUtf8Const, _Jv_makeUtf8TypeConst): New
decls.
(_Jv_UnregisterClass): New decl.
* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
class loader argument.
(_Jv_FindClass): Use class loader.
* prims.cc (_Jv_makeUtf8Const): New function.
(_Jv_NewObjectArray): Change use of _Jv_FindArrayClass.
(_Jv_NewPrimArray): Ditto.
(_Jv_FindClassFromSignature): Ditto.
* java/lang/reflect/natArray.cc (newInstance): Ditto.
* java/lang/reflect/natMethod.cc (getType): Ditto.
* include/java-field.h (_Jv_Field::isRef): Make robust for
non-resolved contexts.
* boehm.cc (_Jv_MarkObj): Mark interpreter-related fields.
Also, don't mark class->next field.
* java/lang/VirtualMachineError.java: Added FIXME note.
* configure.in (INTERPSPEC): New spec.
* libgcj.spec.in: Added INTERPSPEC.
* Makefile.am: Added gcjh friends for java/lang/VMClassLoader and
gnu/gcj/runtime/MethodInvocation.
(libgcj_la_SOURCES): Added resolve.cc defineclass.cc interpret.cc.
(ordinary_java_source_files): Added above mentioned java classes.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
From-SVN: r28597
1999-08-08 14:06:23 +00:00