aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natClassLoader.cc
AgeCommit message (Collapse)AuthorFilesLines
2007-01-31prims.cc (_Jv_Abort): fflush (stderr).Andrew Haley1-0/+6
2007-01-31 Andrew Haley <aph@redhat.com> * prims.cc (_Jv_Abort): fflush (stderr). * java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Abort. From-SVN: r121433
2007-01-09Merged gcj-eclipse branch to trunk.Tom Tromey1-13/+53
From-SVN: r120621
2006-06-16class.c (make_class_data): When using flag_indirect_classes, don't ↵Andrew Haley1-7/+16
initialize the vtable of Class instances. 2006-06-16 Andrew Haley <aph@redhat.com> * class.c (make_class_data): When using flag_indirect_classes, don't initialize the vtable of Class instances. 2006-06-16 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Don't copy the whole Class instance from the initializer: instead, copy everything but the first word (the vtable pointer). Change prototype to (const char* class_initializer). (_Jv_RegisterNewClasses): Change prototype to (const char**). * java/lang/Class.h (_Jv_RegisterNewClasses): Change prototype to (const char**). From-SVN: r114714
2006-05-10natClassLoader.cc: Add comments.Andrew Haley1-0/+24
2006-05-10 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc: Add comments. From-SVN: r113677
2006-05-10prims.cc (_Jv_soleIndirectCompiledEngine): New.Andrew Haley1-0/+2
2006-05-09 Andrew Haley <aph@redhat.com> * prims.cc (_Jv_soleIndirectCompiledEngine): New. * include/execution.h (Jv_CompiledEngine::do_allocate_static_fields): Remove body. (_Jv_CompiledEngine::allocate_field_initializers): New. (_Jv_CompiledEngine::_Jv_CompiledEngine): Initialize allocate_field_initializers. (class _Jv_IndirectCompiledClass): New. (struct _Jv_IndirectCompiledEngine): New. * java/lang/Class.h: (IndirectCompiledEngine): New. * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Set engine to _Jv_soleIndirectCompiledEngine * link.cc (ensure_fields_laid_out): Call engine->allocate_field_initializers(). From-SVN: r113674
2006-04-25natClassLoader.cc: Don't include link.h or dladdr.h.Andrew Haley1-5/+0
2006-04-25 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc: Don't include link.h or dladdr.h. * boehm.cc: Don't include link.h. (_Jv_RegisterLibForGc): Cast away const when calling dladdr(). From-SVN: r113246
2006-04-24lang.c (java_init): Handle flag_indirect_classes.Andrew Haley1-7/+53
2006-04-21 Andrew Haley <aph@redhat.com> * lang.c (java_init): Handle flag_indirect_classes. * jvgenmain.c: Use "class$$" instead of "class$". * mangle.c (java_mangle_decl): Accept RECORD_TYPEs sw well as DECLs. (mangle_class_field): Special case "class$$" as well as "class$". * constants.c (build_ref_from_constant_pool): If flag_indirect_classes, generate a ref into the heap. * decl.c (constants_field_decl_node, constants_data_field_decl_node): New. * class.c (build_static_class_ref): New. (build_classdollar_field): Factor out from build_class_ref(). (make_field_value): Handle static fields in heap. (make_class_data): Make sure we get a static ref to class. Make class initializer const if flag_indirect_classes. (register_class): Build a class_ref for initialization if flag_indirect_classes. (emit_indirect_register_classes): New. 2006-04-21 Andrew Haley <aph@redhat.com> * include/execution.h (struct _Jv_CompiledEngine): Define for compiled classes. * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Call _Jv_RegisterLibForGc. (_Jv_RegisterClasses_Counted): Likewise. (_Jv_NewClassFromInitializer): New. (_Jv_RegisterNewClasses): New. * sources.am: Regenerate. * boehm.cc (_Jv_GC_has_static_roots): new. (_Jv_InitGC): Call GC_register_has_static_roots_callback. (filename_node, find_file, _Jv_print_gc_store, new_node, _Jv_GC_has_static_roots, _Jv_RegisterLibForGc): New. * scripts/makemake.tcl: Add -fno-indirect-classes. * Makefile.in: Regenerate. * link.cc (resolve_pool_entry): Allocate constant pool. Allocate fields. From-SVN: r113224
2006-03-07re PR libgcj/26103 (Wrong exception thrown)Tom Tromey1-1/+4
PR libgcj/26103: * java/lang/ClassLoader.java (loadClass): Don't throw StringIndexOutOfBoundsException if name is empty. * java/lang/natClassLoader.cc (loadClassFromSig): Throw exception if class not found. From-SVN: r111820
2006-02-09re PR libgcj/25187 (dereferencing type-punned pointer warnings while ↵Bryce McKinlay1-1/+1
building libgcj) 2006-02-08 Bryce McKinlay <mckinlay@redhat.com> PR libgcj/25187: * gnu/gcj/io/natSimpleSHSStream.cc (gnu::gcj::io::SimpleSHSStream::shsFinal): Remove bogus cast. * interpret.cc (_Jv_InterpMethod::run): Simplify arguments to _Jv_InterpFrame(). * boehm.cc: #undef some autoconf macros before including gc-config.h. (_Jv_MarkObject): Don't mark the class, it is reachable via the vtable. (_Jv_MarkArray): Likewise. * java/lang/ref/natReference.cc (java::lang::ref::Reference::create): Simplify _Jv_GCRegisterDisappearingLink() call. * java/lang/Class.h (getComponentType): Use element_type. (element_type): New field declaration, as a union with "methods". * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Use "element_type". * java/net/natVMNetworkInterfacePosix.cc (java::net::VMNetworkInterface::getInterfaces): Add "int" cast to avoid sign comparison warning. * include/java-interp.h (_Jv_InterpFrame): Take thread as second argument, not parent call frame. * include/x86_64-signal.h (MAKE_THROW_FRAME): Use "gregs" directly, without a cast. (restore_rt): Declare with hidden visibility, not "static". * posix.cc (_Jv_platform_initProperties): Make "tmpdir" a string constant. * jni.cc (_Jv_JNI_DestroyJavaVM): Use a union to avoid strict alias warning From-SVN: r110783
2006-02-012006-02-01 Robert Schuster <robertschuster@fsfe.org>Robert Schuster1-0/+24
* link.cc: (_Jv_Linker::find_field_helper): Added checks. (_Jv_Linker::find_field): Use exception swallowing class resolution and added early return. (_Jv_ThrowNoClassDefFoundErrorTrampoline): New function. (_Jv_Linker::link_symbol_table): Use exception swallowing class resolution, added ffi_closure installation routine, use _Jv_ThrowNoClassDefFoundError for missing static method. (_Jv_Linker::ensure_class_linked): Added string check which does not trigger class resolution. * java/lang/natClassLoader.cc: (_Jv_FindClassNoException): New method. * java/lang/Class.h: (_Jv_FindClassNoException): New method declaration. * include/jvm.h: (_Jv_FindClassNoException): New method declaration. (_Jv_FindClassFromSignatureNoException): New method declaration. * prims.cc: (_Jv_FindClassFromSignatureNoException): New method. * gcj/javaprims.h: (_Jv_equalsUtf8Classname): New method declaration. (_Jv_isPrimitiveOrDerived): Dito. * prims.cc: (_Jv_equalsUtf8Classnames): New method. (_Jv_isPrimitiveOrDerived): New method. * verify.cc: (ref_intersection::equals): Use new classname comparison method. (type::compatible): Use new classname comparison method. Added check whether LHS' type is java.lang.Object . (type::resolve): Added new optional debug message and simplified if-expression. (type::to_array): Added codepath that generates an array type without resolving the element type. From-SVN: r110474
2006-01-04Class.h (_Jv_CopyClassesToSystemLoader): Updated.Tom Tromey1-3/+4
* java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Updated. * java/lang/natClassLoader.cc (_Jv_CopyClassesToSystemLoader): Changed argument type. Use SystemClassLoader.addClass. * gnu/gcj/runtime/SystemClassLoader.java (addClass): New method. From-SVN: r109340
2005-12-22natClassLoader.cc (_Jv_NewArrayClass): Don't reference NUM_OBJECT_METHODS.Tom Tromey1-2/+0
* java/lang/natClassLoader.cc (_Jv_NewArrayClass): Don't reference NUM_OBJECT_METHODS. * include/jvm.h (NUM_OBJECT_METHODS): Removed. From-SVN: r108956
2005-06-24natClassLoader.cc (_Jv_UnregisterClass): Handle case where class' name is NULL.Tom Tromey1-6/+4
* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Handle case where class' name is NULL. (_Jv_FindClass): Don't wait for class state. * java/lang/natVMClassLoader.cc (defineClass): Only unregister if name found. * include/java-interp.h (_Jv_DefineClass): Updated. * defineclass.cc (_Jv_DefineClass): Added 'name_result' argument. (struct _Jv_ClassReader): Likewise. (found_name): New field. (handleClassBegin): Set *found_name. (_Jv_VerifyMethodSignature): Handle case where ptr==NULL. (handleClassBegin): Throw error if super class not set. (read_methods): Correctly call check_tag and prepare_pool_entry. From-SVN: r101301
2005-05-19natClassLoader.cc (_Jv_NewClass): Use _Jv_RegisterInitiatingLoader to ↵Bryce McKinlay1-1/+9
register array classes, not _Jv_RegisterClass. * java/lang/natClassLoader.cc (_Jv_NewClass): Use _Jv_RegisterInitiatingLoader to register array classes, not _Jv_RegisterClass. (_Jv_RegisterInitiatingLoader): Give up if called very early during bootstrapping. Add a FIXME to handle this case better. From-SVN: r99993
2005-05-12gcj.texi (Code Generation): Document -fbootstrap-classes.Tom Tromey1-3/+40
gcc/java: * gcj.texi (Code Generation): Document -fbootstrap-classes. * decl.c (GCJ_BOOTSTRAP_LOADER_ADDITION): New macro. (parse_version): Use it. * lang.opt (-fbootstrap-classes): New option. libjava: * external/w3c_dom/Makefile.in: Rebuilt. * external/w3c_dom/Makefile.am (libw3c_gcj_la_GCJFLAGS): Added -fbootstrap-classes. * external/sax/Makefile.in: Rebuilt. * external/sax/Makefile.am (libsax_gcj_la_GCJFLAGS): Added -fbootstrap-classes. * java/lang/Class.h (_Jv_CopyClassesToSystemLoader): Declare as friend. * java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal): Call _Jv_CopyClassesToSystemLoader. * java/lang/natClassLoader.cc (system_class_list): New global. (_Jv_RegisterClassHookDefault): Handle bootstrap and system classes differently. (_Jv_CopyClassesToSystemLoader): New function. (SYSTEM_LOADER_INITIALIZED): New define. * include/jvm.h (GCJ_BOOTSTRAP_LOADER_ADDITION): New define. (_Jv_CheckABIVersion): Use it. (_Jv_ClassForBootstrapLoader): New function. * Makefile.in: Rebuilt. * Makefile.am (AM_GCJFLAGS): Added -fbootstrap-classes. From-SVN: r99604
2005-04-06bytearray.java: New file.Andrew Haley1-0/+11
2005-04-06 Andrew Haley <aph@redhat.com> * testsuite/libjava.lang/bytearray.java: New file. * testsuite/libjava.lang/bytearray.out: New file. * java/lang/ClassLoader.java (loadClassFromSig): Declare (loadClass): Use it. * java/lang/natClassLoader.cc (loadClassFromSig): New method. From-SVN: r97756
2005-04-05jni.cc (_Jv_JNI_GetAnyFieldID): Throw ClassNotFoundException.Tom Tromey1-13/+16
* jni.cc (_Jv_JNI_GetAnyFieldID): Throw ClassNotFoundException. * java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature): Rewrote to use _Jv_FindClassFromSignature. * verify.cc (resolve): throw NoClassDefFoundError. * link.cc (resolve_field): Throw NoClassDefFoundError. (find_field): Likewise. * prims.cc (_Jv_FindClassFromSignature): Removed recursion. Handle error cases. Added 'endp' argument. * include/jvm.h (_Jv_FindClassFromSignature): Updated prototype. From-SVN: r97660
2005-04-01natVMClassLoader.cc (getSystemClassLoaderInternal): Updated for name change.Tom Tromey1-3/+3
* java/lang/natVMClassLoader.cc (getSystemClassLoaderInternal): Updated for name change. (nativeFindClass): New method. (loadClass): Use nativeFindClass. * java/lang/natClassLoader.cc (_Jv_FindClass): Use single-argument form of loadClass. * java/lang/VMClassLoader.java (tried_libraries, lib_control, LIB_FULL, LIB_CACHE, LIB_NEVER): New fields from old VMClassLoader. (initialize): New method. (nativeFindClass): Declare. * gnu/gcj/runtime/natVMClassLoader.cc: Removed. * gnu/gcj/runtime/VMClassLoader.java: Removed. * gnu/gcj/runtime/ExtensionClassLoader.java: Renamed from VMClassLoader.java. (definePackageForNative): Removed. (tried_libraries, LIB_CACHE, LIB_FULL, LIB_NEVER, lib_control): Moved to VMClassLoader.java. * prims.cc (_Jv_CreateJavaVM): Updated for renaming. * Makefile.am (gnu/gcj/runtime/ExtensionClassLoader.h): Renamed. (ordinary_java_source_files): Added ExtensionClassLoader.java, removed VMClassLoader.java. (nat_source_files): Removed natVMClassLoader.cc. From-SVN: r97414
2005-03-24Makefile.in: Rebuilt.Tom Tromey1-11/+25
* Makefile.in: Rebuilt. * Makefile.am (AM_CXXFLAGS): Define TOOLEXECLIBDIR. (libgcj0_convenience_la_SOURCES): Don't include gnu_xml_source_files. (libgcj0_convenience_la_LIBADD): New variable. (libgcj_la_LIBADD): Don't include sax or w3c_dom. (all_java_source_files): javax_imageio_source_files, javax_xml_source_files, and gnu_java_beans_source_files. ($(gnu_xml_source_files:.java=.lo)): Removed target. (gnu-xml.lo): New target. (javax-imageio.lo): Likewise. (javax-xml.lo): Likewise. (gnu-java-beans.lo): Likewise. (gnu_java_beans_source_files): New variable. (javax_imageio_source_files): Likewise. (javax_xml_source_files): Likewise. (javax_source_files): Moved files to other variable. (awt_java_source_files): Likewise. (ordinary_java_source_files): Added BootClassLoader.java. * java/lang/natVMClassLoader.cc (defineClass): Use boot loader, not system class loader. (initBootLoader): New method. (loadClass): Search bootLoader. * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader): Use boot loader, not system class loader. (_Jv_UnregisterInitiatingLoader): Likewise. (_Jv_FindClass): Likewise. Ensure entries in bootstrap_class_list are unique. * java/lang/natClass.cc (getClassLoader): Don't special case system class loader. * java/lang/VMClassLoader.java (bootLoader): New field. (getResource): Use bootLoader. (getResources): Likewise. (initBootLoader): Declare. * gnu/gcj/runtime/BootClassLoader.java: New file. * external/sax/org/xml/sax/helpers/NamespaceSupport.java (EMPTY_ENUMERATION): Now package-private. * external/w3c_com/Makefile.in: Rebuilt. * external/w3c_com/Makefile.am (MULTIBUILDTOP): New variable. (w3c.jar): New target. (classes.stamp): Updated. (toolexeclib_LTLIBRARIES): Renamed from noinst_LTLIBRARIES. Changed name of library. (libw3c_gcj_la_SOURCES): New variable. (libw3c_gcj_la_GCJFLAGS): Likewise. (source_files): Renamed from lib3c_convenience_la_SOURCES. * external/sax/Makefile.in: Rebuilt. * external/sax/Makefile.am (MULTIBUILDTOP): New variable. (sax.jar): New target. (classes.stamp): Updated. (toolexeclib_LTLIBRARIES): Renamed from noinst_LTLIBRARIES. Changed name of library. (libsax_gcj_la_SOURCES): New variable. (libsax_gcj_la_GCJFLAGS): Likewise. (source_files): Renamed from libsax_convenience_la_SOURCES. * stacktrace.cc (non_system_trace_fn): Don't look at system class loader. * prims.cc (_Jv_CreateJavaVM): Initialize the bootstrap class loader. (_Jv_RunMain): Handle case where 'runtime' is NULL at exit. From-SVN: r96960
2005-03-09natVMClassLoader.cc (defineClass): Reference 'systemClassLoader' field directly.Tom Tromey1-4/+3
* java/lang/natVMClassLoader.cc (defineClass): Reference 'systemClassLoader' field directly. * java/lang/natRuntime.cc (_load): Reference 'systemClassLoader' field directly. * java/lang/natClassLoader.cc (_Jv_RegisterInitiatingLoader): Reference 'systemClassLoader' field directly. (_Jv_UnregisterInitiatingLoader): Likewise. (_Jv_FindClass): Likewise. From-SVN: r96208
2005-02-07defineclass.cc (handleClassBegin): Use _Jv_RegisterInitiatingLoader.Tom Tromey1-0/+10
* defineclass.cc (handleClassBegin): Use _Jv_RegisterInitiatingLoader. * java/lang/Class.h (_Jv_UnregisterInitiatingLoader): Declare. * java/lang/natVMClassLoader.cc (resolveClass): Don't register class. Use _Jv_UnregisterInitiatingLoader. * java/lang/natClassLoader.cc (_Jv_UnregisterInitiatingLoader): New function. From-SVN: r94717
2005-01-24Class.h (next): Updated documentation.Tom Tromey1-13/+11
* java/lang/Class.h (next): Updated documentation. Renamed to 'next_or_version'. * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Use _Jv_CheckABIVersion. (_Jv_RegisterClasses_Counted): Likewise. (_Jv_RegisterClassHookDefault): Fix starting condition of duplicate-checking loop. * include/jvm.h (GCJ_VERSION): New define. (GCJ_BINARYCOMPAT_ADDITION): Likewise. (_Jv_CheckABIVersion): New function. From-SVN: r94173
2005-01-10PR libgcj/12016, PR libgcj/18405, PR libgcj/17738:Tom Tromey1-79/+47
* 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
2004-12-21natClassLoader.cc (_Jv_RegisterClassHookDefault): Re-enable duplicate class ↵Tom Tromey1-2/+1
registration error. * java/lang/natClassLoader.cc (_Jv_RegisterClassHookDefault): Re-enable duplicate class registration error. From-SVN: r92447
2004-11-25* Merged gcj-abi-2-dev-branch to trunk.Tom Tromey1-173/+21
(Actual changes too large to list in the commit message; see ChangeLog.) From-SVN: r91270
2004-10-26Index: gcc/gcc/ChangeLogGeoffrey Keating1-1/+19
2004-10-25 Geoffrey Keating <geoffk@apple.com> * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches to 'non-weak'. (MAKE_DECL_ONE_ONLY): Set DECL_WEAK. (ASM_MAKE_LABEL_LINKONCE): Delete. (ASM_WEAKEN_DECL): New. (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY. (ASM_DECLARE_FUNCTION_NAME): Likewise. (TEXT_SECTION_ASM_OP): Add a tab. (DATA_SECTION_ASM_OP): Likewise. (SECTION_FUNCTION): Add a tab. Use fputs. Don't call data_section on every section change. (EXTRA_SECTIONS): Add a bunch of new extra sections. (EXTRA_SECTION_FUNCTIONS): Likewise. (USE_SELECT_SECTION_FOR_FUNCTIONS): Define. (JCR_SECTION_NAME): Define. (TARGET_SECTION_TYPE_FLAGS): Don't define. * config/darwin.c (darwin_encode_section_info): A symbol is defined in this file if it is not weak. (textcoal_section): Delete. (datacoal_section): Delete. (darwin_make_decl_one_only): Delete. (machopic_select_section): Handle functions. (darwin_asm_named_section): Add a tab. (darwin_section_type_flags): Delete. (darwin_unique_section): Delete contents. (darwin_emit_unwind_label): Add a tab. Make decls weak if DECL_WEAK is set. * config/darwin-protos.h (darwin_section_type_flags): Delete. (darwin_make_decl_one_only): Delete. (text_coal_section): New. (text_unlikely_section): New. (text_unlikely_coal_section): New. (const_coal_section): New. (data_coal_section): New. (const_data_coal_section): New. * varasm.c (function_section): Honour USE_SELECT_SECTION_FOR_FUNCTIONS. * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when TARGET_USES_WEAK_UNWIND_INFO is in effect. * dbxout.c (dbxout_source_file): Don't change sections while a function is being output. Index: gcc/testsuite/ChangeLog 2004-10-25 Geoffrey Keating <geoffk@apple.com> * objc.dg/image-info.m: Update for changes to section selection. Index: libjava/ChangeLog 2004-10-25 Geoffrey Keating <geoffk@apple.com> * Makefile.am (DARWIN_CRT_SRC): New. (libgcj_la_SOURCES): Use it. * configure.ac: Define USING_DARWIN_CRT when on Darwin. * darwin.cc: New file. * include/jvm.h (_Jv_RegisterClasses): Constify. (_Jv_RegisterClasses_Counted): New prototype. * java/lang/Class.h: Include stddef.h. (_Jv_RegisterClasses): Constify. (_Jv_RegisterClasses_Counted): New prototype. (Object): Make '_Jv_RegisterClasses_Counted' a friend. * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Constify. (_Jv_RegisterClasses_Counted): New function. * configure: Regenerate. * Makefile.in: Regenerate. * gcj/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. Index: libstdc++-v3/ChangeLog 2004-10-25 Geoffrey Keating <geoffk@apple.com> * libsupc++/new_op.cc (new): Make weak. * libsupc++/new_opnt.cc (new): Make weak. * libsupc++/new_opv.cc (new): Make weak. * libsupc++/new_opvnt.cc (new): Make weak. * libsupc++/delete_op.cc (delete): Make weak. * libsupc++/delete_opnt.cc (delete): Make weak. * libsupc++/delete_opv.cc (delete): Make weak. * libsupc++/delete_opvnt.cc (delete): Make weak. From-SVN: r89572
2004-10-20natClass.cc (_Jv_LayoutVTableMethods): Cast pointers to uaddr, not int.Andreas Schwab1-2/+2
* java/lang/natClass.cc (_Jv_LayoutVTableMethods): Cast pointers to uaddr, not int. * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Likewise. From-SVN: r89346
2004-08-23defineclass.cc: Include <stdio.h>.Hans Boehm1-0/+1
* defineclass.cc: Include <stdio.h>. * java/lang/natClassLoader.cc: Include <stdio.h>. From-SVN: r86434
2004-08-11javaprims.h (_Jv_Utf8Const): Change struct to a class, with private fields ↵Per Bothner1-11/+11
and access methods. * gcj/javaprims.h (_Jv_Utf8Const): Change struct to a class, with private fields and access methods. (_Jv_NewStringUTF, _Jv_hashUtf8String): New function declarations. * gcj/cni.h (_Jv_NewStringUTF): Move to javaprims.h. * prims.cc (_Jv_Utf8COnst::init): New method implementation. ( _Jv_makeUtf8Const): Rewrite using new constructors. (hashUtf8String): Rename to +_Jv_hashUtf8String and make non-static. * defineclass.cc: Use new _Utf8Const access/convenience methods. * jni.cc: Likewise. * resolve.cc: Likewise. * gcj/field.h: Likewise. * include/jvm.h: Likewise. * java/lang/Class.h: Likewise. * java/lang/natClass.cc: Likwise. * java/lang/natClassLoader.cc: Likewise * java/lang/reflect/natMethod.cc: Likewise * verify.cc: Likewise. (_Jv_BytecodeVerifier::make_utf8_const): Optimize. (~_Jv_BytecodeVerifier): Don't need second _Jv_Free call. From-SVN: r85854
2004-07-19Print -verbose:message on "loading", not initialization.Per Bothner1-1/+12
* java/lang/Class.h (JV_STATE_LOADED, JV_STATE_COMPILED): Swap order. * defineclass.cc (_Jv_ClassReader::parse): Print message if gcj::verbose_class_flag. * java/lang/natClass.cc (initializeClass): Don't print message here. * java/lang/natClassLoader.cc (_Jv_WaitForState): If state was _JV_STATE_COMPILED, set to JV_STATE_LOADED and may print message. (_Jv_PrepareCompiledClass): Likewise. From-SVN: r84926
2004-05-21Layout interfaces during preparation, not initialization.Bryce McKinlay1-0/+3
* java/lang/natClass.cc (initializeClass): Move _Jv_LayoutInterfaceMethods call... * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): to here. From-SVN: r82101
2004-04-20class.c (make_class_data): Add new field aux_info.Bryce McKinlay1-1/+1
2004-04-19 Bryce McKinlay <mckinlay@redhat.com> * class.c (make_class_data): Add new field aux_info. * decl.c (java_init_decl_processing): Push type and decl for `aux_info'. 2004-04-19 Bryce McKinlay <mckinlay@redhat.com> * gcj/cni.h (JvAllocObject): Remove these obsolete, undocumented CNI calls. * include/java-interp.h (_Jv_InterpClass): No longer extends java.lang.Class. * java/lang/Class.h (Class): Add new field `aux_info'. * boehm.cc (_Jv_MarkObj): Update java.lang.Class marking. * defineclass.cc: Remove Class<->_Jv_InterpClass casts. Use Class->aux_info instead. * jni.cc (_Jv_JNI_AllocObject): Use _Jv_AllocObject. * resolve.cc: Remove Class<->_Jv_InterpClass casts. Use Class->aux_info instead. * java/io/natObjectInputStream.cc (allocateObject): Use _Jv_AllocObject. * java/lang/natClass.cc (newInstance): Likewise. * java/lang/natClassLoader.cc (_Jv_NewClass): Likewise. * java/lang/natObject.cc (clone): Likewise. * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise. * java/lang/natVMClassLoader.cc (defineClass): Don't use JvAllocObject. Allocate klass->aux_info here for interpreted class. From-SVN: r80875
2004-01-16natClassLoader.cc: Moved VMClassLoader methods...Tom Tromey1-107/+1
* java/lang/natClassLoader.cc: Moved VMClassLoader methods... * java/lang/natVMClassLoader.cc: ...here. New file. * Makefile.in: Rebuilt. * Makefile.am (nat_source_files): Added natVMClassLoader.cc. From-SVN: r76003
2004-01-09natClassLoader.cc (_Jv_PrepareCompiledClass): Resolve a Utf8Const field ↵Andrew Haley1-0/+1
before looking at its class. 2004-01-09 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Resolve a Utf8Const field before looking at its class. From-SVN: r75591
2003-10-13natClassLoader.cc (_Jv_InitNewClassFields): Removed.Tom Tromey1-37/+0
* java/lang/natClassLoader.cc (_Jv_InitNewClassFields): Removed. (defineClass): Updated. (_Jv_NewClass): Likewise. * prims.cc (_Jv_InitPrimClass): Don't call _Jv_InitNewClassFields. From-SVN: r72444
2003-10-09ClassLoader.java (setSigners): Implemented.Tom Tromey1-0/+4
* java/lang/ClassLoader.java (setSigners): Implemented. * boehm.cc (_Jv_MarkObj): Mark `signers' field. * java/lang/natClassLoader.cc (_Jv_InitNewClassFields): Initialize new fields. * java/lang/Class.java (getSigners): Now native. (setSigners): Declare. * java/lang/natClass.cc (getSigners): New method. (getSigners): Likewise. * java/lang/Class.h (Class::signers): New field. (Class::setSigners): New method. From-SVN: r72271
2003-10-02VMClassLoader.java (loadClass): Now native.Tom Tromey1-0/+11
* java/lang/VMClassLoader.java (loadClass): Now native. * java/lang/natClassLoader.cc (loadClass): Implement. * prims.cc (_Jv_RunMain): Initialize ClassLoader. From-SVN: r72038
2003-09-25Proxy.java (generate): Uncomment protection domain code.Tom Tromey1-42/+40
* 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-01-30natClass.cc (initializeClass): Check tables when (state == ↵Jeff Sturm1-9/+5
JV_STATE_IN_PROGRESS). * java/lang/natClass.cc (initializeClass): Check tables when (state == JV_STATE_IN_PROGRESS). (_Jv_GetInterfaces): Use _Jv_WaitForState to link interface. * java/lang/natClassLoader.cc (_Jv_WaitForState): Handle interpreted classes. (linkClass0): Use _Jv_WaitForState. From-SVN: r62161
2002-12-23exception.cc (PERSONALITY_FUNCTION): Clear least-significant-bit of catch_type.Jeff Sturm1-7/+21
* exception.cc (PERSONALITY_FUNCTION): Clear least-significant-bit of catch_type. * java/lang/natClass.cc (initializeClass): Link vtable, otable, idt tables after initializing superclass. * java/lang/natClassLoader.cc (uaddr): New typedef. (_Jv_PrepareCompiledClass): Resolve superclass, interfaces if they are constant pool indicies. Don't link vtable, otable yet. From-SVN: r60450
2002-12-19natClassLoader.cc (defineClass0): Removed erroneous comment.Tom Tromey1-39/+36
* java/lang/natClassLoader.cc (defineClass0): Removed erroneous comment. * java/lang/ClassLoader.java (defineClass): Use chained exception when rethrowing. * defineclass.cc (handleClassBegin): Mark class as interpreted. * java/lang/reflect/Modifier.java (INVISIBLE, INTERPRETED): New constants. * resolve.cc (_Jv_PrepareMissingMethods): New function. (_Jv_PrepareClass): Use it. * include/java-interp.h (_Jv_IsInterpretedClass): Rewrote. (_Jv_InterpClass): _Jv_PrepareMissingMethods now friend. * java/lang/Class.h (Class::getModifiers): Mask with ALL_FLAGS. (Class): _Jv_PrepareMissingMethods now friend. * java/lang/natClassLoader.cc (defineClass0): Use JvSynchronize. Record `NULL' for system class loader. (_Jv_RegisterInitiatingLoader): Use JvSynchronize. Special case system class loader. (_Jv_FindClassInCache): Likewise. (_Jv_UnregisterClass): Use JvSynchronize. Free old loader info. (_Jv_FindClass): Special case system class loader. * java/lang/natClass.cc (_Jv_abstractMethodError): New function. (_Jv_SetVTableEntries): Put _Jv_abstractMethodError into empty vtable slots. (_Jv_LayoutVTableMethods): Don't generate vtable slot for a method in a final class. (_getDeclaredMethod): Don't return synthetic methods. (getDeclaredMethods): Likewise. (_getMethod): Likewise. (_getMethods): Likewise. From-SVN: r60319
2002-12-11ClassLoader.java (loadedClasses): New field.Tom Tromey1-6/+0
* java/lang/ClassLoader.java (loadedClasses): New field. (defineClass): Fixed indentation. Put new class in loadedClasses. (findLoadedClass): Implement here. * java/lang/natClassLoader.cc (findLoadedClass): Removed. From-SVN: r60043
2002-12-11Makefile.in: Rebuilt.Tom Tromey1-51/+0
* Makefile.in: Rebuilt. * Makefile.am (nat_source_files): Added natVMClassLoader.cc. * gnu/gcj/runtime/natVMClassLoader.cc: New file. (gnu::gcj::runtime::VMClassLoader::findClass): Moved here. * java/lang/natClassLoader.cc (gnu::gcj::runtime::VMClassLoader::findClass): Removed. From-SVN: r60020
2002-12-03natClassLoader.cc (_Jv_PrepareCompiledClass): Call _Jv_PushClass.Andrew Haley1-0/+32
2002-12-03 Andrew Haley <aph@redhat.com> * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call _Jv_PushClass. (_Jv_InitNewClassFields): Set protectionDomain and chain = NULL. (_Jv_PopClass): New. (_Jv_PushClass): New. * java/lang/natClass.cc (forName (jstring)): Use a StackTrace to discover the ClassLoader of our caller. (_Jv_CheckArrayStore): Don't check that a class is assignment compatible with Object. * java/lang/natVMTHrowable.cc: Delete. * gnu/gcj/runtime/StackTrace.java: New, partly copied from java.lang.VMThrowable. (StackTrace(), StackTrace(int)): New constructors. (classAt, methodAt, update, methodAtAddress): New methods. (map): New field. * java/lang/VMThrowable.java: Use StackTrace instead of natVMTHrowable. * java/lang/Class.h (getClassLoaderInternal): New. (class Class): Be friendly with _Jv_PopClass and _Jv_PushClass. Be friendly with gnu::gcj::runtime::StackTrace. (Object.chain): New field. * include/java-interp.h (class _Jv_InterpMethod): Be friendly with gnu::gcj::runtime::StackTrace. * prims.cc (_Jv_NewObjectArray): Use getClassLoaderInternal() instead of getClassLoader(). * verify.cc (class _Jv_BytecodeVerifier): Likewise. java::lang::VMThrowable. * Makefile.am (core_java_source_files): Add MethodRef.java, StackTrace.java. (nat_source_files): Remove natVMThrowable.cc; add natStackTrace.cc. * Makefile.in: Rebuild. 2002-12-03 Andrew Haley <aph@redhat.com> * class.c (make_class_data): New field, "chain". * decl.c (java_init_decl_processing): Likewise. From-SVN: r59769
2002-10-11re PR libgcj/8142 ('$' in class names vs. dlopen 'dynamic string tokens')Mark Wielaard1-1/+8
Fix for PR libgcj/8142 * java/lang/natClassLoader.cc (findClass): Skip inner classes when loading native modules. From-SVN: r58066
2002-09-30Add Proxy support.Anthony Green1-0/+11
From-SVN: r57635
2002-09-25* java/lang/natClassLoader.cc:Tom Tromey1-1/+1
(_Jv_PrepareCompiledClass): Throw NoClassDefFoundError, per spec. * resolve.cc: Include NoClassDefFoundError.h, not ClassNotFoundException.h. (_Jv_ResolvePoolEntry): Throw NoClassDefFoundError, per spec. * defineclass.cc: Don't include ClassNotFoundException.h. From-SVN: r57516
2002-06-25natPlainDatagramSocketImpl.cc (BooleanClass): Removed.Tom Tromey1-24/+23
* java/net/natPlainDatagramSocketImpl.cc (BooleanClass): Removed. (IntegerClass): Likewise. * java/lang/natClass.cc (CloneableClass): Removed. (ObjectClass, ErrorClass, ClassClass, MethodClass, FieldClass, ConstructorClass): Likewise. * java/lang/natClassLoader.cc (CloneableClass): Removed. (ObjectClass, ClassClass, VMClassLoaderClass, ClassLoaderClass, SerializableClass): Likewise. * java/lang/reflect/natMethod.cc (BooleanClass): Removed. (VoidClass, ByteClass, ShortClass, CharacterClass, IntegerClass, LongClass, FloatClass, DoubleClass): Likewise. From-SVN: r54977
2002-04-02natClassLoader.cc (findClass): Compare against `3', not `0'.Tom Tromey1-2/+3
* java/lang/natClassLoader.cc (findClass): Compare against `3', not `0'. From-SVN: r51764
2001-12-21re PR java/5165 (Loading class fields with a ConstantValue attribute)Tom Tromey1-5/+3
Fix for PR java/5165: * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Convert any constant string field to a String; not just final fields. From-SVN: r48255