aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natClass.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-09-30Makefile.def: Remove libjava.Andrew Haley1-2095/+0
2016-09-30 Andrew Haley <aph@redhat.com> * Makefile.def: Remove libjava. * Makefile.tpl: Likewise. * Makefile.in: Regenerate. * configure.ac: Likewise. * configure: Likewise. * gcc/java: Remove. * libjava: Likewise. From-SVN: r240662
2014-05-13Enable Java on Cygwin-64Bernd Edlinger1-3/+3
Currently it is not possible to build GCC's libjava support on Cygwin-64. This patch fixes the current build-problems on Cygwin-64 and the most fundamental bugs on that platform. Note you must still add --enable-threads=posix to successfully build the java language support. boehm-gc/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * include/gc_config_macros.h (GC_PTHREADS): Use __CYGWIN__ instead of __CYGWIN32__ here. * win32_threads.c (GC_push_all_stacks): Push all X86_64 registers. (GC_get_thread_stack_base): Get the stack base for X86_64. libffi/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * src/java_raw_api.c: Remove if !defined(FFI_NO_RAW_API). * src/x86/ffi.c: Add if defined(__CYGWIN__). * src/x86/win64.S (ffi_closure_win64, ffi_call_win64): Added handling for FFI_TYPE_UINT64, FFI_TYPE_POINTER and FFI_TYPE_INT. Added SEH information. Fixed formatting. libgcc/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> * unwind-seh.c (_Unwind_Backtrace): Uncommented, finished implementation. libjava/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * configure.host: Added handling for x86_64-*-cygwin/mingw. * boehm.cc (_Jv_GCAttachThread, _Jv_GCDetachThread): Don't compile if GC_WIN32_THREADS is defined. * java/lang/natClass.cc (_Jv_InterfaceAssignableFrom): Rename interface to source_interface. libjava/classpath/ChangeLog: 2014-05-13 Bernd Edlinger <bernd.edlinger@hotmail.de> Fix current cygwin-64 build problems. * native/fdlibm/mprec.c (_REENT_CHECK_MP, _REENT_MP_FREELIST, _REENT_MP_P5S, __ULong, __Long): Undefine previous definitions. From-SVN: r210386
2011-12-12re PR libgcj/50053 (jc1 doesn't emit static initializer or initializer code ↵Kai Tietz1-0/+6
for super class without -findirect-dispatch.) PR libgcj/50053 * java/lang/natClass.cc (java::lang::Class::newInstance): Special case member-call for 32-bit IA native Window target. From-SVN: r182225
2011-07-12natClass.cc (finalize): Make sure that the class really has an engine.Andrew Haley1-1/+3
2011-07-12 Andrew Haley <aph@redhat.com> * java/lang/natClass.cc (finalize): Make sure that the class really has an engine. From-SVN: r176199
2011-01-03Update Copyright years for files modified in 2010.Jakub Jelinek1-2/+2
From-SVN: r168438
2010-01-26natClass.cc (registerClosure): Make sure closures is non NULL.Andrew Haley1-3/+6
2010-01-26 Andrew Haley <aph@redhat.com> * java/lang/natClass.cc (registerClosure): Make sure closures is non NULL. From-SVN: r156257
2008-01-04re PR libgcj/34444 (Class.getEnclosingClass() returns null on enclosed class)Andrew Haley1-1/+2
2008-01-04 Andrew Haley <aph@redhat.com> PR libgcj/34444 * java/lang/natClass.cc (Class::getEnclosingClass): Call getDeclaringClass(). From-SVN: r131326
2007-07-31configure.ac (INTERPRETER): New AM_CONDITIONAL.David Daney1-0/+4
* configure.ac (INTERPRETER): New AM_CONDITIONAL. * scripts/makemake.tcl (package_map): Mark jdwp and jvmti packages as being for interpreter only. Place interpreter related files in 'if INTERPRETER' block. (interpreter_package_files): New list. (interpreter_header_vars): Ditto. (emit_package_rule_to_list): Renamed from emit_package_rule with new target list parameter. (emit_package_rule): Rewritten to call emit_package_rule_to_list. (emit_interpreter_rule): New function. (emit_source_var): Place interpreter related files in interpreter_header_vars. * Makefile.am (ACLOCAL_AMFLAGS): Add -I libltdl. (libgcj_interpret_source_files): New variable. (libgcj_la_SOURCES): Move jvmti.cc and interpret.cc to libgcj_interpret_source_files and include libgcj_interpret_source_files. (nat_jdwp_source_files): New variable. (nat_jvmti_source_files): Ditto. (nat_source_files): Move jdwp and jvmti related files to nat_jdwp_source_files and nat_jvmti_source_files and include nat_jdwp_source_files and nat_jvmti_source_files. * Makefile.in: Regenerate. * include/Makefile.in: Ditto. * testsuite/Makefile.in: Ditto. * gcj/Makefile.in: Ditto. * sources.am: Ditto. * configure: Ditto. * include/config.h.in: Ditto. * interpret.cc: Remove #ifdef INTERPRETER block. * stacktrace.cc (UnwindTraceFn): Do not handle proxy frames if interpreter disabled. * include/java-interp.h (_Jv_FrameType): Move outside of #ifdef INTERPRETER block. * include/execution.h (_Jv_IndirectCompiledEngine::do_get_closure_list, _Jv_InterpreterEngine, _Jv_soleInterpreterEngine): Place in #ifdef INTERPRETER block. * jni.cc (jvmti.h, jvmti-int.h): Only include if INTERPRETER is defined. (_Jv_JNI_PopSystemFrame, _Jv_JNI_GetEnv): Only do jvmti processing if INTERPRETER is defined. * prims.cc (jvmti.h, jvmti-int.h, Jdwp.h, VMVirtualMachine.h): Only include if INTERPRETER is defined. (defaultJdwpOptions, jdwpOptions, jvmti_agent_onload_func, jvmti_agent_onunload_func, jvmti_agentonload, jvmti_agentonunload, jvmti_agent_opts, load_jvmti_agent): Only define if INTERPRETER is defined. (parse_x_arg): Only process 'runjdwp:' if INTERPRETER is defined. (parse_init_args): Only process jvmti related options if INTERPRETER is defined. (_Jv_CreateJavaVM): Only call _Jv_JVMTI_Init if INTERPRETER is defined. (_Jv_RunMain): Only do jvmti and jdwp processing if INTERPRETER is defined. * link.cc (jvmti.h, jvmti-int.h): Only include if INTERPRETER is defined. (_Jv_ThrowNoClassDefFoundError, _Jv_Linker::create_error_method): Define if if INTERPRETER is not defined. (_Jv_Linker::wait_for_state): Only do jvmti proccessing if INTERPRETER is defined. * boehm.cc (closure_list_pointer, finalize_closure_list, _Jv_ClosureListFinalizer): Only define if INTERPRETER is defined. * java/lang/natThread.cc (jvmti.h, jvmti-int.h): Only include if INTERPRETER is defined. (finish_, _Jv_NotifyThreadStart): Only do jvmti proccessing if INTERPRETER is defined. * java/lang/Class.h (_Jv_InterpreterEngine): Move declaration and friend declaration inside #ifdef INTERPRETER block. * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures, _Jv_ClosureList::registerClosure, _Jv_GetInterpClassSourceFile): Only define if INTERPRETER is defined. * java/lang/reflect/natVMProxy.cc (UnsupportedOperationException.h): Include. (generateProxyClass): Throw UnsupportedOperationException unless INTERPRETER is defined. From-SVN: r127097
2007-04-18natVMProxy.cc (ncode_closure): Add method_index.Andrew Haley1-33/+0
2007-04-18 Andrew Haley <aph@redhat.com> * java/lang/reflect/natVMProxy.cc (ncode_closure): Add method_index. (generateProxyClass): Add field $Proxy0.m. Store methods array in it. (run_proxy): Retrieve the method to invoke from in $Proxy0.m. * java/lang/Class.h: Remove _Jv_LookupProxyMethod. * java/lang/natClass.cc: Likewise. * headers.txt: Likewise. From-SVN: r123953
2007-04-02natVMProxy.cc (run_proxy): Use _Jv_LookupProxyMethod to find the Method.Andrew Haley1-0/+34
2007-04-02 Andrew Haley <aph@redhat.com> * java/lang/reflect/natVMProxy.cc (run_proxy): Use _Jv_LookupProxyMethod to find the Method. If parameter_types->length == 0, pass a null paramameter list, not a zero-length parameter list. * java/lang/natClass.cc (_Jv_LookupProxyMethod): New function. * java/lang/Class.h (_Jv_LookupProxyMethod): Declare. From-SVN: r123431
2007-03-13java-interp.h (_Jv_InterpClass): Declare friend function ↵Keith Seitz1-0/+12
_Jv_GetInterpClassSourceFile. * include/java-interp.h (_Jv_InterpClass): Declare friend function _Jv_GetInterpClassSourceFile. * java/lang/Class.h (Class): Likewise. * java/lang/natClass.cc (_Jv_GetInterpClassSourceFile): New function. * gnu/classpath/jdwp/natVMVirtualMachine.cc (getSourceFile): Implement. From-SVN: r122882
2007-03-07ffi.h.in (ffi_closure_alloc, [...]): New.Alexandre Oliva1-0/+22
libffi/ChangeLog: * include/ffi.h.in (ffi_closure_alloc, ffi_closure_free): New. (ffi_prep_closure_loc): New. (ffi_prep_raw_closure_loc): New. (ffi_prep_java_raw_closure_loc): New. * src/closures.c: New file. * src/dlmalloc.c [FFI_MMAP_EXEC_WRIT] (struct malloc_segment): Replace sflags with exec_offset. [FFI_MMAP_EXEC_WRIT] (mmap_exec_offset, add_segment_exec_offset, sub_segment_exec_offset): New macros. (get_segment_flags, set_segment_flags, check_segment_merge): New macros. (is_mmapped_segment, is_extern_segment): Use get_segment_flags. (add_segment, sys_alloc, create_mspace, create_mspace_with_base, destroy_mspace): Use new macros. (sys_alloc): Silence warning. * Makefile.am (libffi_la_SOURCES): Add src/closures.c. * Makefile.in: Rebuilt. * src/prep_cif [FFI_CLOSURES] (ffi_prep_closure): Implement in terms of ffi_prep_closure_loc. * src/raw_api.c (ffi_prep_raw_closure_loc): Renamed and adjusted from... (ffi_prep_raw_closure): ... this. Re-implement in terms of the renamed version. * src/java_raw_api (ffi_prep_java_raw_closure_loc): Renamed and adjusted from... (ffi_prep_java_raw_closure): ... this. Re-implement in terms of the renamed version. * src/alpha/ffi.c (ffi_prep_closure_loc): Renamed from (ffi_prep_closure): ... this. * src/pa/ffi.c: Likewise. * src/cris/ffi.c: Likewise. Adjust. * src/frv/ffi.c: Likewise. * src/ia64/ffi.c: Likewise. * src/mips/ffi.c: Likewise. * src/powerpc/ffi_darwin.c: Likewise. * src/s390/ffi.c: Likewise. * src/sh/ffi.c: Likewise. * src/sh64/ffi.c: Likewise. * src/sparc/ffi.c: Likewise. * src/x86/ffi64.c: Likewise. * src/x86/ffi.c: Likewise. (FFI_INIT_TRAMPOLINE): Adjust. (ffi_prep_raw_closure_loc): Renamed and adjusted from... (ffi_prep_raw_closure): ... this. * src/powerpc/ffi.c (ffi_prep_closure_loc): Renamed from (ffi_prep_closure): ... this. (flush_icache): Adjust. boehm-gc/ChangeLog: * include/gc.h (GC_REGISTER_FINALIZER_UNREACHABLE): New. (GC_register_finalizer_unreachable): Declare. (GC_debug_register_finalizer_unreachable): Declare. * finalize.c (GC_unreachable_finalize_mark_proc): New. (GC_register_finalizer_unreachable): New. (GC_finalize): Handle it. * dbg_mlc.c (GC_debug_register_finalizer_unreachable): New. (GC_debug_register_finalizer_no_order): Fix whitespace. libjava/ChangeLog: * include/jvm.h (_Jv_ClosureListFinalizer): New. (_Jv_Linker::create_error_method): Adjust. * boehm.cc (_Jv_ClosureListFinalizer): New. * nogc.cc (_Jv_ClosureListFinalizer): New. * java/lang/Class.h (class _Jv_ClosureList): New. (class java::lang::Class): Declare it as friend. * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures): New. (_Jv_ClosureList::registerClousure): New. * include/execution.h (_Jv_ExecutionEngine): Add get_closure_list. (_Jv_CompiledEngine::do_get_closure_list): New. (_Jv_CompiledEngine::_Jv_CompiledEngine): Use it. (_Jv_IndirectCompiledClass): Add closures. (_Jv_IndirectCompiledEngine::get_aux_info): New. (_Jv_IndirectCompiledEngine::do_allocate_field_initializers): Use it. (_Jv_IndirectCompiledEngine::do_get_closure_list): New. (_Jv_IndirectCompiledEngine::_Jv_IndirectCompiledEngine): Use it. (_Jv_InterpreterEngine::do_get_closure_list): Declare. (_Jv_InterpreterEngine::_Jv_InterpreterEngine): Use it. * interpret.cc (FFI_PREP_RAW_CLOSURE): Use _loc variants. (node_closure): Add closure list. (_Jv_InterpMethod::ncode): Add jclass argument. Use ffi_closure_alloc and the separate code pointer. Register the closure for finalization. (_Jv_JNIMethod::ncode): Likewise. (_Jv_InterpreterEngine::do_create_ncode): Pass klass to ncode. (_Jv_InterpreterEngine::do_get_closure_list): New. * include/java-interp.h (_Jv_InterpMethod::ncode): Adjust. (_Jv_InterpClass): Add closures field. (_Jv_JNIMethod::ncode): Adjust. * defineclass.cc (_Jv_ClassReader::handleCodeAttribute): Adjust. (_Jv_ClassReader::handleMethodsEnd): Likewise. * link.cc (struct method_closure): Add closure list. (_Jv_Linker::create_error_method): Add jclass argument. Use ffi_closure_alloc and the separate code pointer. Register the closure for finalization. (_Jv_Linker::link_symbol_table): Remove outdated comment about sharing of otable and atable. Adjust. * java/lang/reflect/natVMProxy.cc (ncode_closure): Add closure list. (ncode): Add jclass argument. Use ffi_closure_alloc and the separate code pointer. Register the closure for finalization. (java::lang::reflect::VMProxy::generateProxyClass): Adjust. * testsuite/libjava.jar/TestClosureGC.java: New. * testsuite/libjava.jar/TestClosureGC.out: New. * testsuite/libjava.jar/TestClosureGC.xfail: New. * testsuite/libjava.jar/TestClosureGC.jar: New. From-SVN: r122652
2007-03-05natVMProxy.cc (ncode_closure.meth): Delete.Andrew Haley1-0/+20
2007-03-05 Andrew Haley <aph@redhat.com> * java/lang/reflect/natVMProxy.cc (ncode_closure.meth): Delete. (generateProxyClass): Don't pass method to ncode. (run_proxy): Call _Jv_GetReflectedMethod to find the proxy method. * java/lang/reflect/Method.h: Rebuild. * java/lang/reflect/Method.java (internalGetParameterTypes, internalGetExceptionTypes): New methods. * headers.txt (class java/lang/reflect/Method): Declare _Jv_GetReflectedMethod. Be its friend. * java/lang/natClass.cc (_Jv_GetReflectedMethod): New method. * java/lang/Class.h: Declare it. Be its friend. From-SVN: r122554
2007-03-05natClass.cc (parseAnnotationElement): Correct long annotations to read ↵Andrew Haley1-1/+1
JV_CONSTANT_Long, not JV_CONSTANT_Double. 2007-03-03 Andrew Haley <aph@redhat.com> * java/lang/natClass.cc (parseAnnotationElement): Correct long annotations to read JV_CONSTANT_Long, not JV_CONSTANT_Double. From-SVN: r122545
2007-03-02AnnotationInvocationHandler.java: Generify in a few places.Andrew Haley1-3/+2
2007-03-02 Andrew Haley <aph@redhat.com> * sun/reflect/annotation/AnnotationInvocationHandler.java: Generify in a few places. (equals): Rewrite to use invoke on local proxy. (deepToString): Remove most of it. (toString): Make nonstatic. (arrayClone): Delete. (coerce): New method. (invoke): Rewrite to handle gcj's structures correctly. * java/lang/natClass.cc (getDeclaredAnnotations): Fix test for null loader. * sources.am: Regenerate. * Makefile.am: Likewise. From-SVN: r122485
2007-01-29natClass.cc (initializeClass): Re-throw SecurityExceptions.Andrew Haley1-0/+13
2007-01-26 Andrew Haley <aph@redhat.com> * java/lang/natClass.cc (initializeClass): Re-throw SecurityExceptions. * java/lang/natVMClassLoader.cc (loadClass): checkPackageAccess. * java/lang/ClassLoader.java: (loadClass): Likewise. From-SVN: r121285
2007-01-23Class.h (_Jv_GetClassStatus): Declare.Keith Seitz1-1/+7
* java/lang/Class.h (_Jv_GetClassStatus): Declare. * java/lang/natClass.cc (_Jv_GetClassStatus): New function. * jvmti.cc (_Jv_JVMTI_GetClassStatus): New function. (_Jv_JVMTI_Interface): Define GetClassStatus. From-SVN: r121074
2007-01-09Merged gcj-eclipse branch to trunk.Tom Tromey1-19/+747
From-SVN: r120621
2006-10-28java-stack.h (ncodeMap): Declare.Keith Seitz1-0/+9
* include/java-stack.h (ncodeMap): Declare. (_Jv_StackTrace): Make _Jv_GetMethodDeclaringClass friend. * java/lang/Class.h (_Jv_GetMethodDeclaringClass): Declare. * java/lang/natClass.cc (_Jv_GetMethodDeclaringClass): New function. * stacktrace.cc (ncodeMap): Redefine from file global to global for class _Jv_StackTrace. (_Jv_StackTrace::UpdateNCodeMap): Add interpreted classes, too, so that _Jv_GetMethodDeclaringClass can find them all. (_Jv_StackTrace::ClassForFrame): Exclude interpreted classes. * jvmti.cc (_Jv_JVMTI_GetMethodDeclaringClass): New function. (_Jv_JVMTI_Interface): Define GetMethodDeclaringClass function. From-SVN: r118100
2006-10-18register2.java: New file.Tom Tromey1-0/+8
* testsuite/libjava.jni/register2.java: New file. * testsuite/libjava.jni/register2.out: New file. * testsuite/libjava.jni/register2.c: New file. * java/lang/natClass.cc (_Jv_GetClassNameUtf8): New function. * java/lang/Class.h (_Jv_GetClassNameUtf8): Declare. * jni.cc (struct NativeMethodCacheEntry): New struct. (nathash): Changed type. (hash): Updated. (nathash_find_slot): Likewise. (nathash_find): Likewise. (natrehash): Likewise. (nathash_add): Likewise. (_Jv_JNI_RegisterNatives): Likewise. (_Jv_LookupJNIMethod): Likewise. Idea from Juerg Lehni <juerg@scratchdisk.com> Co-Authored-By: Bryce McKinlay <mckinlay@redhat.com> From-SVN: r117867
2006-09-06Class.h (_Jv_FindInterpreterMethod): Change return type to _Jv_MethodBase ↵Keith Seitz1-12/+7
instead of _Jv_InterpMethod. * java/lang/Class.h (_Jv_FindInterpreterMethod): Change return type to _Jv_MethodBase instead of _Jv_InterpMethod. * java/lang/natClass.cc (_Jv_FindInterpreterMethod): Likewise. Do not check access flags. Fix some minor style anomalies. From-SVN: r116730
2006-05-21natClass.cc (_Jv_FindMethodInCache): Mark klass, name and signature as ↵Andreas Tobler1-5/+6
MAYBE_UNUSED for HAVE_TLS == 0. 2006-05-21 Andreas Tobler <a.tobler@schweiz.ch> * java/lang/natClass.cc (_Jv_FindMethodInCache): Mark klass, name and signature as MAYBE_UNUSED for HAVE_TLS == 0. (_Jv_AddMethodToCache): Mark klass and method as MAYBE_UNUSED for HAVE_TLS == 0. From-SVN: r113939
2006-05-04[multiple changes]Andrew Haley1-3/+13
2006-05-04 Andrew Haley <aph@redhat.com> * class.c (make_field_value): Always build_address_of fdecl if there is an initializer. 2006-05-03 Andrew Haley <aph@redhat.com> PR libgcj/27352 * expr.c (maybe_rewrite_invocation): New function. (rewrite_arglist_getclass): Likewise. (rules): New. (expand_invoke): Call maybe_rewrite_invocation. * parse.y (patch_invoke): Likewise. * java-tree.h: (maybe_rewrite_invocation): New function. 2006-05-03 Andrew Haley <aph@redhat.com> PR libgcj/27352 * java/lang/Class.java (getClassLoader(Class)): New. forName(String, Class): New. * java/lang/natClass.cc (getClassLoader(Class)): New. 2006-05-02 Andrew Haley <aph@redhat.com> * prims.cc (_Jv_NewMultiArray): Check for phantom class. From-SVN: r113532
2006-04-24* java/lang/natClass.cc (_Jv_getInterfaceMethod): Skip <clinit>.Tom Tromey1-5/+12
From-SVN: r113229
2006-03-01re PR libgcj/24321 (instanceof erroneously causes class initialization)Tom Tromey1-3/+3
PR java/24321: * testsuite/libjava.lang/pr24321.java: New file. * testsuite/libjava.lang/pr24321.out: New file. * java/lang/natClass.cc (isInstance): Don't initialize class. (isAssignableFrom): Likewise. From-SVN: r111603
2006-02-09Class.h (_Jv_IDispatchTable): Make it a struct.Bryce McKinlay1-9/+8
2006-02-09 Bryce McKinlay <mckinlay@redhat.com> * java/lang/Class.h (_Jv_IDispatchTable): Make it a struct. Put 'itable' inline, instead of as a pointer. (java::lang::Class): Put 'idt' in anonymous union with 'ioffsets'. * link.cc (null_idt): Update definition. (_Jv_Linker::prepare_constant_time_tables): Allocate klass->idt as a single struct. Use _Jv_AllocBytes, not _Jv_AllocRawObj. (_Jv_Linker::generate_itable): Update to use 'ioffsets'. (_Jv_Linker::find_iindex): Likewise. Update comment. * java/lang/natClass.cc (_Jv_LookupInterfaceMethodIdx): Update for _Jv_IDispatchTable change. (_Jv_IsAssignableFrom): Likewise. From-SVN: r110818
2006-02-012006-02-01 Robert Schuster <robertschuster@fsfe.org>Robert Schuster1-2/+3
* 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-23Class.h (_Jv_FindInterpreterMethod): Add new declaration.Keith Seitz1-1/+27
* java/lang/Class.h (_Jv_FindInterpreterMethod): Add new declaration. * java/lang/natClass.cc (_Jv_FindInterpreterMethod): New function. From-SVN: r110142
2005-09-27re PR libgcj/23367 (_Jv_FindMethodInCache is not thread-safe)Tom Tromey1-20/+45
PR libgcj/23367: * include/jvm.h (_Jv_FreeMethodCache): Declare. * java/lang/natClass.cc (MCACHE_SIZE): Conditional on HAVE_TLS. (struct _Jv_mcache): Likewise. (method_cache): Likewise. (_Jv_FindMethodInCache): Do nothing unless TLS is available. (_Jv_AddMethodToCache): Likewise. (_Jv_FreeMethodCache): New function. * java/lang/natThread.cc (finish_): Call _Jv_FreeMethodCache. * aclocal.m4, configure, include/config.h.in: Rebuilt. * configure.ac: Invoke GCC_CHECK_TLS. From-SVN: r104707
2005-09-06re PR libgcj/23739 (JNI: IsAssignableFrom reverses arguments)Tom Tromey1-12/+12
PR libgcj/23739: * testsuite/libjava.jni/pr23739.c: New file. * testsuite/libjava.jni/pr23739.java: New file. * testsuite/libjava.jni/pr23739.out: New file. * jni.cc (_Jv_JNI_IsAssignableFrom): Reversed arguments. * java/lang/reflect/natMethod.cc (invoke): Updated. * java/lang/natClass.cc (isAssignableFrom): Updated. (isInstance): Likewise. (_Jv_IsAssignableFrom): Reversed arguments. (_Jv_IsInstanceOf): Updated. (_Jv_CheckCast): Likewise. (_Jv_CheckArrayStore): Likewise. (_Jv_IsAssignableFromSlow): Reversed arguments. (_Jv_InterfaceAssignableFrom): Likewise. * link.cc (verify_type_assertions): Updated. * prims.cc (_Jv_CheckAccess): Updated. From-SVN: r103953
2005-06-14Class.java (getClasses): New method.Tom Tromey1-29/+4
* java/lang/Class.java (getClasses): New method. (internalGetClasses): Likewise. (getClassLoader): Updated documentation. (getDeclaredClasses): New overload; old overload no longer native. (_getConstructors): Removed. (resourcePath): Updated. * java/lang/natClass.cc (getClasses): Removed. * java/lang/Class.h (getDeclaredClasses, getDeclaredConstructors): Updated. (_getConstructors): Removed. From-SVN: r100948
2005-04-22* java/lang/natClass.cc (initializeClass): Link class.Tom Tromey1-1/+14
From-SVN: r98540
2005-03-24Makefile.in: Rebuilt.Tom Tromey1-10/+10
* 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-11exception.cc: Remove stray MethodRef.h include.Bryce McKinlay1-1/+0
2005-03-10 Bryce McKinlay <mckinlay@redhat.com> * exception.cc: Remove stray MethodRef.h include. * java/lang/natClass.cc: Likewise. * gnu/gcj/runtime/MethodRef.java: Removed. * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc, gnu/gcj/runtime/natStackTrace.cc: Really removed. * java/lang/natRuntime.cc (_load): Remove unsed variable. * Makefile.am (ordinary_java_source_files): Remove MethodRef.java. * Makefile.in: Rebuilt. From-SVN: r96288
2005-03-10New Stack Trace infrastructure.Bryce McKinlay1-29/+8
2005-03-10 Bryce McKinlay <mckinlay@redhat.com> New Stack Trace infrastructure. * Makefile.am (libgcj0_convenience_la_SOURCES): Add stacktrace.cc. (gnu/gcj/runtime/StackTrace.lo): Removed. (ordinary_java_source_files): Remove obsolete files. (nat_source_files): Remove obsolete files. Add natVMThrowable.cc. * configure.host (fallback_backtrace_h): Set backtrace header for mingw and cygwin targets. * configure.ac: Make symlink for fallback backtrace headers. * Makefile.in, configure: Rebuilt. * defineclass.cc (_Jv_ClassReader::read_one_code_attribute): Read 'LineNumberTable' attribute. (_Jv_ClassReader::read_one_class_attribute): Read 'SourceFile' attribute. (_Jv_ClassReader::handleCodeAttribute): Initialize method line table fields. * exception.cc: Remove unused include. * interpret.cc (DIRECT_THREADED, insn_slot): Moved to java-interp.h. (SAVE_PC): New macro. Save current PC in the interpreter frame. (NULLCHECK, NULLARRAYCHECK): Use SAVE_PC. (_Jv_InterpMethod::compile): Translate bytecode PC values in the line table to direct threaded instruction values. (_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Removed. (_Jv_InterpMethod::run): No longer member function. All callers updated. Remove _Unwind calls. Call SAVE_PC whenever a call is made or where an instruction could throw. (_Jv_InterpMethod::get_source_line): New. Look up source line numbers in line_table. * prims.cc (catch_segv): Construct exception after MAKE_THROW_FRAME. (catch_fpe): Likewise. * stacktrace.cc: New file. Stack trace code now here. * gnu/gcj/runtime/MethodRef.java: * gnu/gcj/runtime/NameFinder.java: Mostly reimplemented. Now simply calls addr2line to look up PC addresses in a given binary or shared library. * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc, gnu/gcj/runtime/natStackTrace.cc: Removed. * gnu/java/lang/MainThread.java (call_main): Add comment warning that this function name is specially recognised by the stack trace code and shouldn't be changed. * include/java-interp.h (DIRECT_THREADED, insn_slot): Moved here. (struct _Jv_LineTableEntry, line_table, line_table_len): New. (_Jv_InterpMethod::run): Update declaration. (_Jv_StackTrace_): New friend. NameFinder and StackTrace no longer friends. (_Jv_InterpFrame): Renamed from _Jv_MethodChain. Add PC field. * include/java-stack.h: New file. Declarations for stack tracing. * include/jvm.h (_Jv_Frame_info): Removed. * java/lang/Class.h: Update friend declarations. * java/lang/VMClassLoader.java (getSystemClassLoader): Simplify exception message. * java/lang/VMThrowable.java (fillInStackTrace): Now native. (getStackTrace): Now native. (data): New RawDataManaged field. * java/lang/natClass.cc: Update includes. (forName): Use _Jv_StackTrace::GetCallingClass for calling-classloader check. (getClassLoader): Likewise. * java/lang/natRuntime.cc: Update includes. (_load): Use _Jv_StackTrace::GetFirstNonSystemClassLoader. * java/lang/natVMSecurityManager.cc: Update includes. (getClassContext): Use _Jv_StackTrace::GetClassContext. * java/lang/natVMThrowable.cc: New file. Native methods for VMThrowable. * java/lang/reflect/natArray.cc: Update includes. (newInstance): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natConstructor.cc: Update includes. (newInstance): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natField.cc: Update includes. (getAddr): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natMethod.cc: Update includes. (invoke): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/util/natResourceBundle.cc: Update includes. (getCallingClassLoader): Use _Jv_StackTrace::GetCallingClass. * java/util/logging/natLogger.cc: Update includes. Use _Jv_StackTrace::GetCallerInfo to get call-site info. * sysdep/generic/backtrace.h: Fallback backtrace code. Stub implementation. * sysdep/i386/backtrace.h: New. Fallback backtrace code. i386 implementation. From-SVN: r96253
2005-02-17Class.h (_Jv_GetMethodString): Updated declaration.Tom Tromey1-4/+4
* java/lang/Class.h (_Jv_GetMethodString): Updated declaration. * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Updated. * java/lang/natClass.cc (_Jv_LookupInterfaceMethod): Updated. * link.cc (_Jv_GetMethodString): Added 'derived' argument. Changed type of second argument. Rewrote. (make_vtable): Use it. (append_partial_itable): Updated. (layout_vtable_methods): Updated. From-SVN: r95181
2004-11-25* Merged gcj-abi-2-dev-branch to trunk.Tom Tromey1-942/+191
(Actual changes too large to list in the commit message; see ChangeLog.) From-SVN: r91270
2004-10-20natClass.cc (_Jv_LayoutVTableMethods): Cast pointers to uaddr, not int.Andreas Schwab1-3/+3
* java/lang/natClass.cc (_Jv_LayoutVTableMethods): Cast pointers to uaddr, not int. * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Likewise. From-SVN: r89346
2004-08-11javaprims.h (_Jv_Utf8Const): Change struct to a class, with private fields ↵Per Bothner1-17/+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-3/+0
* 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-07-07jvm.h (namespace jcj): Declare verbose_class_flagPer Bothner1-0/+6
* include/jvm.h (namespace jcj): Declare verbose_class_flag * java/lang/natClass.cc (gcj::verbose_class_flag): New variable. (initializeClass): If verbose_class_flag, print message. * gij.cc (main): Handle -verbose:class flag. From-SVN: r84242
2004-05-21Layout interfaces during preparation, not initialization.Bryce McKinlay1-3/+0
* java/lang/natClass.cc (initializeClass): Move _Jv_LayoutInterfaceMethods call... * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): to here. From-SVN: r82101
2004-04-21natClass.cc (_Jv_LayoutInterfaceMethods): New method.Bryce McKinlay1-0/+17
2004-04-21 Bryce McKinlay <mckinlay@redhat.com> * java/lang/natClass.cc (_Jv_LayoutInterfaceMethods): New method. Set method->index values for interface methods to their itable index. (initializeClass): Call _Jv_LayoutInterfaceMethods. From-SVN: r80978
2004-04-20class.c (make_class_data): Add new field aux_info.Bryce McKinlay1-2/+2
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-03-23natClass.cc (getClassLoader): Circumvent infinite recursion when searching ↵Anthony Green1-2/+3
for the system ClassLoader. 2004-03-21 Anthony Green <green@redhat.com> * java/lang/natClass.cc (getClassLoader): Circumvent infinite recursion when searching for the system ClassLoader. From-SVN: r79871
2003-12-03Class.h (hack_signers): Renamed signers to hack_signers.Michael Koch1-2/+2
2003-12-03 Michael Koch <konqueror@gmx.de> * java/lang/Class.h (hack_signers): Renamed signers to hack_signers. * java/lang/natClass.cc (getSigners): Likewise. (setSigners): Likewise. From-SVN: r74247
2003-11-14jni.cc (_Jv_JNI_GetStringUTFChars): Pass length of string to ↵Tom Tromey1-1/+1
JvGetStringUTFRegion. * jni.cc (_Jv_JNI_GetStringUTFChars): Pass length of string to JvGetStringUTFRegion. * java/lang/natPosixProcess.cc (new_string): Pass length of string to JvGetStringUTFRegion. * java/lang/natDouble.cc (parseDouble): Pass length of string to JvGetStringUTFRegion. * java/lang/natWin32Process.cc (startProcess): Pass length of string to JvGetStringUTFRegion. * java/lang/natClass.cc (forName): Pass length of string to JvGetStringUTFRegion. * gnu/gcj/runtime/natNameFinder.cc (getExternalLabel): Pass length of string to JvGetStringUTFRegion. * gnu/gcj/convert/natIconv.cc (init): Pass length of string to JvGetStringUTFRegion. * gnu/awt/gtk/natGtkLabelPeer.cc (setText): Pass length of string to JvGetStringUTFRegion. * gnu/awt/gtk/natGtkButtonPeer.cc (setLabel): Pass length of string to JvGetStringUTFRegion. From-SVN: r73571
2003-11-04natClass.cc (newInstance): Throw InstantiationException if class has no ↵Bryce McKinlay1-1/+1
null-argument constructor. * java/lang/natClass.cc (newInstance): Throw InstantiationException if class has no null-argument constructor. From-SVN: r73244
2003-10-28natClass.cc (_Jv_LayoutVTableMethods): Always assign a vtable slot for final ↵Bryce McKinlay1-2/+7
methods. * java/lang/natClass.cc (_Jv_LayoutVTableMethods): Always assign a vtable slot for final methods. Add FIXME comment. From-SVN: r73023
2003-10-26Constructor.java (toString): Avoid extra whitespace on constructor with no ↵Bryce McKinlay1-11/+1
modifiers. 2003-10-26 Bryce McKinlay <bryce@mckinlay.net.nz> * java/lang/reflect/Constructor.java (toString): Avoid extra whitespace on constructor with no modifiers. * java/lang/reflect/natConstructor.java (newInstance): Look up caller and perform accessibility check only if constructor is non-public and accessible flag is not set. 2003-10-26 Bryce McKinlay <bryce@mckinlay.net.nz> * jni.cc (_Jv_JNI_CallAnyMethodV, _Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodV, _Jv_JNI_CallAnyVoidMethodA): Don't use _Jv_LookupDeclaredMethod(). Call _Jv_CallAnyMethodA with is_virtual_call argument. * include/jvm.h (_Jv_isVirtualMethod): Moved and renamed from natClass.cc. * java/lang/natClass.cc (_Jv_LayoutVTableMethods): Use _Jv_isVirtualMethod. * java/lang/reflect/natMethod.cc (invoke): Don't use _Jv_LookupDeclaredMethod. (_Jv_CallAnyMethodA): New is_virtual_call argument. If specified, look up method in target object's vtable. From-SVN: r72942