diff options
author | doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-28 13:29:13 +0000 |
---|---|---|
committer | doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-28 13:29:13 +0000 |
commit | 1020ce5944edde4364baef4d371cd4f9b0dae721 (patch) | |
tree | 602cd7aa7c947386134690d8e0f6b53abcdeacb9 /libjava | |
parent | 9f41ce98ce6f4f7c8ac5e2c4b6e5d27e10201015 (diff) | |
download | gcc-1020ce5944edde4364baef4d371cd4f9b0dae721.tar.gz |
libjava/
2008-06-28 Matthias Klose <doko@ubuntu.com>
Import GNU Classpath (classpath-0_97_2-release).
* Regenerate class and header files.
* Regenerate auto* files.
* gcj/javaprims.h: Define jobjectRefType.
* jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
(_Jv_JNIFunctions): Initialize GetObjectRefType.
* gnu/classpath/jdwp/VMVirtualMachine.java,
java/security/VMSecureRandom.java: Merge from classpath.
* HACKING: Fix typo.
* ChangeLog-2007: New file.
* configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.
libjava/classpath/
2008-06-28 Matthias Klose <doko@ubuntu.com>
* m4/ac_prog_javac.m4: Disable check for JAVAC, when
not configured with --enable-java-maintainer-mode.
* aclocal.m4, configure: Regenerate.
* native/jni/gstreamer-peer/Makefile.am: Do not link with
libclasspathnative.
* native/jni/gstreamer-peer/Makefile.in: Regenerate.
* tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting
JCOMPILER, drop flags not understood by gcj.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137223 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
1429 files changed, 32590 insertions, 17872 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9f09b864898..d10991d0cd4 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,18 @@ +2008-06-28 Matthias Klose <doko@ubuntu.com> + + Import GNU Classpath (classpath-0_97_2-release). + + * Regenerate class and header files. + * Regenerate auto* files. + * gcj/javaprims.h: Define jobjectRefType. + * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only). + (_Jv_JNIFunctions): Initialize GetObjectRefType. + * gnu/classpath/jdwp/VMVirtualMachine.java, + java/security/VMSecureRandom.java: Merge from classpath. + * HACKING: Fix typo. + * ChangeLog-2007: New file. + * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath. + 2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> * configure: Regenerate. @@ -631,2662 +646,3 @@ PR libgcj/34444 * java/lang/natClass.cc (Class::getEnclosingClass): Call getDeclaringClass(). - -2007-12-22 David Daney <ddaney@avtrex.com> - - * scripts/makemake.tcl (emit_bc_rule): Use $(LIBGCJ_BC_FLAGS) - instead of -findirect-dispatch -fno-indirect-classes. - * configure.ac (libgcj-bc): New AC_ARG_ENABLE. - (SUPPRESS_LIBGCJ_BC): New AM_CONDITIONAL. - * Makefile.am (LIBGCJ_BC_FLAGS): New variable. - * Makefile.in: Regenerate. - * include/Makefile.in: Same. - * testsuite/Makefile.in: Same. - * configure: Same. - * gcj/Makefile.in: Same. - * sources.am: Same. - -2007-12-17 Jakub Jelinek <jakub@redhat.com> - - * testsuite/Makefile.am (compile-tests): Build - libjava.jvmti/interp/*.h with -jni rather than -cni. - * testsuite/Makefile.in: Rebuilt. - -2007-12-08 Andreas Tobler <a.tobler@schweiz.org> - - * configure.host: Add bits for i?86-*-darwin9 and x86_64-*-darwin9. - * configure.ac: Add darwin-signal.h to x86_64-*-darwin9 and - i?86-*darwin9. - * configure.in: Regenerate. - * darwin.cc: Add definitions for Darwin specific functions for 64-bit. - (darwin_java_register_dyld_add_image_hook): Use this specific - functions. - * Makefile.am (gij_LDFLAGS): Add extra_gij_ldflags for Darwin9. - * Makefile.in: Regenerate. - * include/Makefile.in: Likewise. - * gcj/Makefile.in: Likewise. - * testsuite/Makefile.in: Likewise. - * testsuite/lib/libjava.exp (libjava_arguments): Add allow_stack_execute - for *-*-darwin9*. - -2007-12-06 David Daney <ddaney@avtrex.com> - - * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout. - (ncode_closure, ffi_closure_fun): Define versions for - non-FFI_NATIVE_RAW_API case. - * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to - replace ffi_raw throughout. - * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE - throughout. - -2007-12-06 Andreas Tobler <a.tobler@schweiz.org> - - * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Make - the testsuite multilib aware for Darwin. - -2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com> - - * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate. - * gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise. - * java/awt/Component.h: Likewise. - * java/awt/Container.h: Likewise. - -2007-11-05 H.J. Lu <hongjiu.lu@intel.com> - - * configure.ac: Don't run config-ml.in directly. - (multilib_arg): New. - * configure: Regenerated. - -2007-10-22 David Daney <ddaney@avtrex.com> - - * include/jvm.h (_Jv_SetGCFreeSpaceDivisor): Declare new function. - * boehm.cc (_Jv_SetGCFreeSpaceDivisor): Define it. - -2007-10-18 David Daney <ddaney@avtrex.com> - - * classpath/lib/gnu/java/locale/LocaleData.class: Regenerate - * classpath/lib/gnu/javax/sound/sampled/gstreamer: Add generated - files. - * gnu/javax/sound/sampled/gstreamer: Add generated files. - -2007-10-15 Maciej W. Rozycki <macro@linux-mips.org> - - * configure: Regenerate following changes to ../config/tls.m4. - -2007-09-17 Tom Tromey <tromey@redhat.com> - - * defineclass.cc (MAJOR_1_6): New define. - (MINOR_1_6): Likewise. - (_Jv_ClassReader::parse): Handle 1.6 bytecode. - -2007-09-12 David Daney <ddaney@avtrex.com> - - * configure.host: Enable interpreter for mips64. Enable hash - synchronization for all mips*-*-linux* targets. - * sysdep/mips/locks.h (compare_and_swap, compare_and_swap_release) Use - __sync_bool_compare_and_swap instead of in-line asm. - (release_set, read_barrier, write_barrier): Use __sync_synchronize - instead of in-line asm. - -2007-09-09 Andreas Tobler <a.tobler@schweiz.org> - - PR libgcj/33326 - * testsuite/lib/libjava.exp (libjava_arguments): Append the test spec - only for linux targets. - -2007-09-09 Andrew Haley <aph@redhat.com> - - * interpret-run.cc (invokevirtual_resolved): Nullcheck object on - TOS. - -2007-09-06 Tom Tromey <tromey@redhat.com> - - * testsuite/libjava.lang/StackTrace2.jar: Rebuilt. - * testsuite/libjava.lang/StackTrace2.java (checkLine): Print file - name. - -2007-09-06 Roman Zippel <zippel@linux-m68k.org> - - * sysdep/m68k/locks.h: New file. - * configure.host: Set sysdeps_dir and libgcj_interpreter for m68k. - * configure.ac: Set SIGNAL_HANDLER for m68*-*-linux*. - * configure: Regenerate. - -2007-09-05 Samuel Thibault <samuel.thibault@ens-lyon.org> - - * configure.host(gnu*): Set use_libgcj_bc to yes. - -2007-09-04 Matthias Klose <doko@ubuntu.com> - - * configure.ac: Do not pass --with-native-libdir to classpath. - * configure: Regenerate. - -2007-09-04 Matthias Klose <doko@ubuntu.com> - - PR libgcj/33278 - * configure.ac: Robustify extraction of gcj version. - * configure: Regenerate. - -2007-09-04 Andrew Haley <aph@redhat.com> - - PR java/27908 - * testsuite/libjava.lang/PR27908.java - ({run1,run2,run3}.isRunning): New Method. - (main): Fix race condition. - -2007-08-29 Andrew Haley <aph@redhat.com> - - * gnu/classpath/natVMStackWalker.cc (VMStackWalker::getCallingClass): - Make sure we're not sibcalled. - (GET_CALLING_CLASS): Define for ARM EABI. - -2007-08-22 Andrew Haley <aph@redhat.com> - - * configure.host (BACKTRACESPEC): Add arm*-linux*. - -2007-08-22 Andrew Haley <aph@redhat.com> - - * configure.ac (LIBSTDCXXSPEC): New. - * configure.host: Add arm*-linux* to pthread test. - * configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM - EABI. - * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use - -fexceptions for ARM EABI. - * testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec. - (libjava_invoke): Log the invocation. - -2007-08-15 Andrew Haley <aph@redhat.com> - - * configure.ac (extra_ldflags): Define. - * Makefile.am: Use extra_ldflags for all executables. - -2007-08-14 Andrew Haley <aph@redhat.com> - - * sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo, - _Unwind_GetRegionStart, and _Unwind_Backtrace. - -2007-07-27 Andrew Haley <aph@redhat.com> - - * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for - ARM EABI. - * exception.cc (get_exception_header_from_ue): New. - (get_ttype_entry): ARM EABI version. - (PERSONALITY_FUNCTION): Add ARM EABI code. - * sysdep/arm/backtrace.h: New file. - * stacktrace.cc (_URC_NORMAL_STOP): New. - * configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM - EABI. - * configure.host (BACKTRACESPEC): Add arm/backtrace.h. - -2007-08-31 Matthias Klose <doko@ubuntu.com> - - * classpath/lib/java/util/EnumSet*.class: Regenerate - -2007-08-30 Andreas Tobler <a.tobler@schweiz.org> - - * gij.cc (version): Update Copyright year. - -2007-08-16 Samuel Thibault <samuel.thibault@ens-lyon.org> - - * configure.host (gnu*): Set use_libgcj_bc to yes. - -2007-08-15 Tom Tromey <tromey@redhat.com> - - * java/lang/Class.java (internalGetFields): Use LinkedHashSet. - * classpath/lib/java/lang/Class.class: Rebuilt. - -2007-08-15 Samuel Thibault <samuel.thibault@ens-lyon.org> - - * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove - 'si' and 'third' parameters. Disable calling - pmi->old_sigaction.sa_sigaction. - (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set - sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag. - -2007-08-09 Andrew Haley <aph@redhat.com> - - * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation. - -2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org> - - * java/net/natVMInetAddressPosix.cc - (java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]: - Allocate buffer dynamically. - -2007-08-04 Alfred M. Szmidt <ams@gnu.org> - - * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0. - * java/io/File.java (createTempFile): Don't truncate if the system - doesn't have a limit on the length of a file name. - * classpath/lib/java/io/File.class: Regenerate. - -2007-08-04 Matthias Klose <doko@ubuntu.com> - - Import GNU Classpath (libgcj-import-20070727). - - * Regenerate class and header files. - * Regenerate auto* files. - - * include/jvm.h: - * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type. - * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise. - * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA, - _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA, - _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA, - _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify - jvalue parameter. - * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise. - - * java/lang/VMFloat.java (toString, parseFloat): New. - - * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported, - isModalExclusionTypeSupported): New (stub only). - * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise. - * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages, - updateFocusableWindowState, setModalBlocked, getBoundsPrivate, - setAlwaysOnTop): Likewise. - * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature. - - * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer, - ignore javax.sound.sampled.spi.MixerProvider, ignore .in files. - - * HACKING: Mention --enable-gstreamer-peer, removal of generated files. - -2007-07-31 David Daney <ddaney@avtrex.com> - - * HACKING: Document regenerating configure and aclocal.m4. - -2007-07-31 David Daney <ddaney@avtrex.com> - - * 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. - -2007-07-29 Matthias Klose <doko@ubuntu.com> - - * HACKING: Document regenerating configure. - -2007-07-29 H.J. Lu <hongjiu.lu@intel.com> - - PR libgcj/32929 - * aclocal.m4: Regenerated. - * configure: Likewise. - -2007-07-28 Matthias Klose <doko@ubuntu.com> - - * configure.ac: Encode the libgcj soversion in dbexecdir, - pass --with-native-libdir to classpath configure. - * configure: Regenerate. - -2007-07-28 Matthias Klose <doko@ubuntu.com> - - * classpath/jvmti.h: Remove. - -2007-07-27 Tom Tromey <tromey@redhat.com> - - * Rebuild .class files with new ecj. - -2007-07-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - - * configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC. - * configure: Regenerate. - -2007-07-16 Rask Ingemann Lambertsen <rask@sygehus.dk> - - PR target/32340 - * configure.host (arm*-elf | strongarm*-elf | xscale*-elf): Use the - new sysdeps/arm directory. - -2007-07-15 Tom Tromey <tromey@redhat.com> - - * java/io/File.java: Implement Comparable<File>. - (compareTo): Removed. - * java/io/File.h: Rebuilt. - * classpath/lib/java/io/File.class: Rebuilt. - -2007-07-14 Tom Tromey <tromey@redhat.com> - - * Rebuilt .class files. - -2007-07-15 Andrew Haley <aph@redhat.com> - - * configure.host: - arm*-linux-gnu -> arm*-linux*. - -2007-07-14 Krister Walfridsson <cato@df.lth.se> - - * gnu/gcj/util/natGCInfo.cc: Use HAVE_STRERROR_R. - * configure.ac: Remove check for strerror, add check for strerror_r. - * configure: Regenerate. - * include/config.h.in: Regenerate. - -2007-07-13 Andrew Haley <aph@redhat.com> - - * libgcj.ver: Add __gcj_personality_sj0. - - * testsuite/libjava.jvmti/jvmti-interp.exp: Likewise. - * testsuite/libjava.jni/jni.exp: Use -fdollars-in-identifiers. - * testsuite/libjava.jni/cni.exp: Use -fdollars-in-identifiers. - * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): Likewise. - - * gnu/classpath/natVMStackWalker.cc (getCallingClassLoader): Check - klass is non-null. - * java/lang/reflect/natField.cc (getAddr): Call - _Jv_StackTrace::GetCallingClass only if CALLER is non-null. - * java/lang/reflect/natVMProxy.cc (run_proxy): Use - _Jv_getFieldInternal to get field proxyClass.m. - (_Jv_getFieldInternal): New function. - -2007-07-11 Andrew Haley <aph@redhat.com> - - * configure.host (arm*-linux-gnu): New. - * sysdep/arm/locks.h: New. - -2007-07-13 Roger Sayle <roger@eyesopen.com> - - * java/lang/natPosixProcess.cc: Include <sys/time.h> before - <sys/resource.h> to restore bootstrap on powerpc-apple-darwin7.9.0. - -2007-07-12 Matthias Klose <doko@ubuntu.com> - - * gnu/classpath/jdwp/util/MethodResult.h, - gnu/classpath/jdwp/value/ObjectValue.h: Regenerate. - -2007-07-11 Keith Seitz <keiths@redhat.com> - - * interpret.cc (get_local_var_table) [DIRECT_THREADED]: Make sure the - method is compiled. - * testsuite/libjava.jvmti/interp/getlocalvartable.out: Revise - for compiled methods. - -2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - - PR libgcj/32651 - * configure.host (mips-sgi-irix6*): Set sysdeps_dir. - Disable interpreter. - -2007-07-05 Andreas Tobler <a.tobler@schweiz.org> - - * java/lang/natPosixProcess.cc: Reorder includes to fix compilation - on hppa2.0w-hp-hpux11.11. - Remove include of <gcj/cni.h>. - -2007-07-05 H.J. Lu <hongjiu.lu@intel.com> - - * aclocal.m4: Regenerated. - -2007-07-03 Andreas Tobler <a.tobler@schweiz.org> - - * java/lang/Class.h: Remove redundant 'class java::*::* declarations. - -2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> - - PR libgcj/30513 - * configure.host (i[3-6]86-*): Undef sun. - -2007-06-28 H.J. Lu <hongjiu.lu@intel.com> - - * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): - Fix a typo. - -2007-06-28 Jan Nijtmans <nijtmans@users.sourceforge.net> - - PR libgcj/30999: - * jni_md.h: Add the possibility to compile jni code with. - -fvisibility=hidden. This causes all symbols to be hidden - except the JNI functions which need to be exported. - -2007-06-28 Andreas Tobler <a.tobler@schweiz.org> - - * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Pass - the cxxldlibflags to exec_gij to have the right libstdc++ invoked. - -2007-07-21 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerate. - -2007-07-20 Keith Seitz <keiths@redhat.com> - - * classpath/lib/gnu/classpath/jdwp/value/StringValue.class: - Regenerate. - -2007-07-20 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/VMVirtualMachine.java (executeMethod): - Update from reference implementation. - * gnu/classpath/jdwp/natVMVirtualMachine.cc (executeMethod): - Update parameter list to match new VMVirtualMachine interface. - * classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class: - Regenerate. - * classpath/lib/gnu/classpath/jdwp/processor/ - ObjectReferenceCommandSet.class: Regenerate. - * classpath/lib/gnu/classpath/jdwp/value/ObjectValue.class: Regenerate. - * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: Regenerate. - * classpath/lib/gnu/classpath/jdwp/util/MethodResult.class: Regenerate. - -2007-06-18 Keith Seitz <keiths@redhat.com> - - * gnu/gcj/jvmti/Breakpoint.java: Make abstract. - (method): Change from private to protected. - (location): Likewise. - (Breakpoint): Change argument list to take only integer type. - Add default constructor. - (initialize_native): Renamed to ... - (_save_insn): ... this to make function more explicit. - (execute): New method. - * gnu/gcj/jvmti/Breakpoint.h: Regenerate. - * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): Rename to... - (_save_insn): ... this. - (install): Save the original instruction. - * gnu/gcj/jvmti/NormalBreakpoint.java: New file. - * gnu/gcj/jvmti/NormalBreakpoint.h: New file. - * gnu/gcj/jvmti/natNormalBreakpoint.cc: New file. - * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint): - Instantiate a NormalBreakpoint instead of Breakpoint. - * interpret-run.cc (insn_breakpoint): Remove breakpoint actions - and call Breakpoint.execute to do them. - * classpath/lib/gnu/gcj/jvmti/Breakpoint.class: Regenerate. - * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: Likewise. - * classpath/lib/gnu/gcj/jvmti/NormalBreakpoint.class: New file. - * sources.am: Regenerate. - * Makefile.am (nat_source_files): Add natNormalBreakpoint.cc. - * Makefile.in: Regenerated. - -2007-06-14 Keith Seitz <keiths@redhat.com> - - * include/java-interp.h (_Jv_LocalVarTableEntry): Add union - for bytecode_pc and direct-threaded pc. - Add field descriptions inline. - * defineclass.cc (read_one_code_attribute): Change from - bytecode_start_pc to bytecode_pc. - Remove unused variable "len". - * interpret.cc (compile): Remap the variable table, too. - (get_local_var_table) [DIRECT_THREADED]: Use insn_index on the - start location to map from pc_t to code index. - -2007-06-09 Keith Seitz <keiths@redhat.com> - - * testsuite/libjava.jvmti/dummyagent.c (Agent_OnLoad): - Add missing return value. - -2007-06-03 Matthias Klose <doko@ubuntu.com> - - * java/io/natFileWin32.cc (setFilePermissions): New (stub only). - _access: Handle EXEC query, stub only. - -2007-06-03 Matthias Klose <doko@ubuntu.com> - - Merged from classpath: - * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge. - * java/lang/System.java(inheritedChannel): New. - * java/lang/Character.java: Remove stray`;'. - * java/net/MulticastSocket.java: Merged. - * java/text/DateFormatSymbols.java(getInstance): New, comment updates. - * java/text/Collator.java(getInstance): Merged. - * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG. - getDisplayName, getDisplayNames: New. - * java/util/logging/Logger.java: Merged. - * Regenerate .class and .h files. - -2007-06-03 Matthias Klose <doko@ubuntu.com> - - * java/io/File.java: Merge with classpath-0.95, new method - setFilePermissions, new attribute EXEC. - * java/io/natFilePosix.cc (setFilePermissions): New. - _access: Handle EXEC query. - * classpath/lib/java/io/File.class, java/io/File.h: Regenerate. - -2007-06-03 Matthias Klose <doko@ubuntu.com> - - Imported GNU Classpath 0.95. - - * classpath/Makefile.in, - classpath/native/jni/midi-dssi/Makefile.in, - classpath/native/jni/classpath/Makefile.in, - classpath/native/jni/Makefile.in, - classpath/native/jni/gconf-peer/Makefile.in, - classpath/native/jni/java-io/Makefile.in, - classpath/native/jni/native-lib/Makefile.in, - classpath/native/jni/java-util/Makefile.in, - classpath/native/jni/midi-alsa/Makefile.in, - classpath/native/jni/java-lang/Makefile.in, - classpath/native/jni/java-nio/Makefile.in, - classpath/native/jni/java-net/Makefile.in, - classpath/native/jni/xmlj/Makefile.in, - classpath/native/jni/qt-peer/Makefile.in, - classpath/native/jni/gtk-peer/Makefile.in, - classpath/native/Makefile.in, classpath/native/jawt/Makefile.in, - classpath/native/fdlibm/Makefile.in, - classpath/native/plugin/Makefile.in, - classpath/resource/Makefile.in, classpath/scripts/Makefile.in, - classpath/tools/Makefile.in, classpath/doc/Makefile.in, - classpath/doc/api/Makefile.in, classpath/lib/Makefile.in, - classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in, - classpath/external/sax/Makefile.in, - classpath/external/w3c_dom/Makefile.in, - classpath/external/relaxngDatatype/Makefile.in, - classpath/include/Makefile.in, - classpath/examples/Makefile.in: Regenerate. - * classpath/config.guess, classpath/config.sub, - classpath/ltmain.sh : Update. - * classpath/configure, classpath/depcomp, classpath/missing, - classpath/aclocal.m4, classpath/install-sh: Regenerate. - - * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95. - * sources.am: Regenerate. - * Makefile.in: Regenerate. - - * Update the .class files and generated CNI header files, add new - .class and generated CNI header files. - * Remove generated files for removed java source files: - classpath/gnu/java/net/BASE64.java, - classpath/gnu/java/security/util/Base64.java, - classpath/gnu/java/awt/peer/gtk/GThreadMutex.java, - classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, - classpath/gnu/java/awt/font/autofit/Scaler.java, - classpath/gnu/classpath/jdwp/util/Value.java, - classpath/gnu/javax/net/ssl/Base64.java. - * Remove empty directories. - - * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc. - * java/lang/Class.java(setAccessible): Merge from classpath. - * java/util/Locale.java: Remove. - * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java, - gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New. - * gcj/javaprims.h: Update class declarations. - * scripts/classes.pl: Update usage. - * HACKING: Mention to build all peers. - -2007-06-02 Paolo Bonzini <bonzini@gnu.org> - - * configure: Regenerate. - -2007-05-31 Andrew Haley <aph@redhat.com> - - * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear - INTERPRETED access modifier. - -2007-05-31 Paolo Bonzini <bonzini@gnu.org> - - PR libjava/32098 - * configure: Regenerated. - * aclocal.m4: Regenerated. - -2007-05-30 H.J. Lu <hongjiu.lu@intel.com> - - PR libjava/32098 - * configure: Regenerated. - -2007-05-29 H.J. Lu <hongjiu.lu@intel.com> - - * configure.ac: Don't include ../config/confsubdir.m4. - * aclocal.m4: Regenerated. - * configure: Likewise. - -2007-05-27 Paolo Bonzini <bonzini@gnu.org> - - PR bootstrap/32078 - * configure.ac: Include confsubdir.m4. - * configure: Regenerate. - -2007-05-24 Keith Seitz <keiths@redhat.com> - - * include/java-interp.h (_Jv_InterpFrame::get_pc): Only deduct - one when pc_ptr is non-NULL. - - * prims.cc (parse_init_args): Enable JVMTI with agentlib - and agentpath options. - - * testsuite/lib/libjava.exp (exec_gij): Add new addl_flags - parameter. - * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): - Pass '-agentlib:dummyagent' when executing gij. - (gij_jvmti_run): Build dummy JVMTI agent before running tests, - and remove it when finished. - * testsuite/libjava.jvmti/dummyagent.c: New file. - -2007-05-23 Steve Ellcey <sje@cup.hp.com> - - * Makefile.in: Regenerate. - * configure: Regenerate. - * aclocal.m4: Regenerate. - * gcj/Makefile.in: Regenerate. - * include/Makefile.in: Regenerate. - * testsuite/Makefile.in: Regenerate. - -2007-05-17 Kyle Galloway <kgallowa@redhat.com> - - * classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java - (executeMethods): Remove cast to ClassReferenceTypeId. - * classpath/lib/gnu/classpath/jdwp/processor/ - ReferenceTypeCommandSet.class: Rebuilt. - -2007-05-17 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/natVMMethod.cc (getModifiers): Check for native - classes and mark methods as native appropriately. - -2007-05-17 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/VMFrame.java (<init>): Add parameter for "this" - pointer. - * gnu/classpath/jdwp/VMFrame.h: Regenerated. - * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt. - * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrame): Use new - VMFrame constructor. - -2007-05-16 David Daney <ddaney@avtrex.com> - - * include/java-stack.h (_Jv_FrameInfo): Remove union definition. - (_Jv_StackFrame): Remove commented out code. - (_Jv_UnwindState): Remove superfluous 'typedef'. - * sun/misc/natUnsafe.cc (spinlock): Add white space to quiet - compiler warnings. - * gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc - (getCollectionUsage): Don't declare unused parameter n. - (getMemoryManagerNames): Same. - * gnu/gcj/util/natGCInfo.cc (gc_debug_info): Remove superfluous - 'typedef'. - -2007-05-16 Keith Seitz <keiths@redhat.com> - - * include/java-interp.h (breakpoint_at): Declare. - * interpret.cc (breakpoint_at): New function. - * gnu/classpath/jdwp/VMVirtualMachine.java (_event_list): - New member. - * gnu/classpath/jdwp/natVMVirtualMachine.cc (initialize): - Initialize _event_list. - (handle_single_step): If there is a breakpoint at the - location at which we are stopping, do not send the notification. - Instead add the event to a list of events that occur at this - location. - (jdwpBreakpointCB): If the event list is not empty, send - whatever events are in it and the breakpoint event in a single - notification. - Mark parameter jni_env as MAYBE_UNUSED. - * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: - Regenerated. - * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated. - -2007-05-15 David Daney <ddaney@avtrex.com> - - * classpath/lib/javax/swing/text/html/HTMLEditorKit.class: Regenerate - * gnu/java/awt/peer/gtk/ComponentGraphics.h: Same. - -2007-05-15 Keith Seitz <keiths@redhat.com> - - * interpret.cc (STOREA): Rewrite using temporary variable to - avoid double-macro expansion side-effects. - (STOREI): Likewise. - (STOREF): Likewise. - (STOREL)[SIZEOF_VOID_P == 8]: Likewise. - (STORED)[SIZEOF_VOID_P == 8]: Likewise. - (STOREL)[SIZEOF_VOID_P != 8]: Likewise. - (STORED)[SIZEOF_VOID_P != 8]: Likewise. - (POKEI): Likewise. - -2007-05-12 David Daney <ddaney@avtrex.com> - - PR libgcj/29324 - * include/posix-threads.h (_Jv_BlockSigchld): Declare. - (_Jv_UnBlockSigchld): Same. - * posix-threads.cc: Include posix-threads.h. - (block_sigchld) Rename to... - (_Jv_BlockSigchld) ... this. - (_Jv_UnBlockSigchld): New function. - (_Jv_InitThreads): Call _Jv_BlockSigchld in place of block_sigchld. - (_Jv_ThreadStart): Same. - * java/lang/PosixProcess$ProcessManager.h: Regenerate. - * java/lang/PosixProcess.java: Clean up imports. - (ProcessManager): Make final. - (ProcessManager.queue): Genericise and make private. - (ProcessManager.pidToProcess): Remove. - (ProcessManager.liveProcesses): New field. - (ProcessManager.reaperPID): Remove. - (ProcessManager.nativeData): New field. - (ProcessManager.removeProcessFromMap): Remove. - (ProcessManager.addProcessToMap):Remove. - (ProcessManager.addToLiveProcesses): New method. - (ProcessManager.run): Rewritten. - (ProcessManager.reap): Change method signature, - (getErrorStream): Correct formatting. - (getInputStream): Same. - (spawn): Add process to liveProcesses list. - (pid): Make package private. - * java/lang/PosixProcess.h: Regenerate. - * java/lang/natPosixProcess.cc: Include posix.h and posix-threads.h. - Add useing namespace java::lang. - (ProcessManagerInternal): New struct. - (sigchld_handler): Rewritten. - (init): Rewritten. - (waitForSignal): Same. - (reap): Same. - (signalReaper): Same. - (nativeDestroy): Call kill as ::kill. - (nativeSpawn): Correct formatting. - * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Regenerate. - * classpath/lib/java/lang/PosixProcess.class: Same. - * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same. - -2007-05-07 Ian Lance Taylor <iant@google.com> - - PR java/31842 - * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed - overflow. - -2007-05-07 Keith Seitz <keiths@redhat.com> - - * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerate. - * classpath/lib/gnu/classpath/jdwp/Jdwp$1.class: Regenerate. - * classpath/lib/gnu/classpath/jdwp/event/Event.class: - Regenerate. - * classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class: - Regenerate. - * gnu/classpath/jdwp/Jdwp.h: Regenerate. - * gnu/classpath/jdwp/event/Event.h: Regenerate. - * gnu/classpath/jdwp/transport/JdwpConnection.h: Regenerate. - -2007-05-04 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc (getClassMethod): Change - to use JVMTI. - -2007-05-03 Keith Seitz <keiths@redhat.com> - - * interpret.cc: Don't include ExceptionEvent.h. - * gnu/gcj/jvmti/natExceptionEvent.cc: Remove. - * Makefile.am (nat_source_files): Remove natExceptionEvent.cc. - * Makefile.in: Regenerated. - -2007-05-03 Keith Seitz <keiths@redhat.com> - - * include/jvmti-int.h (_Jv_ReportJVMTIExceptionThrow): - Declare. - * interpret.cc (_Jv_ReportJVMTIExceptionThrow): New function. - (find_catch_location): New function. - (REPORT_EXCEPTION): New macro. - (throw_internal_error): Use REPORT_EXCEPTION. - (throw_incompatible_class_change_error): Likewise. - (throw_null_pointer_exception): Likewise. - (throw_class_format_error): Likewise. - * interpret-run.cc (INTERP_REPORT_EXCEPTION)[DEBUG]: Set - to REPORT_EXCEPTION. - (INTERP_REPORT_EXCEPTION)[!DEBUG]: Make nop. - (insn_new): Use INTERP_REPORT_EXCEPTION. - (insn_athrow): Likewise. - Remove previous JVMTI exception notifications. - Add JVMTI ExceptionCatch notificatin. - * jni.cc (_Jv_PopSystemFrame): Notify JVMTI clients of - exception throw. - * gnu/gcj/jvmti/ExceptionEvent.java: Removed. - * gnu/gcj/jvmti/ExceptionEvent.h: Removed. - * classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: Removed. - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (jdwpExceptionCB): New function. - (jdwpVMInitCB): Set Exception event handler and enable. - * sources.am: Regenerated. - * Makefile.in: Regenerated. - -2007-05-03 Thomas Fitzsimmons <fitzsim@redhat.com> - - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304 - * Makefile.in: Regenerate. - * scripts/makemake.tcl (scan_directory): Treat default.css as a - property file. - * classpath/javax/swing/text/html/default.css: Move to... - * classpath/resource/javax/swing/text/html/default.css: New file. - * classpath/javax/swing/text/html/HTMLEditorKit.java - (getStyleSheet): Throw RuntimeException when style loading fails. - * sources.am (property_files): Add - classpath/resource/javax/swing/text/html/default.css. - -2007-05-02 Tom Tromey <tromey@redhat.com> - - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755 - * java/lang/natCharacter.cc (Character::getType): Handle negative - code points. - (Character::toLowerCase): Likewise. - (Character::toUpperCase): Likewise. - (Character::digit): Likewise. - (Character::getNumericValue): Likewise. - (Character::getDirectionality): Likewise. - (Character::toTitleCase): Likewise. - -2007-04-30 Keith Seitz <keiths@redhat.com> - - * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before - executing the instruction. - * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract - one insn from the frame's PC. _Jv_InterpMethod::run et al - will advance the PC before executing the instruction. - -2007-04-27 Keith Seitz <keiths@redhat.com> - - * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated. - * classpath/lib/gnu/classpath/jdwp/event/EventManager.class: - Regenerated. - * gnu/classpath/jdwp/event/EventManager.h: Regenerated. - -2007-04-27 Keith Seitz <keiths@redhat.com> - - * classpath/lib/gnu/classpath/jdwp/event/filters/ - LocationOnlyFilter.class: Regenerated; - * classpath/lib/gnu/classpath/jdwp/util/Location.class: - Regenerated. - * gnu/classpath/jdwp/VMMethod.java - * classpath/lib/gnu/classpath/jdwp/VMMethod.class: - Regenerated. - * gnu/classpath/jdwp/VMMethod.h: Regenerated. - * gnu/classpath/jdwp/util/Location.h: Regenerated. - -2007-04-27 Thomas Fitzsimmons <fitzsim@redhat.com> - - * gnu/java/awt/peer/gtk/CairoGraphics2D.h: Regenerate. - * gnu/java/awt/peer/gtk/ComponentGraphics.h: Regenerate. - -2007-04-25 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/VMIdManager.java (getObjectId): Deal with null - objects. - (get): Deal with ObjectId of 0. - -2007-04-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> - - PR libgcj/31084 - * java/lang/natVMProcess.cc: Include platform.h before jvm.h. - -2007-04-24 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.java - (getThreadStatus): Implement. - -2007-04-24 Keith Seitz <keiths@redhat.com> - - * headers.txt (gnu/gcj/jvmti/Breakpoint.h)[DIRECT_THREADED]: - Add _Jv_RewriteBreakpointInsn friend declaration. - * gnu/gcj/jvmti/natBreakpoint.cc (_Jv_RewriteBreakpointInsn) - [DIRECT_THREADED]: New function. - * gnu/gcj/jvmti/Breakpoint.h: Regenerate. - * interpret-run.cc: Define new REWRITE_INSN macro. - Changed all occurrences of insn rewriting to call REWRITE_INSN. - -2007-04-23 Keith Seitz <keiths@redhat.com> - - * include/no-gc.h (_Jv_IsThreadSuspended): Declare. - * include/boehm-gc.h (_Jv_IsThreadSuspended): Likewise. - * boehm.cc (_Jv_IsThreadSuspended): New function. - * nogc.cc (_Jv_IsThreadSuspended): Likewise. - * jvmti.cc (_Jv_JVMTI_GetThreadState): New function. - (_Jv_JVMTI_Interface): Define GetThreadState. - -2007-04-23 Kyle Galloway <kgallowa@redhat.com> - - * include/java-interp.h (_Jv_InterpFrame): Add pointer to the - interpreter PC. - (<init>): Add a pointer to the interpreter PC as a parameter with - default value NULL. - (get_pc): New method. - * interpret-run.cc: If debugging, pass a pointer to the PC when - creating the stack frame. - * jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc - to get the PC. - -2007-04-23 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc (getSourceFile): Check - for null source file and throw an exception indicating this. - -2007-04-20 Keith Seitz <keiths@redhat.com> - - * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint): - Install the new breakpoint into the bytecode. - (deleteBreakpoint): Remove the breakpoint from the bytecode. - * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: - Regenerate. - * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): - Don't install the breakpoint here. - -2007-04-19 Keith Seitz <keiths@redhat.com> - - * interpret-run.cc [insn_breakpoint]: Save the original - insn for the breakpoint before posting the JVMTI notification. - -2007-04-19 Tom Tromey <tromey@redhat.com> - - * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h: Rebuilt. - -2007-04-18 Tom Tromey <tromey@redhat.com> - - * Regenerated headers with new gjavah. - -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. - * java/lang/reflect/Method.h: Likewise. - -2007-04-16 Andrew Haley <aph@redhat.com> - - * gnu/gcj/runtime/BootClassLoader.java (getBootURLLoader): New - method. - (bootGetResource): Use getBootURLLoader() to load resources. - (bootGetResources): Likewise. - - * java/lang/reflect/natMethod.cc (Method::invoke): In invoke also - check that the method's declaring class is accessible. - -2007-04-10 Keith Seitz <keiths@redhat.com> - - * sources.am: Regenerate. - * Makefile.in: Likewise. - -2007-04-09 Kyle Galloway <kgallowa@redhat.com> - - * interpret-run.cc: If debugging, check if args is NULL before - getting the "this" pointer. - -2007-04-09 Kyle Galloway <kgallowa@redhat.com> - - * classpath/gnu/classpath/jdwp/value/ArrayValue.java: New file. - * classpath/lib/gnu/classpath/jdwp/value/ArrayValue.class: New file. - * gnu/classpath/jdwp/ArrayValue.h: New file. - * gnu/classpath/jdwp/natVMFrame.cc (getValue): Add array case. - (setValue): Ditto. - -2007-04-09 David Daney <ddaney@avtrex.com> - - PR libgcj/23758 - * java/lang/natPosixProcess.cc (nativeSpawn): Move building of - environment before the fork. - * testsuite/libjava.lang/Process_7.java: New test. - * testsuite/libjava.lang/Process_7.out: Its expected results. - * testsuite/libjava.lang/Process_7.jar: Generated file. - -2007-04-09 H.J. Lu <hongjiu.lu@intel.com> - - * prims.cc (load_jvmti_agent): Add the missing `,'. - -2007-04-09 Kyle Galloway <kgallowa@redhat.com> - - * gij.cc (main): Accept -agentlib and -agentpath options. - * prims.cc (parse_init_args): Deal with -agentlib and -agentpath. - (load_jvmti_agent): New function. - -2007-04-04 Tania Bento <tbento@redhat.com> - - * java/text/DecimalFormatSymbols.java: Added the year 2007 to - Copyright information and introduced new variable, currency. - (DecimalFormatSymbols(Locale)): Define currency and intlCurrencySymbol - to "XXX", currencySymbol to "?" and localCurrency appropriately. - (getCurrency): Fixed documentation and return the value of currency. - (setCurrency): Fixed documentation and update the value of currency. - (setInternationalCurrencySymbol): Fixed documentation and update the - value of currency. - * java/util/Currency.java: Introduced two new variables, properties - and fractionDigits. In the static block, a properties object is - created and the currency resource is loaded. - (Currency(Locale)): fractionDigits is defined. - (Currency(String)): New method. - (getDefaultFractionDigits): Return the value of fractionDigits. - (getInstance(String)): Check if String is equal to "XXX". - -2007-04-04 Kyle Galloway <kgallowa@redhat.com> - - * classpath/gnu/classpath/jdwp/util/VariableTable.java: Change longs - to ints for argCnt and slots. - (write): Replace writeLong with writeInt for the above. - -2007-04-03 Andrew Haley <aph@redhat.com> - - * testsuite/libjava.lang/ProxyTest.java: New test. - -2007-04-02 Tom Tromey <tromey@redhat.com> - - http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=205157 - * gnu/java/nio/channels/natFileChannelPosix.cc (mapImpl): Extend - file, when writing, if it is too short. - -2007-04-02 Tom Tromey <tromey@redhat.com> - - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233406 - * gnu/java/net/natPlainSocketImplPosix.cc (create): Return if - already created. - * gnu/java/net/PlainSocketImpl.java (getLocalAddress): Handle case - where localport is -1. - (create): Now public. - * gnu/java/nio/SocketChannelImpl.java (SocketChannelImpl): Call - 'create' on the socket. - -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. - -2007-04-02 Kyle Galloway <kgallowa@redhat.com> - - * interpret-run.cc: Add code to properly set up variable slots - when debugging. - * gnu/classpath/jdwp/natVMFrame.cc (checkJVMTIError): New function. - (getObjectJVMTI): New function. - (setObjectJVMTI): New function. - (getIntJVMTI): New function. - (setIntJVMTI): New function. - (getLongJVMTI): New function. - (setLongJVMTI): New function. - (getFloatJVMTI): New function. - (setFloatJVMTI): New function. - (getDoubleJVMTI): New function. - (setDoubleJVMTI): New function. - (getFrameDepth): New function. - (getValue): Implement. - (setValue): Implement. - -2007-04-02 Kyle Galloway <kgallowa@redhat.com> - - * classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java - (executeResume): Call VMVirtualMachine.resumeThread. - -2007-03-29 Tom Tromey <tromey@redhat.com> - - PR libgcj/29869: - * java/util/logging/LogManager.java (readConfiguration): Handle - comma-separated 'handlers'. Don't try to add a non-existing - handler. - -2007-03-27 Tom Tromey <tromey@redhat.com> - - * sources.am, Makefile.in: Rebuilt. - * scripts/mime.types: Removed. - * scripts/MakeDefaultMimeTypes.java: Removed. - * gnu/gcj/io/MimeTypes.java: Removed. - * gnu/gcj/io/MimeTypes.h: Removed. - * gnu/gcj/io/DefaultMimeTypes.java: Removed. - * gnu/gcj/io/DefaultMimeTypes.h: Removed. - -2007-03-27 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/VMFrame.java: Update from upstream - classpath. - * gnu/classpath/jdwp/natVMFrame.cc: Likewise. - * gnu/classpath/jdwp/VMVirtualMachine.java: Likewise. - * gnu/classpath/jdwp/natVMVirtualMachine.cc: Likewise. - (initialize): Fix compiler type-punning warning. - (getAllLoadedClasses): Return empty list instead of NULL. - (getLoadRequests): Likewise. - * gnu/classpath/jdwp/exception/InvalidTagException.h: New file. - * gnu/classpath/jdwp/exception/InvalidSlotException.h: New file. - * gnu/classpath/jdwp/exception/TypeMismatchException.h: New file. - * gnu/classpath/jdwp/VMVirtualMachine.h: Rebuilt. - * gnu/classpath/jdwp/value/CharValue.h: New file. - * gnu/classpath/jdwp/value/LongValue.h: New file. - * gnu/classpath/jdwp/value/ShortValue.h: New file. - * gnu/classpath/jdwp/value/Value.h: New file. - * gnu/classpath/jdwp/value/BooleanValue.h: New file. - * gnu/classpath/jdwp/value/VoidValue.h: New file. - * gnu/classpath/jdwp/value/ByteValue.h: New file. - * gnu/classpath/jdwp/value/FloatValue.h: New file. - * gnu/classpath/jdwp/value/ObjectValue.h: New file. - * gnu/classpath/jdwp/value/StringValue.h: New file. - * gnu/classpath/jdwp/value/ValueFactory.h: New file. - * gnu/classpath/jdwp/value/IntValue.h: New file. - * gnu/classpath/jdwp/value/DoubleValue.h: New file. - * gnu/classpath/jdwp/VMFrame.h: Rebuilt. - * gnu/classpath/jdwp/id/NullObjectId.h: New file. - * gnu/classpath/jdwp/util/MethodResult.h: Rebuilt. - * gnu/classpath/jdwp/util/NullObject.h: New file. - * gnu/classpath/jdwp/util/MonitorInfo.h: New file. - * Makefile.in: Rebuilt. - * sources.am: Rebuilt. - -2006-03-26 David Daney <ddaney@avtrex.com> - - * configure.ac: Remove checks for mktime, alloca, ioctl, gmtime_r, - fork, execvp, execinfo.h, pthread_mutexattr_settype, - pthread_mutexattr_setkind_np and sys/wait.h. - * Makefile.in: Regenerate. - * include/Makefile.in: Regenerate. - * include/config.h.in: Regenerate. - * testsuite/Makefile.in: Regenerate. - * configure: Regenerate. - * gcj/Makefile.in: Regenerate. - -2007-03-23 Gary Benson <gbenson@redhat.com> - - * link.cc (_Jv_Linker::resolve_method_entry): - Ensure that the argument types and the return type of the - found method match those expected by the calling method. - -2007-03-22 David Daney <ddaney@avtrex.com> - - PR libgcj/31228 - * configure.ac: Add checks for getrlimit and sys/resource.h. - * include/posix.h (_Jv_platform_close_on_exec): Remove. - * include/config.h.in: Regenerate. - * configure: Regenerate. - * gnu/java/nio/channels/natFileChannelPosix.cc (open): Remove call to - _Jv_platform_close_on_exec; - * gnu/java/net/natPlainSocketImplPosix.cc (create): Likewise. - (accept): Likewise. - * gnu/java/net/natPlainDatagramSocketImplPosix.cc (create):Likewise. - * java/lang/natPosixProcess.cc: Include sys/resource.h. - (nativeSpawn): Close all file descriptors. Don't set FD_CLOEXEC on - pipes. - -2007-03-20 Andrew Haley <aph@redhat.com> - - * testsuite/libjava.lang/PR31264.java: New test. - -2007-03-14 Jakub Jelinek <jakub@redhat.com> - - * Makefile.am (AM_MAKEFLAGS): Pass through mandir. - * Makefile.in: Rebuilt. - -2007-03-13 Keith Seitz <keiths@redhat.com> - - * 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. - -2007-03-13 Thomas Fitzsimmons <fitzsim@redhat.com> - - * Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE. - * classpath/configure.ac: Add --with-ecj-jar configure option. - * classpath/gnu/classpath/Configuration.java.in (ECJ_JAR): New - field. - * classpath/INSTALL: Document --with-ecj-jar configure option and - ecj jar requirement for com.sun.tools.javac support. - * classpath/tools/Makefile.am: Build decendents of com and sun - directories. - * configure.ac: Substitute ECJ_JAR in stub Configuration.java. - * gnu/classpath/Configuration.java, - gnu/classpath/natConfiguration.cc (ecj): New method. - (ECJ_JAR): New field. - * scripts/makemake.tcl (scan_packages): Add com directory. - * sources.am (property_files): Add - classpath/resource/sun/rmi/rmic/messages.properties and - classpath/resource/com/sun/tools/javac/messages.properties. - * classpath/resource/com, classpath/resource/com/sun, - classpath/resource/com/sun/tools, - classpath/resource/com/sun/tools/javac, classpath/resource/sun, - classpath/resource/sun/rmi, classpath/resource/sun/rmi/rmic, - classpath/tools/classes/com, classpath/tools/classes/com/sun, - classpath/tools/classes/com/sun/javadoc, - classpath/tools/classes/com/sun/tools, - classpath/tools/classes/com/sun/tools/doclets, - classpath/tools/classes/sun, classpath/tools/classes/sun/rmi, - classpath/tools/classes/sun/rmi/rmic, classpath/tools/com, - classpath/tools/com/sun, classpath/tools/com/sun/javadoc, - classpath/tools/com/sun/tools, - classpath/tools/com/sun/tools/doclets, - classpath/tools/com/sun/tools/javac, classpath/tools/sun, - classpath/tools/sun/rmi, classpath/tools/sun/rmi/rmic: New - directories. - * classpath/resource/com/sun/tools/javac/messages.properties, - classpath/resource/sun/rmi/rmic/messages.properties, - classpath/tools/classes/com/sun/javadoc/ClassDoc.class, - classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class, - classpath/tools/classes/com/sun/javadoc/Doc.class, - classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class, - classpath/tools/classes/com/sun/javadoc/Doclet.class, - classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class, - classpath/tools/classes/com/sun/javadoc/FieldDoc.class, - classpath/tools/classes/com/sun/javadoc/MemberDoc.class, - classpath/tools/classes/com/sun/javadoc/MethodDoc.class, - classpath/tools/classes/com/sun/javadoc/PackageDoc.class, - classpath/tools/classes/com/sun/javadoc/ParamTag.class, - classpath/tools/classes/com/sun/javadoc/Parameter.class, - classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class, - classpath/tools/classes/com/sun/javadoc/RootDoc.class, - classpath/tools/classes/com/sun/javadoc/SeeTag.class, - classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class, - classpath/tools/classes/com/sun/javadoc/SourcePosition.class, - classpath/tools/classes/com/sun/javadoc/Tag.class, - classpath/tools/classes/com/sun/javadoc/ThrowsTag.class, - classpath/tools/classes/com/sun/javadoc/Type.class, - classpath/tools/classes/com/sun/javadoc/TypeVariable.class, - classpath/tools/classes/com/sun/tools/doclets/Taglet.class, - classpath/tools/classes/sun/rmi/rmic/Main.class, - classpath/tools/classes/sun/rmi/rmic/Messages.class, - classpath/tools/com/sun/javadoc/ClassDoc.java, - classpath/tools/com/sun/javadoc/ConstructorDoc.java, - classpath/tools/com/sun/javadoc/Doc.java, - classpath/tools/com/sun/javadoc/DocErrorReporter.java, - classpath/tools/com/sun/javadoc/Doclet.java, - classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java, - classpath/tools/com/sun/javadoc/FieldDoc.java, - classpath/tools/com/sun/javadoc/MemberDoc.java, - classpath/tools/com/sun/javadoc/MethodDoc.java, - classpath/tools/com/sun/javadoc/PackageDoc.java, - classpath/tools/com/sun/javadoc/ParamTag.java, - classpath/tools/com/sun/javadoc/Parameter.java, - classpath/tools/com/sun/javadoc/ProgramElementDoc.java, - classpath/tools/com/sun/javadoc/RootDoc.java, - classpath/tools/com/sun/javadoc/SeeTag.java, - classpath/tools/com/sun/javadoc/SerialFieldTag.java, - classpath/tools/com/sun/javadoc/SourcePosition.java, - classpath/tools/com/sun/javadoc/Tag.java, - classpath/tools/com/sun/javadoc/ThrowsTag.java, - classpath/tools/com/sun/javadoc/Type.java, - classpath/tools/com/sun/javadoc/TypeVariable.java, - classpath/tools/com/sun/tools/doclets/Taglet.java, - classpath/tools/com/sun/tools/javac/Main.java, - classpath/tools/com/sun/tools/javac/Messages.java, - classpath/tools/sun/rmi/rmic/Main.java, - classpath/tools/sun/rmi/rmic/Messages.java: New files. - * Makefile.in, classpath/Makefile.in, classpath/configure, - classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, - classpath/examples/Makefile.in, classpath/external/Makefile.in, - classpath/external/jsr166/Makefile.in, - classpath/external/relaxngDatatype/Makefile.in, - classpath/external/sax/Makefile.in, - classpath/external/w3c_dom/Makefile.in, - classpath/include/Makefile.in, classpath/include/config.h.in, - classpath/lib/Makefile.in, - classpath/lib/gnu/classpath/Configuration.class, - classpath/native/Makefile.in, classpath/native/fdlibm/Makefile.in, - classpath/native/jawt/Makefile.in, - classpath/native/jni/Makefile.in, - classpath/native/jni/classpath/Makefile.in, - classpath/native/jni/gconf-peer/Makefile.in, - classpath/native/jni/gtk-peer/Makefile.in, - classpath/native/jni/java-io/Makefile.in, - classpath/native/jni/java-lang/Makefile.in, - classpath/native/jni/java-net/Makefile.in, - classpath/native/jni/java-nio/Makefile.in, - classpath/native/jni/java-util/Makefile.in, - classpath/native/jni/midi-alsa/Makefile.in, - classpath/native/jni/midi-dssi/Makefile.in, - classpath/native/jni/native-lib/Makefile.in, - classpath/native/jni/qt-peer/Makefile.in, - classpath/native/jni/xmlj/Makefile.in, - classpath/native/plugin/Makefile.in, - classpath/resource/Makefile.in, classpath/scripts/Makefile.in, - classpath/tools/Makefile.in, configure, - gnu/classpath/Configuration.h: Regenerate. - -2007-03-12 Kyle Galloway <kgallowa@redhat.com> - - * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count - as a sigle slot. - -2007-03-12 Marco Trudel <mtrudel@gmx.ch> - - * java/lang/natString.cc (getBytes (jstring enc)): - Fixed the loop for multiple cycles, Code cleanup - -2007-03-09 Tom Tromey <tromey@redhat.com> - - * sources.am, Makefile.in: Rebuilt. - * scripts/makemake.tcl (scan_directory): Allow service files to be - omitted. - Omit all XML-related service files. - -2007-03-07 Tom Tromey <tromey@redhat.com> - - * configure: Rebuilt. - * configure.ac: Clear vm-tools-packages. - -2007-03-07 Mohan Embar <gnustuff@thisiscool.com> - - * java/lang/Win32Process.java: Added nested class EOFInputStream. - * java/lang/natWin32Process.cc (ChildProcessPipe): Added DUMMY - enum and implementation. - (startProcess): Use redirect flag. - * classpath/lib/java/lang/Win32Process.class: Regenerated. - * classpath/lib/java/lang/Win32Process$EOFInputStream.class: New. - * gcj/javaprims.h: Regenerated. - * java/lang/Win32Process$EOFInputStream.h: New. - -2007-03-07 Andrew Haley <aph@redhat.com> - - * libgcj_bc.c (JvRunMainName): Declare. - -2007-03-07 Gary Benson <gbenson@redhat.com> - - * sources.am, Makefile.in: Rebuilt. - -2007-03-07 Mohan Embar <gnustuff@thisiscool.com> - - * gcj/javaprims.h: Regenerated. - -2007-03-07 Alexandre Oliva <aoliva@redhat.com> - - * 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. - -2007-03-06 Kyle Galloway <kgallowa@redhat.com> - - * classpath/gnu/classpath/jdwp/exception/AbsentInformationException.java: New file. - * classpath/lib/gnu/classpath/jdwp/exception/AbsentInformationException.class: Ditto. - * gnu/classpath/jdwp/exception/AbsentInformationException.h: Ditto. - * gnu/classpath/jdwp/natVMMethod.cc: Add CHECK_INTERP_CLASS macro. - (VMMethod::getLineTable): Use new macro. - (VMMethod::getVariableTable): Implement. - * sources.am: Regenerated. - * Makefile.in: Ditto. - -2007-03-06 Tom Tromey <tromey@redhat.com> - - * Makefile.in: Rebuilt. - * Makefile.am (bin_PROGRAMS): Added gcjh. - (gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD, - gcjh_DEPENDENCIES): New variables. - -2007-03-06 Kyle Galloway <kgallowa@redhat.com> - - * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters. - * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc - (do_getlocalvartable_tests): Add Deallocate calls to free strings. - -2007-03-05 Matthias Klose <doko@debian.org> - - * Makefile.am (gij_LDFLAGS): Use dbexecdir. - * Makefile.in: Regnerate. - -2007-03-05 Mark Wielaard <mark@klomp.org> - - * java/lang/Character.java: Re-merged with Classpath. - * java/lang/natString.cc (nativeCompareTo): Renamed from - compareTo. - * java/lang/StringBuilder.java: Re-merged with Classpath. - * java/lang/String.java: Re-merged with Classpath. - (nativeCompareTo): Renamed from compareTo. - * java/lang/StringBuffer.java: Re-merged with Classpath. - * jni.cc (_Jv_JNI_GetAnyMethodID): Split calls to append. - -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. - -2007-03-05 Tom Tromey <tromey@redhat.com> - - * sources.am, Makefile.in: Rebuilt. - * scripts/makemake.tcl (emit_package_rule): Don't omit - VMProcess.java. - * Makefile.am (nat_source_files): Added natVMProcess.cc. - (inner_nat_headers): Added ImmediateEOFInputStream.h. - * gcj/javaprims.h: Regenerated. - * java/lang/System.java (EnvironmentMap): Now package-private. - (EnvironmentMap(Map)): New constructor. - (EnvironmentMap.put): New method. - * java/lang/natWin32Process.cc (startProcess): Update. - * java/lang/Win32Process.java (Win32Process): Added 'redirect' - argument. - (startProcess): Likewise. - * java/lang/EcosProcess.java (EcosProcess): Added 'redirect' - argument. - * java/lang/natPosixProcess.cc (nativeSpawn): Handle redirection. - * java/lang/PosixProcess.java (redirect): New field. - (PosixProcess): Added 'redirect' argument. - * java/lang/natRuntime.cc (execInternal): Added 'redirect' - argument to Process creation. - * java/lang/natVMProcess.cc: New file. - * java/lang/ProcessBuilder.java: Removed. - * java/lang/VMProcess.java: New file. - -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. - -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. - -2007-03-02 Andrew Haley <aph@redhat.com> - - * sun/reflect/annotation/AnnotationInvocationHandler.java: - Whitespace only changes. - -2007-03-02 Andrew Haley <aph@redhat.com> - - * sun/reflect/annotation/AnnotationInvocationHandler.java: Moved - from Classpath to libgcj local. - -2007-03-01 Brooks Moses <brooks.moses@codesourcery.com> - - * Makefile.am: Add dummy install-pdf target. - * Makefile.in: Regenerate - * include/Makefile.in: Regenerate - * testsuite/Makefile.in: Regenerate - * gcj/Makefile.in: Regenerate - -2007-02-23 Gary Benson <gbenson@redhat.com> - - * gnu/gcj/tools/gcj_dbtool/Main.java: Updated copyright year. - -2007-02-23 Gary Benson <gbenson@redhat.com> - - * java/lang/VMCompiler.java - (compileClass): Don't lose zeros from within the digest. - -2007-02-22 Jakub Jelinek <jakub@redhat.com> - - PR libgcj/17002 - PR classpath/28550 - * java/util/VMTimeZone.java (getDefaultTimeZoneId): To read - /etc/localtime, use ZoneInfo.readTZFile instead of - VMTimeZone.readtzFile. Get better timezone name for /etc/localtime, - either if it is a symlink or through /etc/sysconfig/clock. - (readSysconfigClockFile): New static method. - (readtzFile): Removed. - * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments. - * posix.cc (_Jv_platform_initProperties): Set - gnu.java.util.zoneinfo.dir. - * sources.am (gnu_java_util_source_files): Add - classpath/gnu/java/util/ZoneInfo.java. - * Makefile.in: Regenerated. - * java/util/VMTimeZone.h: Regenerated. - * java/util/TimeZone.h: Regenerated. - * gnu/java/util/ZoneInfo.h: Generated. - -2007-02-22 Mohan Embar <gnustuff@thisiscool.com> - - * include/win32-threads.h: Added #undef OUT. - -2007-02-21 Kyle Galloway <kgallowa@redhat.com> - - * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): New function. - * testsuite/libjava.jvmti/interp/getargssize.java: New test. - * testsuite/libjava.jvmti/interp/getargssize.h: Ditto. - * testsuite/libjava.jvmti/interp/getargssize.jar: Ditto. - * testsuite/libjava.jvmti/interp/getargssize.out: Ditto. - * testsuite/libjava.jvmti/interp/natgetargssize.cc: Ditto. - -2007-02-21 Gary Benson <gbenson@redhat.com> - - * java/util/GregorianCalendar.java: Removed. - * sources.am, Makefile.in: Rebuilt. - -2007-02-20 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (jdwpClassPrepareCB): Move class status stuff to ... - (getClassStatus): ... here. - -2007-02-20 Gary Benson <gbenson@redhat.com> - - * gnu/awt/xlib/XEventLoop.h: Regenerated. - * gnu/java/awt/peer/gtk/GThreadMutex.h: Likewise. - * gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h: - Likewise. - * gnu/java/rmi/server/UnicastConnectionManager.h: Likewise. - * java/lang/SecurityManager.h: Likewise. - * java/lang/Thread.h: Likewise. - * java/security/VMSecureRandom$Spinner.h: Likewise. - * java/util/concurrent/atomic/AtomicBoolean.h: Likewise. - * java/util/concurrent/atomic/AtomicInteger.h: Likewise. - * java/util/concurrent/atomic/AtomicLong.h: Likewise. - * java/util/concurrent/atomic/AtomicReference.h: Likewise. - * java/util/concurrent/ConcurrentHashMap$HashEntry.h: Likewise. - * java/util/concurrent/ConcurrentHashMap$Segment.h: Likewise. - * java/util/concurrent/ConcurrentLinkedQueue.h: Likewise. - * java/util/concurrent/ConcurrentLinkedQueue$Node.h: Likewise. - * java/util/concurrent/ConcurrentSkipListMap.h: Likewise. - * java/util/concurrent/ConcurrentSkipListMap$Index.h: Likewise. - * java/util/concurrent/ConcurrentSkipListMap$Node.h: Likewise. - * java/util/concurrent/Exchanger.h: Likewise. - * java/util/concurrent/Exchanger$Node.h: Likewise. - * java/util/concurrent/FutureTask$Sync.h: Likewise. - * java/util/concurrent/LinkedBlockingQueue$Node.h: Likewise. - * java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h: - Likewise. - * java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h: - Likewise. - * java/util/concurrent/locks/AbstractQueuedSynchronizer.h: Likewise. - * java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h: - Likewise. - * java/util/concurrent/ScheduledThreadPoolExecutor.h: Likewise. - * java/util/concurrent/SynchronousQueue.h: Likewise. - * java/util/concurrent/SynchronousQueue$TransferQueue.h: Likewise. - * java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h: - Likewise. - * java/util/concurrent/SynchronousQueue$TransferStack.h: Likewise. - * java/util/concurrent/SynchronousQueue$TransferStack$SNode.h: - Likewise. - * java/util/concurrent/ThreadPoolExecutor.h: Likewise. - * java/util/concurrent/ThreadPoolExecutor$Worker.h: Likewise. - * java/util/logging/ErrorManager.h: Likewise. - * javax/swing/plaf/basic/BasicSpinnerUI$2.h: Likewise. - * javax/swing/plaf/basic/BasicSpinnerUI$4.h: Likewise. - -2007-02-16 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (get_line_table): New function. - (handle_single_step): New function. - (jdwpSingleStepCB): New function. - (jdwpVMInitCB): Define a JVMTI single step - callback, but don't enable it until needed. - -2007-02-16 David Daney <ddaney@avtrex.com> - - * java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass - new parameter constructor. - (Thread(ThreadGroup, Runnable, String, long)): Same. - (Thread(String, boolean)): New constructor. - (Thread(Thread, ThreadGroup, Runnable, String): Add parameter - noInheritableThreadLocal, don't call - InheritableThreadLocal.newChildThread if set. - * java/lang/PosixProcess.java(ProcessManager()): Set - noInheritableThreadLocal in super. - * java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new - parameter to Thread constructor. - (_Jv_AttachCurrentThreadAsDaemon): Same. - * java/lang/Thread.h: Regenerate. - * classpath/lib/java/lang/Thread.class: Same. - * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same. - * classpath/lib/java/lang/PosixProcess.class: Same. - * classpath/lib/java/lang/Thread$State.class: Same. - * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same. - -2007-02-16 Kyle Galloway <kgallowa@redhat.com> - - * interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot - variables to maintain type info. - * interpret-run.cc: Add local variable info to frame in the debug - interpreter. - * jvmti.cc (getLocalFrame): New method. - (_Jv_JVMTI_GetLocalObject): New method. - (_Jv_JVMTI_GetLocallInt): New method. - (_Jv_JVMTI_GetLocalFloat): New method. - (_Jv_JVMTI_GetLocalLong): New method. - (_Jv_JVMTI_GetLocalDouble): New method. - (_Jv_JVMTI_SetLocalObject): New method. - (_Jv_JVMTI_SetLocalInt): New method. - (_Jv_JVMTI_SetLocalFloat): New method. - (_Jv_JVMTI_SetLocalLong): New method. - (_Jv_JVMTI_SetLocalDouble): New method. - -2007-02-16 Gary Benson <gbenson@redhat.com> - - * gnu/gcj/tools/gcj_dbtool/Main.java - (bytesToString): Don't lose zeros from within the digest. - -2007-02-15 Andrew Haley <aph@redhat.com> - - * Makefile.am (nat_source_files): Remove - java/lang/management/natVMManagementFactory.cc. - * java/lang/Thread.java (getStackTrace): Use reflection to call - the ManagementFactory. - * java/lang/management/VMManagementFactory.java: Remove native - methods. - * java/lang/management/natVMManagementFactory.cc: Deleted. - * sources.am: Regnerate. - * scripts/makemake.tcl: Add new "bcheaders" type. - Move java/lang/management and gnu/classpath/management to "bc". - Move gnu/java/lang/management to "bcheaders". - -2007-02-15 Kyle Galloway <kgallowa@redhat.com> - - * interpret.cc (_Jv_InterpMethod::check_handler): New method. - * interpret-run.cc: Change the catch section to report exception - events and to use the new check_handler method. - * include/java-interp.h (_Jv_InterpMethod): Add check_handler. - * gnu/gcj/jvmti/ExceptionEvent.java: New file. - * gnu/gcj/jvmti/ExceptionEvent.h: New file. - * gnu/gcj/jvmti/natExceptionEvent.cc: New file. - * libjava/classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: New - file. - * sources.am: Added ExceptionEvent.java. - * Makefile.am: Added natExceptionEvent.cc - * Makefile.in: Regenerated. - * include/Makefile.in: Regenerated. - * gcj/Makefile.in: Regenerated. - -2007-02-15 Johannes Schmidt <jschmidt@avtrex.com> - David Daney <ddaney@avtrex.com> - - * configure.ac: Create vm-tools-packages file. Add - gnu/gcj/tools/gc_analyze to standard.omit and vm-tools-packages. - Check for /proc/self/maps. - * Makefile.am (bin_PROGRAMS): Added gc-analyze. - (gc_analyze_SOURCES): New. - (gc_analyze_LDFLAGS): New. - (gc_analyze_LINK): New. - (gc_analyze_LDADD): New. - (gc_analyze_DEPENDENCIES): New. - (nat_source_files): Add gnu/gcj/util/natGCInfo.cc. - * Makefile.in: Regenerated. - * configure: Regenerated. - * include/config.h.in: Regenerated. - * sources.am: Regenerated. - * scripts/makemake.tcl: Don't include gc-analyze classes in libgcj. - * gnu/gcj/tools/gc_analyze/SymbolLookup.java: New. - * gnu/gcj/tools/gc_analyze/ObjectMap.java: New. - * gnu/gcj/tools/gc_analyze/MemoryMap.java: New. - * gnu/gcj/tools/gc_analyze/SymbolTable.java: New. - * gnu/gcj/tools/gc_analyze/BlockMap.java: New. - * gnu/gcj/tools/gc_analyze/BytePtr.java: New. - * gnu/gcj/tools/gc_analyze/ItemList.java: New. - * gnu/gcj/tools/gc_analyze/ToolPrefix.java: New. - * gnu/gcj/tools/gc_analyze/MemoryAnalyze.java: New. - * gnu/gcj/util/GCInfo.java: New. - * gnu/gcj/util/GCInfo.h: New. - * gnu/gcj/util/natGCInfo.cc: New. - * gnu/gcj/util/UtilPermission.java: New. - * gnu/gcj/util/UtilPermission.h: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolTable.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/BytePtr.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/ItemList.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap.class: New. - * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap.class: New. - * classpath/lib/gnu/gcj/util/GCInfo.class: New. - * classpath/lib/gnu/gcj/util/UtilPermission.class: New. - -2007-02-15 David Daney <ddaney@avtrex.com> - - * gnu/java/net/PlainSocketImpl.h: Regenerate. - * gnu/classpath/jdwp/VMVirtualMachine.h: Same. - * gnu/classpath/jdwp/VMFrame.h: Same. - * java/net/Socket.h: Same. - * java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h: Same. - -2007-02-15 Kyle Galloway <kgallowa@redhat.com> - - * defineclass.cc (_Jv_ClassReader::read_one_code_attribute): - Added LocalVariableTable attribute handling. - (_Jv_ClassReader::pool_Utf8_to_char_arr): New method. - * jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): New method. - * include/java-interp.h: Added local_var_table and - local_var_table_len fields to _Jv_InterpMethod. - (_Jv_InterpMethod::get_local_var_table): New method. - * testsuite/libjava.jvmti/interp/getlocalvartable.java: New test. - * testsuite/libjava.jvmti/interp/getlocalvartable.jar: New test. - * testsuite/libjava.jvmti/interp/getlocalvartable.out: Output - for new test. - * testsuite/libjava.jvmti/interp/getlocalvartable.h: New test. - * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc: New test. - -2007-02-15 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine (getFrames): Implement. - -2007-02-13 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (jdwpBreakpointCB): New function. - (jdwpVMInitCB): Define and enable the breakpoint - callback. - -2007-02-13 Andrew Haley <aph@redhat.com> - - * testsuite/libjava.lang/Divide_2.out - * testsuite/libjava.lang/Divide_2.java: New test. - -2007-02-12 Keith Seitz <keiths@redhat.com> - - * jvmti.cc (_Jv_JVMTI_GetStackTrace): Remove cast - from jthread to Thread *; it is no longer needed. - (_Jv_JVMTI_GetFrameCount): Likewise. - Fix small formatting typo. - -2007-02-12 Tom Tromey <tromey@redhat.com> - - * sources.am, Makefile.in: Rebuilt. - * java/lang/Socket.java: Removed override. - * java/lang/DatagramSocket.java: Removed override. - * gnu/java/net/PlainSocketImpl.java (localSocketAddress): New - field. - (getLocalAddress): New method. - * gnu/java/net/PlainDatagramSocketImpl.java - (PlainDatagramSocketImpl): Throws IOException. - * gnu/java/net/natPlainSocketImplPosix.cc (write): Remove - 'sizeof'. - (read): Likewise. - -2007-02-09 Jakub Jelinek <jakub@redhat.com> - - * java/util/VMTimeZone.java: Rewrite to handle both the old - 'TZif\0' format and the new one. - -2007-02-10 Andrew Haley <aph@redhat.com> - - PR java/30742 - * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): New. - (getCallingClass): Call GET_CALLING_CLASS. - (getCallingClassLoader): Likewise. - -2007-02-10 Mohan Embar <gnustuff@thisiscool.com> - - * configure: Rebuilt. - * configure.ac (GCJH): Reverted second part of patch of 2006-12-20. - -2007-02-10 Mohan Embar <gnustuff@thisiscool.com> - - * Makefile.in: Rebuilt. - * Makefile.am (BUILD_ECJ1): Unify the command for renaming ecjx to - the host's ecj1 executable. - -2007-02-09 Richard Henderson <rth@redhat.com> - - * sysdep/alpha/locks.h (read_barrier): New. - -2007-02-09 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/VMVirtualMachine.java - (_stepping_threads): New member. - * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: - Regenerated. - * gnu/classpath/jdwp/VMVirtualMachine.h: - Regenerated. - * gnu/claspath/jdwp/natVMVirtualMachine.cc - (get_request_step_filter): New function. - (DISABLE_EVENT): New macro. - (initialize): Initialize _stepping_threads. - (registerEvent): Implement EVENT_SINGLE_STEP. - (unregisterEvent): Likewise. - -2007-02-08 Keith Seitz <keiths@redhat.com> - - * sources.am: Regenerate. - * Makefile.in: Regenerate. - * testsuite/Makefile.in: Regenerate. - * gcj/Makefile.in: Regenerate. - * include/Makefile.in: Regenerate. - - * classpath/lib/javax/management/MBeanServerFactory.class: - Regenerate. - -2007-02-08 Kyle Galloway <kgallowa@redhat.com> - - * classpath/gnu/classpath/jdwp/processor/ - StackFrameCommandSet.java (executeGetValues): Pass jlong instead - of ByteBuffer. - (executeSetValues): Ditto. - (executeThisObject): Ditto. - * classpath/gnu/classpath/jdwp/processor/ - StackFrameCommandSet.class: Rebuilt. - * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: - Rebuilt. - * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt. - * classpath/lib/gnu/classpath/jdwp/exception/ - InvalidFrameException.java: New file. - * gnu/classpath/jdwp/VMFrame.java: Added field for thread of - frame. - (Constructor): New method. - * gnu/classpath/jdwp/VMFrame.h: Regenerated. - * gnu/classpath/jdwp/VMVirtualMachine.java - (getFrame): Changed ByteBuffer to jlong. - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (getFrame): Implement. - * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated. - -2007-02-08 Kyle Galloway <kgallowa@redhat.com> - - * include/java-interp.h (_Jv_InterpFrame): obj_ptr field added - to hold "this" pointer for frame. - (_Jv_InterpFrame::get_this_ptr): New method. - * interpret-run.cc: Copy the "this" pointer into obj_ptr. - -2007-02-07 Keith Seitz <keiths@redhat.com> - - * include/java-interp.h (_Jv_Frame::depth): - New function. - * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth. - -2007-02-07 Kyle Galloway <kgallowa@redhat.com> - - * jvmti.cc (CHECK_FOR_NATIVE_METHOD): New macro. - (_Jv_JVMTI_GetMaxLocals): New method. - * include/java-interp.h - (_Jv_InterpMethod::get_max_locals): New method. - -2007-02-01 Marco Trudel <mtrudel@gmx.ch> - - * jni.cc (_Jv_JNI_DeleteWeakGlobalRef): Check for NULL objects. - -2007-02-07 Tom Tromey <tromey@redhat.com> - - * testsuite/libjava.jni/init.c: New file. - * testsuite/libjava.jni/init.java: New file. - * testsuite/libjava.jni/init.out: New file. - * testsuite/libjava.jni/init.jar: New file. - * testsuite/libjava.jni/init.h: New file. - * testsuite/libjava.jni/init$NativeClass.h: New file. - -2007-02-07 Jakub Jelinek <jakub@redhat.com> - - PR libgomp/28468 - * configure: Regenerate. - -2007-02-06 Andrew Haley <aph@redhat.com> - - * scripts/makemake.tcl (emit_bc_rule): Set the source filename. - * sources.am: Rebuild. - -2007-02-05 Keith Seitz <keiths@redhat.com> - - * jvmti.cc (_envListLock): Change type to - ReentrantReadWriteLock. - (_Jv_JVMTI_DisposeEnvironment): Switch to read/write - lock. - (check_enabled_event): Likewise. - (_Jv_GetJVMTIEnv): Likewise. - (_Jv_JVMTI_Init): Likewise. - (_Jv_JVMTI_PostEvent): Likewise. - -2007-02-05 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (registerEvent): Implement EVENT_BREAKPOINT. - (unregisterEvent): Likewise. - (get_request_location): New function. - -2007-02-05 Matthias Klose <doko@debian.org> - - testsuite/Makefile.am (compile-tests): Fix typo. - testsuite/Makefile.in: Regenerate. - -2007-02-02 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrameCount): - Implment. - -2007-02-02 Jakub Jelinek <jakub@redhat.com> - - * configure.ac (libjava_cv_anon_version_script): New test. - (ANONVERSCRIPT): New AM_CONDITIONAL. - * configure: Rebuilt. - * Makefile.am (extra_ldflags_libjava): Link with -Wl,--version-script - if ANONVERSCRIPT. - * Makefile.in: Rebuilt. - (libgcj_la_DEPENDENCIES): Depend on libgcj.ver. - * libgcj.ver: New file. - -2007-02-01 David Daney <ddaney@avtrex.com> - - * scripts/makemake.tcl: Replace gnu/xml build with build of all - its subpackages. - * sources.am: Regenerate. - * Makefile.in: Regenerate. - -2007-02-01 Tom Tromey <tromey@redhat.com> - - * java/lang/ClassLoader.java (getResources): No longer final. - -2007-02-01 Tom Tromey <tromey@redhat.com> - - * java/util/logging/LogManager.java (loggers): Genericized. - (addLogger): Merged. - (findAncestor): Likewise. - (getLogger): Likewise. - (getLoggerNames): Genericized. - (reset): Merged. - (getLevelProperty): Likewise. - * java/lang/reflect/Method.java (getDeclaringClass): Genericized. - * java/lang/reflect/Constructor.java (getParameterTypes): - Genericized. - (getExceptionTypes): Likewise. - (newInstance): Likewise. - * java/lang/reflect/Array.java (newInstance): Genericized. - * java/lang/Object.java (getClass): Genericized. - * java/nio/charset/spi/CharsetProvider.java (charsets): - Genericized. - * java/text/Collator.java: Implement Comparable<Object>. - -2007-02-01 Tom Tromey <tromey@redhat.com> - - * java/util/Calendar.java: Implement Comparable<Calendar>. Update - comments. - (clear): Call complete. - (setTimeZone): Call computeTime, computeFields. - (compareTo): New method. - * java/nio/charset/Charset.java: Implement Comparable<Charset>. - (availableCharsets): Genericized. - (aliases): Likewise. - (compareTo): Changed argument type. - * java/lang/ClassLoader.java (loadClass): Genericized. - (findClass): Likewise. - (defineClass): Likewise. - (resolveClass): Likewise. - (findSystemClass): Likewise. - (setSigners): Likewise. - (findLoadedClass): Likewise. - (getResources): Likewise. - (findResources): Likewise. - (getSystemResources): Likewise. - (checkInitialized): New method. - * java/lang/Class.java (getCanonicalName): New method. - -2007-01-31 Keith Seitz <keiths@redhat.com> - - * include/jvmti-int.h (JVMTI): Declare member "enabled". - * jvmti.cc (JVMTI): Add member "enabled". - (_Jv_GetJVMTIEnv): Mark JVMTI enabled. - * interpret.cc (_Jv_InterpMethod::ncode): Use JVMTI::enabled - instead of gnu::classpath::jdwp::Jdwp::isDebugging. - (_Jv_CompileMethod): If JVMTI is enabled, use run_debug - instead of run to compile the method. - - * interpret-run.cc [DEBUG] (NEXT_INSN): Add JVMTI single step - notification. - -2007-01-31 Andreas Tobler <a.tobler@schweiz.org> - - * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Add - -shared-libgcc to the cxxflaglist for Darwin. - -2007-01-31 Tom Tromey <tromey@redhat.com> - - * scripts.am, Makefile.in: Rebuilt. - * scripts/makemake.tcl (gnu/javax/swing/text/html/parser): Build - as 'ordinary'. - (emit_ordinary_rule): New proc. - -2007-01-31 Keith Seitz <keiths@redhat.com> - - * testsuite/libjava.jvmti/getmethodname.h: New file. - * testsuite/libjava.jvmti/getmethodname.jar: New file. - -2007-01-31 Andrew Haley <aph@redhat.com> - - * prims.cc (_Jv_Abort): fflush (stderr). - * java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Abort. - -2007-01-31 Tom Tromey <tromey@redhat.com> - - * configure, Makefile.in: Rebuilt. - * configure.ac (JAR): Check for -@ feature. - * Makefile.am (libgcj-$(gcc_version).jar): Use find -prune. - -2007-01-31 Tom Tromey <tromey@redhat.com> - - PR libgcj/30606: - * configure, include/config.h.in: Rebuilt. - * configure.ac: Check for magic_t in magic.h. - * java/net/natVMURLConnection.cc: Use HAVE_MAGIC_T. - -2007-01-30 Tom Tromey <tromey@redhat.com> - - * Makefile.in: Rebuilt. - * Makefile.am (libgcj-$(gcc_version).jar): Rewrote. - -2007-01-30 Andreas Tobler <a.tobler@schweiz.org> - - * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use a - cast to print it right. - -2007-01-29 Kaloian Doganov <kaloian@doganov.org> - - PR libgcj/30600: - * gnu/gcj/convert/BytesToCharsetAdaptor.java (read): Fix call to - 'limit'. - -2007-01-29 Kyle Galloway <kgallowa@redhat.com> - - * include/java-interp.h: Added _Jv_Frame class and its two - subclasses _Jv_InterpFrame and _Jv_NativeFrame. Also moved - _Jv_FrameType from java-stack.h. - * include/java-stack.h: Removed _Jv_FrameType. - * java/lang/Thread.java: Added frame member to hold new - composite frame stack. - * java/lang/Thread.h: Regenerated. - * java/lang/Thread.class: Rebuilt. - * jni.cc (_Jv_JNIMethod::call): Push a frame onto the stack when - calling a JNI method. - * jvmti.cc (_Jv_JVMTI_GetStackTrace): New Method. - (_Jv_JVMTI_GetFrameCount): New method. - * stacktrace.cc (UnwindTraceFn): Modified to use new _Jv_Frame - classes. - * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test. - * testsuite/libjava.jvmti/interp/natgetstacktrace.cc: New test. - * testsuite/libjava.jvmti/interp/getstacktrace.h: New test. - * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test. - * testsuite/libjava.jvmti/interp/getstacktrace.out: Output file - for test. - -2007-01-29 Tom Tromey <tromey@redhat.com> - - * interpret.cc (run_debug): Remove comment. - (STOREA): Reformat. - (STOREI): Likewise. - (STOREF): Likewise. - (STOREL): Likewise. - (STORED): Likewise. - (POKEI): Likewise. - (run_normal_debug): Likewise. - (run_synch_object_debug): Likewise. - (run_class_debug): Likewise. - (run_synch_class_debug): Likewise. - (get1s): Likewise. - (get1u): Likewise. - (get2u): Likewise. - (get4): Likewise. - (NULLARRAYCHECK): Likewise. - (ARRAYBOUNDSCHECK): Likewise. - * interpret-run.cc (insn_target) <breakpoint>: Tidy. - -2007-01-29 Tom Tromey <tromey@redhat.com> - - * configure, Makefile.in: Rebuilt. - * Makefile.am (bin_SCRIPTS): Never install scripts/jar. - * configure.ac (BASH_JAR): Removed conditional. - (JAR): Prefer the jar found by AC_CHECK_PROGS. - -2007-01-29 Tom Tromey <tromey@redhat.com> - - * Makefile.in: Rebuilt. - * Makefile.am (interpret.lo): New target. Add -fwrap to - AM_CXXFLAGS. - -2007-01-29 Keith Seitz <keiths@redhat.com> - - * include/jvmti_md.h (_CLASSPATH_VM_JVMTI_TYPES_DEFINED): - Define. - [__GCJ_JNI_IMPL__]: Define our own JVMTI types when building - gcj. All jvmti object types now are defined to be their - corresponding java classes. - * jvmti.cc (_Jv_JVMTI_SuspendThread): Remove casting from - jthread to Thread*. - (_Jv_JVMTI_ResumeThread): Likewise. - (_Jv_JVMTI_InterruptThread): Likewise. - (_Jv_JVMTI_SetEventNotificationMode): Likewise. - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (jdwpClassPrepareCB): Likewise. - (jdwpThreadEndCB): Likewise. - (jdwpThreadStartCB): Likewise. - (jdwpVMInitCB): Likewise. - -2007-01-28 Michele Sandri <gpointorama@gmail.com> - - * gnu/java/nio/channels/natFileChannelWin32.cc - (lock): Implemented. - (unlock): Implemented. - -2007-01-27 Andreas Tobler <a.tobler@schweiz.org> - - PR libgcj/30513 - * configure.host: Add forgottten sysdep_dir to sparc. Add a flag to - libgcj_flags to undefine 'sun' at compile time. - * sysdep/sparc/locks.h (read_barrier): New functions for 32 and 64 bit - Sparc. - (write_barrier): Likewise. - -2007-01-27 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (getAllClassMethods): Move error handling to ... - (throw_jvmti_error): ... here. - (jdwpClassPrepareCB): New function. - (jdwpThreadEndCB): New function. - (jdwpThreadStartCB): New function. - (jdwpVMDeathCB): New function. - (jdwpVMInitCB): Define and enable callbacks for - ClassPrepare, ThreadEnd, ThreadStart, and VMDeath. - -2007-01-27 Jakub Jelinek <jakub@redhat.com> - - * Makefile.am (generic_header_files): Add $(inner_nat_headers). - * testsuite/Makefile.am (check-dejaGNU): Depend on compile-tests. - (MYGCJH): New variable. - (compile-tests): New goal. - * Makefile.in: Rebuilt. - * testsuite/Makefile.in: Rebuilt. - -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. - -2007-01-26 Tom Tromey <tromey@redhat.com> - - * Updated headers. - -2007-01-25 Tom Tromey <tromey@redhat.com> - - PR libgcj/29594: - * gnu/gcj/convert/Convert.java (main): Correctly handle missing - input or output encodings. Removed unused local variables. - -2007-01-25 Keith Seitz <keiths@redhat.com> - - * include/jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare. - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (_Jv_GetJDWP_JVMTIEnv): New function. - * gnu/classpath/jdwp/natVMMethod.cc (getName): Implement. - (getSignature): Implement. - (getModifiers): Implement. - -2007-01-25 Andrew Haley <aph@redhat.com> - - * configure, Makefile.in, include/config.h.in: Rebuilt. - * Makefile.am (libgcj_la_LIBADD): Removed $(LIBMAGIC). - * configure.ac: Don't check for libmagic. - * java/net/natVMURLConnection.cc (p_magic_open, p_magic_load, - p_magic_close, p_magic_buffer): New globals. - (init): Look up 'magic' functions. - (guessContentTypeFromBuffer): Updated. - -2007-01-25 Keith Seitz <keiths@redhat.com> - - * jvmti.cc (_Jv_JVMTI_GetMethodName): New function. - (_Jv_JVMTI_Interface): Define GetMethodName. - * testsuite/libjava.jvmti/getmethodname.java: New file. - * testsuite/libjava.jvmti/natgetmethodname.cc: New file. - * testsuite/libjava.jvmti/getmethodname.out: New file. - -2007-01-24 Kyle Galloway <kgallowa@redhat.com> - - * libjava/testsuite/libjava.jvmti/jvmti-interp.exp: New file. - * libjava/testsuite/libjava.jvmti/interp: New folder. - * libjava/testsuite/lib/libjava.exp (exec_gij): New Method. - -2007-01-24 Keith Seitz <keiths@redhat.com> - - * link.cc (_Jv_Linker::wait_for_state): Add JVMTI - CLASS_PREPARE notification. - -2007-01-24 Keith Seitz <keiths@redhat.com> - - * interpret.cc: Include gnu/gcj/jvmti/Breakpoint.h, - gnu/gcj/jvmti/BreakpointManager.h, jvmti.h, and jvmti-int.h - * interpret-run.cc: Implement insn_breakpoint. - -2007-01-24 Keith Seitz <keiths@redhat.com> - - * prims.cc (_Jv_RunMain): Send JVMTI event notifications - for VM_INIT and VM_DEATH instead of the JDWP notifications. - -2007-01-24 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (getAllClassMethods): Implement. - -2007-01-24 Andrew Haley <aph@redhat.com> - - * gnu/classpath/natVMStackWalker.cc: Call InitClass everywhere. - (getClassContext) Add a barrier to prevent GetStackWalkerStack() - from being sibcalled. - -2007-01-24 Andrew Haley <aph@redhat.com> - - * scripts/makemake.tcl (emit_bc_rule): Set the source filename. - * sources.am: Rebuild. - -2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com> - - * exception.cc (parse_lsda_header, PERSONALITY_FUNCTION): Replaced - _Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t. - -2007-01-23 H.J. Lu <hongjiu.lu@intel.com> - - PR libgcj/30550 - * Makefile.am (ecjx_DEPENDENCIES): Add libgcj_bc.la if needed. - * Makefile.in: Regenerated. - -2007-01-22 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc - (getClassMethod): Implement. - -2007-01-22 Keith Seitz <keiths@redhat.com> - - * 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. - -2007-01-22 Tom Tromey <tromey@redhat.com> - - * configure: Rebuilt. - * configure.ac (GCJ): Reverted patch of 2006-12-20. - -2007-01-22 Tom Tromey <tromey@redhat.com> - - PR java/29812: - * testsuite/libjava.jni/pr29812.java: New file. - * testsuite/libjava.jni/pr29812_injar.java: New file. - * testsuite/libjava.jni/pr29812_injar.jar: New file. - * testsuite/libjava.jni/pr29812.out: New file. - * testsuite/libjava.jni/pr29812_injar.c: New file. - * testsuite/libjava.jni/pr29812_injar.h: New file. - * testsuite/libjava.jni/pr29812.jar: New file. - * testsuite/libjava.jni/pr29812.c: New file. - * testsuite/libjava.jni/pr29812.h: New file. - * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): - New proc. - (gcj_jni_invocation_test_one): Use it. - (gcj_jni_pr29812): New proc. - (gcj_jni_run): Use it. - * java/lang/natRuntime.cc (_load): Push a new system frame before - calling JNI_OnLoad. - * include/jvm.h (_Jv_JNI_PopSystemFrame): Declare. - (_Jv_GetJNIEnvNewFrameWithLoader): Likewise. - * jni.cc (struct _Jv_JNI_LocalFrame) <marker>: Now unsigned char. - <allocated_p>: Now bool. - <loader>: New field. - (_Jv_JNI_EnsureLocalCapacity): Updated. - (_Jv_JNI_NewLocalRef): Likewise. - (_Jv_JNI_NewLocalRef): Likewise. - (_Jv_JNI_PopLocalFrame): Likewise. - (_Jv_JNI_FindClass): Likewise. - (_Jv_GetJNIEnvNewFrame): Likewise. - (_Jv_JNI_AttachCurrentThread): Likewise. - (_Jv_GetJNIEnvNewFrameWithLoader): New function. - (_Jv_GetJNIEnvNewFrame): Use it. - * include/jni_md.h (_CLASSPATH_JNIENV_CONTENTS): Removed 'klass'. - -2007-01-22 Tom Tromey <tromey@redhat.com> - - * libtool-version: Bump current to 9. - -2007-01-22 Andrew Haley <aph@redhat.com> - - * sysdep/alpha/locks.h (write_barrier): New. - -2007-01-21 Matthias Klose <doko@debian.org> - - * Makefile.am (install-exec-hook): Use transformed name. - * Makefile.in: Regenerate. - -2007-01-19 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc: Mark unused parameters - in methods and reformat. - - * gnu/classpath/jdwp/natVMFrame.cc: Mark unused parameters with - MAYBE_UNUSED. - -2007-01-18 Keith Seitz <keiths@redhat.com> - - From Macro Trudel <mtrudel@gmx.ch>: - * gnu/classpath/jdwp/natVMVirtualMachine.cc (jdwpVMInitCB): - Use JNICALL. - -2007-01-18 Marco Trudel <mtrudel@gmx.ch> - - * jni.cc (_Jv_JNI_FindClass): Initialize class. - * testsuite/libjava.jni/findclass2.jar: New file. - * testsuite/libjava.jni/findclass2.h: New file. - * testsuite/libjava.jni/findclass2.java: New file - * testsuite/libjava.jni/findclass2.c: New file. - * testsuite/libjava.jni/findclass2.out: New file. - -2007-01-18 Tom Tromey <tromey@redhat.com> - - * configure: Rebuilt. - * configure.ac: Use multi_basedir instead of libgcj_basedir. - -2007-01-18 Gary Benson <gbenson@redhat.com> - - * gnu/java/nio/natVMPipeEcos.cc: - Renamed from gnu/java/nio/natPipeImplEcos.cc. - * gnu/java/nio/natVMPipePosix.cc: - Renamed from gnu/java/nio/natPipeImplPosix.cc. - * gnu/java/nio/natVMPipeWin32.cc: - Renamed from gnu/java/nio/natPipeImplWin32.cc. - * gnu/java/nio/natVMSelectorEcos.cc: - Renamed from gnu/java/nio/natSelectorImplEcos.cc. - * gnu/java/nio/natVMSelectorPosix.cc: - Renamed from gnu/java/nio/natSelectorImplPosix.cc. - * gnu/java/nio/natVMSelectorWin32.cc: - Renamed from gnu/java/nio/natSelectorImplWin32.cc. - * java/io/natVMObjectInputStream.cc: - Renamed from java/io/natObjectInputStream.cc. - * java/lang/natVMDouble.cc: - Renamed from java/lang/natDouble.cc. - * java/lang/natVMFloat.cc: - Renamed from java/lang/natFloat.cc. - * Makefile.am, configure.ac: Reflect the above. - * Makefile.in, configure: Rebuilt. - -2007-01-17 Andrew Haley <aph@redhat.com> - - * Makefile.in: Rebuilt. - * Makefile.am (ecjx_LDFLAGS): Pass -fbootclasspath. - -2007-01-17 Keith Seitz <keiths@redhat.com> - - * java/lang/natThread.cc (finish_): Add JVMTI ThreadEnd notification. - (_Jv_NotifyThreadStart): Add JVMTI ThreadStart notification. - -2007-01-16 Jack Howarth <howarth@bromo.med.uc.edu> - - * configure.ac: Use multi.m4 from aclocal rather than custom - code. Use multi_basedir instead libgcj_basedir. Test for - /proc/self/exe when not cross-compiling. - * aclocal.m4: Regenerate. - * configure: Regenerate. - * Makefile.in: Regenerate. - -2007-01-17 Gary Benson <gbenson@redhat.com> - - * java/nio/natVMDirectByteBufferImpl.cc: - Renamed from java/nio/natDirectByteBufferImpl.cc. - * Makefile.am: Reflect the above. - * Makefile.in: Rebuilt. - -2007-01-17 Marco Trudel <mtrudel@gmx.ch> - - * jvmti.cc (_Jv_JVMTI_GetAllThreads): Now static. Use JNICALL. - Fixed indentation. Removed unused variable. - -2007-01-16 Tom Tromey <tromey@redhat.com> - - * java/lang/natThread.cc (finalize_native): Remove cast. - (_Jv_GetCurrentJNIEnv): Likewise. - * include/jvm.h (struct natThread) <jni_env>: Declare as - _Jv_JNIEnv*. - -2007-01-16 Keith Seitz <keiths@redhat.com> - - * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use - %#llx instead of %d for new_value. - * testsuite/libjava.jvmti/events.out: Update expected output. - * testsuite/libjava.jvmti/events.jar: Regenerate. - -2007-01-16 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc (DEFINE_CALLBACK): - New macro. - (ENABLE_EVENT): New macro. - (initialize): Define and enable JVMTI VM_INIT callback. - (jdwpVMInitCB): New function. - -2007-01-16 Kyle Galloway <kgallowa@redhat.com> - - * jvmti.cc (_Jv_JVMTI_GetAllThreads): New function. - * testsuite/libjava.jvmti/getallthreads.java: New test. - * testsuite/libjava.jvmti/natgetallthreads.cc: Ditto. - * testsuite/libjava.jvmti/getallthreads.out: Ditto. - * testsuite/libjava.jvmti/getallthreads.h: Ditto. - * testsuite/libjava.jvmti/getallthreads.jar: Ditto. - -2007-01-15 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/natVMVirtualMachine.cc (suspendThread): Use - java.lang.StringBuilder instead of java.lang.StringBuffer. - (resumeThread): Likewise. - -2007-01-15 Gary Benson <gbenson@redhat.com> - - * java/nio/MappedByteBuffer.java: Removed. - * sources.am, Makefile.in: Rebuilt. - -2007-01-15 Gary Benson <gbenson@redhat.com> - - * java/net/URLClassLoader.java: Removed. - * gnu/java/net/loader/Load_gcjlib.java: New file. - * gnu/gcj/runtime/BootClassLoader.java: Ensure core - URL handler is present in static executables. - * sources.am, Makefile.in: Rebuilt. - -2007-01-14 H.J. Lu <hongjiu.lu@intel.com> - - * Makefile.am (libgcj_la_LDFLAGS): Add - $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS). - (libgcj_tools_la_LDFLAGS): Likewise. - (libgcj_bc_la_LDFLAGS): Likewise. - * Makefile.in: Regenerated. - - * configure.ac: Use ACX_PROG_LD_GNU_SYMBOLIC. Set - LIBGCJ_LD_SYMBOLIC_FUNCTIONS to $SYMBOLIC_LDFLAGS. Set - libgcj_ld_symbolic to $SYMBOLIC_LDFLAGS if it isn't set. - Substitute LIBGCJ_LD_SYMBOLIC_FUNCTIONS. - * configure: Regenerated. - * aclocal.m4: Likewise. - * gcj/Makefile.in: Likewise. - * include/Makefile.in: Likewise. - * testsuite/Makefile.in: Likewise. - -2007-01-12 Kaz Kojima <kkojima@gcc.gnu.org> - - * sysdep/sh/locks.h (read_barrier): New. - (write_barrier): Likewise. - -2007-01-12 Andrew Haley <aph@redhat.com> - - * include/i386-signal.h: Rewrite to use rt_sigaction. - -2007-01-11 Andrew Haley <aph@redhat.com> - - * prims.cc (jdwpOptions) Fix deprecated cast from char[] constant - to char*. - * include/x86_64-signal.h (HANDLE_DIVIDE_OVERFLOW): Rewrite to fix - aliasing violation. - -2007-01-10 Tom Tromey <tromey@redhat.com> - - * gnu/gcj/xlib/*.h: New files. - * gnu/awt/xlib/*.h: Likewise. - * classpath/lib/gnu/gcj/xlib: New class files. - * classpath/lib/gnu/awt/xlib: Likewise. - -2007-01-10 Tom Tromey <tromey@redhat.com> - - * HACKING: Various updates. - -2007-01-10 Tom Tromey <tromey@redhat.com> - - * java/lang/natDouble.cc (toString): Added parens. - * gnu/gcj/io/shs.h (PROTO): Define. - * link.cc (resolve_pool_entry): Added missing braces. - -2007-01-10 H.J. Lu <hongjiu.lu@intel.com> - - PR libgcj/30424 - * sysdep/ia64/locks.h (read_barrier): New. - (write_barrier): New. - -2007-01-10 Gary Benson <gbenson@redhat.com> - - * java/net/URL.java: Removed. - * sources.am, Makefile.in: Rebuilt. - -2007-01-10 Matthias Klose <doko@debian.org> - - * Makefile.am (install-exec-hook): Support $(DESTDIR). - * Makefile.in: Regenerated. - -2007-01-05 Tom Tromey <tromey@redhat.com> - - * testsuite/libjava.loader/loader.exp (gcj_loader_run): Find - dummy.class in srcdir. - -2007-01-03 Tom Tromey <tromey@redhat.com> - - * testsuite/libjava.cni/cni.exp (gcj_cni_compile_cxx_to_o): Add -I - for srcdir. - -2007-01-03 Tom Tromey <tromey@redhat.com> - - * testsuite/*: Added many .jar and .h files. - * testsuite/libjava.special/special.exp - (gcj_special_try_compiler): New proc. - * testsuite/libjava.loader/loader.exp (gcj_loader_run): Don't - bytecompile source. Search for .jar files. - (gcj_loader_test_one): Don't look for MyLoader.java. - * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_test_one): Don't - bytecompile sources or build headers. - (gcj_jvmti_run): Look for .jar files. - * testsuite/libjava.jni/jni.exp (gcj_jni_run): Compile .jar - files. - (gcj_jni_test_one): Don't bytecompile sources or build headers. - Set classpath when invoking gij. - (gcj_jni_invocation_test_one): Likewise. - * testsuite/libjava.cni/cni.exp (gcj_cni_test_one): Don't build - headers or bytecompile sources. - (gcj_cni_run): Use .jar files, not .java files. - * testsuite/libjava.lang/lang.exp: Compile .jar files. - -2007-01-02 Tom Tromey <tromey@redhat.com> - - * configure: Rebuilt. - * configure.ac: Check for gjar. - -2007-01-02 Tom Tromey <tromey@redhat.com> - - * testsuite/libjava.jacks/jacks.exp: Removed. - * testsuite/libjava.jacks/jacks.xfail: Removed. - diff --git a/libjava/ChangeLog-2007 b/libjava/ChangeLog-2007 new file mode 100644 index 00000000000..41b7a10d940 --- /dev/null +++ b/libjava/ChangeLog-2007 @@ -0,0 +1,2658 @@ +2007-12-22 David Daney <ddaney@avtrex.com> + + * scripts/makemake.tcl (emit_bc_rule): Use $(LIBGCJ_BC_FLAGS) + instead of -findirect-dispatch -fno-indirect-classes. + * configure.ac (libgcj-bc): New AC_ARG_ENABLE. + (SUPPRESS_LIBGCJ_BC): New AM_CONDITIONAL. + * Makefile.am (LIBGCJ_BC_FLAGS): New variable. + * Makefile.in: Regenerate. + * include/Makefile.in: Same. + * testsuite/Makefile.in: Same. + * configure: Same. + * gcj/Makefile.in: Same. + * sources.am: Same. + +2007-12-17 Jakub Jelinek <jakub@redhat.com> + + * testsuite/Makefile.am (compile-tests): Build + libjava.jvmti/interp/*.h with -jni rather than -cni. + * testsuite/Makefile.in: Rebuilt. + +2007-12-08 Andreas Tobler <a.tobler@schweiz.org> + + * configure.host: Add bits for i?86-*-darwin9 and x86_64-*-darwin9. + * configure.ac: Add darwin-signal.h to x86_64-*-darwin9 and + i?86-*darwin9. + * configure.in: Regenerate. + * darwin.cc: Add definitions for Darwin specific functions for 64-bit. + (darwin_java_register_dyld_add_image_hook): Use this specific + functions. + * Makefile.am (gij_LDFLAGS): Add extra_gij_ldflags for Darwin9. + * Makefile.in: Regenerate. + * include/Makefile.in: Likewise. + * gcj/Makefile.in: Likewise. + * testsuite/Makefile.in: Likewise. + * testsuite/lib/libjava.exp (libjava_arguments): Add allow_stack_execute + for *-*-darwin9*. + +2007-12-06 David Daney <ddaney@avtrex.com> + + * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout. + (ncode_closure, ffi_closure_fun): Define versions for + non-FFI_NATIVE_RAW_API case. + * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to + replace ffi_raw throughout. + * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE + throughout. + +2007-12-06 Andreas Tobler <a.tobler@schweiz.org> + + * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Make + the testsuite multilib aware for Darwin. + +2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com> + + * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate. + * gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise. + * java/awt/Component.h: Likewise. + * java/awt/Container.h: Likewise. + +2007-11-05 H.J. Lu <hongjiu.lu@intel.com> + + * configure.ac: Don't run config-ml.in directly. + (multilib_arg): New. + * configure: Regenerated. + +2007-10-22 David Daney <ddaney@avtrex.com> + + * include/jvm.h (_Jv_SetGCFreeSpaceDivisor): Declare new function. + * boehm.cc (_Jv_SetGCFreeSpaceDivisor): Define it. + +2007-10-18 David Daney <ddaney@avtrex.com> + + * classpath/lib/gnu/java/locale/LocaleData.class: Regenerate + * classpath/lib/gnu/javax/sound/sampled/gstreamer: Add generated + files. + * gnu/javax/sound/sampled/gstreamer: Add generated files. + +2007-10-15 Maciej W. Rozycki <macro@linux-mips.org> + + * configure: Regenerate following changes to ../config/tls.m4. + +2007-09-17 Tom Tromey <tromey@redhat.com> + + * defineclass.cc (MAJOR_1_6): New define. + (MINOR_1_6): Likewise. + (_Jv_ClassReader::parse): Handle 1.6 bytecode. + +2007-09-12 David Daney <ddaney@avtrex.com> + + * configure.host: Enable interpreter for mips64. Enable hash + synchronization for all mips*-*-linux* targets. + * sysdep/mips/locks.h (compare_and_swap, compare_and_swap_release) Use + __sync_bool_compare_and_swap instead of in-line asm. + (release_set, read_barrier, write_barrier): Use __sync_synchronize + instead of in-line asm. + +2007-09-09 Andreas Tobler <a.tobler@schweiz.org> + + PR libgcj/33326 + * testsuite/lib/libjava.exp (libjava_arguments): Append the test spec + only for linux targets. + +2007-09-09 Andrew Haley <aph@redhat.com> + + * interpret-run.cc (invokevirtual_resolved): Nullcheck object on + TOS. + +2007-09-06 Tom Tromey <tromey@redhat.com> + + * testsuite/libjava.lang/StackTrace2.jar: Rebuilt. + * testsuite/libjava.lang/StackTrace2.java (checkLine): Print file + name. + +2007-09-06 Roman Zippel <zippel@linux-m68k.org> + + * sysdep/m68k/locks.h: New file. + * configure.host: Set sysdeps_dir and libgcj_interpreter for m68k. + * configure.ac: Set SIGNAL_HANDLER for m68*-*-linux*. + * configure: Regenerate. + +2007-09-05 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * configure.host(gnu*): Set use_libgcj_bc to yes. + +2007-09-04 Matthias Klose <doko@ubuntu.com> + + * configure.ac: Do not pass --with-native-libdir to classpath. + * configure: Regenerate. + +2007-09-04 Matthias Klose <doko@ubuntu.com> + + PR libgcj/33278 + * configure.ac: Robustify extraction of gcj version. + * configure: Regenerate. + +2007-09-04 Andrew Haley <aph@redhat.com> + + PR java/27908 + * testsuite/libjava.lang/PR27908.java + ({run1,run2,run3}.isRunning): New Method. + (main): Fix race condition. + +2007-08-29 Andrew Haley <aph@redhat.com> + + * gnu/classpath/natVMStackWalker.cc (VMStackWalker::getCallingClass): + Make sure we're not sibcalled. + (GET_CALLING_CLASS): Define for ARM EABI. + +2007-08-22 Andrew Haley <aph@redhat.com> + + * configure.host (BACKTRACESPEC): Add arm*-linux*. + +2007-08-22 Andrew Haley <aph@redhat.com> + + * configure.ac (LIBSTDCXXSPEC): New. + * configure.host: Add arm*-linux* to pthread test. + * configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM + EABI. + * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use + -fexceptions for ARM EABI. + * testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec. + (libjava_invoke): Log the invocation. + +2007-08-15 Andrew Haley <aph@redhat.com> + + * configure.ac (extra_ldflags): Define. + * Makefile.am: Use extra_ldflags for all executables. + +2007-08-14 Andrew Haley <aph@redhat.com> + + * sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo, + _Unwind_GetRegionStart, and _Unwind_Backtrace. + +2007-07-27 Andrew Haley <aph@redhat.com> + + * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for + ARM EABI. + * exception.cc (get_exception_header_from_ue): New. + (get_ttype_entry): ARM EABI version. + (PERSONALITY_FUNCTION): Add ARM EABI code. + * sysdep/arm/backtrace.h: New file. + * stacktrace.cc (_URC_NORMAL_STOP): New. + * configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM + EABI. + * configure.host (BACKTRACESPEC): Add arm/backtrace.h. + +2007-08-31 Matthias Klose <doko@ubuntu.com> + + * classpath/lib/java/util/EnumSet*.class: Regenerate + +2007-08-30 Andreas Tobler <a.tobler@schweiz.org> + + * gij.cc (version): Update Copyright year. + +2007-08-16 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * configure.host (gnu*): Set use_libgcj_bc to yes. + +2007-08-15 Tom Tromey <tromey@redhat.com> + + * java/lang/Class.java (internalGetFields): Use LinkedHashSet. + * classpath/lib/java/lang/Class.class: Rebuilt. + +2007-08-15 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove + 'si' and 'third' parameters. Disable calling + pmi->old_sigaction.sa_sigaction. + (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set + sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag. + +2007-08-09 Andrew Haley <aph@redhat.com> + + * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation. + +2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org> + + * java/net/natVMInetAddressPosix.cc + (java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]: + Allocate buffer dynamically. + +2007-08-04 Alfred M. Szmidt <ams@gnu.org> + + * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0. + * java/io/File.java (createTempFile): Don't truncate if the system + doesn't have a limit on the length of a file name. + * classpath/lib/java/io/File.class: Regenerate. + +2007-08-04 Matthias Klose <doko@ubuntu.com> + + Import GNU Classpath (libgcj-import-20070727). + + * Regenerate class and header files. + * Regenerate auto* files. + + * include/jvm.h: + * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type. + * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise. + * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA, + _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA, + _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA, + _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify + jvalue parameter. + * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise. + + * java/lang/VMFloat.java (toString, parseFloat): New. + + * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported, + isModalExclusionTypeSupported): New (stub only). + * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise. + * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages, + updateFocusableWindowState, setModalBlocked, getBoundsPrivate, + setAlwaysOnTop): Likewise. + * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature. + + * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer, + ignore javax.sound.sampled.spi.MixerProvider, ignore .in files. + + * HACKING: Mention --enable-gstreamer-peer, removal of generated files. + +2007-07-31 David Daney <ddaney@avtrex.com> + + * HACKING: Document regenerating configure and aclocal.m4. + +2007-07-31 David Daney <ddaney@avtrex.com> + + * 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. + +2007-07-29 Matthias Klose <doko@ubuntu.com> + + * HACKING: Document regenerating configure. + +2007-07-29 H.J. Lu <hongjiu.lu@intel.com> + + PR libgcj/32929 + * aclocal.m4: Regenerated. + * configure: Likewise. + +2007-07-28 Matthias Klose <doko@ubuntu.com> + + * configure.ac: Encode the libgcj soversion in dbexecdir, + pass --with-native-libdir to classpath configure. + * configure: Regenerate. + +2007-07-28 Matthias Klose <doko@ubuntu.com> + + * classpath/jvmti.h: Remove. + +2007-07-27 Tom Tromey <tromey@redhat.com> + + * Rebuild .class files with new ecj. + +2007-07-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + * configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC. + * configure: Regenerate. + +2007-07-16 Rask Ingemann Lambertsen <rask@sygehus.dk> + + PR target/32340 + * configure.host (arm*-elf | strongarm*-elf | xscale*-elf): Use the + new sysdeps/arm directory. + +2007-07-15 Tom Tromey <tromey@redhat.com> + + * java/io/File.java: Implement Comparable<File>. + (compareTo): Removed. + * java/io/File.h: Rebuilt. + * classpath/lib/java/io/File.class: Rebuilt. + +2007-07-14 Tom Tromey <tromey@redhat.com> + + * Rebuilt .class files. + +2007-07-15 Andrew Haley <aph@redhat.com> + + * configure.host: + arm*-linux-gnu -> arm*-linux*. + +2007-07-14 Krister Walfridsson <cato@df.lth.se> + + * gnu/gcj/util/natGCInfo.cc: Use HAVE_STRERROR_R. + * configure.ac: Remove check for strerror, add check for strerror_r. + * configure: Regenerate. + * include/config.h.in: Regenerate. + +2007-07-13 Andrew Haley <aph@redhat.com> + + * libgcj.ver: Add __gcj_personality_sj0. + + * testsuite/libjava.jvmti/jvmti-interp.exp: Likewise. + * testsuite/libjava.jni/jni.exp: Use -fdollars-in-identifiers. + * testsuite/libjava.jni/cni.exp: Use -fdollars-in-identifiers. + * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): Likewise. + + * gnu/classpath/natVMStackWalker.cc (getCallingClassLoader): Check + klass is non-null. + * java/lang/reflect/natField.cc (getAddr): Call + _Jv_StackTrace::GetCallingClass only if CALLER is non-null. + * java/lang/reflect/natVMProxy.cc (run_proxy): Use + _Jv_getFieldInternal to get field proxyClass.m. + (_Jv_getFieldInternal): New function. + +2007-07-11 Andrew Haley <aph@redhat.com> + + * configure.host (arm*-linux-gnu): New. + * sysdep/arm/locks.h: New. + +2007-07-13 Roger Sayle <roger@eyesopen.com> + + * java/lang/natPosixProcess.cc: Include <sys/time.h> before + <sys/resource.h> to restore bootstrap on powerpc-apple-darwin7.9.0. + +2007-07-12 Matthias Klose <doko@ubuntu.com> + + * gnu/classpath/jdwp/util/MethodResult.h, + gnu/classpath/jdwp/value/ObjectValue.h: Regenerate. + +2007-07-11 Keith Seitz <keiths@redhat.com> + + * interpret.cc (get_local_var_table) [DIRECT_THREADED]: Make sure the + method is compiled. + * testsuite/libjava.jvmti/interp/getlocalvartable.out: Revise + for compiled methods. + +2007-07-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + PR libgcj/32651 + * configure.host (mips-sgi-irix6*): Set sysdeps_dir. + Disable interpreter. + +2007-07-05 Andreas Tobler <a.tobler@schweiz.org> + + * java/lang/natPosixProcess.cc: Reorder includes to fix compilation + on hppa2.0w-hp-hpux11.11. + Remove include of <gcj/cni.h>. + +2007-07-05 H.J. Lu <hongjiu.lu@intel.com> + + * aclocal.m4: Regenerated. + +2007-07-03 Andreas Tobler <a.tobler@schweiz.org> + + * java/lang/Class.h: Remove redundant 'class java::*::* declarations. + +2007-07-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> + + PR libgcj/30513 + * configure.host (i[3-6]86-*): Undef sun. + +2007-06-28 H.J. Lu <hongjiu.lu@intel.com> + + * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): + Fix a typo. + +2007-06-28 Jan Nijtmans <nijtmans@users.sourceforge.net> + + PR libgcj/30999: + * jni_md.h: Add the possibility to compile jni code with. + -fvisibility=hidden. This causes all symbols to be hidden + except the JNI functions which need to be exported. + +2007-06-28 Andreas Tobler <a.tobler@schweiz.org> + + * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Pass + the cxxldlibflags to exec_gij to have the right libstdc++ invoked. + +2007-07-21 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerate. + +2007-07-20 Keith Seitz <keiths@redhat.com> + + * classpath/lib/gnu/classpath/jdwp/value/StringValue.class: + Regenerate. + +2007-07-20 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/VMVirtualMachine.java (executeMethod): + Update from reference implementation. + * gnu/classpath/jdwp/natVMVirtualMachine.cc (executeMethod): + Update parameter list to match new VMVirtualMachine interface. + * classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class: + Regenerate. + * classpath/lib/gnu/classpath/jdwp/processor/ + ObjectReferenceCommandSet.class: Regenerate. + * classpath/lib/gnu/classpath/jdwp/value/ObjectValue.class: Regenerate. + * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: Regenerate. + * classpath/lib/gnu/classpath/jdwp/util/MethodResult.class: Regenerate. + +2007-06-18 Keith Seitz <keiths@redhat.com> + + * gnu/gcj/jvmti/Breakpoint.java: Make abstract. + (method): Change from private to protected. + (location): Likewise. + (Breakpoint): Change argument list to take only integer type. + Add default constructor. + (initialize_native): Renamed to ... + (_save_insn): ... this to make function more explicit. + (execute): New method. + * gnu/gcj/jvmti/Breakpoint.h: Regenerate. + * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): Rename to... + (_save_insn): ... this. + (install): Save the original instruction. + * gnu/gcj/jvmti/NormalBreakpoint.java: New file. + * gnu/gcj/jvmti/NormalBreakpoint.h: New file. + * gnu/gcj/jvmti/natNormalBreakpoint.cc: New file. + * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint): + Instantiate a NormalBreakpoint instead of Breakpoint. + * interpret-run.cc (insn_breakpoint): Remove breakpoint actions + and call Breakpoint.execute to do them. + * classpath/lib/gnu/gcj/jvmti/Breakpoint.class: Regenerate. + * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: Likewise. + * classpath/lib/gnu/gcj/jvmti/NormalBreakpoint.class: New file. + * sources.am: Regenerate. + * Makefile.am (nat_source_files): Add natNormalBreakpoint.cc. + * Makefile.in: Regenerated. + +2007-06-14 Keith Seitz <keiths@redhat.com> + + * include/java-interp.h (_Jv_LocalVarTableEntry): Add union + for bytecode_pc and direct-threaded pc. + Add field descriptions inline. + * defineclass.cc (read_one_code_attribute): Change from + bytecode_start_pc to bytecode_pc. + Remove unused variable "len". + * interpret.cc (compile): Remap the variable table, too. + (get_local_var_table) [DIRECT_THREADED]: Use insn_index on the + start location to map from pc_t to code index. + +2007-06-09 Keith Seitz <keiths@redhat.com> + + * testsuite/libjava.jvmti/dummyagent.c (Agent_OnLoad): + Add missing return value. + +2007-06-03 Matthias Klose <doko@ubuntu.com> + + * java/io/natFileWin32.cc (setFilePermissions): New (stub only). + _access: Handle EXEC query, stub only. + +2007-06-03 Matthias Klose <doko@ubuntu.com> + + Merged from classpath: + * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge. + * java/lang/System.java(inheritedChannel): New. + * java/lang/Character.java: Remove stray`;'. + * java/net/MulticastSocket.java: Merged. + * java/text/DateFormatSymbols.java(getInstance): New, comment updates. + * java/text/Collator.java(getInstance): Merged. + * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG. + getDisplayName, getDisplayNames: New. + * java/util/logging/Logger.java: Merged. + * Regenerate .class and .h files. + +2007-06-03 Matthias Klose <doko@ubuntu.com> + + * java/io/File.java: Merge with classpath-0.95, new method + setFilePermissions, new attribute EXEC. + * java/io/natFilePosix.cc (setFilePermissions): New. + _access: Handle EXEC query. + * classpath/lib/java/io/File.class, java/io/File.h: Regenerate. + +2007-06-03 Matthias Klose <doko@ubuntu.com> + + Imported GNU Classpath 0.95. + + * classpath/Makefile.in, + classpath/native/jni/midi-dssi/Makefile.in, + classpath/native/jni/classpath/Makefile.in, + classpath/native/jni/Makefile.in, + classpath/native/jni/gconf-peer/Makefile.in, + classpath/native/jni/java-io/Makefile.in, + classpath/native/jni/native-lib/Makefile.in, + classpath/native/jni/java-util/Makefile.in, + classpath/native/jni/midi-alsa/Makefile.in, + classpath/native/jni/java-lang/Makefile.in, + classpath/native/jni/java-nio/Makefile.in, + classpath/native/jni/java-net/Makefile.in, + classpath/native/jni/xmlj/Makefile.in, + classpath/native/jni/qt-peer/Makefile.in, + classpath/native/jni/gtk-peer/Makefile.in, + classpath/native/Makefile.in, classpath/native/jawt/Makefile.in, + classpath/native/fdlibm/Makefile.in, + classpath/native/plugin/Makefile.in, + classpath/resource/Makefile.in, classpath/scripts/Makefile.in, + classpath/tools/Makefile.in, classpath/doc/Makefile.in, + classpath/doc/api/Makefile.in, classpath/lib/Makefile.in, + classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in, + classpath/external/sax/Makefile.in, + classpath/external/w3c_dom/Makefile.in, + classpath/external/relaxngDatatype/Makefile.in, + classpath/include/Makefile.in, + classpath/examples/Makefile.in: Regenerate. + * classpath/config.guess, classpath/config.sub, + classpath/ltmain.sh : Update. + * classpath/configure, classpath/depcomp, classpath/missing, + classpath/aclocal.m4, classpath/install-sh: Regenerate. + + * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95. + * sources.am: Regenerate. + * Makefile.in: Regenerate. + + * Update the .class files and generated CNI header files, add new + .class and generated CNI header files. + * Remove generated files for removed java source files: + classpath/gnu/java/net/BASE64.java, + classpath/gnu/java/security/util/Base64.java, + classpath/gnu/java/awt/peer/gtk/GThreadMutex.java, + classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, + classpath/gnu/java/awt/font/autofit/Scaler.java, + classpath/gnu/classpath/jdwp/util/Value.java, + classpath/gnu/javax/net/ssl/Base64.java. + * Remove empty directories. + + * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc. + * java/lang/Class.java(setAccessible): Merge from classpath. + * java/util/Locale.java: Remove. + * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java, + gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New. + * gcj/javaprims.h: Update class declarations. + * scripts/classes.pl: Update usage. + * HACKING: Mention to build all peers. + +2007-06-02 Paolo Bonzini <bonzini@gnu.org> + + * configure: Regenerate. + +2007-05-31 Andrew Haley <aph@redhat.com> + + * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear + INTERPRETED access modifier. + +2007-05-31 Paolo Bonzini <bonzini@gnu.org> + + PR libjava/32098 + * configure: Regenerated. + * aclocal.m4: Regenerated. + +2007-05-30 H.J. Lu <hongjiu.lu@intel.com> + + PR libjava/32098 + * configure: Regenerated. + +2007-05-29 H.J. Lu <hongjiu.lu@intel.com> + + * configure.ac: Don't include ../config/confsubdir.m4. + * aclocal.m4: Regenerated. + * configure: Likewise. + +2007-05-27 Paolo Bonzini <bonzini@gnu.org> + + PR bootstrap/32078 + * configure.ac: Include confsubdir.m4. + * configure: Regenerate. + +2007-05-24 Keith Seitz <keiths@redhat.com> + + * include/java-interp.h (_Jv_InterpFrame::get_pc): Only deduct + one when pc_ptr is non-NULL. + + * prims.cc (parse_init_args): Enable JVMTI with agentlib + and agentpath options. + + * testsuite/lib/libjava.exp (exec_gij): Add new addl_flags + parameter. + * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): + Pass '-agentlib:dummyagent' when executing gij. + (gij_jvmti_run): Build dummy JVMTI agent before running tests, + and remove it when finished. + * testsuite/libjava.jvmti/dummyagent.c: New file. + +2007-05-23 Steve Ellcey <sje@cup.hp.com> + + * Makefile.in: Regenerate. + * configure: Regenerate. + * aclocal.m4: Regenerate. + * gcj/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + +2007-05-17 Kyle Galloway <kgallowa@redhat.com> + + * classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java + (executeMethods): Remove cast to ClassReferenceTypeId. + * classpath/lib/gnu/classpath/jdwp/processor/ + ReferenceTypeCommandSet.class: Rebuilt. + +2007-05-17 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/natVMMethod.cc (getModifiers): Check for native + classes and mark methods as native appropriately. + +2007-05-17 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/VMFrame.java (<init>): Add parameter for "this" + pointer. + * gnu/classpath/jdwp/VMFrame.h: Regenerated. + * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt. + * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrame): Use new + VMFrame constructor. + +2007-05-16 David Daney <ddaney@avtrex.com> + + * include/java-stack.h (_Jv_FrameInfo): Remove union definition. + (_Jv_StackFrame): Remove commented out code. + (_Jv_UnwindState): Remove superfluous 'typedef'. + * sun/misc/natUnsafe.cc (spinlock): Add white space to quiet + compiler warnings. + * gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc + (getCollectionUsage): Don't declare unused parameter n. + (getMemoryManagerNames): Same. + * gnu/gcj/util/natGCInfo.cc (gc_debug_info): Remove superfluous + 'typedef'. + +2007-05-16 Keith Seitz <keiths@redhat.com> + + * include/java-interp.h (breakpoint_at): Declare. + * interpret.cc (breakpoint_at): New function. + * gnu/classpath/jdwp/VMVirtualMachine.java (_event_list): + New member. + * gnu/classpath/jdwp/natVMVirtualMachine.cc (initialize): + Initialize _event_list. + (handle_single_step): If there is a breakpoint at the + location at which we are stopping, do not send the notification. + Instead add the event to a list of events that occur at this + location. + (jdwpBreakpointCB): If the event list is not empty, send + whatever events are in it and the breakpoint event in a single + notification. + Mark parameter jni_env as MAYBE_UNUSED. + * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: + Regenerated. + * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated. + +2007-05-15 David Daney <ddaney@avtrex.com> + + * classpath/lib/javax/swing/text/html/HTMLEditorKit.class: Regenerate + * gnu/java/awt/peer/gtk/ComponentGraphics.h: Same. + +2007-05-15 Keith Seitz <keiths@redhat.com> + + * interpret.cc (STOREA): Rewrite using temporary variable to + avoid double-macro expansion side-effects. + (STOREI): Likewise. + (STOREF): Likewise. + (STOREL)[SIZEOF_VOID_P == 8]: Likewise. + (STORED)[SIZEOF_VOID_P == 8]: Likewise. + (STOREL)[SIZEOF_VOID_P != 8]: Likewise. + (STORED)[SIZEOF_VOID_P != 8]: Likewise. + (POKEI): Likewise. + +2007-05-12 David Daney <ddaney@avtrex.com> + + PR libgcj/29324 + * include/posix-threads.h (_Jv_BlockSigchld): Declare. + (_Jv_UnBlockSigchld): Same. + * posix-threads.cc: Include posix-threads.h. + (block_sigchld) Rename to... + (_Jv_BlockSigchld) ... this. + (_Jv_UnBlockSigchld): New function. + (_Jv_InitThreads): Call _Jv_BlockSigchld in place of block_sigchld. + (_Jv_ThreadStart): Same. + * java/lang/PosixProcess$ProcessManager.h: Regenerate. + * java/lang/PosixProcess.java: Clean up imports. + (ProcessManager): Make final. + (ProcessManager.queue): Genericise and make private. + (ProcessManager.pidToProcess): Remove. + (ProcessManager.liveProcesses): New field. + (ProcessManager.reaperPID): Remove. + (ProcessManager.nativeData): New field. + (ProcessManager.removeProcessFromMap): Remove. + (ProcessManager.addProcessToMap):Remove. + (ProcessManager.addToLiveProcesses): New method. + (ProcessManager.run): Rewritten. + (ProcessManager.reap): Change method signature, + (getErrorStream): Correct formatting. + (getInputStream): Same. + (spawn): Add process to liveProcesses list. + (pid): Make package private. + * java/lang/PosixProcess.h: Regenerate. + * java/lang/natPosixProcess.cc: Include posix.h and posix-threads.h. + Add useing namespace java::lang. + (ProcessManagerInternal): New struct. + (sigchld_handler): Rewritten. + (init): Rewritten. + (waitForSignal): Same. + (reap): Same. + (signalReaper): Same. + (nativeDestroy): Call kill as ::kill. + (nativeSpawn): Correct formatting. + * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Regenerate. + * classpath/lib/java/lang/PosixProcess.class: Same. + * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same. + +2007-05-07 Ian Lance Taylor <iant@google.com> + + PR java/31842 + * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed + overflow. + +2007-05-07 Keith Seitz <keiths@redhat.com> + + * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerate. + * classpath/lib/gnu/classpath/jdwp/Jdwp$1.class: Regenerate. + * classpath/lib/gnu/classpath/jdwp/event/Event.class: + Regenerate. + * classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class: + Regenerate. + * gnu/classpath/jdwp/Jdwp.h: Regenerate. + * gnu/classpath/jdwp/event/Event.h: Regenerate. + * gnu/classpath/jdwp/transport/JdwpConnection.h: Regenerate. + +2007-05-04 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc (getClassMethod): Change + to use JVMTI. + +2007-05-03 Keith Seitz <keiths@redhat.com> + + * interpret.cc: Don't include ExceptionEvent.h. + * gnu/gcj/jvmti/natExceptionEvent.cc: Remove. + * Makefile.am (nat_source_files): Remove natExceptionEvent.cc. + * Makefile.in: Regenerated. + +2007-05-03 Keith Seitz <keiths@redhat.com> + + * include/jvmti-int.h (_Jv_ReportJVMTIExceptionThrow): + Declare. + * interpret.cc (_Jv_ReportJVMTIExceptionThrow): New function. + (find_catch_location): New function. + (REPORT_EXCEPTION): New macro. + (throw_internal_error): Use REPORT_EXCEPTION. + (throw_incompatible_class_change_error): Likewise. + (throw_null_pointer_exception): Likewise. + (throw_class_format_error): Likewise. + * interpret-run.cc (INTERP_REPORT_EXCEPTION)[DEBUG]: Set + to REPORT_EXCEPTION. + (INTERP_REPORT_EXCEPTION)[!DEBUG]: Make nop. + (insn_new): Use INTERP_REPORT_EXCEPTION. + (insn_athrow): Likewise. + Remove previous JVMTI exception notifications. + Add JVMTI ExceptionCatch notificatin. + * jni.cc (_Jv_PopSystemFrame): Notify JVMTI clients of + exception throw. + * gnu/gcj/jvmti/ExceptionEvent.java: Removed. + * gnu/gcj/jvmti/ExceptionEvent.h: Removed. + * classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: Removed. + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (jdwpExceptionCB): New function. + (jdwpVMInitCB): Set Exception event handler and enable. + * sources.am: Regenerated. + * Makefile.in: Regenerated. + +2007-05-03 Thomas Fitzsimmons <fitzsim@redhat.com> + + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304 + * Makefile.in: Regenerate. + * scripts/makemake.tcl (scan_directory): Treat default.css as a + property file. + * classpath/javax/swing/text/html/default.css: Move to... + * classpath/resource/javax/swing/text/html/default.css: New file. + * classpath/javax/swing/text/html/HTMLEditorKit.java + (getStyleSheet): Throw RuntimeException when style loading fails. + * sources.am (property_files): Add + classpath/resource/javax/swing/text/html/default.css. + +2007-05-02 Tom Tromey <tromey@redhat.com> + + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755 + * java/lang/natCharacter.cc (Character::getType): Handle negative + code points. + (Character::toLowerCase): Likewise. + (Character::toUpperCase): Likewise. + (Character::digit): Likewise. + (Character::getNumericValue): Likewise. + (Character::getDirectionality): Likewise. + (Character::toTitleCase): Likewise. + +2007-04-30 Keith Seitz <keiths@redhat.com> + + * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before + executing the instruction. + * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract + one insn from the frame's PC. _Jv_InterpMethod::run et al + will advance the PC before executing the instruction. + +2007-04-27 Keith Seitz <keiths@redhat.com> + + * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated. + * classpath/lib/gnu/classpath/jdwp/event/EventManager.class: + Regenerated. + * gnu/classpath/jdwp/event/EventManager.h: Regenerated. + +2007-04-27 Keith Seitz <keiths@redhat.com> + + * classpath/lib/gnu/classpath/jdwp/event/filters/ + LocationOnlyFilter.class: Regenerated; + * classpath/lib/gnu/classpath/jdwp/util/Location.class: + Regenerated. + * gnu/classpath/jdwp/VMMethod.java + * classpath/lib/gnu/classpath/jdwp/VMMethod.class: + Regenerated. + * gnu/classpath/jdwp/VMMethod.h: Regenerated. + * gnu/classpath/jdwp/util/Location.h: Regenerated. + +2007-04-27 Thomas Fitzsimmons <fitzsim@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.h: Regenerate. + * gnu/java/awt/peer/gtk/ComponentGraphics.h: Regenerate. + +2007-04-25 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/VMIdManager.java (getObjectId): Deal with null + objects. + (get): Deal with ObjectId of 0. + +2007-04-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR libgcj/31084 + * java/lang/natVMProcess.cc: Include platform.h before jvm.h. + +2007-04-24 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.java + (getThreadStatus): Implement. + +2007-04-24 Keith Seitz <keiths@redhat.com> + + * headers.txt (gnu/gcj/jvmti/Breakpoint.h)[DIRECT_THREADED]: + Add _Jv_RewriteBreakpointInsn friend declaration. + * gnu/gcj/jvmti/natBreakpoint.cc (_Jv_RewriteBreakpointInsn) + [DIRECT_THREADED]: New function. + * gnu/gcj/jvmti/Breakpoint.h: Regenerate. + * interpret-run.cc: Define new REWRITE_INSN macro. + Changed all occurrences of insn rewriting to call REWRITE_INSN. + +2007-04-23 Keith Seitz <keiths@redhat.com> + + * include/no-gc.h (_Jv_IsThreadSuspended): Declare. + * include/boehm-gc.h (_Jv_IsThreadSuspended): Likewise. + * boehm.cc (_Jv_IsThreadSuspended): New function. + * nogc.cc (_Jv_IsThreadSuspended): Likewise. + * jvmti.cc (_Jv_JVMTI_GetThreadState): New function. + (_Jv_JVMTI_Interface): Define GetThreadState. + +2007-04-23 Kyle Galloway <kgallowa@redhat.com> + + * include/java-interp.h (_Jv_InterpFrame): Add pointer to the + interpreter PC. + (<init>): Add a pointer to the interpreter PC as a parameter with + default value NULL. + (get_pc): New method. + * interpret-run.cc: If debugging, pass a pointer to the PC when + creating the stack frame. + * jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc + to get the PC. + +2007-04-23 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc (getSourceFile): Check + for null source file and throw an exception indicating this. + +2007-04-20 Keith Seitz <keiths@redhat.com> + + * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint): + Install the new breakpoint into the bytecode. + (deleteBreakpoint): Remove the breakpoint from the bytecode. + * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: + Regenerate. + * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): + Don't install the breakpoint here. + +2007-04-19 Keith Seitz <keiths@redhat.com> + + * interpret-run.cc [insn_breakpoint]: Save the original + insn for the breakpoint before posting the JVMTI notification. + +2007-04-19 Tom Tromey <tromey@redhat.com> + + * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h: Rebuilt. + +2007-04-18 Tom Tromey <tromey@redhat.com> + + * Regenerated headers with new gjavah. + +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. + * java/lang/reflect/Method.h: Likewise. + +2007-04-16 Andrew Haley <aph@redhat.com> + + * gnu/gcj/runtime/BootClassLoader.java (getBootURLLoader): New + method. + (bootGetResource): Use getBootURLLoader() to load resources. + (bootGetResources): Likewise. + + * java/lang/reflect/natMethod.cc (Method::invoke): In invoke also + check that the method's declaring class is accessible. + +2007-04-10 Keith Seitz <keiths@redhat.com> + + * sources.am: Regenerate. + * Makefile.in: Likewise. + +2007-04-09 Kyle Galloway <kgallowa@redhat.com> + + * interpret-run.cc: If debugging, check if args is NULL before + getting the "this" pointer. + +2007-04-09 Kyle Galloway <kgallowa@redhat.com> + + * classpath/gnu/classpath/jdwp/value/ArrayValue.java: New file. + * classpath/lib/gnu/classpath/jdwp/value/ArrayValue.class: New file. + * gnu/classpath/jdwp/ArrayValue.h: New file. + * gnu/classpath/jdwp/natVMFrame.cc (getValue): Add array case. + (setValue): Ditto. + +2007-04-09 David Daney <ddaney@avtrex.com> + + PR libgcj/23758 + * java/lang/natPosixProcess.cc (nativeSpawn): Move building of + environment before the fork. + * testsuite/libjava.lang/Process_7.java: New test. + * testsuite/libjava.lang/Process_7.out: Its expected results. + * testsuite/libjava.lang/Process_7.jar: Generated file. + +2007-04-09 H.J. Lu <hongjiu.lu@intel.com> + + * prims.cc (load_jvmti_agent): Add the missing `,'. + +2007-04-09 Kyle Galloway <kgallowa@redhat.com> + + * gij.cc (main): Accept -agentlib and -agentpath options. + * prims.cc (parse_init_args): Deal with -agentlib and -agentpath. + (load_jvmti_agent): New function. + +2007-04-04 Tania Bento <tbento@redhat.com> + + * java/text/DecimalFormatSymbols.java: Added the year 2007 to + Copyright information and introduced new variable, currency. + (DecimalFormatSymbols(Locale)): Define currency and intlCurrencySymbol + to "XXX", currencySymbol to "?" and localCurrency appropriately. + (getCurrency): Fixed documentation and return the value of currency. + (setCurrency): Fixed documentation and update the value of currency. + (setInternationalCurrencySymbol): Fixed documentation and update the + value of currency. + * java/util/Currency.java: Introduced two new variables, properties + and fractionDigits. In the static block, a properties object is + created and the currency resource is loaded. + (Currency(Locale)): fractionDigits is defined. + (Currency(String)): New method. + (getDefaultFractionDigits): Return the value of fractionDigits. + (getInstance(String)): Check if String is equal to "XXX". + +2007-04-04 Kyle Galloway <kgallowa@redhat.com> + + * classpath/gnu/classpath/jdwp/util/VariableTable.java: Change longs + to ints for argCnt and slots. + (write): Replace writeLong with writeInt for the above. + +2007-04-03 Andrew Haley <aph@redhat.com> + + * testsuite/libjava.lang/ProxyTest.java: New test. + +2007-04-02 Tom Tromey <tromey@redhat.com> + + http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=205157 + * gnu/java/nio/channels/natFileChannelPosix.cc (mapImpl): Extend + file, when writing, if it is too short. + +2007-04-02 Tom Tromey <tromey@redhat.com> + + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233406 + * gnu/java/net/natPlainSocketImplPosix.cc (create): Return if + already created. + * gnu/java/net/PlainSocketImpl.java (getLocalAddress): Handle case + where localport is -1. + (create): Now public. + * gnu/java/nio/SocketChannelImpl.java (SocketChannelImpl): Call + 'create' on the socket. + +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. + +2007-04-02 Kyle Galloway <kgallowa@redhat.com> + + * interpret-run.cc: Add code to properly set up variable slots + when debugging. + * gnu/classpath/jdwp/natVMFrame.cc (checkJVMTIError): New function. + (getObjectJVMTI): New function. + (setObjectJVMTI): New function. + (getIntJVMTI): New function. + (setIntJVMTI): New function. + (getLongJVMTI): New function. + (setLongJVMTI): New function. + (getFloatJVMTI): New function. + (setFloatJVMTI): New function. + (getDoubleJVMTI): New function. + (setDoubleJVMTI): New function. + (getFrameDepth): New function. + (getValue): Implement. + (setValue): Implement. + +2007-04-02 Kyle Galloway <kgallowa@redhat.com> + + * classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java + (executeResume): Call VMVirtualMachine.resumeThread. + +2007-03-29 Tom Tromey <tromey@redhat.com> + + PR libgcj/29869: + * java/util/logging/LogManager.java (readConfiguration): Handle + comma-separated 'handlers'. Don't try to add a non-existing + handler. + +2007-03-27 Tom Tromey <tromey@redhat.com> + + * sources.am, Makefile.in: Rebuilt. + * scripts/mime.types: Removed. + * scripts/MakeDefaultMimeTypes.java: Removed. + * gnu/gcj/io/MimeTypes.java: Removed. + * gnu/gcj/io/MimeTypes.h: Removed. + * gnu/gcj/io/DefaultMimeTypes.java: Removed. + * gnu/gcj/io/DefaultMimeTypes.h: Removed. + +2007-03-27 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/VMFrame.java: Update from upstream + classpath. + * gnu/classpath/jdwp/natVMFrame.cc: Likewise. + * gnu/classpath/jdwp/VMVirtualMachine.java: Likewise. + * gnu/classpath/jdwp/natVMVirtualMachine.cc: Likewise. + (initialize): Fix compiler type-punning warning. + (getAllLoadedClasses): Return empty list instead of NULL. + (getLoadRequests): Likewise. + * gnu/classpath/jdwp/exception/InvalidTagException.h: New file. + * gnu/classpath/jdwp/exception/InvalidSlotException.h: New file. + * gnu/classpath/jdwp/exception/TypeMismatchException.h: New file. + * gnu/classpath/jdwp/VMVirtualMachine.h: Rebuilt. + * gnu/classpath/jdwp/value/CharValue.h: New file. + * gnu/classpath/jdwp/value/LongValue.h: New file. + * gnu/classpath/jdwp/value/ShortValue.h: New file. + * gnu/classpath/jdwp/value/Value.h: New file. + * gnu/classpath/jdwp/value/BooleanValue.h: New file. + * gnu/classpath/jdwp/value/VoidValue.h: New file. + * gnu/classpath/jdwp/value/ByteValue.h: New file. + * gnu/classpath/jdwp/value/FloatValue.h: New file. + * gnu/classpath/jdwp/value/ObjectValue.h: New file. + * gnu/classpath/jdwp/value/StringValue.h: New file. + * gnu/classpath/jdwp/value/ValueFactory.h: New file. + * gnu/classpath/jdwp/value/IntValue.h: New file. + * gnu/classpath/jdwp/value/DoubleValue.h: New file. + * gnu/classpath/jdwp/VMFrame.h: Rebuilt. + * gnu/classpath/jdwp/id/NullObjectId.h: New file. + * gnu/classpath/jdwp/util/MethodResult.h: Rebuilt. + * gnu/classpath/jdwp/util/NullObject.h: New file. + * gnu/classpath/jdwp/util/MonitorInfo.h: New file. + * Makefile.in: Rebuilt. + * sources.am: Rebuilt. + +2006-03-26 David Daney <ddaney@avtrex.com> + + * configure.ac: Remove checks for mktime, alloca, ioctl, gmtime_r, + fork, execvp, execinfo.h, pthread_mutexattr_settype, + pthread_mutexattr_setkind_np and sys/wait.h. + * Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * include/config.h.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + * configure: Regenerate. + * gcj/Makefile.in: Regenerate. + +2007-03-23 Gary Benson <gbenson@redhat.com> + + * link.cc (_Jv_Linker::resolve_method_entry): + Ensure that the argument types and the return type of the + found method match those expected by the calling method. + +2007-03-22 David Daney <ddaney@avtrex.com> + + PR libgcj/31228 + * configure.ac: Add checks for getrlimit and sys/resource.h. + * include/posix.h (_Jv_platform_close_on_exec): Remove. + * include/config.h.in: Regenerate. + * configure: Regenerate. + * gnu/java/nio/channels/natFileChannelPosix.cc (open): Remove call to + _Jv_platform_close_on_exec; + * gnu/java/net/natPlainSocketImplPosix.cc (create): Likewise. + (accept): Likewise. + * gnu/java/net/natPlainDatagramSocketImplPosix.cc (create):Likewise. + * java/lang/natPosixProcess.cc: Include sys/resource.h. + (nativeSpawn): Close all file descriptors. Don't set FD_CLOEXEC on + pipes. + +2007-03-20 Andrew Haley <aph@redhat.com> + + * testsuite/libjava.lang/PR31264.java: New test. + +2007-03-14 Jakub Jelinek <jakub@redhat.com> + + * Makefile.am (AM_MAKEFLAGS): Pass through mandir. + * Makefile.in: Rebuilt. + +2007-03-13 Keith Seitz <keiths@redhat.com> + + * 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. + +2007-03-13 Thomas Fitzsimmons <fitzsim@redhat.com> + + * Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE. + * classpath/configure.ac: Add --with-ecj-jar configure option. + * classpath/gnu/classpath/Configuration.java.in (ECJ_JAR): New + field. + * classpath/INSTALL: Document --with-ecj-jar configure option and + ecj jar requirement for com.sun.tools.javac support. + * classpath/tools/Makefile.am: Build decendents of com and sun + directories. + * configure.ac: Substitute ECJ_JAR in stub Configuration.java. + * gnu/classpath/Configuration.java, + gnu/classpath/natConfiguration.cc (ecj): New method. + (ECJ_JAR): New field. + * scripts/makemake.tcl (scan_packages): Add com directory. + * sources.am (property_files): Add + classpath/resource/sun/rmi/rmic/messages.properties and + classpath/resource/com/sun/tools/javac/messages.properties. + * classpath/resource/com, classpath/resource/com/sun, + classpath/resource/com/sun/tools, + classpath/resource/com/sun/tools/javac, classpath/resource/sun, + classpath/resource/sun/rmi, classpath/resource/sun/rmi/rmic, + classpath/tools/classes/com, classpath/tools/classes/com/sun, + classpath/tools/classes/com/sun/javadoc, + classpath/tools/classes/com/sun/tools, + classpath/tools/classes/com/sun/tools/doclets, + classpath/tools/classes/sun, classpath/tools/classes/sun/rmi, + classpath/tools/classes/sun/rmi/rmic, classpath/tools/com, + classpath/tools/com/sun, classpath/tools/com/sun/javadoc, + classpath/tools/com/sun/tools, + classpath/tools/com/sun/tools/doclets, + classpath/tools/com/sun/tools/javac, classpath/tools/sun, + classpath/tools/sun/rmi, classpath/tools/sun/rmi/rmic: New + directories. + * classpath/resource/com/sun/tools/javac/messages.properties, + classpath/resource/sun/rmi/rmic/messages.properties, + classpath/tools/classes/com/sun/javadoc/ClassDoc.class, + classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class, + classpath/tools/classes/com/sun/javadoc/Doc.class, + classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class, + classpath/tools/classes/com/sun/javadoc/Doclet.class, + classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class, + classpath/tools/classes/com/sun/javadoc/FieldDoc.class, + classpath/tools/classes/com/sun/javadoc/MemberDoc.class, + classpath/tools/classes/com/sun/javadoc/MethodDoc.class, + classpath/tools/classes/com/sun/javadoc/PackageDoc.class, + classpath/tools/classes/com/sun/javadoc/ParamTag.class, + classpath/tools/classes/com/sun/javadoc/Parameter.class, + classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class, + classpath/tools/classes/com/sun/javadoc/RootDoc.class, + classpath/tools/classes/com/sun/javadoc/SeeTag.class, + classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class, + classpath/tools/classes/com/sun/javadoc/SourcePosition.class, + classpath/tools/classes/com/sun/javadoc/Tag.class, + classpath/tools/classes/com/sun/javadoc/ThrowsTag.class, + classpath/tools/classes/com/sun/javadoc/Type.class, + classpath/tools/classes/com/sun/javadoc/TypeVariable.class, + classpath/tools/classes/com/sun/tools/doclets/Taglet.class, + classpath/tools/classes/sun/rmi/rmic/Main.class, + classpath/tools/classes/sun/rmi/rmic/Messages.class, + classpath/tools/com/sun/javadoc/ClassDoc.java, + classpath/tools/com/sun/javadoc/ConstructorDoc.java, + classpath/tools/com/sun/javadoc/Doc.java, + classpath/tools/com/sun/javadoc/DocErrorReporter.java, + classpath/tools/com/sun/javadoc/Doclet.java, + classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java, + classpath/tools/com/sun/javadoc/FieldDoc.java, + classpath/tools/com/sun/javadoc/MemberDoc.java, + classpath/tools/com/sun/javadoc/MethodDoc.java, + classpath/tools/com/sun/javadoc/PackageDoc.java, + classpath/tools/com/sun/javadoc/ParamTag.java, + classpath/tools/com/sun/javadoc/Parameter.java, + classpath/tools/com/sun/javadoc/ProgramElementDoc.java, + classpath/tools/com/sun/javadoc/RootDoc.java, + classpath/tools/com/sun/javadoc/SeeTag.java, + classpath/tools/com/sun/javadoc/SerialFieldTag.java, + classpath/tools/com/sun/javadoc/SourcePosition.java, + classpath/tools/com/sun/javadoc/Tag.java, + classpath/tools/com/sun/javadoc/ThrowsTag.java, + classpath/tools/com/sun/javadoc/Type.java, + classpath/tools/com/sun/javadoc/TypeVariable.java, + classpath/tools/com/sun/tools/doclets/Taglet.java, + classpath/tools/com/sun/tools/javac/Main.java, + classpath/tools/com/sun/tools/javac/Messages.java, + classpath/tools/sun/rmi/rmic/Main.java, + classpath/tools/sun/rmi/rmic/Messages.java: New files. + * Makefile.in, classpath/Makefile.in, classpath/configure, + classpath/doc/Makefile.in, classpath/doc/api/Makefile.in, + classpath/examples/Makefile.in, classpath/external/Makefile.in, + classpath/external/jsr166/Makefile.in, + classpath/external/relaxngDatatype/Makefile.in, + classpath/external/sax/Makefile.in, + classpath/external/w3c_dom/Makefile.in, + classpath/include/Makefile.in, classpath/include/config.h.in, + classpath/lib/Makefile.in, + classpath/lib/gnu/classpath/Configuration.class, + classpath/native/Makefile.in, classpath/native/fdlibm/Makefile.in, + classpath/native/jawt/Makefile.in, + classpath/native/jni/Makefile.in, + classpath/native/jni/classpath/Makefile.in, + classpath/native/jni/gconf-peer/Makefile.in, + classpath/native/jni/gtk-peer/Makefile.in, + classpath/native/jni/java-io/Makefile.in, + classpath/native/jni/java-lang/Makefile.in, + classpath/native/jni/java-net/Makefile.in, + classpath/native/jni/java-nio/Makefile.in, + classpath/native/jni/java-util/Makefile.in, + classpath/native/jni/midi-alsa/Makefile.in, + classpath/native/jni/midi-dssi/Makefile.in, + classpath/native/jni/native-lib/Makefile.in, + classpath/native/jni/qt-peer/Makefile.in, + classpath/native/jni/xmlj/Makefile.in, + classpath/native/plugin/Makefile.in, + classpath/resource/Makefile.in, classpath/scripts/Makefile.in, + classpath/tools/Makefile.in, configure, + gnu/classpath/Configuration.h: Regenerate. + +2007-03-12 Kyle Galloway <kgallowa@redhat.com> + + * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count + as a sigle slot. + +2007-03-12 Marco Trudel <mtrudel@gmx.ch> + + * java/lang/natString.cc (getBytes (jstring enc)): + Fixed the loop for multiple cycles, Code cleanup + +2007-03-09 Tom Tromey <tromey@redhat.com> + + * sources.am, Makefile.in: Rebuilt. + * scripts/makemake.tcl (scan_directory): Allow service files to be + omitted. + Omit all XML-related service files. + +2007-03-07 Tom Tromey <tromey@redhat.com> + + * configure: Rebuilt. + * configure.ac: Clear vm-tools-packages. + +2007-03-07 Mohan Embar <gnustuff@thisiscool.com> + + * java/lang/Win32Process.java: Added nested class EOFInputStream. + * java/lang/natWin32Process.cc (ChildProcessPipe): Added DUMMY + enum and implementation. + (startProcess): Use redirect flag. + * classpath/lib/java/lang/Win32Process.class: Regenerated. + * classpath/lib/java/lang/Win32Process$EOFInputStream.class: New. + * gcj/javaprims.h: Regenerated. + * java/lang/Win32Process$EOFInputStream.h: New. + +2007-03-07 Andrew Haley <aph@redhat.com> + + * libgcj_bc.c (JvRunMainName): Declare. + +2007-03-07 Gary Benson <gbenson@redhat.com> + + * sources.am, Makefile.in: Rebuilt. + +2007-03-07 Mohan Embar <gnustuff@thisiscool.com> + + * gcj/javaprims.h: Regenerated. + +2007-03-07 Alexandre Oliva <aoliva@redhat.com> + + * 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. + +2007-03-06 Kyle Galloway <kgallowa@redhat.com> + + * classpath/gnu/classpath/jdwp/exception/AbsentInformationException.java: New file. + * classpath/lib/gnu/classpath/jdwp/exception/AbsentInformationException.class: Ditto. + * gnu/classpath/jdwp/exception/AbsentInformationException.h: Ditto. + * gnu/classpath/jdwp/natVMMethod.cc: Add CHECK_INTERP_CLASS macro. + (VMMethod::getLineTable): Use new macro. + (VMMethod::getVariableTable): Implement. + * sources.am: Regenerated. + * Makefile.in: Ditto. + +2007-03-06 Tom Tromey <tromey@redhat.com> + + * Makefile.in: Rebuilt. + * Makefile.am (bin_PROGRAMS): Added gcjh. + (gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD, + gcjh_DEPENDENCIES): New variables. + +2007-03-06 Kyle Galloway <kgallowa@redhat.com> + + * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters. + * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc + (do_getlocalvartable_tests): Add Deallocate calls to free strings. + +2007-03-05 Matthias Klose <doko@debian.org> + + * Makefile.am (gij_LDFLAGS): Use dbexecdir. + * Makefile.in: Regnerate. + +2007-03-05 Mark Wielaard <mark@klomp.org> + + * java/lang/Character.java: Re-merged with Classpath. + * java/lang/natString.cc (nativeCompareTo): Renamed from + compareTo. + * java/lang/StringBuilder.java: Re-merged with Classpath. + * java/lang/String.java: Re-merged with Classpath. + (nativeCompareTo): Renamed from compareTo. + * java/lang/StringBuffer.java: Re-merged with Classpath. + * jni.cc (_Jv_JNI_GetAnyMethodID): Split calls to append. + +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. + +2007-03-05 Tom Tromey <tromey@redhat.com> + + * sources.am, Makefile.in: Rebuilt. + * scripts/makemake.tcl (emit_package_rule): Don't omit + VMProcess.java. + * Makefile.am (nat_source_files): Added natVMProcess.cc. + (inner_nat_headers): Added ImmediateEOFInputStream.h. + * gcj/javaprims.h: Regenerated. + * java/lang/System.java (EnvironmentMap): Now package-private. + (EnvironmentMap(Map)): New constructor. + (EnvironmentMap.put): New method. + * java/lang/natWin32Process.cc (startProcess): Update. + * java/lang/Win32Process.java (Win32Process): Added 'redirect' + argument. + (startProcess): Likewise. + * java/lang/EcosProcess.java (EcosProcess): Added 'redirect' + argument. + * java/lang/natPosixProcess.cc (nativeSpawn): Handle redirection. + * java/lang/PosixProcess.java (redirect): New field. + (PosixProcess): Added 'redirect' argument. + * java/lang/natRuntime.cc (execInternal): Added 'redirect' + argument to Process creation. + * java/lang/natVMProcess.cc: New file. + * java/lang/ProcessBuilder.java: Removed. + * java/lang/VMProcess.java: New file. + +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. + +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. + +2007-03-02 Andrew Haley <aph@redhat.com> + + * sun/reflect/annotation/AnnotationInvocationHandler.java: + Whitespace only changes. + +2007-03-02 Andrew Haley <aph@redhat.com> + + * sun/reflect/annotation/AnnotationInvocationHandler.java: Moved + from Classpath to libgcj local. + +2007-03-01 Brooks Moses <brooks.moses@codesourcery.com> + + * Makefile.am: Add dummy install-pdf target. + * Makefile.in: Regenerate + * include/Makefile.in: Regenerate + * testsuite/Makefile.in: Regenerate + * gcj/Makefile.in: Regenerate + +2007-02-23 Gary Benson <gbenson@redhat.com> + + * gnu/gcj/tools/gcj_dbtool/Main.java: Updated copyright year. + +2007-02-23 Gary Benson <gbenson@redhat.com> + + * java/lang/VMCompiler.java + (compileClass): Don't lose zeros from within the digest. + +2007-02-22 Jakub Jelinek <jakub@redhat.com> + + PR libgcj/17002 + PR classpath/28550 + * java/util/VMTimeZone.java (getDefaultTimeZoneId): To read + /etc/localtime, use ZoneInfo.readTZFile instead of + VMTimeZone.readtzFile. Get better timezone name for /etc/localtime, + either if it is a symlink or through /etc/sysconfig/clock. + (readSysconfigClockFile): New static method. + (readtzFile): Removed. + * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments. + * posix.cc (_Jv_platform_initProperties): Set + gnu.java.util.zoneinfo.dir. + * sources.am (gnu_java_util_source_files): Add + classpath/gnu/java/util/ZoneInfo.java. + * Makefile.in: Regenerated. + * java/util/VMTimeZone.h: Regenerated. + * java/util/TimeZone.h: Regenerated. + * gnu/java/util/ZoneInfo.h: Generated. + +2007-02-22 Mohan Embar <gnustuff@thisiscool.com> + + * include/win32-threads.h: Added #undef OUT. + +2007-02-21 Kyle Galloway <kgallowa@redhat.com> + + * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): New function. + * testsuite/libjava.jvmti/interp/getargssize.java: New test. + * testsuite/libjava.jvmti/interp/getargssize.h: Ditto. + * testsuite/libjava.jvmti/interp/getargssize.jar: Ditto. + * testsuite/libjava.jvmti/interp/getargssize.out: Ditto. + * testsuite/libjava.jvmti/interp/natgetargssize.cc: Ditto. + +2007-02-21 Gary Benson <gbenson@redhat.com> + + * java/util/GregorianCalendar.java: Removed. + * sources.am, Makefile.in: Rebuilt. + +2007-02-20 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (jdwpClassPrepareCB): Move class status stuff to ... + (getClassStatus): ... here. + +2007-02-20 Gary Benson <gbenson@redhat.com> + + * gnu/awt/xlib/XEventLoop.h: Regenerated. + * gnu/java/awt/peer/gtk/GThreadMutex.h: Likewise. + * gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h: + Likewise. + * gnu/java/rmi/server/UnicastConnectionManager.h: Likewise. + * java/lang/SecurityManager.h: Likewise. + * java/lang/Thread.h: Likewise. + * java/security/VMSecureRandom$Spinner.h: Likewise. + * java/util/concurrent/atomic/AtomicBoolean.h: Likewise. + * java/util/concurrent/atomic/AtomicInteger.h: Likewise. + * java/util/concurrent/atomic/AtomicLong.h: Likewise. + * java/util/concurrent/atomic/AtomicReference.h: Likewise. + * java/util/concurrent/ConcurrentHashMap$HashEntry.h: Likewise. + * java/util/concurrent/ConcurrentHashMap$Segment.h: Likewise. + * java/util/concurrent/ConcurrentLinkedQueue.h: Likewise. + * java/util/concurrent/ConcurrentLinkedQueue$Node.h: Likewise. + * java/util/concurrent/ConcurrentSkipListMap.h: Likewise. + * java/util/concurrent/ConcurrentSkipListMap$Index.h: Likewise. + * java/util/concurrent/ConcurrentSkipListMap$Node.h: Likewise. + * java/util/concurrent/Exchanger.h: Likewise. + * java/util/concurrent/Exchanger$Node.h: Likewise. + * java/util/concurrent/FutureTask$Sync.h: Likewise. + * java/util/concurrent/LinkedBlockingQueue$Node.h: Likewise. + * java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h: + Likewise. + * java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h: + Likewise. + * java/util/concurrent/locks/AbstractQueuedSynchronizer.h: Likewise. + * java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h: + Likewise. + * java/util/concurrent/ScheduledThreadPoolExecutor.h: Likewise. + * java/util/concurrent/SynchronousQueue.h: Likewise. + * java/util/concurrent/SynchronousQueue$TransferQueue.h: Likewise. + * java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h: + Likewise. + * java/util/concurrent/SynchronousQueue$TransferStack.h: Likewise. + * java/util/concurrent/SynchronousQueue$TransferStack$SNode.h: + Likewise. + * java/util/concurrent/ThreadPoolExecutor.h: Likewise. + * java/util/concurrent/ThreadPoolExecutor$Worker.h: Likewise. + * java/util/logging/ErrorManager.h: Likewise. + * javax/swing/plaf/basic/BasicSpinnerUI$2.h: Likewise. + * javax/swing/plaf/basic/BasicSpinnerUI$4.h: Likewise. + +2007-02-16 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (get_line_table): New function. + (handle_single_step): New function. + (jdwpSingleStepCB): New function. + (jdwpVMInitCB): Define a JVMTI single step + callback, but don't enable it until needed. + +2007-02-16 David Daney <ddaney@avtrex.com> + + * java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass + new parameter constructor. + (Thread(ThreadGroup, Runnable, String, long)): Same. + (Thread(String, boolean)): New constructor. + (Thread(Thread, ThreadGroup, Runnable, String): Add parameter + noInheritableThreadLocal, don't call + InheritableThreadLocal.newChildThread if set. + * java/lang/PosixProcess.java(ProcessManager()): Set + noInheritableThreadLocal in super. + * java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new + parameter to Thread constructor. + (_Jv_AttachCurrentThreadAsDaemon): Same. + * java/lang/Thread.h: Regenerate. + * classpath/lib/java/lang/Thread.class: Same. + * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same. + * classpath/lib/java/lang/PosixProcess.class: Same. + * classpath/lib/java/lang/Thread$State.class: Same. + * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same. + +2007-02-16 Kyle Galloway <kgallowa@redhat.com> + + * interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot + variables to maintain type info. + * interpret-run.cc: Add local variable info to frame in the debug + interpreter. + * jvmti.cc (getLocalFrame): New method. + (_Jv_JVMTI_GetLocalObject): New method. + (_Jv_JVMTI_GetLocallInt): New method. + (_Jv_JVMTI_GetLocalFloat): New method. + (_Jv_JVMTI_GetLocalLong): New method. + (_Jv_JVMTI_GetLocalDouble): New method. + (_Jv_JVMTI_SetLocalObject): New method. + (_Jv_JVMTI_SetLocalInt): New method. + (_Jv_JVMTI_SetLocalFloat): New method. + (_Jv_JVMTI_SetLocalLong): New method. + (_Jv_JVMTI_SetLocalDouble): New method. + +2007-02-16 Gary Benson <gbenson@redhat.com> + + * gnu/gcj/tools/gcj_dbtool/Main.java + (bytesToString): Don't lose zeros from within the digest. + +2007-02-15 Andrew Haley <aph@redhat.com> + + * Makefile.am (nat_source_files): Remove + java/lang/management/natVMManagementFactory.cc. + * java/lang/Thread.java (getStackTrace): Use reflection to call + the ManagementFactory. + * java/lang/management/VMManagementFactory.java: Remove native + methods. + * java/lang/management/natVMManagementFactory.cc: Deleted. + * sources.am: Regnerate. + * scripts/makemake.tcl: Add new "bcheaders" type. + Move java/lang/management and gnu/classpath/management to "bc". + Move gnu/java/lang/management to "bcheaders". + +2007-02-15 Kyle Galloway <kgallowa@redhat.com> + + * interpret.cc (_Jv_InterpMethod::check_handler): New method. + * interpret-run.cc: Change the catch section to report exception + events and to use the new check_handler method. + * include/java-interp.h (_Jv_InterpMethod): Add check_handler. + * gnu/gcj/jvmti/ExceptionEvent.java: New file. + * gnu/gcj/jvmti/ExceptionEvent.h: New file. + * gnu/gcj/jvmti/natExceptionEvent.cc: New file. + * libjava/classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: New + file. + * sources.am: Added ExceptionEvent.java. + * Makefile.am: Added natExceptionEvent.cc + * Makefile.in: Regenerated. + * include/Makefile.in: Regenerated. + * gcj/Makefile.in: Regenerated. + +2007-02-15 Johannes Schmidt <jschmidt@avtrex.com> + David Daney <ddaney@avtrex.com> + + * configure.ac: Create vm-tools-packages file. Add + gnu/gcj/tools/gc_analyze to standard.omit and vm-tools-packages. + Check for /proc/self/maps. + * Makefile.am (bin_PROGRAMS): Added gc-analyze. + (gc_analyze_SOURCES): New. + (gc_analyze_LDFLAGS): New. + (gc_analyze_LINK): New. + (gc_analyze_LDADD): New. + (gc_analyze_DEPENDENCIES): New. + (nat_source_files): Add gnu/gcj/util/natGCInfo.cc. + * Makefile.in: Regenerated. + * configure: Regenerated. + * include/config.h.in: Regenerated. + * sources.am: Regenerated. + * scripts/makemake.tcl: Don't include gc-analyze classes in libgcj. + * gnu/gcj/tools/gc_analyze/SymbolLookup.java: New. + * gnu/gcj/tools/gc_analyze/ObjectMap.java: New. + * gnu/gcj/tools/gc_analyze/MemoryMap.java: New. + * gnu/gcj/tools/gc_analyze/SymbolTable.java: New. + * gnu/gcj/tools/gc_analyze/BlockMap.java: New. + * gnu/gcj/tools/gc_analyze/BytePtr.java: New. + * gnu/gcj/tools/gc_analyze/ItemList.java: New. + * gnu/gcj/tools/gc_analyze/ToolPrefix.java: New. + * gnu/gcj/tools/gc_analyze/MemoryAnalyze.java: New. + * gnu/gcj/util/GCInfo.java: New. + * gnu/gcj/util/GCInfo.h: New. + * gnu/gcj/util/natGCInfo.cc: New. + * gnu/gcj/util/UtilPermission.java: New. + * gnu/gcj/util/UtilPermission.h: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolTable.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/BytePtr.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/ItemList.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap.class: New. + * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap.class: New. + * classpath/lib/gnu/gcj/util/GCInfo.class: New. + * classpath/lib/gnu/gcj/util/UtilPermission.class: New. + +2007-02-15 David Daney <ddaney@avtrex.com> + + * gnu/java/net/PlainSocketImpl.h: Regenerate. + * gnu/classpath/jdwp/VMVirtualMachine.h: Same. + * gnu/classpath/jdwp/VMFrame.h: Same. + * java/net/Socket.h: Same. + * java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h: Same. + +2007-02-15 Kyle Galloway <kgallowa@redhat.com> + + * defineclass.cc (_Jv_ClassReader::read_one_code_attribute): + Added LocalVariableTable attribute handling. + (_Jv_ClassReader::pool_Utf8_to_char_arr): New method. + * jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): New method. + * include/java-interp.h: Added local_var_table and + local_var_table_len fields to _Jv_InterpMethod. + (_Jv_InterpMethod::get_local_var_table): New method. + * testsuite/libjava.jvmti/interp/getlocalvartable.java: New test. + * testsuite/libjava.jvmti/interp/getlocalvartable.jar: New test. + * testsuite/libjava.jvmti/interp/getlocalvartable.out: Output + for new test. + * testsuite/libjava.jvmti/interp/getlocalvartable.h: New test. + * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc: New test. + +2007-02-15 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine (getFrames): Implement. + +2007-02-13 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (jdwpBreakpointCB): New function. + (jdwpVMInitCB): Define and enable the breakpoint + callback. + +2007-02-13 Andrew Haley <aph@redhat.com> + + * testsuite/libjava.lang/Divide_2.out + * testsuite/libjava.lang/Divide_2.java: New test. + +2007-02-12 Keith Seitz <keiths@redhat.com> + + * jvmti.cc (_Jv_JVMTI_GetStackTrace): Remove cast + from jthread to Thread *; it is no longer needed. + (_Jv_JVMTI_GetFrameCount): Likewise. + Fix small formatting typo. + +2007-02-12 Tom Tromey <tromey@redhat.com> + + * sources.am, Makefile.in: Rebuilt. + * java/lang/Socket.java: Removed override. + * java/lang/DatagramSocket.java: Removed override. + * gnu/java/net/PlainSocketImpl.java (localSocketAddress): New + field. + (getLocalAddress): New method. + * gnu/java/net/PlainDatagramSocketImpl.java + (PlainDatagramSocketImpl): Throws IOException. + * gnu/java/net/natPlainSocketImplPosix.cc (write): Remove + 'sizeof'. + (read): Likewise. + +2007-02-09 Jakub Jelinek <jakub@redhat.com> + + * java/util/VMTimeZone.java: Rewrite to handle both the old + 'TZif\0' format and the new one. + +2007-02-10 Andrew Haley <aph@redhat.com> + + PR java/30742 + * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): New. + (getCallingClass): Call GET_CALLING_CLASS. + (getCallingClassLoader): Likewise. + +2007-02-10 Mohan Embar <gnustuff@thisiscool.com> + + * configure: Rebuilt. + * configure.ac (GCJH): Reverted second part of patch of 2006-12-20. + +2007-02-10 Mohan Embar <gnustuff@thisiscool.com> + + * Makefile.in: Rebuilt. + * Makefile.am (BUILD_ECJ1): Unify the command for renaming ecjx to + the host's ecj1 executable. + +2007-02-09 Richard Henderson <rth@redhat.com> + + * sysdep/alpha/locks.h (read_barrier): New. + +2007-02-09 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/VMVirtualMachine.java + (_stepping_threads): New member. + * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: + Regenerated. + * gnu/classpath/jdwp/VMVirtualMachine.h: + Regenerated. + * gnu/claspath/jdwp/natVMVirtualMachine.cc + (get_request_step_filter): New function. + (DISABLE_EVENT): New macro. + (initialize): Initialize _stepping_threads. + (registerEvent): Implement EVENT_SINGLE_STEP. + (unregisterEvent): Likewise. + +2007-02-08 Keith Seitz <keiths@redhat.com> + + * sources.am: Regenerate. + * Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + * gcj/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + + * classpath/lib/javax/management/MBeanServerFactory.class: + Regenerate. + +2007-02-08 Kyle Galloway <kgallowa@redhat.com> + + * classpath/gnu/classpath/jdwp/processor/ + StackFrameCommandSet.java (executeGetValues): Pass jlong instead + of ByteBuffer. + (executeSetValues): Ditto. + (executeThisObject): Ditto. + * classpath/gnu/classpath/jdwp/processor/ + StackFrameCommandSet.class: Rebuilt. + * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: + Rebuilt. + * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt. + * classpath/lib/gnu/classpath/jdwp/exception/ + InvalidFrameException.java: New file. + * gnu/classpath/jdwp/VMFrame.java: Added field for thread of + frame. + (Constructor): New method. + * gnu/classpath/jdwp/VMFrame.h: Regenerated. + * gnu/classpath/jdwp/VMVirtualMachine.java + (getFrame): Changed ByteBuffer to jlong. + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (getFrame): Implement. + * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated. + +2007-02-08 Kyle Galloway <kgallowa@redhat.com> + + * include/java-interp.h (_Jv_InterpFrame): obj_ptr field added + to hold "this" pointer for frame. + (_Jv_InterpFrame::get_this_ptr): New method. + * interpret-run.cc: Copy the "this" pointer into obj_ptr. + +2007-02-07 Keith Seitz <keiths@redhat.com> + + * include/java-interp.h (_Jv_Frame::depth): + New function. + * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth. + +2007-02-07 Kyle Galloway <kgallowa@redhat.com> + + * jvmti.cc (CHECK_FOR_NATIVE_METHOD): New macro. + (_Jv_JVMTI_GetMaxLocals): New method. + * include/java-interp.h + (_Jv_InterpMethod::get_max_locals): New method. + +2007-02-01 Marco Trudel <mtrudel@gmx.ch> + + * jni.cc (_Jv_JNI_DeleteWeakGlobalRef): Check for NULL objects. + +2007-02-07 Tom Tromey <tromey@redhat.com> + + * testsuite/libjava.jni/init.c: New file. + * testsuite/libjava.jni/init.java: New file. + * testsuite/libjava.jni/init.out: New file. + * testsuite/libjava.jni/init.jar: New file. + * testsuite/libjava.jni/init.h: New file. + * testsuite/libjava.jni/init$NativeClass.h: New file. + +2007-02-07 Jakub Jelinek <jakub@redhat.com> + + PR libgomp/28468 + * configure: Regenerate. + +2007-02-06 Andrew Haley <aph@redhat.com> + + * scripts/makemake.tcl (emit_bc_rule): Set the source filename. + * sources.am: Rebuild. + +2007-02-05 Keith Seitz <keiths@redhat.com> + + * jvmti.cc (_envListLock): Change type to + ReentrantReadWriteLock. + (_Jv_JVMTI_DisposeEnvironment): Switch to read/write + lock. + (check_enabled_event): Likewise. + (_Jv_GetJVMTIEnv): Likewise. + (_Jv_JVMTI_Init): Likewise. + (_Jv_JVMTI_PostEvent): Likewise. + +2007-02-05 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (registerEvent): Implement EVENT_BREAKPOINT. + (unregisterEvent): Likewise. + (get_request_location): New function. + +2007-02-05 Matthias Klose <doko@debian.org> + + testsuite/Makefile.am (compile-tests): Fix typo. + testsuite/Makefile.in: Regenerate. + +2007-02-02 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrameCount): + Implment. + +2007-02-02 Jakub Jelinek <jakub@redhat.com> + + * configure.ac (libjava_cv_anon_version_script): New test. + (ANONVERSCRIPT): New AM_CONDITIONAL. + * configure: Rebuilt. + * Makefile.am (extra_ldflags_libjava): Link with -Wl,--version-script + if ANONVERSCRIPT. + * Makefile.in: Rebuilt. + (libgcj_la_DEPENDENCIES): Depend on libgcj.ver. + * libgcj.ver: New file. + +2007-02-01 David Daney <ddaney@avtrex.com> + + * scripts/makemake.tcl: Replace gnu/xml build with build of all + its subpackages. + * sources.am: Regenerate. + * Makefile.in: Regenerate. + +2007-02-01 Tom Tromey <tromey@redhat.com> + + * java/lang/ClassLoader.java (getResources): No longer final. + +2007-02-01 Tom Tromey <tromey@redhat.com> + + * java/util/logging/LogManager.java (loggers): Genericized. + (addLogger): Merged. + (findAncestor): Likewise. + (getLogger): Likewise. + (getLoggerNames): Genericized. + (reset): Merged. + (getLevelProperty): Likewise. + * java/lang/reflect/Method.java (getDeclaringClass): Genericized. + * java/lang/reflect/Constructor.java (getParameterTypes): + Genericized. + (getExceptionTypes): Likewise. + (newInstance): Likewise. + * java/lang/reflect/Array.java (newInstance): Genericized. + * java/lang/Object.java (getClass): Genericized. + * java/nio/charset/spi/CharsetProvider.java (charsets): + Genericized. + * java/text/Collator.java: Implement Comparable<Object>. + +2007-02-01 Tom Tromey <tromey@redhat.com> + + * java/util/Calendar.java: Implement Comparable<Calendar>. Update + comments. + (clear): Call complete. + (setTimeZone): Call computeTime, computeFields. + (compareTo): New method. + * java/nio/charset/Charset.java: Implement Comparable<Charset>. + (availableCharsets): Genericized. + (aliases): Likewise. + (compareTo): Changed argument type. + * java/lang/ClassLoader.java (loadClass): Genericized. + (findClass): Likewise. + (defineClass): Likewise. + (resolveClass): Likewise. + (findSystemClass): Likewise. + (setSigners): Likewise. + (findLoadedClass): Likewise. + (getResources): Likewise. + (findResources): Likewise. + (getSystemResources): Likewise. + (checkInitialized): New method. + * java/lang/Class.java (getCanonicalName): New method. + +2007-01-31 Keith Seitz <keiths@redhat.com> + + * include/jvmti-int.h (JVMTI): Declare member "enabled". + * jvmti.cc (JVMTI): Add member "enabled". + (_Jv_GetJVMTIEnv): Mark JVMTI enabled. + * interpret.cc (_Jv_InterpMethod::ncode): Use JVMTI::enabled + instead of gnu::classpath::jdwp::Jdwp::isDebugging. + (_Jv_CompileMethod): If JVMTI is enabled, use run_debug + instead of run to compile the method. + + * interpret-run.cc [DEBUG] (NEXT_INSN): Add JVMTI single step + notification. + +2007-01-31 Andreas Tobler <a.tobler@schweiz.org> + + * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Add + -shared-libgcc to the cxxflaglist for Darwin. + +2007-01-31 Tom Tromey <tromey@redhat.com> + + * scripts.am, Makefile.in: Rebuilt. + * scripts/makemake.tcl (gnu/javax/swing/text/html/parser): Build + as 'ordinary'. + (emit_ordinary_rule): New proc. + +2007-01-31 Keith Seitz <keiths@redhat.com> + + * testsuite/libjava.jvmti/getmethodname.h: New file. + * testsuite/libjava.jvmti/getmethodname.jar: New file. + +2007-01-31 Andrew Haley <aph@redhat.com> + + * prims.cc (_Jv_Abort): fflush (stderr). + * java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Abort. + +2007-01-31 Tom Tromey <tromey@redhat.com> + + * configure, Makefile.in: Rebuilt. + * configure.ac (JAR): Check for -@ feature. + * Makefile.am (libgcj-$(gcc_version).jar): Use find -prune. + +2007-01-31 Tom Tromey <tromey@redhat.com> + + PR libgcj/30606: + * configure, include/config.h.in: Rebuilt. + * configure.ac: Check for magic_t in magic.h. + * java/net/natVMURLConnection.cc: Use HAVE_MAGIC_T. + +2007-01-30 Tom Tromey <tromey@redhat.com> + + * Makefile.in: Rebuilt. + * Makefile.am (libgcj-$(gcc_version).jar): Rewrote. + +2007-01-30 Andreas Tobler <a.tobler@schweiz.org> + + * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use a + cast to print it right. + +2007-01-29 Kaloian Doganov <kaloian@doganov.org> + + PR libgcj/30600: + * gnu/gcj/convert/BytesToCharsetAdaptor.java (read): Fix call to + 'limit'. + +2007-01-29 Kyle Galloway <kgallowa@redhat.com> + + * include/java-interp.h: Added _Jv_Frame class and its two + subclasses _Jv_InterpFrame and _Jv_NativeFrame. Also moved + _Jv_FrameType from java-stack.h. + * include/java-stack.h: Removed _Jv_FrameType. + * java/lang/Thread.java: Added frame member to hold new + composite frame stack. + * java/lang/Thread.h: Regenerated. + * java/lang/Thread.class: Rebuilt. + * jni.cc (_Jv_JNIMethod::call): Push a frame onto the stack when + calling a JNI method. + * jvmti.cc (_Jv_JVMTI_GetStackTrace): New Method. + (_Jv_JVMTI_GetFrameCount): New method. + * stacktrace.cc (UnwindTraceFn): Modified to use new _Jv_Frame + classes. + * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test. + * testsuite/libjava.jvmti/interp/natgetstacktrace.cc: New test. + * testsuite/libjava.jvmti/interp/getstacktrace.h: New test. + * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test. + * testsuite/libjava.jvmti/interp/getstacktrace.out: Output file + for test. + +2007-01-29 Tom Tromey <tromey@redhat.com> + + * interpret.cc (run_debug): Remove comment. + (STOREA): Reformat. + (STOREI): Likewise. + (STOREF): Likewise. + (STOREL): Likewise. + (STORED): Likewise. + (POKEI): Likewise. + (run_normal_debug): Likewise. + (run_synch_object_debug): Likewise. + (run_class_debug): Likewise. + (run_synch_class_debug): Likewise. + (get1s): Likewise. + (get1u): Likewise. + (get2u): Likewise. + (get4): Likewise. + (NULLARRAYCHECK): Likewise. + (ARRAYBOUNDSCHECK): Likewise. + * interpret-run.cc (insn_target) <breakpoint>: Tidy. + +2007-01-29 Tom Tromey <tromey@redhat.com> + + * configure, Makefile.in: Rebuilt. + * Makefile.am (bin_SCRIPTS): Never install scripts/jar. + * configure.ac (BASH_JAR): Removed conditional. + (JAR): Prefer the jar found by AC_CHECK_PROGS. + +2007-01-29 Tom Tromey <tromey@redhat.com> + + * Makefile.in: Rebuilt. + * Makefile.am (interpret.lo): New target. Add -fwrap to + AM_CXXFLAGS. + +2007-01-29 Keith Seitz <keiths@redhat.com> + + * include/jvmti_md.h (_CLASSPATH_VM_JVMTI_TYPES_DEFINED): + Define. + [__GCJ_JNI_IMPL__]: Define our own JVMTI types when building + gcj. All jvmti object types now are defined to be their + corresponding java classes. + * jvmti.cc (_Jv_JVMTI_SuspendThread): Remove casting from + jthread to Thread*. + (_Jv_JVMTI_ResumeThread): Likewise. + (_Jv_JVMTI_InterruptThread): Likewise. + (_Jv_JVMTI_SetEventNotificationMode): Likewise. + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (jdwpClassPrepareCB): Likewise. + (jdwpThreadEndCB): Likewise. + (jdwpThreadStartCB): Likewise. + (jdwpVMInitCB): Likewise. + +2007-01-28 Michele Sandri <gpointorama@gmail.com> + + * gnu/java/nio/channels/natFileChannelWin32.cc + (lock): Implemented. + (unlock): Implemented. + +2007-01-27 Andreas Tobler <a.tobler@schweiz.org> + + PR libgcj/30513 + * configure.host: Add forgottten sysdep_dir to sparc. Add a flag to + libgcj_flags to undefine 'sun' at compile time. + * sysdep/sparc/locks.h (read_barrier): New functions for 32 and 64 bit + Sparc. + (write_barrier): Likewise. + +2007-01-27 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (getAllClassMethods): Move error handling to ... + (throw_jvmti_error): ... here. + (jdwpClassPrepareCB): New function. + (jdwpThreadEndCB): New function. + (jdwpThreadStartCB): New function. + (jdwpVMDeathCB): New function. + (jdwpVMInitCB): Define and enable callbacks for + ClassPrepare, ThreadEnd, ThreadStart, and VMDeath. + +2007-01-27 Jakub Jelinek <jakub@redhat.com> + + * Makefile.am (generic_header_files): Add $(inner_nat_headers). + * testsuite/Makefile.am (check-dejaGNU): Depend on compile-tests. + (MYGCJH): New variable. + (compile-tests): New goal. + * Makefile.in: Rebuilt. + * testsuite/Makefile.in: Rebuilt. + +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. + +2007-01-26 Tom Tromey <tromey@redhat.com> + + * Updated headers. + +2007-01-25 Tom Tromey <tromey@redhat.com> + + PR libgcj/29594: + * gnu/gcj/convert/Convert.java (main): Correctly handle missing + input or output encodings. Removed unused local variables. + +2007-01-25 Keith Seitz <keiths@redhat.com> + + * include/jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare. + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (_Jv_GetJDWP_JVMTIEnv): New function. + * gnu/classpath/jdwp/natVMMethod.cc (getName): Implement. + (getSignature): Implement. + (getModifiers): Implement. + +2007-01-25 Andrew Haley <aph@redhat.com> + + * configure, Makefile.in, include/config.h.in: Rebuilt. + * Makefile.am (libgcj_la_LIBADD): Removed $(LIBMAGIC). + * configure.ac: Don't check for libmagic. + * java/net/natVMURLConnection.cc (p_magic_open, p_magic_load, + p_magic_close, p_magic_buffer): New globals. + (init): Look up 'magic' functions. + (guessContentTypeFromBuffer): Updated. + +2007-01-25 Keith Seitz <keiths@redhat.com> + + * jvmti.cc (_Jv_JVMTI_GetMethodName): New function. + (_Jv_JVMTI_Interface): Define GetMethodName. + * testsuite/libjava.jvmti/getmethodname.java: New file. + * testsuite/libjava.jvmti/natgetmethodname.cc: New file. + * testsuite/libjava.jvmti/getmethodname.out: New file. + +2007-01-24 Kyle Galloway <kgallowa@redhat.com> + + * libjava/testsuite/libjava.jvmti/jvmti-interp.exp: New file. + * libjava/testsuite/libjava.jvmti/interp: New folder. + * libjava/testsuite/lib/libjava.exp (exec_gij): New Method. + +2007-01-24 Keith Seitz <keiths@redhat.com> + + * link.cc (_Jv_Linker::wait_for_state): Add JVMTI + CLASS_PREPARE notification. + +2007-01-24 Keith Seitz <keiths@redhat.com> + + * interpret.cc: Include gnu/gcj/jvmti/Breakpoint.h, + gnu/gcj/jvmti/BreakpointManager.h, jvmti.h, and jvmti-int.h + * interpret-run.cc: Implement insn_breakpoint. + +2007-01-24 Keith Seitz <keiths@redhat.com> + + * prims.cc (_Jv_RunMain): Send JVMTI event notifications + for VM_INIT and VM_DEATH instead of the JDWP notifications. + +2007-01-24 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (getAllClassMethods): Implement. + +2007-01-24 Andrew Haley <aph@redhat.com> + + * gnu/classpath/natVMStackWalker.cc: Call InitClass everywhere. + (getClassContext) Add a barrier to prevent GetStackWalkerStack() + from being sibcalled. + +2007-01-24 Andrew Haley <aph@redhat.com> + + * scripts/makemake.tcl (emit_bc_rule): Set the source filename. + * sources.am: Rebuild. + +2007-01-24 Andreas Krebbel <krebbel1@de.ibm.com> + + * exception.cc (parse_lsda_header, PERSONALITY_FUNCTION): Replaced + _Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t. + +2007-01-23 H.J. Lu <hongjiu.lu@intel.com> + + PR libgcj/30550 + * Makefile.am (ecjx_DEPENDENCIES): Add libgcj_bc.la if needed. + * Makefile.in: Regenerated. + +2007-01-22 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (getClassMethod): Implement. + +2007-01-22 Keith Seitz <keiths@redhat.com> + + * 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. + +2007-01-22 Tom Tromey <tromey@redhat.com> + + * configure: Rebuilt. + * configure.ac (GCJ): Reverted patch of 2006-12-20. + +2007-01-22 Tom Tromey <tromey@redhat.com> + + PR java/29812: + * testsuite/libjava.jni/pr29812.java: New file. + * testsuite/libjava.jni/pr29812_injar.java: New file. + * testsuite/libjava.jni/pr29812_injar.jar: New file. + * testsuite/libjava.jni/pr29812.out: New file. + * testsuite/libjava.jni/pr29812_injar.c: New file. + * testsuite/libjava.jni/pr29812_injar.h: New file. + * testsuite/libjava.jni/pr29812.jar: New file. + * testsuite/libjava.jni/pr29812.c: New file. + * testsuite/libjava.jni/pr29812.h: New file. + * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): + New proc. + (gcj_jni_invocation_test_one): Use it. + (gcj_jni_pr29812): New proc. + (gcj_jni_run): Use it. + * java/lang/natRuntime.cc (_load): Push a new system frame before + calling JNI_OnLoad. + * include/jvm.h (_Jv_JNI_PopSystemFrame): Declare. + (_Jv_GetJNIEnvNewFrameWithLoader): Likewise. + * jni.cc (struct _Jv_JNI_LocalFrame) <marker>: Now unsigned char. + <allocated_p>: Now bool. + <loader>: New field. + (_Jv_JNI_EnsureLocalCapacity): Updated. + (_Jv_JNI_NewLocalRef): Likewise. + (_Jv_JNI_NewLocalRef): Likewise. + (_Jv_JNI_PopLocalFrame): Likewise. + (_Jv_JNI_FindClass): Likewise. + (_Jv_GetJNIEnvNewFrame): Likewise. + (_Jv_JNI_AttachCurrentThread): Likewise. + (_Jv_GetJNIEnvNewFrameWithLoader): New function. + (_Jv_GetJNIEnvNewFrame): Use it. + * include/jni_md.h (_CLASSPATH_JNIENV_CONTENTS): Removed 'klass'. + +2007-01-22 Tom Tromey <tromey@redhat.com> + + * libtool-version: Bump current to 9. + +2007-01-22 Andrew Haley <aph@redhat.com> + + * sysdep/alpha/locks.h (write_barrier): New. + +2007-01-21 Matthias Klose <doko@debian.org> + + * Makefile.am (install-exec-hook): Use transformed name. + * Makefile.in: Regenerate. + +2007-01-19 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc: Mark unused parameters + in methods and reformat. + + * gnu/classpath/jdwp/natVMFrame.cc: Mark unused parameters with + MAYBE_UNUSED. + +2007-01-18 Keith Seitz <keiths@redhat.com> + + From Macro Trudel <mtrudel@gmx.ch>: + * gnu/classpath/jdwp/natVMVirtualMachine.cc (jdwpVMInitCB): + Use JNICALL. + +2007-01-18 Marco Trudel <mtrudel@gmx.ch> + + * jni.cc (_Jv_JNI_FindClass): Initialize class. + * testsuite/libjava.jni/findclass2.jar: New file. + * testsuite/libjava.jni/findclass2.h: New file. + * testsuite/libjava.jni/findclass2.java: New file + * testsuite/libjava.jni/findclass2.c: New file. + * testsuite/libjava.jni/findclass2.out: New file. + +2007-01-18 Tom Tromey <tromey@redhat.com> + + * configure: Rebuilt. + * configure.ac: Use multi_basedir instead of libgcj_basedir. + +2007-01-18 Gary Benson <gbenson@redhat.com> + + * gnu/java/nio/natVMPipeEcos.cc: + Renamed from gnu/java/nio/natPipeImplEcos.cc. + * gnu/java/nio/natVMPipePosix.cc: + Renamed from gnu/java/nio/natPipeImplPosix.cc. + * gnu/java/nio/natVMPipeWin32.cc: + Renamed from gnu/java/nio/natPipeImplWin32.cc. + * gnu/java/nio/natVMSelectorEcos.cc: + Renamed from gnu/java/nio/natSelectorImplEcos.cc. + * gnu/java/nio/natVMSelectorPosix.cc: + Renamed from gnu/java/nio/natSelectorImplPosix.cc. + * gnu/java/nio/natVMSelectorWin32.cc: + Renamed from gnu/java/nio/natSelectorImplWin32.cc. + * java/io/natVMObjectInputStream.cc: + Renamed from java/io/natObjectInputStream.cc. + * java/lang/natVMDouble.cc: + Renamed from java/lang/natDouble.cc. + * java/lang/natVMFloat.cc: + Renamed from java/lang/natFloat.cc. + * Makefile.am, configure.ac: Reflect the above. + * Makefile.in, configure: Rebuilt. + +2007-01-17 Andrew Haley <aph@redhat.com> + + * Makefile.in: Rebuilt. + * Makefile.am (ecjx_LDFLAGS): Pass -fbootclasspath. + +2007-01-17 Keith Seitz <keiths@redhat.com> + + * java/lang/natThread.cc (finish_): Add JVMTI ThreadEnd notification. + (_Jv_NotifyThreadStart): Add JVMTI ThreadStart notification. + +2007-01-16 Jack Howarth <howarth@bromo.med.uc.edu> + + * configure.ac: Use multi.m4 from aclocal rather than custom + code. Use multi_basedir instead libgcj_basedir. Test for + /proc/self/exe when not cross-compiling. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * Makefile.in: Regenerate. + +2007-01-17 Gary Benson <gbenson@redhat.com> + + * java/nio/natVMDirectByteBufferImpl.cc: + Renamed from java/nio/natDirectByteBufferImpl.cc. + * Makefile.am: Reflect the above. + * Makefile.in: Rebuilt. + +2007-01-17 Marco Trudel <mtrudel@gmx.ch> + + * jvmti.cc (_Jv_JVMTI_GetAllThreads): Now static. Use JNICALL. + Fixed indentation. Removed unused variable. + +2007-01-16 Tom Tromey <tromey@redhat.com> + + * java/lang/natThread.cc (finalize_native): Remove cast. + (_Jv_GetCurrentJNIEnv): Likewise. + * include/jvm.h (struct natThread) <jni_env>: Declare as + _Jv_JNIEnv*. + +2007-01-16 Keith Seitz <keiths@redhat.com> + + * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use + %#llx instead of %d for new_value. + * testsuite/libjava.jvmti/events.out: Update expected output. + * testsuite/libjava.jvmti/events.jar: Regenerate. + +2007-01-16 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc (DEFINE_CALLBACK): + New macro. + (ENABLE_EVENT): New macro. + (initialize): Define and enable JVMTI VM_INIT callback. + (jdwpVMInitCB): New function. + +2007-01-16 Kyle Galloway <kgallowa@redhat.com> + + * jvmti.cc (_Jv_JVMTI_GetAllThreads): New function. + * testsuite/libjava.jvmti/getallthreads.java: New test. + * testsuite/libjava.jvmti/natgetallthreads.cc: Ditto. + * testsuite/libjava.jvmti/getallthreads.out: Ditto. + * testsuite/libjava.jvmti/getallthreads.h: Ditto. + * testsuite/libjava.jvmti/getallthreads.jar: Ditto. + +2007-01-15 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/natVMVirtualMachine.cc (suspendThread): Use + java.lang.StringBuilder instead of java.lang.StringBuffer. + (resumeThread): Likewise. + +2007-01-15 Gary Benson <gbenson@redhat.com> + + * java/nio/MappedByteBuffer.java: Removed. + * sources.am, Makefile.in: Rebuilt. + +2007-01-15 Gary Benson <gbenson@redhat.com> + + * java/net/URLClassLoader.java: Removed. + * gnu/java/net/loader/Load_gcjlib.java: New file. + * gnu/gcj/runtime/BootClassLoader.java: Ensure core + URL handler is present in static executables. + * sources.am, Makefile.in: Rebuilt. + +2007-01-14 H.J. Lu <hongjiu.lu@intel.com> + + * Makefile.am (libgcj_la_LDFLAGS): Add + $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS). + (libgcj_tools_la_LDFLAGS): Likewise. + (libgcj_bc_la_LDFLAGS): Likewise. + * Makefile.in: Regenerated. + + * configure.ac: Use ACX_PROG_LD_GNU_SYMBOLIC. Set + LIBGCJ_LD_SYMBOLIC_FUNCTIONS to $SYMBOLIC_LDFLAGS. Set + libgcj_ld_symbolic to $SYMBOLIC_LDFLAGS if it isn't set. + Substitute LIBGCJ_LD_SYMBOLIC_FUNCTIONS. + * configure: Regenerated. + * aclocal.m4: Likewise. + * gcj/Makefile.in: Likewise. + * include/Makefile.in: Likewise. + * testsuite/Makefile.in: Likewise. + +2007-01-12 Kaz Kojima <kkojima@gcc.gnu.org> + + * sysdep/sh/locks.h (read_barrier): New. + (write_barrier): Likewise. + +2007-01-12 Andrew Haley <aph@redhat.com> + + * include/i386-signal.h: Rewrite to use rt_sigaction. + +2007-01-11 Andrew Haley <aph@redhat.com> + + * prims.cc (jdwpOptions) Fix deprecated cast from char[] constant + to char*. + * include/x86_64-signal.h (HANDLE_DIVIDE_OVERFLOW): Rewrite to fix + aliasing violation. + +2007-01-10 Tom Tromey <tromey@redhat.com> + + * gnu/gcj/xlib/*.h: New files. + * gnu/awt/xlib/*.h: Likewise. + * classpath/lib/gnu/gcj/xlib: New class files. + * classpath/lib/gnu/awt/xlib: Likewise. + +2007-01-10 Tom Tromey <tromey@redhat.com> + + * HACKING: Various updates. + +2007-01-10 Tom Tromey <tromey@redhat.com> + + * java/lang/natDouble.cc (toString): Added parens. + * gnu/gcj/io/shs.h (PROTO): Define. + * link.cc (resolve_pool_entry): Added missing braces. + +2007-01-10 H.J. Lu <hongjiu.lu@intel.com> + + PR libgcj/30424 + * sysdep/ia64/locks.h (read_barrier): New. + (write_barrier): New. + +2007-01-10 Gary Benson <gbenson@redhat.com> + + * java/net/URL.java: Removed. + * sources.am, Makefile.in: Rebuilt. + +2007-01-10 Matthias Klose <doko@debian.org> + + * Makefile.am (install-exec-hook): Support $(DESTDIR). + * Makefile.in: Regenerated. + +2007-01-05 Tom Tromey <tromey@redhat.com> + + * testsuite/libjava.loader/loader.exp (gcj_loader_run): Find + dummy.class in srcdir. + +2007-01-03 Tom Tromey <tromey@redhat.com> + + * testsuite/libjava.cni/cni.exp (gcj_cni_compile_cxx_to_o): Add -I + for srcdir. + +2007-01-03 Tom Tromey <tromey@redhat.com> + + * testsuite/*: Added many .jar and .h files. + * testsuite/libjava.special/special.exp + (gcj_special_try_compiler): New proc. + * testsuite/libjava.loader/loader.exp (gcj_loader_run): Don't + bytecompile source. Search for .jar files. + (gcj_loader_test_one): Don't look for MyLoader.java. + * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_test_one): Don't + bytecompile sources or build headers. + (gcj_jvmti_run): Look for .jar files. + * testsuite/libjava.jni/jni.exp (gcj_jni_run): Compile .jar + files. + (gcj_jni_test_one): Don't bytecompile sources or build headers. + Set classpath when invoking gij. + (gcj_jni_invocation_test_one): Likewise. + * testsuite/libjava.cni/cni.exp (gcj_cni_test_one): Don't build + headers or bytecompile sources. + (gcj_cni_run): Use .jar files, not .java files. + * testsuite/libjava.lang/lang.exp: Compile .jar files. + +2007-01-02 Tom Tromey <tromey@redhat.com> + + * configure: Rebuilt. + * configure.ac: Check for gjar. + +2007-01-02 Tom Tromey <tromey@redhat.com> + + * testsuite/libjava.jacks/jacks.exp: Removed. + * testsuite/libjava.jacks/jacks.xfail: Removed. + diff --git a/libjava/Makefile.in b/libjava/Makefile.in index ec33ea75912..c42c692cef7 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -167,11 +167,11 @@ libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS) @INTERPRETER_TRUE@ gnu/classpath/jdwp/util.lo \ @INTERPRETER_TRUE@ gnu/classpath/jdwp/value.lo gnu/gcj/jvmti.lo am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ - gnu/classpath/debug.lo gnu/gcj.lo gnu/gcj/convert.lo \ - gnu/gcj/io.lo gnu/gcj/runtime.lo gnu/gcj/util.lo \ - gnu/java/awt.lo gnu/java/awt/color.lo gnu/java/awt/dnd.lo \ - gnu/java/awt/font.lo gnu/java/awt/font/autofit.lo \ - gnu/java/awt/font/opentype.lo \ + gnu/classpath/debug.lo gnu/classpath/toolkit.lo gnu/gcj.lo \ + gnu/gcj/convert.lo gnu/gcj/io.lo gnu/gcj/runtime.lo \ + gnu/gcj/util.lo gnu/java/awt.lo gnu/java/awt/color.lo \ + gnu/java/awt/dnd.lo gnu/java/awt/font.lo \ + gnu/java/awt/font/autofit.lo gnu/java/awt/font/opentype.lo \ gnu/java/awt/font/opentype/truetype.lo gnu/java/awt/image.lo \ gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \ gnu/java/awt/peer/headless.lo gnu/java/awt/print.lo \ @@ -259,7 +259,8 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ javax/accessibility.lo javax/activity.lo javax/crypto.lo \ javax/crypto/interfaces.lo javax/crypto/spec.lo \ javax/management.lo javax/management/loading.lo \ - javax/management/openmbean.lo javax/naming.lo \ + javax/management/openmbean.lo javax/management/remote.lo \ + javax/management/remote/rmi.lo javax/naming.lo \ javax/naming/directory.lo javax/naming/event.lo \ javax/naming/ldap.lo javax/naming/spi.lo javax/net.lo \ javax/net/ssl.lo javax/print.lo javax/print/attribute.lo \ @@ -278,7 +279,7 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \ javax/swing/table.lo javax/swing/text.lo \ javax/swing/text/html.lo javax/swing/text/html/parser.lo \ javax/swing/text/rtf.lo javax/swing/tree.lo \ - javax/swing/undo.lo javax/transaction.lo \ + javax/swing/undo.lo javax/tools.lo javax/transaction.lo \ javax/transaction/xa.lo org/ietf/jgss.lo sun/awt.lo \ sun/misc.lo sun/reflect.lo sun/reflect/annotation.lo \ sun/reflect/misc.lo $(am__DEPENDENCIES_1) @@ -1352,6 +1353,10 @@ classpath/gnu/classpath/jdwp/value/ValueFactory.java \ classpath/gnu/classpath/jdwp/value/VoidValue.java gnu_classpath_jdwp_value_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_value_source_files))) +gnu_classpath_toolkit_source_files = \ +classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java + +gnu_classpath_toolkit_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_toolkit_source_files))) gnu_gcj_source_files = \ gnu/gcj/Core.java \ gnu/gcj/RawData.java \ @@ -1488,7 +1493,8 @@ classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java gnu_java_awt_font_source_files = \ classpath/gnu/java/awt/font/FontDelegate.java \ classpath/gnu/java/awt/font/FontFactory.java \ -classpath/gnu/java/awt/font/GNUGlyphVector.java +classpath/gnu/java/awt/font/GNUGlyphVector.java \ +classpath/gnu/java/awt/font/OpenTypeFontPeer.java gnu_java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_source_files))) gnu_java_awt_font_autofit_source_files = \ @@ -1533,6 +1539,8 @@ classpath/gnu/java/awt/font/opentype/truetype/ZonePathIterator.java gnu_java_awt_font_opentype_truetype_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_opentype_truetype_source_files))) gnu_java_awt_image_source_files = \ +classpath/gnu/java/awt/image/AsyncImage.java \ +classpath/gnu/java/awt/image/ImageConverter.java \ classpath/gnu/java/awt/image/ImageDecoder.java \ classpath/gnu/java/awt/image/XBMDecoder.java @@ -1544,6 +1552,7 @@ classpath/gnu/java/awt/java2d/AlphaCompositeContext.java \ classpath/gnu/java/awt/java2d/CubicSegment.java \ classpath/gnu/java/awt/java2d/ImagePaint.java \ classpath/gnu/java/awt/java2d/LineSegment.java \ +classpath/gnu/java/awt/java2d/PixelCoverage.java \ classpath/gnu/java/awt/java2d/Pixelizer.java \ classpath/gnu/java/awt/java2d/PolyEdge.java \ classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \ @@ -1554,6 +1563,8 @@ classpath/gnu/java/awt/java2d/ScanlineConverter.java \ classpath/gnu/java/awt/java2d/ScanlineCoverage.java \ classpath/gnu/java/awt/java2d/Segment.java \ classpath/gnu/java/awt/java2d/ShapeCache.java \ +classpath/gnu/java/awt/java2d/ShapeWrapper.java \ +classpath/gnu/java/awt/java2d/TextCacheKey.java \ classpath/gnu/java/awt/java2d/TexturePaintContext.java gnu_java_awt_java2d_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_java2d_source_files))) @@ -1690,12 +1701,11 @@ classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java gnu_java_awt_peer_x_source_files = \ classpath/gnu/java/awt/peer/x/GLGraphics.java \ -classpath/gnu/java/awt/peer/x/ImageConverter.java \ classpath/gnu/java/awt/peer/x/KeyboardMapping.java \ classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java \ classpath/gnu/java/awt/peer/x/XDialogPeer.java \ classpath/gnu/java/awt/peer/x/XEventPump.java \ -classpath/gnu/java/awt/peer/x/XFontPeer2.java \ +classpath/gnu/java/awt/peer/x/XFontPeer.java \ classpath/gnu/java/awt/peer/x/XFramePeer.java \ classpath/gnu/java/awt/peer/x/XGraphics2D.java \ classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \ @@ -1991,6 +2001,8 @@ gnu/java/nio/channels/FileChannelImpl.java gnu_java_nio_channels_header_files = $(patsubst %.java,%.h,$(gnu_java_nio_channels_source_files)) gnu_java_nio_charset_source_files = \ classpath/gnu/java/nio/charset/ByteCharset.java \ +classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java \ +classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java \ classpath/gnu/java/nio/charset/Cp424.java \ classpath/gnu/java/nio/charset/Cp437.java \ classpath/gnu/java/nio/charset/Cp737.java \ @@ -2347,6 +2359,7 @@ gnu_java_util_source_files = \ classpath/gnu/java/util/Base64.java \ classpath/gnu/java/util/DoubleEnumeration.java \ classpath/gnu/java/util/EmptyEnumeration.java \ +classpath/gnu/java/util/LRUCache.java \ classpath/gnu/java/util/WeakIdentityHashMap.java \ classpath/gnu/java/util/ZoneInfo.java @@ -5296,6 +5309,16 @@ classpath/javax/management/openmbean/TabularDataSupport.java \ classpath/javax/management/openmbean/TabularType.java javax_management_openmbean_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_openmbean_source_files))) +javax_management_remote_source_files = \ +classpath/javax/management/remote/NotificationResult.java \ +classpath/javax/management/remote/TargetedNotification.java + +javax_management_remote_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_source_files))) +javax_management_remote_rmi_source_files = \ +classpath/javax/management/remote/rmi/RMIConnection.java \ +classpath/javax/management/remote/rmi/RMIServer.java + +javax_management_remote_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_rmi_source_files))) javax_naming_source_files = \ classpath/javax/naming/AuthenticationException.java \ classpath/javax/naming/AuthenticationNotSupportedException.java \ @@ -6328,6 +6351,12 @@ classpath/javax/swing/undo/UndoableEdit.java \ classpath/javax/swing/undo/UndoableEditSupport.java javax_swing_undo_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_undo_source_files))) +javax_tools_source_files = \ +classpath/javax/tools/Diagnostic.java \ +classpath/javax/tools/DiagnosticListener.java \ +classpath/javax/tools/FileObject.java + +javax_tools_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_tools_source_files))) javax_transaction_source_files = \ classpath/javax/transaction/HeuristicCommitException.java \ classpath/javax/transaction/HeuristicMixedException.java \ @@ -7260,6 +7289,7 @@ all_packages_source_files = \ gnu/awt/j2d.list \ gnu/classpath.list \ gnu/classpath/debug.list \ + gnu/classpath/toolkit.list \ gnu/gcj.list \ gnu/gcj/convert.list \ gnu/gcj/io.list \ @@ -7450,6 +7480,8 @@ all_packages_source_files = \ javax/management.list \ javax/management/loading.list \ javax/management/openmbean.list \ + javax/management/remote.list \ + javax/management/remote/rmi.list \ javax/naming.list \ javax/naming/directory.list \ javax/naming/event.list \ @@ -7491,6 +7523,7 @@ all_packages_source_files = \ javax/swing/text/rtf.list \ javax/swing/tree.list \ javax/swing/undo.list \ + javax/tools.list \ javax/transaction.list \ javax/transaction/xa.list \ org/ietf/jgss.list \ @@ -7506,6 +7539,7 @@ ordinary_header_files = \ $(gnu_awt_j2d_header_files) \ $(gnu_classpath_header_files) \ $(gnu_classpath_debug_header_files) \ + $(gnu_classpath_toolkit_header_files) \ $(gnu_gcj_header_files) \ $(gnu_gcj_convert_header_files) \ $(gnu_gcj_io_header_files) \ @@ -7693,6 +7727,8 @@ ordinary_header_files = \ $(javax_management_header_files) \ $(javax_management_loading_header_files) \ $(javax_management_openmbean_header_files) \ + $(javax_management_remote_header_files) \ + $(javax_management_remote_rmi_header_files) \ $(javax_naming_header_files) \ $(javax_naming_directory_header_files) \ $(javax_naming_event_header_files) \ @@ -7734,6 +7770,7 @@ ordinary_header_files = \ $(javax_swing_text_rtf_header_files) \ $(javax_swing_tree_header_files) \ $(javax_swing_undo_header_files) \ + $(javax_tools_header_files) \ $(javax_transaction_header_files) \ $(javax_transaction_xa_header_files) \ $(org_ietf_jgss_header_files) \ @@ -7784,23 +7821,10 @@ bc_objects = \ org-xml.lo property_files = \ - classpath/resource/gnu/classpath/tools/appletviewer/messages.properties \ - classpath/resource/gnu/classpath/tools/common/Messages.properties \ - classpath/resource/gnu/classpath/tools/getopt/Messages.properties \ - classpath/resource/gnu/classpath/tools/jar/messages.properties \ - classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties \ - classpath/resource/gnu/classpath/tools/jarsigner/messages.properties \ - classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties \ - classpath/resource/gnu/classpath/tools/keytool/messages.properties \ - classpath/resource/gnu/classpath/tools/native2ascii/messages.properties \ - classpath/resource/gnu/classpath/tools/orbd/messages.properties \ - classpath/resource/gnu/classpath/tools/rmic/messages.properties \ - classpath/resource/gnu/classpath/tools/rmid/messages.properties \ - classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties \ - classpath/resource/gnu/classpath/tools/serialver/messages.properties \ - classpath/resource/gnu/classpath/tools/tnameserv/messages.properties \ + classpath/resource/gnu/java/awt/font/fonts.properties \ classpath/resource/gnu/java/awt/peer/gtk/font.properties \ classpath/resource/gnu/java/awt/peer/x/fonts.properties \ + classpath/resource/gnu/java/awt/peer/x/xfonts.properties \ classpath/resource/gnu/java/locale/LocaleInformation.properties \ classpath/resource/gnu/java/locale/LocaleInformation_aa.properties \ classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties \ @@ -8081,8 +8105,6 @@ property_files = \ classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \ classpath/resource/javax/swing/text/html/default.css \ classpath/resource/org/ietf/jgss/MessagesBundle.properties \ - classpath/resource/sun/rmi/rmic/messages.properties \ - classpath/resource/com/sun/tools/javac/messages.properties \ classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory \ classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \ classpath/resource/META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \ @@ -10424,6 +10446,12 @@ gnu/classpath/jdwp/value.list: $(gnu_classpath_jdwp_value_source_files) -include gnu/classpath/jdwp/value.deps +gnu/classpath/toolkit.list: $(gnu_classpath_toolkit_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/classpath/toolkit/*.class > gnu/classpath/toolkit.list + +-include gnu/classpath/toolkit.deps + gnu/gcj.list: $(gnu_gcj_source_files) @$(mkinstalldirs) $(dir $@) echo $(srcdir)/classpath/lib/gnu/gcj/*.class > gnu/gcj.list @@ -11692,6 +11720,18 @@ javax/management/openmbean.list: $(javax_management_openmbean_source_files) -include javax/management/openmbean.deps +javax/management/remote.list: $(javax_management_remote_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/management/remote/*.class > javax/management/remote.list + +-include javax/management/remote.deps + +javax/management/remote/rmi.list: $(javax_management_remote_rmi_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/management/remote/rmi/*.class > javax/management/remote/rmi.list + +-include javax/management/remote/rmi.deps + javax/naming.list: $(javax_naming_source_files) @$(mkinstalldirs) $(dir $@) echo $(srcdir)/classpath/lib/javax/naming/*.class > javax/naming.list @@ -11943,6 +11983,12 @@ javax/swing/undo.list: $(javax_swing_undo_source_files) -include javax/swing/undo.deps +javax/tools.list: $(javax_tools_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/tools/*.class > javax/tools.list + +-include javax/tools.deps + javax/transaction.list: $(javax_transaction_source_files) @$(mkinstalldirs) $(dir $@) echo $(srcdir)/classpath/lib/javax/transaction/*.class > javax/transaction.list diff --git a/libjava/aclocal.m4 b/libjava/aclocal.m4 index 5369251bd99..096db242f44 100644 --- a/libjava/aclocal.m4 +++ b/libjava/aclocal.m4 @@ -350,7 +350,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_PROG_GCJ],[ -AC_CHECK_PROGS(GCJ, [gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95], gcj) +AC_CHECK_PROGS(GCJ, gcj, gcj) test -z "$GCJ" && AC_MSG_ERROR([no acceptable gcj found in \$PATH]) if test "x${GCJFLAGS-unset}" = xunset; then GCJFLAGS="-g -O2" diff --git a/libjava/classpath/AUTHORS b/libjava/classpath/AUTHORS index 4efc086df61..be17176a6f0 100644 --- a/libjava/classpath/AUTHORS +++ b/libjava/classpath/AUTHORS @@ -39,7 +39,9 @@ Bryce McKinlay (bryce@waitaki.otago.ac.nz) Audrius Meskauskas (audriusa@Bioinformatics.org) Raif S. Naffah (raif@swiftdsl.com.au) Aaron M. Renn (arenn@urbanophile.com) +Ian Rogers (ian.rogers@manchester.ac.uk) Andrew Selkirk (aselkirk@sympatico.ca) +Robert Schuster (robertschuster@fsfe.org) Christian Thalinger (twisti@complang.tuwien.ac.at) Andreas Tobler (a.tobler@schweiz.org) Mario Torre (neugens@limasoftware.net) diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index 3b0c3c3e057..10a167cb08c 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -60,3686 +60,1191 @@ * scripts/Makefile.in: Regenerate. * tools/Makefile.in: Regenerate. -2008-04-18 Paolo Bonzini <bonzini@gnu.org> +2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org> - PR bootstrap/35457 - * aclocal.m4: Regenerate. - * configure: Regenerate. - -2008-04-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * lib/gen-classlist.sh.in: Avoid grepping each omission, by - building an awk script with a hash for literal files, and - awk regular expressions for the rest. - * configure.ac: Call AC_PROG_AWK. - * configure: Regenerate. - - * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name. - * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar) - (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv) - (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies - for these scripts, to trick automake into hiding the respective - rules for the programs below the CREATE_WRAPPERS conditional. - * aclocal.m4: Regenerate. - * configure: Likewise. - * Makefile.in: Likewise. - * native/jni/Makefile.in: Likewise. - * native/jni/classpath/Makefile.in: Likewise. - * native/jni/gstreamer-peer/Makefile.in: Likewise. - * native/jni/midi-dssi/Makefile.in: Likewise. - * native/jni/gconf-peer/Makefile.in: Likewise. - * native/jni/java-io/Makefile.in: Likewise. - * native/jni/native-lib/Makefile.in: Likewise. - * native/jni/java-util/Makefile.in: Likewise. - * native/jni/java-lang/Makefile.in: Likewise. - * native/jni/midi-alsa/Makefile.in: Likewise. - * native/jni/java-nio/Makefile.in: Likewise. - * native/jni/java-net/Makefile.in: Likewise. - * native/jni/xmlj/Makefile.in: Likewise. - * native/jni/qt-peer/Makefile.in: Likewise. - * native/jni/gtk-peer/Makefile.in: Likewise. - * native/Makefile.in: Likewise. - * native/jawt/Makefile.in: Likewise. - * native/fdlibm/Makefile.in: Likewise. - * native/plugin/Makefile.in: Likewise. - * resource/Makefile.in: Likewise. - * scripts/Makefile.in: Likewise. - * tools/Makefile.in: Likewise. - * doc/Makefile.in: Likewise. - * doc/api/Makefile.in: Likewise. - * lib/Makefile.in: Likewise. - * external/Makefile.in: Likewise. - * external/jsr166/Makefile.in: Likewise. - * external/sax/Makefile.in: Likewise. - * external/w3c_dom/Makefile.in: Likewise. - * external/relaxngDatatype/Makefile.in: Likewise. - * include/Makefile.in: Likewise. - * examples/Makefile.in: Likewise. - -2008-03-10 Jim Meyering <meyering@redhat.com> - - Don't leak upon failed realloc. - * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc, - free the original buffer before throwing the exception. + * configure.ac: Set version to 0.97.2. + * NEWS: Add 0.97.2. -2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> +2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org> - * doc/cp-hacking.texinfo: Fix spacing after periods. - * doc/cp-tools.texinfo: Likewise. - * doc/cp-vmintegration.texinfo: Likewise. + * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java: + Remove use of 1.5 language constructs. - * doc/cp-hacking.texinfo: Fix some typos. - * doc/cp-tools.texinfo: Likewise. - * doc/cp-vmintegration.texinfo: Likewise. +2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org> -2008-01-27 Bernhard Fischer <rep.dot.nop@gmail.com> + * tools/gnu/classpath/tools/common/ClasspathToolParser.java: + Fixed indentation and changed to use OptionException. + * tools/gnu/classpath/tools/getopt/OptionException.java: + (OptionException(String,Throwable)): Added. - * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment. - * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in - exception message. - -2008-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - - * doc/README.jaxp: Fix typos. - -2008-01-24 Tom Tromey <tromey@redhat.com> - - * resource/gnu/classpath/tools/native2ascii/messages.properties - (Native2ASCII.ReversedHelpCompat): New. - * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java - (createParser): Add -reverse. Update -reversed. +2008-06-03 Robert Schuster <robertschuster@fsfe.org> -2008-01-21 Luciano Chavez <lnx1138@us.ibm.com> + * tools/gnu/classpath/tools/jar/Main.java: + (run): Call different ClasspathToolParser.parse() variant. + (getParser): Changed return type to ClasspathToolParser. + * tools/gnu/classpath/tools/javah/GcjhMain.java: + (getParser): Changed return type to ClasspathToolParser. + * tools/gnu/classpath/tools/javah/Main.java: + (getParser): Changed return type to ClasspathToolParser. + * tools/gnu/classpath/tools/getopt/Parser.java: Make 'programName' + protected. + * tools/gnu/classpath/tools/common/ClasspathToolParser.java: + (parse(String[], FileArgumentCallback,boolean): New method. + (parse(String[], boolean): New method. + (parseFileList): New method. + (parseLine): New method. + (AtFileArgumentCallback): New inner class. - PR libgcj/34369: - * java/net/URI.java (relativize): Check initial segment for - trailing "/". +2008-06-03 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com> + * tools/gnu/classpath/tools/getopt/OptionException.java, + * tools/gnu/classpath/tools/jar/Main.java: + Revert previous changes to allow Schuster's patch to + do the same. - * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, - native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c - (isWindowUnderMouse): New method. - * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: - Regenerate. - * gnu/java/awt/peer/gtk/GtkComponentPeer.java - (getLocationOnScreen): Move WindowPeer section to... - * gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen): - New method. - * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java - (isWindowUnderMouse): Implement. - * java/awt/Component.java (getMousePosition): New method. - (getMousePositionHelper): Likewise. - (mouseOverComponent): Likewise. - * java/awt/Container.java (getMousePosition): New method. - (mouseOverComponent): Likewise. - * classpath/lib/java/awt/Component.class, - classpath/lib/java/awt/Component$BltBufferStrategy.class, - classpath/lib/java/awt/Container$GfxPaintAllVisitor.class, - classpath/lib/java/awt/Component$AccessibleAWTComponent - $AccessibleAWTFocusHandler.class, - classpath/lib/java/awt/Component$FlipBufferStrategy.class, - classpath/lib/java/awt/Container$GfxVisitor.class, - classpath/lib/java/awt/Component$AccessibleAWTComponent - $AccessibleAWTComponentHandler.class, - classpath/lib/java/awt/Container$AccessibleAWTContainer - $AccessibleContainerHandler.class, - classpath/lib/java/awt/Container.class, - classpath/lib/java/awt/Container$AccessibleAWTContainer.class, - classpath/lib/java/awt/Container$GfxPrintAllVisitor.class, - classpath/lib/java/awt/Component$AccessibleAWTComponent.class, - classpath/lib/java/awt/Container$GfxPaintVisitor.class, - classpath/lib/java/awt/Container$GfxPrintVisitor.class, - classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class, - classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class, - classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class, - classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class, - classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class, - classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer - $RepaintTimerTask.class: - Regenerate. - -2007-10-01 Alexandre Oliva <aoliva@redhat.com> - - * scripts/check_jni_methods.sh: Don't depend on diff -b ignoring - a single trailing whitespace. - -2007-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * java/util/EnumSet.java: - Documented. - (complementOf(EnumSet)): Fixed to flip only - the bits used by the enumset. - -2007-07-31 Dalibor Topic <robilad@kaffe.org> - - PR 32844 - * java/util/EnumSet.java: - Made class abstract per API spec. - (size, iterator, add, addAll, clear, contains, - containsAll, remove, removeAll, retainAll) Moved - into an anonymous inner class in of(T). - (allOf, noneOf, copyOf, of, range) Made more - implementation independent. - (of(T)) return an instance of an anonymous class - implementing EmptySet. - -2007-07-28 Matthias Klose <doko@ubuntu.com> - - * include/jvmti.h(jniNativeInterface): Rename type. - -2007-07-24 Tom Tromey <tromey@redhat.com> - - PR java/32862: - * java/util/EnumMap.java (get): Special case emptySlot. - (clone): Rewrote. - -2007-07-23 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * gnu/java/nio/charset/ISO_8859_1.java: Added ISO8859-1 to - aliases. - -2007-07-23 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * vm/reference/sun/misc/Unsafe.java (unpark): Changed signature to - be compatible with OpenJDK. - -2007-07-13 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/java2d/AbstractGraphics2D.java - (clip(Shape)): Call setClip when the clip changes. - (drawImage): Add translation. - (drawLine): Add translation. - * gnu/java/awt/peer/x/PixmapVolatileImage.java - (getPixmap): New method. - * gnu/java/awt/peer/x/XEventPump.java - (XEventPump): Name thread. Start as daemon thread. - * gnu/java/awt/peer/x/XGraphics2D.java - (rawDrawImage): Special handling for PixmapVolatileImage. - (rawDrawLine): Don't add translation here. This is done in - the superclass. - (rawFillRect): Don't add translation here. This is done in - the superclass. - (renderScanline): Added null check. - -2007-07-13 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/x/PixmapVolatileImage.java: New class. - * gnu/java/awt/peer/x/XGraphicsConfiguration.java - (createCompatibleImage(int,int)): Delegate to the 3-int overload. - (createCompatibleImage(int,int,int)): Implemented. Using - the ZPixmapDataBuffer for OPAQUE images. - (createCompatibleVolatileImage(int,int)): Delegate to the 3-int - overload. - (createCompatibleVolatileImage(int,int,int)): Implemented. Using - PixmapVolatileImage. - * gnu/java/awt/peer/x/XWindowPeer.java - (createImage): Return a PixmapVolatileImage (for now). - (createVolatileImage): Implemented, using PixmapVolatileImage. - * gnu/java/awt/peer/x/ZPixmapDataBuffer.java - New class. - -2007-07-10 Roman Kennke <roman@kennke.org> - - PR 32645 - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c - (copyPixbuf): Swap asserts. - -2007-07-09 Chris Burdess <dog@gnu.org> - - Fixes #32672 - * gnu/xml/dom/DomElement.java, - * gnu/xml/dom/DomNamedNodeMap.java: don't check owner in - setNamedNode when cloning. - -2007-07-08 Mario Torre <neugens@limasoftware.net> - - * gnu/javax/sound/sampled/gstreamer: new package hierarchy. - * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: new file. - * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java: - likewise. - * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java: likewise. - * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: likewise. - * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java: likewise. - * gnu/javax/sound/AudioSecurityManager.java: likewise. - * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: likewise. - * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java: likewise. - * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: likewise. - * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise. - * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in: - likewise. - * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in: - likewise. - * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider: - likewise. - * native/jni/gstreamer-peer/gstclasspathsrc.c: likewise. - * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise. - * native/jni/gstreamer-peer/gstinputstream.c: likewise. - * native/jni/gstreamer-peer/gstinputstream.h: likewise. - * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise. - * native/jni/gstreamer-peer/Makefile.am: likewise. - * native/jni/gstreamer-peer/.cvsignore: likewise. - * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: - likewise. - * include/Makefile.am: add gstreamer generated headers. - * configure.ac: add gstreamer sound backend configuration. - The backend is currently disabled by default. - * native/jni/Makefile.am: code to allow compilation of the gstreamer - sound backend. - * javax/sound/sampled/spi/MixerProvider.java (isMixerSupported): - indentation fixes. - * javax/sound/sampled/AudioFormat.java (toString): fix method to display - informations only when available. - * javax/sound/sampled/DataLine.java: - (Info.isFormatSupported): indentation fixes. - (Info): indentation fixes. - (Info.toString): indentation fixes. - (Info.matches): indentation fixes. - -2007-07-03 Tania Bento <tbento@redhat.com> +2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org> * java/lang/Integer.java: - (parseInt(String,int,boolean)): Throw NumberFormatException if - String is just "+". - -2007-07-01 Chris Burdess <dog@gnu.org> - - * gnu/xml/transform/WithParam.java: Handle case where content is - empty. - -2007-06-28 Tom Tromey <tromey@redhat.com> - - * include/jni.h: Fixed local variables. - -2007-06-26 Ito Kazumitsu <kaz@maczuka.gcd.org> - - * ChangeLog: Correction of a bug fix number. - -2007-06-25 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/ClasspathFontPeer.java - (canDisplay): Take character as integer codepoint. - * gnu/java/awt/peer/gtk/GdkFontPeer.java - (canDisplay): Take character as integer codepoint. - * gnu/java/awt/peer/gtk/GtkComponentPeer.java - (postMouseEvent): Use MouseEvent constructor with absolute coordinates - to avoid deadlock (over getLocationOnScreen()). - * gnu/java/awt/peer/gtk/VolatileImageGraphics.java - (getDeviceConfiguration): Fall back to the default configuration - if the component is not set. - * gnu/java/awt/peer/qt/QtFontMetrics.java - (canDisplay): Take character as integer codepoint. - * gnu/java/awt/peer/qt/QtFontPeer.java - (canDisplay): Take character as integer codepoint. - * gnu/java/awt/peer/x/XFontPeer2.java - (canDisplay): Take character as integer codepoint. - * include/gnu_java_awt_peer_qt_QtFontMetrics.h - (canDisplay): Take character as integer codepoint. - * java/awt/Font.java - (DIALOG): New constant. - (DIALOG_INPUT): New constant. - (MONOSPACED): New constant. - (SANS_SERIF): New constant. - (SERIF): New constant. - (Font(Font)): New constructor. - (canDisplay(char)): Use new canDisplay(int) method. - (canDisplay(int)): New method. - (hasLayoutAttributes): New method. - * java/awt/event/MouseEvent.java - (absX,absY): New fields. - (MouseEvent): New constructor with absolute coordinates. - (getLocationOnScreen): New method. - (getXOnScreen): New method. - (getYOnScreen): New method. - * native/jni/qt-peer/qtfontmetrics.cpp - (canDisplay): Take character as integer codepoint. - -2007-06-25 Mark Wielaard <mark@klomp.org> - - * native/jni/native-lib/cpnet.c - (cpnet_aton) Moved variable declaration of inet6_addr so it is - actually in the scope of its use. - -2007-06-25 Dalibor Topic <robilad@kaffe.org> - - * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c - (THROW_NO_IPV6): New macro. - (Java_gnu_java_net_VMPlainSocketImpl_bind6) Conditionally - build code if IPv6 facilities are available, otherwise - throw an error. - (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6, - Java_gnu_java_net_VMPlainSocketImpl_join6, - Java_gnu_java_net_VMPlainSocketImpl_leave6, - Java_gnu_java_net_VMPlainSocketImpl_joinGroup6, - Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6) - Use THROW_NO_IPV6. - - * native/jni/java-net/java_net_VMInetAddress.c - (Java_java_net_VMInetAddress_getHostByAddr, - Java_java_net_VMInetAddress_getHostByName, - Java_java_net_VMInetAddress_aton) Build IPv6 dependant - code conditionally on IPv6 facilities being available. - Switched if-else blocks where necessary to allow that. - - * native/jni/java-net/javanet.c - (_javanet_get_ip_netaddr) Build IPv6 dependant code conditionally - on IPv6 facilities being available. - - * native/jni/native-lib/cpnet.c - (cpnet_getHostByName, cpnet_getHostByAddr) Build IPv6 dependant - code conditionally on IPv6 facilities being available. - (cpnet_aton) Moved variable declaration of inet6_addr to the scope - of its use. Build IPv6 dependant code conditionally - on IPv6 facilities being available. - - * native/jni/native-lib/cpnet.h (cpnet_newIPV6Address, - cpnet_isIPV6Address, cpnet_IPV6AddressToBytes, - cpnet_bytesToIPV6Address): Make IPv6 dependant utility functions - available conditionally on IPv6 facilities being available. - -2007-06-25 Dalibor Topic <robilad@kaffe.org> - - * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): If the user passes an - explicit argument to configure, just use it, and don't attempt to - run AC_CHECK_PROG. This makes --with-javac="javac -J-Xmx512M" work. - -2007-06-25 Dalibor Topic <robilad@kaffe.org> - - * configure.ac: Check for MSG_WAITALL, since it does not exist on - Cygwin. - - * native/jni/java-nio/gnu_java_nio_VMChannel.c - (Java_gnu_java_nio_VMChannel_receive): Define MSG_WAITALL as 0 if - it does not exist. - -2007-06-24 Ito Kazumitsu <kaz@maczuka.gcd.org> - - Fixes bug #31927 - * native/jni/java-nio/gnu_java_nio_VMChannel.c - (Java_gnu_java_nio_VMChannel_available): Retry using fstat if ioctl - fails with ENOTTY. - -2007-06-22 Tania Bento <tbento@redhat.com> - - * java/util/Currency.java: - (getInstance (Locale)): Check that the country of the - locale given is valid. If it is not, throw an - IllegalArgumentException. - -2007-06-22 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/GLightweightPeer.java - * gnu/java/awt/peer/gtk/GdkRobotPeer.java - * gnu/java/awt/peer/gtk/GtkCompoonentPeer.java - * gnu/java/awt/peer/gtk/GtkFramePeer.java - * gnu/java/awt/peer/gtk/GtkWindowPeer.java - * gnu/java/awt/peer/qt/QtComponentPeer.java - * gnu/java/awt/peer/qt/QtFramePeer.java - * gnu/java/awt/peer/qt/QtWindowPeer.java - * gnu/java/awt/peer/swing/SwingComponentPeer.java - * gnu/java/awt/peer/swing/SwingWindowPeer.java - * gnu/java/awt/peer/x/XFramePeer.java: - Removed @Override annotations from some interface implementation - methods to ensure 1.5 compatibility. - -2007-06-22 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * include/jni.h (JNINativeInterface): Renamed to - JNINativeInterface_, added const to arguments where necessary. - (JNIInvokeInterface): Renamed to JNIInvokeInterface_. - -2007-06-22 Roman Kennke <roman@kennke.org> - - * sun/awt/CausedFocusEvent.java: New class. Needed for compatibility - in java.awt.peer. - * java/awt/Dialog.java - (ModalExclusionType): New enum. - (ModalityType): New enum. - * java/awt/Toolkit.java - (isModalExclusionTypeSupported): New abstract method. - (isModalityTypeSupported): New abstract method. - * java/awt/peer/ComponentPeer.java - (requestFocus): New method. - * java/awt/peer/FramePeer.java - (getBoundsPrivate): New method. - * java/awt/peer/RobotPeer.java - (dispose): New method. - * java/awt/peer/WindowPeer.java - (setAlwaysOnTop): New method. - (updateFocusableWindowState): New method. - (setModalBlocked): New method. - (updateMinimumSize): New method. - (updateIconImages): New method. - * gnu/java/awt/peer/GLightweightPeer.java - (requestFocus): New method. - * gnu/java/awt/peer/gtk/GdkRobotPeer.java - (dispose): New method. - * gnu/java/awt/peer/gtk/GtkComponentPeer.java - (requestFocus): New method. - * gnu/java/awt/peer/gtk/GtkFramePeer.java - (getBoundsPrivate): New method. - * gnu/java/awt/peer/gtk/GtkToolkit.java - (isModalExclusionTypeSupported): New method. - (isModalityTypeSupported): New method. - * gnu/java/awt/peer/gtk/GtkWindowPeer.java - (updateIconImages): New method. - (updateMinimumSize): New method. - (setModalBlocked): New method. - (updateFocusableWindowState): New method. - (setAlwaysOnTop): New method. - * gnu/java/awt/peer/headless/HeadlessToolkit.java - (isModalExclusionTypeSupported): New method. - (isModalityTypeSupported): New method. - * gnu/java/awt/peer/qt/QtComponentPeer.java - (requestFocus): New method. - * gnu/java/awt/peer/qt/QtFramePeer.java - (getBoundsPrivate): New method. - * gnu/java/awt/peer/qt/QtToolkit.java - (isModalExclusionTypeSupported): New method. - (isModalityTypeSupported): New method. - * gnu/java/awt/peer/qt/QtWindowPeer.java - (updateIconImages): New method. - (updateMinimumSize): New method. - (setModalBlocked): New method. - (updateFocusableWindowState): New method. - (setAlwaysOnTop): New method. - * gnu/java/awt/peer/swing/SwingComponentPeer.java - (requestFocus): New method. - * gnu/java/awt/peer/swing/SwingToolkit.java - (isModalExclusionTypeSupported): New method. - (isModalityTypeSupported): New method. - * gnu/java/awt/peer/swing/SwingWindowPeer.java - (updateIconImages): New method. - (updateMinimumSize): New method. - (setModalBlocked): New method. - (updateFocusableWindowState): New method. - (setAlwaysOnTop): New method. - * gnu/java/awt/peer/x/XFramePeer.java - (getBoundsPrivate): New method. - * gnu/java/awt/peer/x/XToolkit.java - (isModalExclusionTypeSupported): New method. - (isModalityTypeSupported): New method. - -2007-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * tools/Makefile.am: - Compile in com.sun.tools.javah - * tools/com/sun/tools/javah/Main.java: - Javah Sun-->Classpath wrapper. - -2007-06-21 Christian Thalinger <twisti@complang.tuwien.ac.at> + (parseInt(String, int, boolean)): Disallow "-+". - * javax/swing/text/html/parser/AttributeList.java (getValues): - Check if values is null. +2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-06-21 Roman Kennke <roman@kennke.org> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c: - Fix some type signatures. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c: - Fix intendation. - -2007-06-21 Jeroen Frijters <jeroen@frijters.net> - - * java/io/ObjectStreamClass.java (getClassUID): Return 0L for - enums and proxies. - -2007-06-21 Jeroen Frijters <jeroen@frijters.net> - - * java/net/URLClassLoader.java - (URLClassLoader(URL[],ClassLoader,URLStreamHandlerFactory): - Add factory to cache before calling addURLS. - (run): Don't call initCause() on ClassNotFoundException. - -2007-06-21 Jeroen Frijters <jeroen@frijters.net> - - Fixes #32356 - * java/lang/reflect/Array.java - (newInstance(Class,int[])): Call createMultiArray correctly. - (createMultiArray): Fixed dimensions processing order. - -2007-06-21 Jeroen Frijters <jeroen@frijters.net> - - * gnu/java/net/loader/URLLoader.java - (URLLoader(URLClassLoader,URLStreamHandlerCache, - URLStreamHandlerFactory,URL,URL)): Disabiguate CodeSource constructor - invocation. - * java/awt/AWTKeyStroke.java - (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile - error when compiled against OpenJDK java.util package. - * java/awt/AlphaComposite.java - (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile - error when compiled against OpenJDK java.util package. - -2007-06-21 Jeroen Frijters <jeroen@frijters.net> - - * gnu/java/security/Engine.java - (getInstance(String,String,Provider,Object[]): Use correctly cased - property name. - -2007-07-19 Keith Seitz <keiths@redhat.com> - - * classpath/gnu/classpath/jdwp/value/StringValue.java - (StringValue): Tag of StringValue is STRING not OBJECT. - (write): String values are written to the wire as tag byte - and object ID, not JdwpString. - -2007-07-19 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java - (executeInvokeMethod): No need to use ValueFactory any more; - MethodResult.getReturnedValue now returns a Value. - (executeNewInstance): Double-check that return result is - an ObjectValue; throw JdwpInternalErrorException if it is not. - (invokeMethod): Method IDs come from VMMethod, not VMIdManager. - Arguments are Values not Objects. - Use ValueFactory to create arguments. - Pass invocation options to VMVirtualMachine.executeMethod. - Don't do any thread suspend/resume work: VMVM.executeMethod - will take care of it. - * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java - (executeInvokeMethod): Method IDs come from VMMethod, not - VMIdManager. - Arguments should be Values instead of Objects. - Use ValueFactory to create Values. - Remove specific option handling and pass options to - VMVirtualMachine.executeMethod. - Remove thread suspension. - Use MethodResult.getReturnedValue to get method's result. - * gnu/classpath/jdwp/util/MethodResult.java - (returnedValue): Change type to Value. - (thrownException): Change type to Throwable. - (resType): Remove. - (MethodResult): New constructor. - (setReturnedValue): Remove. - (SetThrownException): Remove. - (getResultType): Remove. - (setResultType): Remove. - * gnu/classpath/jdwp/value/ObjectValue.java (getValue): - New method. - * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java - (executeMethod): Replace "nonVirtual" parameter with more - generic "options" parameter. - Replace java.lang.reflect.Method parameter with VMMethod. - Replace Objet[] parameter with Value[] parameter. - -2007-07-10 Dalibor Topic <robilad@kaffe.org> - - * configure.ac (FOUND_CACAO): Removed. - -2007-06-01 Robin Garner <robin.garner@anu.edu.au> - - Fixes #32162 - * gnu/xml/dom/DomNode.java: Correct concurrency problem when deep - cloning nodes. - -2007-05-30 Mark Wielaard <mark@klomp.org> - - Fixes bug #32030 reported by Steve.Blackburn@anu.edu.au - * native/jni/java-nio/gnu_java_nio_VMChannel.c - (Java_gnu_java_nio_VMChannel_open): Only set O_TRUNC when - CPNIO_APPEND is not, but O_WRONLY is set. - -2007-05-25 Robert Schuster <robertschuster@fsfe.org> + Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com> + * java/lang/Integer.java: + (parseInt(String,int,boolean)): Parse +x + as x, not -x. - * gnu/java/awt/peer/x/XGraphics2D.java: - (rawDrawLine): Added addition of translation. - (rawFillRect): Dito. - -2007-05-25 Robert Schuster <robertschuster@fsfe.org> - - * gnu/java/awt/font/opentype/OpenTypeFont.java: - (getGlyphIndex): Call getGlyphCharMap() instead of - accessing cmap field directly. - -2007-05-24 Ito Kazumitsu <kaz@maczuka.gcd.org> - - * native/jni/java-nio/gnu_java_nio_VMChannel.c - (Java_gnu_java_nio_VMChannel_available): Use fstat or select as an - alternative to ioctl. - * native/jni/native-lib/cpio.c(cpio_availableBytes): Corrected typo. - -2007-05-24 Roman Kennke <roman@kennke.org> - - * gnu/java/math/Fixed.java - (trunc): New method. - -2007-05-24 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/java2d/AbstractGraphics2D.java - (fillShape): Pass rendering hints to scanline converter. - * gnu/java/awt/java2d/ScanlineConverter.java - (ONE): New constant for the number 1 as fixed point number. - (Y_RESOLUTION): New constant for the Y resolution. - (doScanline): Handle the Y resolution. - (renderShape): Accept rendering hints. - (setResolution): Adjust maximum resolution with Y resolution. - * gnu/java/awt/java2d/ScanlineCoverage.java - (Iterator.handledPixelCoverage): New field. - (Iterator.next): Handle single pixel coverage. - (Iterator.hasNext): Handle single pixel coverage. - (Iterator.reset): Reset single pixel coverage. - (Range.toString): New method. - (Coverage.pixelCoverage): New field. - (add): Include Y (pixel) coverage. - (findOrInsert): Reset Y coverage in reused entries. - -2007-05-24 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/java2d/ScanlineCoverage.java - (Iterator): New class. - (Range): New class. - (Coverage.covDelta): Made field package private. - (Coverage.xPos): Made field package private. - (iterator): New field. Stores the iterator that is reused. - (ScanlineCoverage): Initialize iterator. - (assertion): Removed. - (isEmpty): Refined conditions. - (iterate): Return Iterator instance. - (next): Removed. This is done by the Iterator class now. - (test): Removed. - * gnu/java/awt/java2d/ScanlineConverter.java - (main): Removed. - * gnu/java/awt/peer/x/XGraphics2D.java - (renderScanline): Adjust to new coverage iterator stuff. - * gnu/java/awt/java2d/AbstractGraphics2D.java - (renderScanline): Adjust to new coverage iterator stuff. - -2007-05-23 Jeroen Frijters <jeroen@frijters.net> - - * java/util/Arrays.java - (copyOfRange(T,int,int)): Fixed to instantiate right array type. - -2007-05-22 Robert Schuster <robertschuster@fsfe.org> - - * gnu/java/awt/peer/x/XEventQueue.java: - (handleEvent): Calculate modifier value for mouse presse - and release events, clip button values. - (buttonToModifier): New method. - * gnu/java/awt/peer/x/KeyboardMapping.java: - (mapModifiers): Added cases for alt gr and the meta key. - -2007-05-22 Robert Schuster <robertschuster@fsfe.org> - - * gnu/java/awt/peer/x/XEventQueue.java: - (handleEvent): Use Input.event_window_id for - key presses/releases. - -2007-05-22 Robert Schuster <robertschuster@fsfe.org> - - * gnu/java/awt/peer/x/XEventQueue.java: - (handleEvent): Use Input.event_window_id instead of - Input.child_window_id for mouse presses/releases & - movement. - -2007-05-22 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/x/XFontPeer2.java - (XFontMetrics.charWidth): Use cached Point2D instance. - * gnu/java/awt/peer/x/XGraphics2D.java - (renderScanline): New method. Renders a scanline according to - the coverage information. - (setPaint): Call super, so that the state is updated correctly. - -2007-05-19 Andreas Tobler <a.tobler@schweiz.org> - - PR libgcj/31659 - * m4/ax_create_stdint_h.m4: Apply patch from PR31659. - -2007-05-18 Andreas Tobler <a.tobler@schweiz.org> - - * autogen.sh (have_libtool): Update comments for Darwin. - -2007-05-18 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/java2d/AbstractGraphics2D.java - (fillScanlineAA): Removed. Replaced by renderScanline(). - (fillScanline): Dito. - (renderScanline): New method. Renders a scanline according to - the coverage information from the scanline converter. - * gnu/java/awt/java2d/Pixelizer.java: New interface. Describes - the targets of the rasterizer. - * gnu/java/awt/java2d/ScanlineConverter.java - (alphaRes): Removed. - (ONE): Removed. - (scanlineCoverage): New field. Manages the coverage information. - (scanlinesPerPixel): Removed. - (scanlineXCov): Removed. - (scanlineYCov): Removed. - (slPix0): Removed. - (ScanlineConverter): Initialize scanline coverage data structure. - (clear): Also clear the scanline coverage. - (doScanline): Work with Pixelizer objects. - Use the ScanlineCoverage datastructure. - (main): New method. Performs some tests. - (renderShape): Work with pixelizer objects rather than directly - on AbstractGraphic2D. Adjust to use ScanlineCoverage datastructure. - (setResolution): Set resolution on ScanlineCoverage data too. - * gnu/java/awt/java2d/ScanlineCoverage.java: New class. Stores - and manages scanline coverage information. - -2007-05-14 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * java/rmi/MarshelledObject.java, - * java/rmi/activation/Activatable.java, - * java/rmi/activation/ActivationDesc.java, - * java/rmi/activation/ActivationGroup.java, - * java/rmi/activation/ActivationGroupDesc.java, - * java/rmi/activation/ActivationInstantiator.java, - * java/rmi/activation/ActivationMonitor.java, - * java/rmi/activation/Activator.java: - Genericized. - -2007-05-13 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-06-05 Andrew John Hughes <gnu_andrew@member.fsf.org> * configure.ac: - Check if nsl library is needed for inet_pton. - * tools/gappletviewer.in, - * tools/gjar.in, - * tools/gjarsigner.in, - * tools/gjavah.in, - * tools/gkeytool.in, - * tools/gnative2ascii.in, - * tools/gorbd.in, - * tools/grmic.in, - * tools/grmid.in, - * tools/grmiregistry.in, - * tools/gserialver.in, - * tools/gtnameserv.in: - Remove spaces around '=' in setting of datarootdir. - -2007-05-11 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java - (executeMethods): Remove cast to ClassReferenceTypeId. - -2007-05-11 Jeroen Frijters <jeroen@frijters.net> - - * java/lang/Float.java - (toString(float)): Call VMFloat instead of VMDouble. - (parseFloat): Call VMFloat. Fixed comment. - * vm/reference/java/lang/VMFloat.java - (toString, parseFloat): New methods. - NEWS: added note about these changes. - -2007-05-08 Kyle Galloway <kgallowa@redhat.com> - - * vm/reference/VMFrame.java (<init>): Add a parameter for the "this" - pointer of the frame. - -2007-05-08 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/x/XFontPeer.java: Removed. - * gnu/java/awt/peer/x/XGraphics.java: Removed - * gnu/java/awt/peer/x/XFontPeer2.java - (XLineMetrics.getDescent): Use cached idendity transform. - (XFontMetrics.cachedPoint): New field. Caches a Point2D instance - for reuse. - (XFontMetrics.getAscent): Use cached idendity transform. - (XFontMetrics.getDescent): Use cached idendity transform. - (XFontMetrics.getHeight): Use cached idendity transform. - (XFontMetrics.charWidth): Map character to glyph index first. - (XFontMetrics.stringWidth): Use cached idendity transform. - (IDENDITY): New static field. A reused AffineTransform instance. - -2007-05-08 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/font/FontDelegate.java - (getGlyphIndex): New method. Maps characters to their - glyph index in the font. - M gnu/java/awt/font/opentype/OpenTypeFont.java - (getGlyphIndex): New method. Maps characters to their - glyph index in the font. - -2007-05-08 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/java2d/AbstractGraphics2D.java - (AA_SAMPLING): Removed. - (alpha): Removed field. - (edgeTable): Removed field. - (fillScanlineAA): Removed obsolete method. - (drawPolyline): Implemented by using a GeneralPath. - (drawPolygon): Reset the cached polygon. - (fillPolygon): Reset the cached polygon. - (fillShape): Default to antialias on for text. - (rawDrawLine): Use ShapeCache. - (rawDrawRect): Use ShapeCache. - (rawFillRect): Use ShapeCache. - (fillScanlineAA): New method for antialiased rendering. - * gnu/java/awt/java2d/ScanlineConverter.java - (scanlinesPerPixel): New field. - (minX,maxX): New fields. - (scanlineYCov,scanlineXCov): New fields. - (slPix0): New field. - (alphaRes): New field. - (renderShape): Add antialiasing functionality. - (doScanline): Add antialiasing functionality. - (setResolution): Add antialiasing functionality. - (addShape): Determine span in X direction. - (fit): Fix thinko. - * gnu/java/awt/java2d/ShapeCache.java - (polyline): New field for caching polylines. - -2007-05-08 Roman Kennke <roman@kennke.org> - - * examples/gnu/classpath/examples/awt/HintingDemo.java - Add support for showing the original vs the hinted glyphs plus - a grid. - -2007-05-08 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * lib/Makefile.am: Print property files as well. - -2007-05-08 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * native/jni/gtk-peer/gtkpeer.c: - Added support for 64-bit architectures. + Check for --with-glibj too when disabling + the javac check. -2007-05-04 Chris Burdess <dog@gnu.org> - - Fixes PR #31814 - * gnu/xml/dom/DomDocument.java, - gnu/xml/dom/ls/SAXEventSink.java: Don't default attribute when mode is - #IMPLIED and value is not specified. - * gnu/xml/stream/XMLParser.java: Add debugging info. - -2007-05-03 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/Jdwp.java (notify): Rewrite to call - new array-based method. - (notify): New function. - (sendEvent): Rewrite to use sendEvents. - (sendEvents): New method. - * gnu/classpath/jdwp/event/Event.java (toPacket): Make static. - Change parameters to use arrays for events and requests. - Add suspendPolicy parameter. - Move per-event data transformation to... - (_toData): ... here. - * gnu/classpath/jdwp/transport/JdwpConnection.java - (sendEvent): Renamed to ... - (sendEvents): ... this. - Change parameters to use arrays for events and requests. - Add suspendPolicy parameter. - -2007-05-03 Thomas Fitzsimmons <fitzsim@redhat.com> - - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304 - * javax/swing/text/html/HTMLEditorKit.java - (getStyleSheet): Throw RuntimeException when style loading fails. - * lib/Makefile.am: Treat css files as a property files. - * javax/swing/text/html/default.css: Move to... - * resource/javax/swing/text/html/default.css: New file. - -2007-05-03 Andrew Haley <aph@redhat.com> - - * gnu/javax/management/Server.java (Server): Record the delegate. - (registerMBean): Notify the delegate. - (unregisterMBean): Likewise. - (notify): New method. - -2007-04-30 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/x/XLightweightPeer.java: Removed. - * gnu/java/awt/peer/x/XEventPump.java - (handleEvent): Improved handling of event ids to window mapping. - * gnu/java/awt/peer/x/XFontPeer2.java: - Load font.properties at startup. - (XLineMetrics.glyphVector): New field. - (XLineMetrics.XLineMetrics): Get glyphVector from font delegate. - (XLineMetrics.getHeight): Implemented using glyph vector. - (XLineMetrics.getLeading): Implemented. - (XFontPeer2): Change hardwired font to something more common. - (encodeFont): New methods, encodes a font to the font.properties - format. - (validName): New method. Checks and returns a valid font name. - * gnu/java/awt/peer/x/XGraphics2D.java - (foreground): New field. - (rawSetPixel): Removed. - (rawDrawLine): Draw a segment. - (rawSetForeground): Removed. - (fillScanline): New method. - (fillScanlineAA): New method. - (setPaint): Set the foreground color. - (fillShape): Synchronize super behaviour. - (rawDrawImage): Optimize XImage. - * gnu/java/awt/peer/x/XGraphicsDevice.java - (getDisplay): Improve creation of socket. - (createLocalSocket): New helper method to create a local socket. - * gnu/java/awt/peer/x/XImage.java - (getGraphics): Return an XGraphics2D. - * gnu/java/awt/peer/x/XToolkit.java - (getClasspathFontPeer): Use XFontPeer2. - (createComponent): Removed. - * gnu/java/awt/peer/x/XWindowPeer.java - (getGraphics): Return an XGraphics2D. - (show): Clear the window. - (getFontMetrics): Use XFontPeer2. - -2007-04-30 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/swing/SwingButtonPeer.java - (SwingButton.handleFocusEvent): New method. Handles focus events. - (SwingButton.requestFocus): Overridden to avoid loop into peer - and back. - (SwingButton.requestFocus(boolean)): Overridden to avoid loop - into peer and back. - * gnu/java/awt/peer/swing/SwingCheckboxPeer.java: New class. - Implements CheckboxPeer for Swing toolkit. - * gnu/java/awt/peer/swing/SwingComponent.java - (handleFocusEvent): New method. Handles focus events. - * gnu/java/awt/peer/swing/SwingComponentPeer.java - (getMinimumSize): Delegate to minimumSize(). - (getPreferredSize): Delegate to preferredSize(). - (handleEvent): Only paint when component is showing. Coalesce - paint event in any case. Reformat. Handle focus events. - (requestFocus): Post FOCUS_GAINED event. - (handleFocusEvent): New method. Delegate to SwingComponent - object. - * gnu/java/awt/peer/swing/SwingContainerPeer.java - (addHeavyweightDescendent): Make this protected. - (removeHeavyweightDescendent): Make this protected. - (getHeavyweightDescendents): New method. Returns all registered - heavyweights. - (handleKeyEvent): Delegate to peer's handleEvent() method. - * gnu/java/awt/peer/swing/SwingLabelPeer.java - (SwingLabel.handleFocusEvent): New method. - * gnu/java/awt/peer/swing/SwingListPeer.java - (SwingList.handleFocusEvent): New method. - * gnu/java/awt/peer/swing/SwingPanelPeer.java - Fix typo and import. - * gnu/java/awt/peer/swing/SwingTextAreaPeer.java - Wrap up text area in viewport. - * gnu/java/awt/peer/swing/SwingTextFieldPeer.java - (SwingTextField.handleFocusEvent): New method. - (SwingTextField.requestFocus): New method. - (SwingTextField.requestFocus(boolean)): New method. - -2007-04-27 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/event/EventManager.java - (getEventRequest): Rename to... - (getEventRequests): ...this. - Change return type to array of requests. - Construct a list of all matching events and return - them all. - * gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests - and send event notifications for all matching requests. - -2007-04-27 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java - (matches): Use Location.equals to determine equality. - * vm/reference/gnu/classpath/jdwp/VMMethod.java (equals): - New method. - * gnu/classpath/jdwp/util/Location.java (equals): - New method. - -2007-04-27 Roman Kennke <roman@kennke.org> - - * java/nio/CharViewBufferImpl.java - (slice): Fixed offset for slice buffer. - * java/nio/DoubleViewBufferImpl.java - (slice): Fixed offset for slice buffer. - * java/nio/FloatViewBufferImpl.java - (slice): Fixed offset for slice buffer. - * java/nio/IntViewBufferImpl.java - (slice): Fixed offset for slice buffer. - * java/nio/LongViewBufferImpl.java - (slice): Fixed offset for slice buffer. - * java/nio/ShortViewBufferImpl.java - (slice): Fixed offset for slice buffer. - -2007-04-25 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/gtk/GdkFontPeer.java, - * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, - * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java, - * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java, - * gnu/java/awt/peer/gtk/GtkGenericPeer.java, - * gnu/java/awt/peer/gtk/GtkToolkit.java: - Added fields to hold the native state. Added class initialization - things to fetch the JNI field IDs. - * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h, - * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h, - * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h, - * include/gnu_java_awt_peer_gtk_GtkToolkit.h: - Added / changed class init methods for field ID initialization. - * native/jni/classpath/Makefile.am: Removed native_state stuff. - * native/jni/classpath/native_state.c, - * native/jni/classpath/native_state.h: Removed. - * native/jni/gconf-peer/Makefile.am: Removed native_state stuff. - * native/jni/gtk-peer/Makefile.am: Removed native_state stuff. - * native/jni/gtk-peer/cairographics2d.h, - * native/jni/gtk-peer/gdkdisplay.h, - * native/jni/gtk-peer/gdkfont.h, - * native/jni/gtk-peer/GtkDragSourceContextPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c, - * native/jni/gtk-peer/gtk_jawt.c: - Removed native state stuff and replaced that with an approach - to store the native state of an object directly in that object. - * native/jni/gtk-peer/gtkpeer.c: New file. Implements the new native - state management. - * native/jni/gtk-peer/gtkpeer.h: Remove NSA stuff and added - prototypes for new native state handling. - -2007-04-23 Mark Wielaard <mark@klomp.org> - - * doc/www.gnu.org/newsitems.txt: Add 0.95. - * doc/www.gnu.org/downloads/downloads.wml: Likewise. - * doc/www.gnu.org/announce/20070423.wml: New file. - -2007-04-23 Mark Wielaard <mark@klomp.org> - - * NEWS: Add new 0.95 features. - -2007-04-23 Jeroen Frijters <jeroen@frijters.net> - - PR classpath/31646: - * java/util/Arrays.java (qsort): Corrected initial median calculation. - -2007-04-22 Dalibor Topic <robilad@kaffe.org> - - * Makefile.am (ACLOCAL_AMFLAGS): Add contents of env var - LOCAL_AUTORECONF_AMFLAGS to allow for systems where the user - has a mix of system & hacked-up autotools. - -2007-04-22 Dalibor Topic <robilad@kaffe.org> - - * autogen.sh: Removed unnecessary -I m4 flag. - -2007-04-19 Casey Marshall <csm@gnu.org> - - PR classpath/31626: - * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java - (createSocket): New method. - -2007-04-19 Dalibor Topic <robilad@kaffe.org> - - * tools/gappletviewer.in, - tools/gjar.in, - tools/gjarsigner.in, - tools/gjavah.in, - tools/gkeytool.in, - tools/gnative2ascii.in, - tools/gorbd.in, - tools/grmic.in, - tools/grmid.in, - tools/grmiregistry.in, - tools/gserialver.in, - tools/gtnameserv.in: Set datarootdir to fix a warning from - configure. - -2007-04-19 Dalibor Topic <robilad@kaffe.org> - - * INSTALL: Removed file generated by autogen.sh. - - * .cvsignore: Added INSTALL. - -2007-04-19 Dalibor Topic <robilad@kaffe.org> - - * INSTALL: Replaced by generic install file. - - * autogen.sh: Removed redundant and no longer necessary - sections. Use autoreconf. - -2007-04-19 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * m4/acinclude.m4 - (CLASSPATH_FIND_JAVAC): Allow detected JAVAC. - -2007-04-19 Dalibor Topic <robilad@kaffe.org> - - * lib/Makefile.am (propertyfiles, cssfiles, metafiles, - iconfiles) Removed variables, inlined them into resource - target to avoid use of shell construct and fix portability - warning from automake 1.10. - -2007-04-18 Tom Tromey <tromey@redhat.com> - - * tools/gnu/classpath/tools/javah/MethodHelper.java (print): - Changed arguments. Directly print method name. - * tools/gnu/classpath/tools/javah/ClassWrapper.java - (methodNameMap): New field. - (makeVtable): Initialize it. - (printMethods): Compute name for bridge targets. - -2007-04-18 Andrew Haley <aph@redhat.com> +2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org> - * gnu/java/rmi/server/UnicastConnectionManager.java - (UnicastConnectionManager(int port, RMIServerSocketFactory)): - Listen on "localhost", not localhost. + * tools/gnu/classpath/tools/getopt/OptionException.java: + (OptionException(String,Throwable)): New constructor. + * tools/gnu/classpath/tools/jar/Main.java: + (fileLists): New queue for streams containing lists of files. + (HandleFile.NotifyFile(String)): Check for '@' arguments + and add to stream queue. + (parsed(String)): Add stdin to queue instead of setting flag. + (readNames()): Work with the queue rather than just stdin. + (run(String[])): Always execute readNames(). -2007-04-18 Dalibor Topic <robilad@kaffe.org> +2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org> - * include/GtkDragSourceContextPeer.h: Removed, renamed to .. - - * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: - New file. + PR classpath/35482 + * java/lang/String.java: + (toLowerCase()): Fix calculation of number + of characters to copy. + (toLowerCaseTurkish()): Likewise. - * native/jni/gtk-peer/GtkDragSourceContextPeer.c: Include - gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h. +2008-04-18 Mario Torre <neugens@aicas.com> - * include/Makefile.am (GTKPEER_H_FILES): Renamed - GtkDragSourceContextPeer.h to - gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h - per current convention. Use portable construct to create - gtk and libxmlj peer headers. Depend on the java source code, - rather then the class files in order to avoid spurious - regeneration. + PR classpath/35974 + * java/util/logging/Logger.java: fix a deadlock and reformat code. + Now all the methods of the class get a lock on a static lock, this + avoids a lock when getLogger and log are used concurrently. -2007-04-18 Dalibor Topic <robilad@kaffe.org> +2008-04-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - * include/Makefile.am: Use portable construct to create - qt peer headers. Depend on the java source code, - rather then the class files in order to avoid spurious - regeneration. + * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name. + * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar) + (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv) + (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies + for these scripts, to trick automake into hiding the respective + rules for the programs below the CREATE_WRAPPERS conditional. -2007-04-18 Dalibor Topic <robilad@kaffe.org> +2008-04-18 Tom Tromey <tromey@redhat.com> - * include/Makefile.am: Use portable construct to create - alsa and dssi peer headers. Depend on the java source code, - rather then the class files in order to avoid spurious - regeneration. - -2007-04-18 Dalibor Topic <robilad@kaffe.org> + * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist + found. - * include/Makefile.am: Use portable construct to create - gconf peer header. Depend on the java source code, rather - the class file to avoid spurious regeneration. +2008-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> -2007-04-18 Dalibor Topic <robilad@kaffe.org> + * lib/gen-classlist.sh.in: Avoid grepping each omission, by + building an awk script with a hash for literal files, and + awk regular expressions for the rest. + * configure.ac: Call AC_PROG_AWK. - * include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h: - Removed empty header file. +2008-03-27 Mario Torre <neugens@aicas.com> + + * gnu/xml/stream/SAXParser.java (getProperty): throw + SAXNotRecognizedException instead of SAXNotSupportedException + after fall through all known properties. + * javax/xml/namespace/QName.java (valueOf): throw + IllegalArgumentException if string is null. + * java/util/concurrent/CopyOnWriteArrayList.java (lastIndexOf): + fixed indentation. + (indexOf): likewise. + +2008-03-26 Mario Torre <neugens@aicas.com> + + * java/util/concurrent/CopyOnWriteArrayList.java (SubList.set): + (SubList.clear): new method. + (SubList.checkMod): fix indentation. + (SubList.checkBoundsInclusive): likewise. + (SubList.checkBoundsExclusive): likewise. + (SubList): added synchronization. Now throw + IndexOutOfBoundsException instead of IllegalArgumentException + when index are out of range. + (SubList.size): added synchronization. + (SubList.get): likewise. + (SubList.listIterator): fixed indentation. + (SubList.set): added synchronization. Update the state of the storage + after modification. + (SubList.add): likewise. + (SubList.remove): likewise. + (SubList.addAll): likewise. + +2008-03-26 Mario Torre <neugens@aicas.com> + + * java/util/concurrent/CopyOnWriteArrayList.java (equals): removed + useless local variable. + (hashCode): new method. + +2008-03-25 Mario Torre <neugens@aicas.com> + + * java/util/concurrent/CopyOnWriteArrayList.java (clone): clone method + in CopyOnWriteArrayList should just do a shallow copy. Fixed. + (equals): new method, override from base class. + (toString): likewise. + +2008-03-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/util/concurrent/CopyOnWriteArrayList.java: + Don't extend AbstractList. + (containsAll(Collection)): Implemented. + (listIterator()): Likewise. + (subList(int,int)): Likewise. + +2008-03-31 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * doc/www.gnu.org/events/events.wml: + Correct layout and fix GSoC link. + +2008-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * doc/www.gnu.org/external.wml: + Corrected Jalopy tag name. + * doc/www.gnu.org/home.wml: + Update link to tasks. + * doc/www.gnu.org/announce/20080222.wml: + Correct IcedTea and builder links. + * doc/www.gnu.org/downloads/downloads.wml: + Add 0.97 and 0.97.1. + * doc/www.gnu.org/events/events.wml: + Fix links and add FOSDEMs/GSoC. + +2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/22883 + * doc/www.gnu.org/home.wml: + Fix a typo. + * doc/www.gnu.org/docs/docs.wml: + Fix links to point to current versions of + vmintegration and hacking, and add links to + tools. + +2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/22883 + * doc/www.gnu.org/home.wml: + Update home page to reflect current state of + affairs. + +2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * doc/www.gnu.org/newsitems.txt: + Add new announcement. + * doc/www.gnu.org/announce/20080311.wml: + Added. + * doc/www.gnu.org/cp-tools/.cvsignore: + Ignore generated HTML files. - * include/Makefile.am (QTPEER_H_FILES): - Removed gnu_java_awt_peer_qt_QtGraphicsEnvironment.h. +2008-03-10 Jim Meyering <meyering@redhat.com> -2007-04-18 Dalibor Topic <robilad@kaffe.org> + Don't leak upon failed realloc. + * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc, + free the original buffer before throwing the exception. - * native/jni/xmlj/xmlj_xpath.c: Don't include - gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h. +2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - * include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h: - Removed empty header file. + * doc/cp-hacking.texinfo: Fix some typos. + * doc/cp-tools.texinfo: Likewise. + * doc/cp-vmintegration.texinfo: Likewise. - * include/Makefile.am (XMLJ_H_FILES): Removed - gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h. +2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> -2007-04-18 Dalibor Topic <robilad@kaffe.org> + * doc/cp-hacking.texinfo: Fix spacing after periods. + * doc/cp-tools.texinfo: Likewise. + * doc/cp-vmintegration.texinfo: Likewise. - * include/gnu_java_awt_peer_qt_QtContainerPeer.h: Removed - empty header file. +2008-02-27 Andrew John Hughes <gnu_andrew@member.fsf.org> - * include/Makefile.am (QTPEER_H_FILES): Removed - gnu_java_awt_peer_qt_QtContainerPeer.h. + * configure.ac: + Check for sys/loadavg.h. + * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c: + Include sys/loadavg.h if found. -2007-04-17 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org> - * native/jni/java-net/local.c: - Fix import of FIONREAD. - * native/jni/java-nio/gnu_java_nio_VMChannel.c, - * native/jni/native-lib/cpnet.c: - Likewise. + * include/Makefile.am: Don't delete headers + when not rebuilding them. -2007-04-17 Dalibor Topic <robilad@kaffe.org> - - * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH): - Use AC_CHECK_PROGS and AC_MSG_ERROR. Check for - gjavah, gcjh-wrapper-4.1 and gcjh-4.1. Error out - when no javah implementation can be found. - -2007-04-17 Dalibor Topic <robilad@kaffe.org> - - * configure.ac (CLASSPATH_WITH_JAVAH): Only check if - the JNI headers need to be regenerated. - - * m4/acinclude.m4 (USER_SPECIFIED_JAVAH): Removed unused - conditional. - -2007-04-17 Dalibor Topic <robilad@kaffe.org> - - * lib/Makefile.am (JAVAH): Removed unused variable. - -2007-04-17 Casey Marshall <csm@gnu.org> - - PR classpath/31302: - * gnu/javax/net/ssl/provider/SSLSocketImpl.java (SSLSocketImpl): - Always make a new socket. - (bind, connect, getInetAddress, getLocalAddress, getPort, - getLocalPort, getRemoteSocketAddress, getLocalSocketAddress, - setTcpNoDelay, getTcpNoDelay, setSoLinger, getSoLinger, - setOOBInline, getOOBInline, setSoTimeout, getSoTimeout, - setSendBufferSize, getSendBufferSize, setReceiveBufferSize, - getReceiveBufferSize, setKeepAlive, getKeepAlive, setTrafficClass, - getTrafficClass, setReuseAddress, getReuseAddress, close, - shutdownInput, shutdownOutput, isConnected, isBound, isClosed, - isInputShutdown, isOutputShutdown): Always use - 'underlyingSocket'. - -2007-04-16 Dalibor Topic <robilad@kaffe.org> - - * configure.ac (AM_PROG_CC_C_O): Added to fix automake 1.10 - warning. - -2007-04-16 Dalibor Topic <robilad@kaffe.org> - - * native/plugin/Makefile.am (libgcjwebplugin_la_LDFLAGS): - Added AM_LDFLAGS for automake 1.10. - -2007-04-16 Tom Tromey <tromey@redhat.com> - - https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614 - * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java - (createSocket): Change order of delegation. - -2007-04-16 Andrew Haley <aph@redhat.com> - - * java/io/ObjectInputStream.java: (parseContent): Call (String, - Object) version of dumpElementln. - (dumpElementln(String, Object)): New method. - * java/io/ObjectOutputStream.java (writeObject): Call (String, - Object) version of dumpElementln. - (dumpElementln(String, Object)): New method. - -2007-04-16 Mark Wielaard <mark@klomp.org> - - Fixes bug #31590 - * java/net/URI.java (parseServerAuthority): Allow empty portStr. - -2007-04-16 Andrew Haley <aph@redhat.com> - - * org/omg/IOP/TaggedComponentHelper.java (read): Use - read_octet_array(), not read(). - (write): Use write_octet_array(), not write(). - - * org/omg/PortableServer/Servant.java (_get_delegate): Throw if no - delegate has been set. - -2007-04-16 Chris Burdess <dog@gnu.org> - - * gnu/xml/stream/XMLParser.java: Work around a problem with incorrectly - formatted file URLs. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * native/jni/java-lang/Makefile.am (libjavalang_la_LIBADD): - Fix portability warnings from automake 1.10. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * Makefile.am (EXTRA_DIST): Add ChangeLog-2006. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * native/target/.cvsignore: Removed. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * doc/Makefile.am: Fix portability warnings from - automake 1.10. - -2007-04-15 Roman Kennke <roman@kennke.org> - - * native/target/Linux/.cvsignore, - * native/target/generic/.cvsignore: Removed. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * depcomp, install-sh, missing, mkinstalldirs, - doc/texinfo.tex: Removed files generated by autogen.sh. - - * .cvsignore: Ignore generated files depcomp, install-sh, - missing, mkinstalldirs. - - * doc/.cvsignore: Ignore generated file doc/texinfo.tex. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * doc/cp-hacking.texinfo: Updated with information from - INSTALL file. Removed duplicate and outdated information. - Updated compiler information. Fixed versioning information - where entries diverged. Turned command, option, file and - URL strings into proper texinfo elements. - -2007-04-15 Dalibor Topic <robilad@kaffe.org> - - * configure.ac: Added support for Iceape libraries as - a substitute for Mozilla for Debian. - -2007-04-12 Roman Kennke <roman@kennke.org> - - * java/nio/Buffer.java - (array): New abstract method. - (hasArray): New abstract method. - (arrayOffset): New abstract method. - (isDirect): New abstract method. - -2007-04-12 Roman Kennke <roman@kennke.org> - - * java/nio/CharBuffer.java - (wrap(CharSequence,int,int)): Reimplemented using specialized - subclass. - * java/nio/CharSequenceBuffer.java: New class. Implements char - buffers that wrap CharSequences. - -2007-04-12 Francis Kung <fkung@redhat.com> - - PR 23887 - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (drawGlyphVector): Check for transforms before using optimized path. - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java - (FreetypeGlyphVector(FreetypeGlyphVector)): Initialize glyphTransforms array - to null and check for nulls in copied array. - (hasTransforms): New method. - (performDefaultLayout): Check for identity transform. - (setGlyphTransform): Check for equality before making changes. - -2007-04-12 Francis Kung <fkung@redhat.com> - - PR 23887 - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java - (getGlyphLogicalBounds): Fix number of coordinates in transform call. - (performDefaultLayout): Respect transformation in font attributes. - * javax/swing/plaf/basic/BasicProgressBarUI.java - (getStringPlacement): Handle vertical orientations. - (paintString): Space vertical text properly. - -2007-04-12 Francis Kung <fkung@redhat.com> - - PR 31539 - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c - (ft2_map): New static variable. - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState): Set up ft2_map. - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Use cached ft2_map. - -2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c - (clipboard_get_func): Call DeleteLocalRef. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c - (clipboard_targets_received): Likewise. - (clipboard_uris_received): Likewise. - -2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * LICENSE: Added m4/ax_func_which_gethostbyname_r.m4 license. - * configure.ac: Added AX_FUNC_WHICH_GETHOSTBYNAME_R check. - * m4/ax_func_which_gethostbyname_r.m4: New file. - * native/jni/native-lib/cpnet.c (cpnet_getHostByName): Check for - different number of arguments of gethostbyname_r. - -2007-04-12 Mark Wielaard <mark@klomp.org> - - * gnu/java/awt/peer/ClasspathFontPeer.java (LRUCache): New static - inner class. - (transCache): New static LRUChache field. - (copyTransformToAttrs): Check whether a TransformAttribute already - exists in the transCache for the given AffineTransform. - -2007-04-12 Mark Wielaard <mark@klomp.org> - - * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8. - -2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * native/jni/java-nio/javanio.c: Include fcntl.h instead of - sys/fcntl.h. - -2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at> - - * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed - warning on some compilers, e.g. MIPSpro. - -2007-04-11 Francis Kung <fkung@redhat.com> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Avoid unneeded - object reference. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): Unlock font. - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Remove redundant checks. +2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at> + * configure.ac: Only regenerate headers by + default if the headers aren't in the source tree. - * configure.ac: Added AC_C_INLINE. +2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-04-10 Mark Wielaard <mark@klomp.org> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c - (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile): - Destroy surface after it is used to create a cairo context. - -2007-04-09 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/ObjectName.java: - (parse(String)): Catch multiple wildcards, - initialise with an empty string (so null isn't - appended), and emit comma even when wildcard - ends the list. - (checkComponents()): Catch newlines. - (quote(String)): Handle newlines and quotes - correctly. - -2007-04-09 Francis Kung <fkung@redhat.com> - - PR 31311 - * gnu/java/awt/peer/gtk/ComponentGraphics.java - (dispose): Removed method. - (disposeSurface): Removed method. - * gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c - (Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface): Removed. - (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surface - after it is used to create a cairo context. - -2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/ObjectName.java: - (propertyValuePattern): New cache variable. - (parse(String)): Record in propertyListPattern - not propertyPattern and set propertyValuePattern. - (isPropertyPattern()): Semantics altered to be the - OR of isPropertyListPattern() and isPropertyValuePattern(). - (isPropertyListPattern()): Implemented. - (isPropertyValuePattern()): Implemented. - (isPropertyValuePattern(String)): Implemented. + * configure.ac: Only run javac check + if examples, tools and/or class library are + being built. + * scripts/check_jni_methods.sh.in: + Remove duplicates in the list of JNI methods + for when builddir==srcdir. -2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org> - * javax/management/ObjectName.java: - (parse(String)): Fix result of getKeyPropertyListString(). + * lib/Makefile.am: + Replace explicit mkinstalldirs with $(mkinstalldirs). -2007-04-07 Mark Wielaard <mark@klomp.org> - - * resource/META-INF/services/javax.xml.parsers.DocumentBuilderFactor, - resource/META-INF/services/javax.xml.parsers.SAXParserFactory, - resource/META-INF/services/javax.xml.parsers.TransformerFactory, - resource/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory, - resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList, - resource/META-INF/services/org.xml.sax.driver: Removed. - -2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org> - * javax/management/ObjectName.java: - (checkComponents()): Separate value and - key illegal characters to allow value wildcards. + * scripts/check_jni_methods.sh.in: + Search the source directory as well for + when headers are in the tarball. -2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org> - * javax/management/ObjectName.java - (parse(String)): Fix parsing where the wildcard - is juxtaposed between other pairs. + * Makefile.am: Replace tools with + $(TOOLSDIR). + * m4/acinclude.m4: Include option + to disable building the tools. -2007-04-06 Mark Wielaard <mark@klomp.org> - - * configure.ac (VERSION): Set to 0.96-pre. - -2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/MBeanAttributeInfo.java: - (serialVersionUID): Added. - * javax/management/MBeanFeatureInfo.java: - (writeObject(ObjectOutputStream)): Added for - later 1.6 support. - * javax/management/Notification.java: - (serialVersionUID): Added. - (Notification(String,Object,long,long)): Make - default message the empty string not null. - (Notification(String,Object,long,long,String)): - Set source explicitly. - (writeObject(ObjectOutputStream)): Added to match - Sun. +2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * Makefile.am: Use default makedistcheck + flags that test all optional dependencies. + * configure.ac: Set version to 0.97.2-pre. + * include/Makefile.am: Add header files to dist. + * lib/Makefile.am: Trick class files into being + built for dist, so headers can be generated. -2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org> - * java/util/Hashtable.java: - (putAllInternal(Map)): Remove redundant semi-colon. + * configure.ac: Set version to 0.97.1 + * NEWS: Add 0.97.1. -2007-04-06 Mark Wielaard <mark@klomp.org> +2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org> - * lib/mkcollections.pl.in: Add externalclasses. - * java/util/Collections.java: Unroll enhanced for loops. - * java/util/HashMap.java: Likewise. - * java/util/Hashtable.java: Likewise. - * java/util/TreeMap.java: Likewise. + PR classpath/35422 + * doc/api/Makefile.am: Include external/jsr166. -2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-03-04 Robert Schuster <robertschuster@fsfe.org> - * gnu/javax/management/Translator.java: - (getTypeName(type)): Move type name creation to its own method. - * javax/management/ObjectName.java: - (WILDCARD): Added. - -2007-04-04 Andrew Haley <aph@redhat.com> + * gnu/xml/stream/AttributeImpl.java: Changed type field to String. + (getDTDType): Changed return type to String. + * gnu/xml/stream/XMLEventAllocatorImpl.java: + (allocate): Removed wrapping of string in QName object. + * gnu/xml/stream/XMLEventFactoryImpl.java: + (createAttribute(String, String)): Removed wrapping of string in + QName object. + (createAttribute(QName, String)): Ditto. + (createAttribute(String, String, String, String)): Ditto. + * javax/xml/stream/events/Attribute.java: + (getDTDType): Changed return type to String. - * javax/management/ObjectName.java: - (serialVersionUID): Declare. - Make all fields transient. - (parse): Break out from constructor. - (writeObject, readObject): New methods. - -2007-04-05 Francis Kung <fkung@redhat.com> +2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org> - * include/Makefile.am: Remove old entry. - -2007-04-05 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/GtkToolkit.java - (createDragGestureRecognizer): Remove failing subClass call. + * tools/Makefile.am: + Distribute property files. -2007-04-05 Gary Benson <gbenson@redhat.com> +2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org> - * java/util/GregorianCalendar.java - (computeFields): Fix WEEK_OF_MONTH calculation. - -2007-04-05 Christian Thalinger <twisti@complang.tuwien.ac.at> - - PR classpath/22800: - * native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits) - (doubleToRawLongBits, longBitsToDouble): Swap the byte - ordering for little-endian arms without VFP. - -2007-04-05 Christian Thalinger <twisti@complang.tuwien.ac.at> + * NEWS: Set date for 0.97. + * configure.ac: Set version to 0.97 + +2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org> - * native/jni/java-net/java_net_VMNetworkInterface.c - [HAVE_IFADDRS_H && HAVE_GETIFADDRS] (free_netif_list): Added - #ifdef. - (getVMInterfaces): Added UNUSED argument attribute. - -2007-04-05 Christian Thalinger <twisti@complang.tuwien.ac.at> + PR classpath/33751: + * configure.ac: + Don't check for readdir_r. + * native/jni/native-lib/cpio.c: + (cpio_readDir): Remove use of readdir_r, zero errno + before starting and always leave a \0 at the end after + strncpy. + * vm/reference/java/io/VMFile.java: + (list(String)): Make synchronized. + +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> - * native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c, - native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c - [HAVE_ICONV] (createRawData, getData, infid, outfid): Added - #ifdef. - (openIconv): Added UNUSED argument attribute, so we can build with - -Werror. - (decode): Likewise. - (closeIconv): Likewise. - -2007-04-05 Mark Wielaard <mark@klomp.org> - - * autogen.sh: Recognize automake 1.10. - * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-portability. - * native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add AM_LDFLAGS. - * native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): Likewise. - * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS): Likewise. - * native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS): Likewise. - * native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS): Likewise. - * native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Likewise. - -2007-04-04 Mark Wielaard <mark@klomp.org> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c - (cp_gtk_image_get_pixbuf): Return NULL when pointer is NULL. - * gnu/java/awt/peer/gtk/GtkImage.java (setImage): Set loaded and - call deliver() after pixels have been set. - * gnu/java/awt/peer/gtk/GtkFramePeer.java (setIconImage): Only - set icon when image has been properly loaded. + * gnu/java/util/prefs/EventDispatcher.java: + Re-added. + * gnu/java/util/prefs/GConfBasedPreferences.java, + * gnu/java/util/prefs/gconf/GConfNativePeer.java, + * java/util/prefs/AbstractPreferences.java, + * native/jni/gconf-peer/GConfNativePeer.c: + Regress to 0.96 versions. -2007-04-04 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (drawCairoSurface): Made protected. - * gnu/java/awt/peer/gtk/ComponentGraphics.java - (cairoDrawGlyphVector): Removed method. - (cairoSetFont): Removed method. - (disposeNative): Removed method. - (drawCairoSurface): New method. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Added - locking. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont): Added locking. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Added locking. - -2007-04-04 Gary Benson <gbenson@redhat.com> - - * java/util/GregorianCalendar.java - (GregorianCalendar(TimeZone, Locale)): Remove redundant complete(). +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-04-04 Roman Kennke <roman@kennke.org> + * java/net/URI.java: + (compareTo(URI)): Change comparison sign so it + operates in the correct direction. + +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> - * java/nio/channels/spi/SelectorProvider.java - (inheritedChannel): Make method concrete and move default impl - to here. Perform security checks as mandated by the spec. - * gnu/java/nio/SelectorProviderImpl.java - (inheritedChannel): Removed. Default impl is in SelectorProvider. - -2007-04-04 Roman Kennke <roman@kennke.org> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c - (init_glib_threads): Create global reference on lock object. - -2007-04-04 Roman Kennke <roman@kennke.org> - - * java/awt/Frame.java - (weakFrames): Make private. - (weakFramesQueue): New field. A reference queue to collect - GCed references. - (getFrames): Only do one iterations to avoid collecting null - references. - (hasDisplayableFrames): New helper method. Checks if there - are any displayable frames. This is used by the event queue - shutdown check. - (noteFrame): Clean up GCed frames in the list. - * java/awt/EventQueue.java - (isShutdown): Move frame checking code into Frame. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * java/lang/System.java - (inheritedChannel): New method, wraps - SelectorProvider.inheritedChannel(). - * java/nio/channels/spi/SelectorProvider.java - (inheritedChannel): New abstract method. - * gnu/java/nio/SelectorProviderImpl.java - (inheritedChannel): New method, return null as default. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * java/nio/ByteOrder.java - (nativeByteOrder): Let this fail when the corresponding - property is not set properly. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * javax/swing/plaf/basic/BasicTreeUI.java - (getPathBounds): Consider the tree's insets. Added a bunch of - null checks. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * javax/swing/plaf/basic/BasicLabelUI.java - (cachedInsets): New field. Used for reusing the insets instance. - (getFontMetrics): New helper method for fetching a suitable - FontMetrics object. - (getPreferredSize): Use new helper method for font metrics. - (paint): Only do something if we have an icon or text. - Use cached Insets instance and new font metrics helper. - (paintDisabledText): Don't restore the graphics' color. - (paintEnabledText): Don't restore the graphics' color. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * javax/swing/plaf/metal/MetalButtonUI.java - (paintButtonPressed): Fill the whole button not only visibleRect. - * javax/swing/plaf/metal/MetalLookAndFeel.java - (LAF_defaults): Removed. - (getDefaults): Always fetch super's defaults. - * javax/swing/plaf/metal/MetalMenuBarUI.java - (update): Don't leave 2 pixel gap. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * native/target/.cvsignore, - * native/target/Linux/.cvsignore, - * native/target/generic/.cvsignore: Some new ignores. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/peer/gtk/GThreadMutex.java, - * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, - * include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h, - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c, - * native/jni/gtk-peer/gthread-jni.c, - * native/jni/gtk-peer/gthread-jni.h: Removed. - * native/jni/gtk-peer/Makefile.am: Removed obsolete entries - for removed files. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c - Removed unused bits from gthread-jni.c. - -2007-04-03 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java - (getGlyphs(int[], int[], long[])): Return void. - -2007-04-03 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/value/ArrayValue.java: New file. - -2007-04-03 Roman Kennke <roman@kennke.org> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c - (global_lock): New global variable that holds the object reference - to the global GTK lock. - (init_glib_threads): Add lock argument. Use - gdk_threads_set_lock_functions to replace GTK's locking function - with two callbacks that allow reentrant locking, based on - JNI's MonitorEnter() and MonitorExit(). - (jni_lock_cb): New callback function for GTK locking. - (jni_unlock_cb): New callback function for GTK unlocking. - (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Add lock argument. - Call init_glib_threads() with lock object. - * include/gnu_java_awt_peer_gtk_GtkToolkit.h - Regenerated. - * gnu/java/awt/peer/gtk/GtkToolkit.java - (GTK_LOCK): New static field. This is used as the global lock for - GTK. - (gtkInit): Add lock parameter. - (static_init): Initialize global lock and call gtkInit() with - that lock. - -2007-04-02 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java - (fontSet): Initialize to null. - (FreetypeGlyphVector(Font, int[], FontRenderContext)): Populate fontSet - array with default font if needed. - (FreetypeGlyphVector(FreetypeGlyphVector)): Clone all fields. - (getNativeFontPointer): New native method. - * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Regenerated. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer): - New function. - -2007-04-02 Francis Kung <fkung@redhat.com> - - * INSTALL: Document known bug in at-spi, atk, and gail packages prior to - version 1.18.0. - -2007-04-02 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (cairoDrawGlyphVector): Added parameter. - (drawGlyphVector): Retrieve and pass fontset parameter. - * gnu/java/awt/peer/gtk/ComponentGraphics.java - (cairoDrawGlyphVector): Added parameter. - (lock): Removed unnecessary cast. - (unlock): Removed unnecessary cast and explicitly set to ONE variable. - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java - (fontSet): New field. - (dispose): New native method. - (finalize): New method. - (getGlyphFonts): New method. - (getGlyphOutline): Pass fontSet parameter to native method. - (getGlyphOutlineNative): Added parameter. - (getGlyphs): Pass extra parameters to native method. - (getGlyphsNative): Added parameters. - (getKerning): Added fontSet parameter. - (getMetricsNative): Added fontSet parameter. - (performDefaultLayout): Only check kerning if glyphs use the same font. - (setupGlyphMetrics): Pass extra parameters to native methods. - * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h, - * include/gnu_java_awt_peer_gtk_FreetypGlyphVector.h: Regenerated. - * native/jni/gtk-peer/gdkfont.h: Enable pango engine. - (peerfont): Add variable for fontset. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Accept - array of font pointers to use when drawing glyphs. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c - (getFontSet): New function. - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose): New function. - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative): - Added and use new fontSet parameter. - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Use pango - to retrieve glyphs and estimate font, if the current font does not contain - a requested glyph. - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning): Added and use - new fontSet parameter. - (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative): Added - and use new fontSet parameter. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose): Free fontset. - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Load fontset. - -2007-04-02 Andrew Haley <aph@redhat.com> - - * javax/management/ObjectName.java: Handle 0-length names. - * javax/management/MBeanServerFactory.java: Use the domain that - we've been passed, not the fixed string "DefaultDomain". - -2007-04-01 Mark Wielaard <mark@klomp.org> - - * org/omg/CORBA/DynAny.java: Mark as deprecated. - * org/omg/CORBA/DynArray.java: Likewise. - * org/omg/CORBA/DynEnum.java: Likewise. - * org/omg/CORBA/DynFixed.java: Likewise. - * org/omg/CORBA/DynSequence.java: Likewise. - * org/omg/CORBA/DynStruct.java: Likewise. - * org/omg/CORBA/DynUnion.java: Likewise. - * org/omg/CORBA/DynValue.java: Likewise. - * org/omg/CORBA/ORB.java (create_basic_dyn_any): Likewise. - (create_dyn_any): Likewise. - (create_dyn_array): likewise. - (create_dyn_enum): Likewise. - (create_dyn_sequence): Likewise. - (create_dyn_struct): Likewise. - (create_dyn_union): Likewise. - -2007-04-01 Andrew John Hughes <gnu_andrew@member.fsf.org> + * m4/acinclude.m4: + Remove check for gcjh. + * m4/ac_prog_javac.m4: + Check for ecj-3.2 and ecj-3.3, and add + -Xlint:unchecked for javac. + +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> * gnu/javax/management/Translator.java: - (fromJava(Object[],Method)): Use the array from the - parameter not the newly created one... - (fromJava(Object, Type)): Support MXBeans. - * javax/management/JMX.java: - (newMXBeanProxy(MBeanServerConnection,ObjectName,Class)): - Call newMXBeanProxy rather than newMBeanProxy. - * javax/management/StandardMBean.java: - (setAttribute(Attribute)): Use InvocationTargetException - as cause. + (fromJava(Object[],Method)): Don't cast to Class<?>. + (fromJava(Object,Type)): Use ParameterizedType + and don't assume that List will work for Sets. -2007-03-31 Jeroen Frijters <jeroen@frijters.net> +2008-02-21 David Walluck <david@jpackage.org> - PR classpath/31402: - * java/util/concurrent/CopyOnWriteArrayList.java - (remove): Fixed ArrayIndexOutOfBoundsException when index == 0. - -2007-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/openmbean/CompositeDataInvocationHandler.java: - New file. + PR classpath/27204: + * m4/acinclude.m4: + (REGEN_WITH_JAY): Handle 'yes' as a default, + not a directory and give more user-friendly output. -2007-03-30 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/util/VariableTable.java: Make argCnt and slots ints. - (write): Replace writeLong with writeInt for above. - -2007-03-30 Tom Tromey <tromey@redhat.com> - - PR libgcj/29869: - * gnu/java/util/jar/JarUtils.java (log): Commented out. - (readSFManifest): Don't log. - -2007-03-29 Tom Tromey <tromey@redhat.com> - - PR libgcj/29869: - * java/util/logging/LogManager.java (readConfiguration): Handle - comma-separated 'handlers'. Don't try to add a non-existing - handler. - -2007-03-29 Keith Seitz <keiths@redhat.com> +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/java/util/regex/REException.java: + (REException(String,Throwable,int,int)): Added + constructor which also includes the cause. + * gnu/java/util/regex/RETokenNamedProperty.java: + (getHandler(String)): Add support for \p{javaX}. + (JavaCategoryHandler): New class. + +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> - * gnu/classpath/jdwp/event/ThreadStartEvent.java (Event): - Event type is "THREAD_START" not "THERAD_END". + PR classpath/35274: + * m4/acinclude.m4: + Increase maximum heap size to 768mb. - * gnu/classpath/jdwp/transport/SocketTransport.java (ITransport): - Handle configure strings ":port" and "port". +2008-02-21 Roman Kennke <kennke@aicas.com> -2007-03-29 Francis Kung <fkung@redhat.com> + * java/awt/image/PixelInterleavedSampleModel.java + (createCompatibleSampleModel): Adjust scanline stride for new + width and optimize band offsets. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c - (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Revert last patch. +2008-02-21 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-03-29 Mark Wielaard <mark@klomp.org> + PR classpath/35111: + * resource/com/sun/tools/javac/messages.properties, + * resource/gnu/classpath/tools/appletviewer/messages.properties, + * resource/gnu/classpath/tools/common/Messages.properties, + * resource/gnu/classpath/tools/getopt/Messages.properties, + * resource/gnu/classpath/tools/jar/messages.properties, + * resource/gnu/classpath/tools/jarsigner/messages.properties, + * resource/gnu/classpath/tools/keytool/messages.properties, + * resource/gnu/classpath/tools/native2ascii/messages.properties, + * resource/gnu/classpath/tools/orbd/messages.properties, + * resource/gnu/classpath/tools/rmic/messages.properties, + * resource/gnu/classpath/tools/rmid/messages.properties, + * resource/gnu/classpath/tools/rmiregistry/messages.properties, + * resource/gnu/classpath/tools/serialver/messages.properties, + * resource/gnu/classpath/tools/tnameserv/messages.properties, + * resource/sun/rmi/rmic/messages.properties: + Removed. + * tools/Makefile.am: + Copy .jav template files and use resource subdirectory + of tools. + * tools/gnu/classpath/tools/rmic/templates/ImplTie.jav, + * tools/gnu/classpath/tools/rmic/templates/Stub.jav, + * tools/gnu/classpath/tools/rmic/templates/StubMethod.jav, + * tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav, + * tools/gnu/classpath/tools/rmic/templates/Stub_12.jav, + * tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav, + * tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav, + * tools/gnu/classpath/tools/rmic/templates/Tie.jav, + * tools/gnu/classpath/tools/rmic/templates/TieMethod.jav, + * tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav: + Removed. + * tools/resource/com/sun/tools/javac/messages.properties, + * tools/resource/gnu/classpath/tools/appletviewer/messages.properties, + * tools/resource/gnu/classpath/tools/common/Messages.properties, + * tools/resource/gnu/classpath/tools/getopt/Messages.properties, + * tools/resource/gnu/classpath/tools/jar/messages.properties, + * tools/resource/gnu/classpath/tools/jarsigner/messages.properties, + * tools/resource/gnu/classpath/tools/keytool/messages.properties, + * tools/resource/gnu/classpath/tools/native2ascii/messages.properties, + * tools/resource/gnu/classpath/tools/orbd/messages.properties, + * tools/resource/gnu/classpath/tools/rmic/messages.properties, + * tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav, + * tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav, + * tools/resource/gnu/classpath/tools/rmid/messages.properties, + * tools/resource/gnu/classpath/tools/rmiregistry/messages.properties, + * tools/resource/gnu/classpath/tools/serialver/messages.properties, + * tools/resource/gnu/classpath/tools/tnameserv/messages.properties, + * tools/resource/sun/rmi/rmic/messages.properties: + Added. + +2008-02-18 Roman Kennke <kennke@aicas.com> - * native/jni/java-nio/Makefile.am (LIBADD): Add libclasspathnative. + * gnu/java/awt/peer/x/XGraphics2D.java + (RENDER_OPAQUE): New constant with system property to + turn on opaque image rendering. + (rawDrawImage): Render images opaque when system property + is set. This is for demonstration and debugging purposes only. + +2008-02-18 Roman Kennke <kennke@aicas.com> + + * gnu/java/awt/image/AsyncImage.java: New file. Implements + asynchronous image loading. + * gnu/java/awt/image/ImageConverter.java: New file. + An image consumer that creates a concrete image with + asynchronous behaviour. + * gnu/java/awt/peer/x/ImageConverter.java: Removed. + * gnu/java/awt/peer/x/XToolkit.java: + (createImage(ImageProducer)): Use new ImageConverter. + * gnu/java/awt/peer/x/XGraphics2D.java: + (rawDrawImage): Unwrap AsyncImages before painting. + (unwrap): New helper method. -2007-03-28 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-02-18 Jakub Jelinek <jakub@redhat.com> - * javax/management/StandardMBean.java: - (setAttribute(Attribute)): Add handling of primitive - types and subtype parameters. - (getMutator(String,Class<?>)): New helper method to - return the mutator. - -2007-03-28 Roman Kennke <roman@kennke.org> - - * java/io/OutputStreamWriter.java, - * java/io/InputStreamReader.java: Revert big stream patch due to - problems. - -2007-03-28 Tom Tromey <tromey@redhat.com> - - PR classpath/31303: - * external/sax/org/xml/sax/helpers/XMLReaderFactory.java - (createXMLReader): Code in Classpath default. - -2007-03-28 Tom Tromey <tromey@redhat.com> - - PR classpath/31276: - * native/jni/java-lang/java_lang_VMDouble.c - (parseDoubleFromChars): Use %p, not %i. - -2007-03-28 Mark Wielaard <mark@klomp.org> - - * native/jni/java-nio/Makefile.am (LIBADD): Don't add - libclasspathnative. - * native/jni/java-nio/gnu_java_nio_VMChannel.c - (Java_gnu_java_nio_VMChannel_open): Don't set and reset umask. - -2007-03-27 Francis Kung <fkung@redhat.com> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c - (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Prevent loading of - accessibility modules as temporary workaround for Gnome bug. - -2007-03-27 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpth/jdwp/processor/ThreadReferenceCommandSet.java - (executeResume): Change to call VMVirtualMachine.resumeThread. - -2007-03-27 Roman Kennke <roman@kennke.org> - - * java/io/InputStreamReader.java - (BUFFER_SIZE): New constant. - (bytesCache): Removed. - (cacheLock): Removed. - (hasSavedSurrogate): Removed. - (lastArray): New field. Used for caching CharBuffers. - (lastBuffer): New field. Used for caching CharBuffers. - (maxBytesPerChar): Removed. - (oneChar): New field. Caches a char array for read(). - (savedSurrogate): New field. - (InputStreamReader): (all constructors) Cleaned up. - Use initDecoderAndBuffer() method. Check for null parameters. - Use new EncodingHelper.getDefaultCharset() for fetching the - default charset. - (decode): New helper method. Decodes using the NIO decoder or - using a raw Latin1 decoding. - (getCharBuffer): New helper method. Implements caching of - CharBuffers for output arrays. - (initDecoderAndBuffer): New helper method. Initializes the decoder - and input buffer. - (read): Use cached array. - (read(char[],int,int)): Reworked using a cleaner NIO based - implementation. This decodes the incoming data in bigger chunks - rather then calling the decoder for each character. - (ready): Also check the input buffer. - (refillInputBuffer): New helper methods. Refills the input buffer - when it runs out of data. - * java/io/OutputStreamWriter.java - (lastArray): Implements caching of the output array buffer. - (lastBuffer): Implements caching of the output array buffer. - (oneChar): New field. Caches a char array for write(). - (outputBuffer): Make this a ByteBuffer. - (OutputStreamWriter): (all constructors) Cleaned up. - Use initEncoderAndBuffer() method. Check for null parameters. - Use new EncodingHelper.getDefaultCharset() for fetching the - default charset. - (encode): New helper method. Encodes the input buffer to the output - buffer using either the NIO encoder or a raw Latin1 encoding. - (encodeChars): New helper method. The encoding loop. - (flush): Directly use the array of the output buffer. - (getCharBuffer): New helper method. Implements caching of the - output buffer. - (initEncoderAndBuffer): New helper method for initialization. - (write(char[],int,int)): Reworked to make better use of the NIO - encoders. - (write): Use cached array. - (write(String,int,int)): Don't copy the string but rather wrap it - and handle it the same as the wrapped char array. - (writeConvert): Removed. - * gnu/java/nio/charset/EncodingHelper.java - (getDefaultCharset): New method. Returns the default charset for - the case when the file.encoding charset is not valid. This - always returns an UTF8 codec. - -2007-03-27 Roman Kennke <kennke@aicas.com> - - * java/awt/Frame.java - (weakFrames): Make this generic and package private. - (noteFrame): Use generic WeakReference. - * java/awt/EventQueue.java - (isShutdown): Iterate over the weakFrames directly, rather than - using Frame.getFrames(). The latter iterates several times over - weakFrames completely and creates a new array on each call. The - former iterates only once and aborts when it finds a frame which - is displayable. - -2007-03-27 Roman Kennke <kennke@aicas.com> - - * javax/swing/JScrollBar.java - (getUnitIncrement(int)): Don't multiply direction parameter. - (getBlockIncrement(int)): Don't multiply direction parameter. - -2007-03-26 Tom Tromey <tromey@redhat.com> - - * doc/cp-tools.texinfo (gcjh Tool): Added more text. - (rmid Tool): Likewise. - -2007-03-26 Stepan Kasal <skasal@redhat.com> - - * tools/gnu/classpath/tools/javah/Main.java (cniOrJniSeen): New - field. - (getParser): Use new field. - -2007-03-25 Dalibor Topic <robilad@kaffe.org> - - * doc/cp-tools.texinfo: Fix node ordering. - -2007-03-19 Matthias Klose <doko@ubuntu.com> - - * doc/Makefile.am: Build a gcjh(1) man page. - * doc/cp-tools.texinfo: Add documentation for gcjh. - -2007-03-23 Jeroen Frijters <jeroen@frijters.net> - - * java/net/ServerSocket.java (implAccept): set implCreated flag on - socket. - * java/net/Socket.java (implCreated): Make package accessible for - ServerSocket. - -2007-03-22 Casey Marshall <csm@gnu.org> - - * gnu/javax/net/ssl/provider/ClientHandshake.java (RSAGen.implRun): - check keyEncipherment bit of the certificate, and just pass the public - key to the cipher. - -2007-03-20 Mario Torre <neugens@limasoftware.net> - - * configure.ac: GConf requirement for building the java.util.prefs backend - are relaxed down to version 2.6.0 (instead of 2.11.2). - -2007-03-19 Mario Torre <neugens@limasoftware.net> - - * gnu/java/awt/peer/KDEDesktopPeer.java: - (mail): Fixed error dialog in KDE when the mail method is called without - argument; now opens the default mailer with a blank window. - (getCommand): Handle the use of kprinter as default print command for KDE. - (supportCommand): Enable the print command when a KDE desktop is detected. - -2007-03-19 Jeroen Frijters <jeroen@frijters.net> - - * java/net/Socket.java - (implCreated): New field. - (getImpl): Call impl.create() if it hasn't been called yet. - (bind): Removed explicit impl.create() call. - -2007-03-18 Mark Wielaard <mark@klomp.org> + * doc/cp-tools.texinfo (@direntry): Prefix info name with cp-. + * doc/cp-hacking.texinfo (@direntry): Likewise. + * doc/cp-vmintegration.texinfo (@direntry): Likewise. - * javax/crypto/CipherOutputStream.java (write): Use out.write() - not super.write(). +2008-02-18 Roman Kennke <kennke@aicas.com> -2007-03-18 Mark Wielaard <mark@klomp.org> + * java/awt/image/RGBImageFilter.java + (setPixels): Don't mask the source pixel. - * configure.ac (COMPILE_PLUGIN): Check for gtk+-2.0 >= 2.8 - gthread-2.0 >= 2.2 and gdk-pixbuf-2.0 +2008-02-18 Roman Kennke <kennke@aicas.com> -2007-03-16 Tom Tromey <tromey@redhat.com> + * gnu/java/awt/peer/x/XGraphics2D.java + (rawDrawImage): Update the rgb variable correctly. Don't + cache translucent images. - * tools/gnu/classpath/tools/javah/Main.java (run): Use class' - name in File case. +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-03-16 Thomas Fitzsimmons <fitzsim@redhat.com> + * vm/reference/java/lang/reflect/Constructor.java, + * vm/reference/java/lang/reflect/Method.java: + Add missing java.lang.annotation.Annotation import. - * resource/com/sun/tools/javac/messages.properties - (Main.FailedToRead, Main.MalformedURL, Main.FailedToLoad): Clarify - messages for when --with-ecj-jar is not specified. +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> - * configure.ac (FOUND_ECJ_JAR): Remove conditional. - * tools/Makefile.am: Build com.sun.tools.javac package - unconditionally. + * vm/reference/java/lang/reflect/Constructor.java, + * vm/reference/java/lang/reflect/Method.java: + (getParameterAnnotations()): Added. + +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/swing/tree/DefaultMutableTreeNode.java: + Add generics. + * javax/swing/tree/DefaultTreeCellEditor.java: + (tPath): Removed. + (configureEditingComponent(JTree, + DefaultTreeCellRenderer,TreeCellEditor)): Removed. + * javax/swing/tree/DefaultTreeCellRenderer.java: + Removed unused call to getIcon(). + * javax/swing/tree/DefaultTreeSelectionModel.java: + Add generics. + +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/swing/tree/FixedHeightLayoutCache.java, + * javax/swing/tree/VariableHeightLayoutCache.java, + * javax/swing/undo/StateEdit.java: + Use type parameters with collections classes. + +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * m4/ac_prog_javac.m4: + Turn off ecj warnings for deprecation, + serialization and unused imports + (both cases). + +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * m4/ac_prog_javac.m4: + Turn off ecj warnings for deprecation, + serialization and unused imports. + +2008-02-17 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-03-16 Mark Wielaard <mark@klomp.org> + * org/omg/CORBA/PolicyErrorHelper.java, + * org/omg/CORBA/UnknownUserExceptionHelper.java, + * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java, + * org/omg/PortableServer/ForwardRequestHelper.java, + * org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java: + Remove unused variable. - * configure.ac (COMPILE_PLUGIN): Stop when no plugin headers found. - Also check for gtk+ dependency. +2008-02-16 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-03-16 Tom Tromey <tromey@redhat.com> + * gnu/classpath/ServiceFactory.java: + Use generics. + * gnu/classpath/ServiceProviderLoadingAction.java: + Likewise. + +2008-02-15 Andrew John Hughes <gnu_andrew@member.fsf.org> - * tools/gnu/classpath/tools/javah/JniStubPrinter.java - (printClass): Added filename argument. - * tools/gnu/classpath/tools/javah/JniIncludePrinter.java - (printClass): Added filename argument. - * tools/gnu/classpath/tools/javah/CniIncludePrinter.java - (printClass): Use user's file name. - * tools/gnu/classpath/tools/javah/CniStubPrinter.java - (printClass): Use user's file name. - * tools/gnu/classpath/tools/javah/Printer.java (printClass): Added - filename argument. - * tools/gnu/classpath/tools/javah/Main.java (getParser): Fix '-v' - argument order. - (writeHeaders): Use a HashMap. - (run): Put class name into HashMap for writeHeaders. - -2007-03-16 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (cairoArc): Make protected rather than private so it can be over-ridden. - (cairoClip): Likewise. - (cairoClosePath): Likewise. - (cairoCurveTo): Likewise. - (cairoDrawGlyphVector): Likewise. - (cairoFill): Likewise. - (cairoLineTo): Likewise. - (cairoMoveTo): Likewise. - (cairoNewPath): Likewise. - (cairoRectangle): Likewise. - (cairoResetClip): Likewise. - (cairoRestore): Likewise. - (cairoSave): Likewise. - (cairoScale): Likewise. - (cairoSetAntialias): Likewise. - (cairoSetDash): Likewise. - (cairoSetFillRule): Likewise. - (cairoSetFont): Likewise. - (cairoSetLine): Likewise. - (cairoSetMatrix): Likewise. - (cairoSetOperator): Likewise. - (cairoSetRGBAColor): Likewise. - (cairoStroke): Likewise. - (drawPixels): Likewise. - (init): Likewise. - (setGradient): Likewise. - (setPaintPixels): Likewise. - (cairoDrawLine): Removed. - (cairoDrawRect): Removed. - (cairoFillRect): Removed. - (cairoPreserveClip): Removed. - (cairoRelCurveTo): Removed. - (cairoRelLineTo): Removed. - (cairoRelMoveTo): Removed. - * gnu/java/awt/peer/gtk/ComponentGraphics.java - (cairoArc): New method wrapping superclass method in locks. - (cairoClip): Likewise. - (cairoClosePath): Likewise. - (cairoCurveTo): Likewise. - (cairoDrawGlyphVector): Likewise. - (cairoFill): Likewise. - (cairoLineTo): Likewise. - (cairoMoveTo): Likewise. - (cairoNewPath): Likewise. - (cairoRectangle): Likewise. - (cairoResetClip): Likewise. - (cairoRestore): Likewise. - (cairoSave): Likewise. - (cairoScale): Likewise. - (cairoSetAntialias): Likewise. - (cairoSetDash): Likewise. - (cairoSetFillRule): Likewise. - (cairoSetFont): Likewise. - (cairoSetLine): Likewise. - (cairoSetMatrix): Likewise. - (cairoSetOperator): Likewise. - (cairoSetRGBAColor): Likewise. - (cairoStroke): Likewise. - (disposeNative): Likewise. - (drawPixels): Likewise. - (init): Likewise. - (setGradient): Likewise. - (setPaintPixels): Likewise. - (draw): Do not lock, as locking is now done in the wrapped native methods. - (drawComposite): Likewise. - (drawGlyphVector): Likewise. - (drawImage): Likewise. - (drawRenderedImage): Likewise. - (fill): Likewise. - (setClip): Removed. - (lock): Added documentation. - (unlock): Added documentation. - * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated. - * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine): Removed. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawRect): Removed. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect): Removed. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip): Removed. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelCurveTo): Removed. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelLineTo): Removed. - (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelMoveTo): Removed. - -2007-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/openmbean/ArrayType.java: - (getArrayClassName(String, int)): Replaced by... - (getArrayClassName(OpenType, int, boolean)): - Returns appropriate class name for the array. - (getDimensions(OpenType, int)): New method. - (getPrimitiveType(Class<?>)): Likewise. - (getPrimitiveTypeClass(OpenType<?>)): Likewise. - (getElementType(OpenType<?>)): Likewise. - (getElementTypeName(OpenType<?>)): Likewise. - (ArrayType(int, OpenType<?>)): Rewritten - to handle ArrayTypes as input. - (ArrayType(SimpleType<?>, boolean)): New constructor. - (equals(Object)): Handle primitiveArray flag. - (hashCode()): Likewise. - (getArrayType(OpenType<E>)): New method. - (getPrimitiveArrayType(Class<T>)): Likewise. - (isPrimitiveArray()): Likewise. - (toString()): Updated to list primitiveArray - flag. - * javax/management/openmbean/OpenType.java: - (OpenType(String,String,String)): Use Class.forName() - and methods of Class to validate arrays. - * javax/management/openmbean/SimpleType.java: - Include causal exception when creating pre-defined types - throws an exception. + PR classpath/34579: + * m4/ac_prog_javac_works.m4: Change test + to one that doesn't rely on the compiler's + class library. -2007-03-09 Andreas Tobler <a.tobler@schweiz.org> - - Port change from gcc: - - 2007-03-06 Matthias Klose <doko@ubuntu.com> - - * doc/Makefile.am(gkeytool.pod): Don't use sed -i. - -2007-03-09 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/exception/InvalidTagException.java: New file. - * gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java - (executeGetValues): Use Value type. - (exectureSetValues): Ditto. - * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java - (executeGetValues): Use Value type. - (executeSetValues): Ditto. - (invokeMethod): Record method return type. - * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java - (executeGetValues): Use Value type. - (executeSetValues): Ditto. - * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java - (executeGetValues): Use Value type. - * gnu/classpath/jdwp/processor/StackFrameCommandSet.java - (executeGetValues): Use Value type. - (executeSetValues): Ditto. - * gnu/classpath/jdwp/util/MethodResult.java: Add resType to store return - type. - (getResultType): New Method. - (setResultType): Ditto. - * gnu/classpath/jdwp/util/Value.java: Remove. - * gnu/classpath/jdwp/value: New Package. - * gnu/classpath/jdwp/value/Value.java: New file. - * gnu/classpath/jdwp/value/BooleanValue.java: New file. - * gnu/classpath/jdwp/value/ByteValue.java: New file. - * gnu/classpath/jdwp/value/CharValue.java: New file. - * gnu/classpath/jdwp/value/DoubleValue.java: New file. - * gnu/classpath/jdwp/value/FloatValue.java: New file. - * gnu/classpath/jdwp/value/IntValue.java: New file. - * gnu/classpath/jdwp/value/LongValue.java: New file. - * gnu/classpath/jdwp/value/ObjectValue.java: New file. - * gnu/classpath/jdwp/value/ShortValue.java: New file. - * gnu/classpath/jdwp/value/StringValue.java: New file. - * gnu/classpath/jdwp/value/ValueFactory.java: New file. - * gnu/classpath/jdwp/value/VoidValue.java: New file. - -2007-03-09 Roman Kennke <kennke@aicas.com> - - * java/awt/image/SinglePixelPackageSampleModel.java - (createDataBuffer): Avoid use of Buffers class and create - DataBuffer directly in place. - -2007-03-09 Roman Kennke <kennke@aicas.com> - - * java/awt/image/ComponentSampleModel.java - (tightPixelPacking): Removed. - (ComponentSampleModel): Removed unnecessary 'optimization' code. - (createDataBuffer): Avoid use of Buffers helper class. - (getDataElements(int,int,int,int,Object,DataBuffer): Removed. - (getDataElements(int,int,Object,DataBuffer): Do not use Buffers - helper class and instead fetch the values directly. Don't expect - any specific DataBuffer subclass. - (setDataElements(int,int,int,int,Object,DataBuffer): Removed. - (setDataElements(int,int,Object,DataBuffer): Do not use Buffers - helper class and instead set the values directly. Don't expect - any specific DataBuffer subclass. - -2007-03-08 Tom Tromey <tromey@redhat.com> - - PR libgcj/31093: - * java/net/MulticastSocket.java (setTimeToLive): Allow ttl==0. - -2007-03-08 Gary Benson <gbenson@redhat.com> - - PR classpath/30983: - * gnu/xml/dom/ls/DomLSParser.java (getInputSource): - Do not use the entity resolver to resolve the top-level document. - -2007-03-07 Tom Tromey <tromey@redhat.com> - - PR classpath/31057: - * java/util/regex/Pattern.java (toString): New method. - -2007-03-07 Gary Benson <gbenson@redhat.com> - - PR classpath/30906: - * resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList: +2008-02-11 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34578: + * NEWS: Mention javah and javac build changes. + * configure.ac: Call AC_PROG_JAVAC and + CLASSPATH_JAVAC_MEM_CHECK instead of CLASSPATH_FIND_JAVAC. + * examples/Makefile.am: Simplify compiler choice + to just use JAVAC. + * lib/Makefile.am: Likewise, but with JAVAC_MEM_OPT too. + * m4/ac_prog_javac.m4: New file. + * m4/ac_prog_javac_works.m4: Likewise. + * m4/acinclude.m4: + (CLASSPATH_FIND_JAVAC): Removed. + (CLASSPATH_WITH_GCJ): Removed. + (CLASSPATH_CHECK_GCJ): Removed. + (CLASSPATH_WITH_JIKES): Removed. + (CLASSPATH_CHECK_JIKES): Removed. + (CLASSPATH_WITH_KJC): Removed. + (CLASSPATH_CHECK_KJC): Removed. + (CLASSPATH_WITH_ECJ): Removed. + (CLASSPATH_CHECK_ECJ): Removed. + (CLASSPATH_WITH_JAVAC): Removed. + (CLASSPATH_CHECK_JAVAC): Removed. + (CLASSPATH_JAVAC_MEM_CHECK): Added. + * tools/Makefile.am: Simplify compiler choice + to just javac. + +2008-02-12 Roman Kennke <kennke@aicas.com> + + * java/awt/color/ICC_Profile.java + (getInstance()): Wrap call to InputStream.read(byte[],int,int) in + a loop, in order to read the whole thing. + +2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/remote/NotificationResult.java: New file. - -2007-03-06 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * gnu/java/lang/management/BeanImpl.java: - (translate(String)): Add horrible generics hacks - to make things work with the new type signatures. - * javax/management/loading/ClassLoaderRepository.java: - Added generic types. - * javax/management/openmbean/CompositeDataSupport.java: - Likewise. - * javax/management/openmbean/OpenMBeanOperationInfo.java: - Likewise. - * javax/management/openmbean/OpenMBeanParameterInfo.java: + * javax/management/remote/TargetedNotification.java: Likewise. + * javax/management/remote/rmi/RMIConnection.java: + (fetchNotifications(long,int,long)): Added. + +2008-02-10 Dalibor Topic <robilad@kaffe.org> -2007-03-06 Francis Kung <fkung@redhat.com> + * lib/Makefile.am (compile_classpath), include/Makefile.am (JAVAH): + Replaced USER_CLASSLIB with PATH_TO_GLIBJ_ZIP. - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java - (getGlyphOutline): Apply glyph position translation. - (getOutline): Do not apply glyph position translation. + * m4/acinclude.m4 (CLASSPATH_WITH_CLASSLIB)[--with-classpath]: + Removed unused option. It's superceded by --with-glibj-zip. -2007-03-06 Tom Tromey <tromey@redhat.com> +2008-02-10 Dalibor Topic <robilad@kaffe.org> - * tools/gnu/classpath/tools/javah/Main.java (getName): New - method. - (getParser): Now protected. Use getName. Add '-v' alias for - --verbose. - (postParse): New method. - (run): Now protected. Use postParse. - * tools/gnu/classpath/tools/javah/GcjhMain.java: New file. + * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH)[USER_JAVAH]: + Check for gjavah-4.3. -2007-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-02-10 Mark Wielaard <mark@klomp.org> - * gnu/javax/management/Translator.java: - (translate(String)): Use a Boolean array to - comply with the new typing. - * javax/management/openmbean/ArrayType.java: - Added generic types and updated copyright headers. - * javax/management/openmbean/CompositeData.java: - Likewise. - * javax/management/openmbean/CompositeDataSupport.java: - Likewise. - * javax/management/openmbean/CompositeType.java: - Likewise. - * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java: - Likewise. - * javax/management/openmbean/OpenMBeanOperationInfoSupport.java: - Likewise. - * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: - Likewise. - * javax/management/openmbean/OpenType.java: - Updated copyright header. - * javax/management/openmbean/SimpleType.java: - Added generic types and updated copyright headers. - * javax/management/openmbean/TabularData.java: - Likewise. - * javax/management/openmbean/TabularDataSupport.java: - Likewise. - * javax/management/openmbean/TabularType.java: - Likewise. + * scripts/check_jni_methods.sh.in: + Use abs_src_builddir so that the absolute path + to the source directory is used by the script. -2007-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org> - * gnu/java/lang/management/BeanImpl.java: - Reference the new Translator class. - (translate(String)): Moved to Translator. - * gnu/javax/management/Translator.java: - New file. - * javax/management/JMX.java: - Likewise. - * javax/management/MBeanServerInvocationHandler.java: + * scripts/check_jni_methods.sh.in: + Use abs_top_builddir so that the absolute path + to the build directory is used by the script. + +2008-02-10 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/remote/rmi/RMIConnection.java: + (addNotificationListeners(ObjectName[], + MarshalledObject[], Subject[])): Fixed return type. + (close()): Added. + (createMBean(String,ObjectName,MarshalledObject, + String[], Subject)): Likewise. + (createMBean(String,ObjectName,ObjectName, + MarshalledObject, String[], Subject)): Likewise. + (createMBean(String,ObjectName,ObjectName, + Subject)): Likewise. + (createMBean(String,ObjectName,Subject)): Likewise. + (getAttribute(ObjectName,String,Subject)): Likewise. + (getAttributes(ObjectName,String[],Subject)): Likewise. + (getConnectionId()): Likewise. + (getDefaultDomain(Subject)): Likewise. + (getDomains(Subject)): Likewise. + (getMBeanCount(Subject)): Likewise. + (getMBeanInfo(ObjectName,Subject)): Likewise. + (getObjectInstance(ObjectName,Subject)): Likewise. + (invoke(ObjectName,String,MarshalledObject,String[], + Subject)): Likewise. + (isInstanceOf(ObjectName,String,Subject)): Likewise. + (isRegistered(ObjectName,Subject)): Likewise. + (queryMBeans(ObjectName,MarshalledObject,Subject)): Likewise. + (queryNames(ObjectName,MarshalledObject,Subject)): Likewise. + (removeNotificationListener(ObjectName,ObjectName,MarshalledObject, + MarshalledObject,Subject)): Likewise. + (removeNotificationListener(ObjectName,ObjectName,Subject)): Likewise. - * javax/management/MXBean.java: + (removeNotificationListeners(ObjectName,Integer[],Subject)): Likewise. - * javax/management/ObjectName.java: - (ObjectName(String)): Catch a key without a value. - * javax/management/StandardMBean.java: - (StandardMBean(Class<?>)): Handle MXBeans. - (StandardMBean(Object, Class<?>)): Likewise. - (invoke(String,Object[],String[])): Disallow - calling attribute methods and handle null signatures. - (setAttribute(Attribute)): Search for mutators - with the appropriate signature. - * javax/management/openmbean/OpenType.java: - Add generic typing. - (ALLOWED_CLASSNAMES_LIST): New field. - -2007-03-02 Mario Torre <neugens@limasoftware.net> + (setAttribute(ObjectName,MarshalledObject,Subject)): Likewise. + (setAttributes(ObjectName,MarshalledObject,Subject)): Likewise. + (unregisterMBean(ObjectName,Subject)): Likewise. - PR classpath/31017: - committed for Petteri Räty <betelgeuse@gentoo.org> - * configure.ac: fix broken build for gcj browser plugin - -2007-03-02 Mario Torre <neugens@limasoftware.net> - - * java/awt/Desktop.java: new java 1.6 class. - * java/awt/peer/DesktopPeer.java: new inteface. - * gnu/java/awt/peer/GnomeDesktopPeer.java: new class. - * gnu/java/awt/peer/ClasspathDesktopPeer.java: new class. - * gnu/java/awt/peer/KDEDesktopPeer.java: new class. - * java/awt/Toolkit.java (createDesktopPeer): new method to support the - creation of DesktopPeer instances. - * gnu/java/awt/peer/qt/QtToolkit.java: update copyright notice and - organize import. - * gnu/java/awt/ClasspathToolkit.java (createDesktopPeer): new method. - -2007-02-28 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/processor/EventRequestCommandSet.java - (executeSet): Check if VM has capability for field access - or modification events. - * gnu/classpath/jdwp/processor/MethodCommandSet.java - (executeByteCodes): Check if VM has capability and - implement. - * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java - (executeMonitorInfo): Likewise. - * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java - (executeSourceDebugExtension): Likewise. - * gnu/classpath/jdwp/processor/StackFrameCommandSet.java - (executePopFrames): Likewise. - * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java - (executeOwnedMonitors): Likewise. - (executeCurrentContendedMonitor): Likewise. - * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java - (executeCapabilities): Rewrite using new VMVirtualMachine - capabilities. - (executeRedefineClasses): Check if VM has capability and - implement. - (executeSetDefaultStratum): Likewise. - * gnu/classpath/jdwp/util/MonitorInfo.java; New file. - * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java - (canWatchFieldModification): New class constant. - (canWatchFieldAccess): Likewise. - (canGetBytecodes): Likewise. - (canGetSyntheticAttribute): Likewise. - (canGetOwnedMonitorInfo): Likewise. - (canGetCurrentContendedMonitor): Likewise. - (canGetMonitorInfo): Likewise. - (canRedefineClasses): Likewise. - (canAddMethod): Likewise. - (canUnrestrictedlyRedefineClasses): Likewise. - (canPopFrames): Likewise. - (canUseInstanceFilters): Likewise. - (canGetSourceDebugExtension): Likewise. - (canRequestVMDeathEvent): Likewise. - (canSetDefaultStratum): Likewise. - (redefineClasses): New method. - (setDefaultStratum): Likewise. - (getSourceDebugExtension): Likewise. - (getBytecodes): Likewise. - (getMonitorInfo): Likewise. - (getOwnedMonitors): Likewise. - (getCurrentContendedMonitor): Likewise. - (popFrames): Likewise. - -2007-03-01 Roman Kennke <kennke@aicas.com> - - * java/awt/Canvas.java - (graphicsConfiguration): Removed duplicate (from Component) field. - (Canvas(GraphicsConfiguration)): Set the Component's graphicsConfig - field. - (getGraphicsConfigurationImpl): Removed. - * java/awt/Component.java - (getGraphicsConfiguration): Moved implementation here. Synchronize - on tree lock to prevent threading nastiness. Don't query peer - and instead return the setting of the graphicsConfig field. - (getGraphicsConfigurationImpl): Removed. - * java/awt/Window.java - (graphicsConfiguration): Removed duplicate (from Component) field. - (Window): Set the Component's graphicsConfig field. - (Window(GraphicsConfiguration)): Set the Component's graphicsConfig - field. - (Window(Window,GraphicsConfiguration)): Set the Component's - graphicsConfig field. - (getGraphicsConfigurationImpl): Removed. - (getGraphicsConfiguration): Fetch the local graphics env here - if not already done and return that. - -2007-02-28 Thomas Fitzsimmons <fitzsim@redhat.com> - - * INSTALL: Document --with-ecj-jar configure option and ecj jar - requirement for com.sun.tools.javac support. - * configure.ac: Add --with-ecj-jar configure option. - * gnu/classpath/Configuration.java.in (ECJ_JAR): New field. - * tools/Makefile.am: Build decendents of com and sun directories. - * resource/com/sun/tools/javac/messages.properties, - resource/sun/rmi/rmic/messages.properties, - tools/com/sun/javadoc/ClassDoc.java, - tools/com/sun/javadoc/ConstructorDoc.java, - tools/com/sun/javadoc/Doc.java, - tools/com/sun/javadoc/DocErrorReporter.java, - tools/com/sun/javadoc/Doclet.java, - tools/com/sun/javadoc/ExecutableMemberDoc.java, - tools/com/sun/javadoc/FieldDoc.java, - tools/com/sun/javadoc/MemberDoc.java, - tools/com/sun/javadoc/MethodDoc.java, - tools/com/sun/javadoc/PackageDoc.java, - tools/com/sun/javadoc/ParamTag.java, - tools/com/sun/javadoc/Parameter.java, - tools/com/sun/javadoc/ProgramElementDoc.java, - tools/com/sun/javadoc/RootDoc.java, - tools/com/sun/javadoc/SeeTag.java, - tools/com/sun/javadoc/SerialFieldTag.java, - tools/com/sun/javadoc/SourcePosition.java, - tools/com/sun/javadoc/Tag.java, - tools/com/sun/javadoc/ThrowsTag.java, - tools/com/sun/javadoc/Type.java, - tools/com/sun/javadoc/TypeVariable.java, - tools/com/sun/tools/doclets/Taglet.java, - tools/com/sun/tools/javac/Main.java, - tools/com/sun/tools/javac/Messages.java, - tools/sun/rmi/rmic/Main.java, tools/sun/rmi/rmic/Messages.java: - New files. - -2007-02-28 Keith Seitz <keiths@redhat.com> - - * gnu/classpath/jdwp/processor/MethodCommandSet.java - (executeLineTable): Use ReferenceTypeId instead of - ClassReferenceTypeId. - (executeVariableTable): Likewise. - (executeVariableTableWithGeneric): Fix error message. - * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java - (executeSignatureWithGeneric): Fix error message. - (executeFieldWithGeneric): Likewise. - (executeMethodsWithGeneric): Likewise. - * gnu/classpath/jdwp/processor/StackFrameCommandSet.java - (executeGetValues): Use ThreadId instead of ObjectId. - (executeSetValues): Likewise. - (executeThisObject): Likewise. - -2007-02-28 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/id/NullObjectId.java: New class. - * gnu/classpath/jdwp/util/NullObject.java: New class. - * vm/reference/gnu/classpath/jdwp/VMIdManager.java - (getObjectId): Handle null object. - (get): Handle objectId of 0. - -2007-02-26 Francis Kung <fkung@redhat.com> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c - (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Stop using deprecated - function for creating new font map. - -2007-02-26 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (drawCairoSurface): Do not reset clip. - (drawImage(Image,AffineTransform,Color,ImageObserver)): Likewise. - -2007-02-23 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (drawCairoSurface): New method. - (drawImage(Image,AffineTransform,Color,ImageObserver)): Use new - drawCairoSurface() method. - * gnu/java/awt/peer/gtk/CairoSurface.java - (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Copy correct - width/height values, and copy sharedBuffer value. - (createWritableChild): Remove debug line. - (drawSurface): Removed method. - * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java - (drawComposite): Translate image when drawing. - -2007-02-23 Gary Benson <gbenson@redhat.com> - Jakub Jelinek <jakub@redhat.com> - - PR libgcj/17002 - PR classpath/28550 - * java/util/Date.java (parse): Properly parse 09:01:02 as - hours/minutes/seconds, not as hours/minutes/year. - * java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify - {start,end}TimeMode constructor by calling shorter constructor, - set {start,end}TimeMode fields after it returns. - (setStartRule): Don't adjust startTime into WALL_TIME. Set - startTimeMode to WALL_TIME. - (endStartRule): Similarly. - (getOffset): Handle properly millis + dstOffset overflowing into the - next day. Adjust startTime resp. endTime based on startTimeMode - resp. endTimeMode. - * java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New - static fields. - (timezones): Remove synchronized keyword. Set zoneinfo_dir. - If non-null, set up aliases0 and don't put anything into - timezones0. - (defaultZone): Call getTimeZone instead of timezones().get. - (getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6. Use - getTimeZoneInternal instead of timezones().get. - (parseTime): Parse correctly hour:minute. - (getTimeZoneInternal): New private method. - (getTimeZone): Do the custom ID checking first, canonicalize - ID for custom IDs as required by documentation. Call - getTimeZoneInternal to handle the rest. - (getAvailableIDs(int)): Add locking. Handle zoneinfo_dir != null. - (getAvailableIDs(File,String,ArrayList)): New private method. - (getAvailableIDs()): Add locking. Handle zoneinfo_dir != null. - * vm/reference/java/util/VMTimeZone.java (getDefaultTimeZoneId): - To read /etc/localtime, use ZoneInfo.readTZFile instead of - VMTimeZone.readtzFile. Get better timezone name for - /etc/localtime, either if it is a symlink or through - /etc/sysconfig/clock. - (readSysconfigClockFile): New static method. - (readtzFile): Removed. - * gnu/java/util/ZoneInfo.java: New file. - * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments. - * NEWS: Documented TimeZone interface changes. - -2007-02-23 Francis Kung <fkung@redhat.com> - - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c - (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Remove debug line. - -2007-02-22 Keith Seitz <keiths@redhat.ecom> - - * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java - (getAllLoadedClassesCount): Remove. - (getAllLoadedClasses): Return a Collection. - * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java - (executeClassesBySignature): VMVirtualMachine.getAllLoadedClasses - now returns Collection. - (executeAllClasses): Likewise. - Get size of return from Colleciton instead of calling - getAllLoadedClassesCount. - -2007-02-22 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/processor/StackFrameCommandSet.java - (executeGetValues): Pass a signature byte to VMFrame.getValue. - * vm/reference/gnu/classpath/jdwp/VMFrame.java (getValue): Add - signature parameter. - -2007-02-22 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/CairoSurface.java - (copyAreaNative): Pass surface pointer into copyAreaNative2(). - (copyAreaNative2): Add parameter for surface pointer. - (getFlippedBuffer): Add parameter for surface pointer. - (getGtkImage): Pass surface pointer into getFlippedBuffer(). - -2007-02-21 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/peer/gtk/BufferedImageGraphcs.java - (constructor): Add pre-multiplied colour model to types available for - optimization. - (updateBufferedImage): Change surface.getPixels() call to surface.getData(). - * gnu/java/awt/peer/gtk/CairoGraphics2D.java - (drawImage): Add checks before using CairoSurface optimization. - * gnu/java/awt/peer/gtk/CairoSurface.java - (bufferPointer): Removed field. - (sharedBuffer): New field. - (CairoSurface(GtkImage)): Copy array rather than using setPixels() call. - (CairoSurface(int,int,int)): Use getData() convenience method. - (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Remove reference - to deleted bufferPointer field. - (copyAreaNative): Update documentation, remove reference to bufferPointer. - (copyAreaNative2): Remove reference to deleted bufferPointer field. - (destroy): Remove reference to deleted bufferPointer field. - (dispose): Updated to reflect new method signature for destroy(). - (drawSurface): Added documentation. - (getData): New convience method. - (getFlippedBuffer): Removed method parameters. - (getGtkImage): Updated to reflect new method signature. - (getPixels): Removed method. - (nativeGetElem): Removed method. - (netiveGetPixels): Removed method. - (nativeSetElem): Removed method. - (nativeSetPixels): Removed method. - (setPixels): Removed method. - (syncJavaToNative): New method. - (syncNativeToJava): New method. - * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java - (draw): Sync buffers if necessary. - (drawGlyphVector): Likewise. - (drawImage): Likewise. - (drawRenderedImage): Likewise, - (fill): Likewise. - * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c - (Java_gnu_java_awt_peer_gtk_CairoSurface_copyAreaNative2): Use pointer to - surface rather than pointer to buffer. - (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Provide fall-back for - copied arrays. - (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Handle copied arrays. - (Java_gnu_java_awt_peer_gtk_CairoSurface_getFlippedBuffer): Retrieve - information on size using JNI calls. - (Java_gnu_java_awt_peer_gtk_CairoSurface_getElem): Removed. - (Java_gnu_java_awt_peer_gtk_CairoSurface_getPixels): Removed. - (Java_gnu_java_awt_peer_gtk_CairoSurface_setElem): Removed. - (Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Removed. - (Java_gnu_java_awt_peer_gtk_CairoSurface_syncJavaToNative): New function. - (Java_gnu_java_awt_peer_gtk_CairoSurface_syncNativeToJava): New function. - (BUFFER): Removed constant. - (SHARED): New constant. - -2007-02-20 Gary Benson <gbenson@redhat.com> - - * javax/management/ObjectName.java - (domainMatches): New method. - (apply): Rearranged to use the above. - -2007-02-19 Mark Wielaard <mark@klomp.org> - - * doc/.cvsignore: Add *.1. - * doc/Makefile.am (CLEANFILES): Add Tools_MANFILES. - -2007-02-19 Dalibor Topic <robilad@kaffe.org> - - * cp-hacking.texinfo, cp-tools.texinfo, - cp-vmintegration.texinfo: Prefix output file name - with cp. - -2007-02-19 Gary Benson <gbenson@redhat.com> - - * javax/management/ObjectName.java - (properties): Initialize when declared. - (ObjectName(String)): Don't initialize properties here. - (ObjectName(String, String, String): Likewise. - -2007-02-19 Chris Burdess <dog@gnu.org> - - Fixes #30831 - * gnu/xml/dom/ls/SAXEventSink.java: Only set extended document - properties when reader is available. - -2007-02-19 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/MBeanServer.java: - (queryMBeans(ObjectName,QueryExp)): Returned - generically-typed Set. - (queryNames(ObjectName,QueryExp)): Likewise. - * javax/management/MBeanServerConnection.java: - (queryMBeans(ObjectName,QueryExp)): Returned - generically-typed Set. - (queryNames(ObjectName,QueryExp)): Likewise. - * javax/management/ObjectName.java: - Use a generically-typed TreeMap. - (ObjectName(String,Hashtable<String,String>): - Genericized. - (getKeyPropertyList()): Likewise. - * javax/management/StandardMBean.java: - Use a generically-typed interface class. - (StandardMBean(Class<?>)): Genericized. - (StandardMBean(T, Class<T>)): Likewise. - (getImplementationClass()): Likewise. - (getMBeanInterface()): Likewise. - -2007-02-19 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-02-09 Dalibor Topic <robilad@kaffe.org> - * javax/management/Descriptor.java: - New file. - * javax/management/DescriptorRead.java: - Likewise. - * javax/management/DescriptorAccess.java: - Likewise. - -2007-02-16 Matthias Klose <doko@ubuntu.com> - - * doc/Makefile.am: Add rules to build and install man pages - from texinfo docs. - * doc/hacking.texinfo doc/tools.texinfo, doc/vmintegration.texinfo: - Rename, prefix files with "cp-". - * doc/cp-tools.texinfo: Add markup for man page generation, - add documentation for command line options for gjar, gjavah, - gnative2ascii, gorbd, grmid, grmiregistry, gserialver, gtnameserv. - doc/texi2pod.pl: New, taken from the GCC sources. - -2007-02-16 Francis Kung <fkung@redhat.com> - - * gnu/java/awt/ClasspathGraphicsEnvironment.java: New file. - * gnu/java/awt/peer/gtk/CairoSurface.java - (CairoDataBuffer): Removed inner class. - (CairoSurface(int,int,int,int)): New constructor. - (CairoSurface(int,int)): Delegate to new constructor. - (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): New constructor - for creating child rasters. - (create): Added int[] parameter. - (createChild): New method. - (createCompatibleWritableRaster): New methods. - (createTranslatedChild): New method. - (createWritableChild): New method. - (createWritableTranslatedChild): New method. - (destroy): Added int[] parameter. - (dispose): Only free native resources if this Surface has no parents. - (isCompatibleColorModel): New method. - (isCompatibleSampleModel): New method. - * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java - (draw): Set transform, smarter bounds generation. - (drawComposite): Improved clipping. - (drawImage): Fixed bounds translation. - (drawRenderedImage): Set transform in buffer. - (fill): Set transform in buffer. - * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java - (createRaster): New method. - * java/awt/image/BufferedImage.java - (BufferedImage(int,int,int)): Use optimized raster if possible. - * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c - (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Share data buffer between - Cairo and Java. - (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Free data array. - -2007-02-16 Francis Kung <fkung@redhat.com> - - * javax/management/NotificationBroadcasterSupport.java: Update imports. - -2007-02-16 Andrew Haley <aph@redhat.com> - - * gnu/java/lang/management/MemoryMXBeanImpl.java, - javax/management/MBeanServerDelegate.java: Use - gnu.javax.management.ListenerData rather than - gnu.classpath.ListenerData. - * gnu/javax/management/ListenerData.java: Move here from - gnu/classpath/ListenerData.java. - -2006-10-14 Edwin Steiner <edwin.steiner@gmx.net> - - PR classpath/28652: - * javax/management/MBeanInfo.java (MBeanInfo): - Use clone to duplicate the arrays in order to - preserve the array type. - -2007-02-15 Gary Benson <gbenson@redhat.com> + * native/jni/Makefile.am (all-local): Call check_jni_methods.sh + directly. - * gnu/javax/management/Server.java - (registerMBean): Always register objects that implement the - MBeanRegistration interface, and check the name returned by - preRegister before using it. + * scripts/Makefile.am (EXTRA_DIST): Removed check_jni_methods.sh. -2007-02-15 Roman Kennke <kennke@aicas.com> + * include/Makefile.am (SOUND_H_FILES, GST_PEER_H_FILES) + (XMLJ_H_FILES, GTKPEER_H_FILES, QTPEER_H_FILES) + (GCONF_PREFS_FILES, H_FILES): Don't generate header files + in the source directory, as it may not be writeable. + (DISTCLEANFILES) Added H_FILES. - * java/nio/ByteOrder.java - (nativeOrder): Avoid NPE when comparing a system property. + * configure.ac (AC_CONFIG_FILES): Added + scripts/check_jni_methods.sh. -2007-02-13 Gary Benson <gbenson@redhat.com> + * scripts/check_jni_methods.sh: Removed. Moved over to .. + * scripts/check_jni_methods.sh.in: New file. Added + top_srcdir and top_builddir where necessary. + +2008-02-09 Mario Torre <neugens@limasoftware.net> + + * include/java_util_VMTimeZone.h: Removed. + * native/jni/gconf-peer/GConfNativePeer.c: all native methods, replaced + GConfEngine with GConfClient and use GConfClient API instead. + +2008-02-08 Mark Wielaard <mark@klomp.org> + + * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): Delete + Colour.class. + + * include/.cvsignore: Add java_* and gnu_*.h. + +2008-02-08 Mario Torre <neugens@limasoftware.net> + + * configure.ac: --enable-regen-header option now enabled by default. + * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Removed. + * include/gnu_java_awt_peer_gtk_CairoSurface.h: Removed. + * include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Removed. + * include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: Removed. + * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Removed. + * include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: Removed. + * include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Removed. + * include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkClipboard.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkImage.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkListPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkSelection.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: Removed. + * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Removed. + * include/gnu_java_awt_peer_qt_MainQtThread.h: Removed. + * include/gnu_java_awt_peer_qt_QMatrix.h: Removed. + * include/gnu_java_awt_peer_qt_QPainterPath.h: Removed. + * include/gnu_java_awt_peer_qt_QPen.h: Removed. + * include/gnu_java_awt_peer_qt_QtAudioClip.h: Removed. + * include/gnu_java_awt_peer_qt_QtButtonPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtCanvasPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtChoicePeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtComponentPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtDialogPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtFontMetrics.h: Removed. + * include/gnu_java_awt_peer_qt_QtFontPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtFramePeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtGraphics.h: Removed. + * include/gnu_java_awt_peer_qt_QtImage.h: Removed. + * include/gnu_java_awt_peer_qt_QtLabelPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtListPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtMenuPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtPanelPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtScreenDevice.h: Removed. + * include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: Removed. + * include/gnu_java_awt_peer_qt_QtToolkit.h: Removed. + * include/gnu_java_awt_peer_qt_QtVolatileImage.h: Removed. + * include/gnu_java_awt_peer_qt_QtWindowPeer.h: Removed. + * include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: Removed. + * include/gnu_java_net_local_LocalSocketImpl.h: Removed. + * include/gnu_java_net_VMPlainSocketImpl.h: Removed. + * include/gnu_java_nio_charset_iconv_IconvDecoder.h: Removed. + * include/gnu_java_nio_charset_iconv_IconvEncoder.h: Removed. + * include/gnu_java_nio_EpollSelectorImpl.h: Removed. + * include/gnu_java_nio_FileChannelImpl.h: Removed. + * include/gnu_java_nio_KqueueSelectorImpl.h: Removed. + * include/gnu_java_nio_VMChannel.h: Removed. + * include/gnu_java_nio_VMPipe.h: Removed. + * include/gnu_java_nio_VMSelector.h: Removed. + * include/gnu_java_util_prefs_gconf_GConfNativePeer.h: Removed. + * include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: Removed. + * include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: Removed. + * include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: Removed. + * include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: Removed. + * include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Removed. + * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: Removed. + * include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: Removed. + * include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: Removed. + * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeAttr.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeDocument.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeElement.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeEntity.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeNode.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeNodeList.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeNotation.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: Removed. + * include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: Removed. + * include/gnu_xml_libxmlj_sax_GnomeLocator.h: Removed. + * include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: Removed. + * include/gnu_xml_libxmlj_transform_GnomeTransformer.h: Removed. + * include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: Removed. + * include/java_io_VMFile.h: Removed. + * include/java_io_VMObjectInputStream.h: Removed. + * include/java_io_VMObjectStreamClass.h: Removed. + * include/java_lang_reflect_VMArray.h: Removed. + * include/java_lang_VMDouble.h: Removed. + * include/java_lang_VMFloat.h: Removed. + * include/java_lang_VMMath.h: Removed. + * include/java_lang_VMProcess.h: Removed. + * include/java_lang_VMSystem.h: Removed. + * include/java_net_VMInetAddress.h: Removed. + * include/java_net_VMNetworkInterface.h: Removed. + * include/java_net_VMURLConnection.h: Removed. + * include/java_nio_MappedByteBufferImpl.h: Removed. + * include/java_nio_VMDirectByteBuffer.h: Removed. + +2008-02-08 Roman Kennke <kennke@aicas.com> - * javax/management/ObjectName.java - (toString): Return this item's canonical name. + * gnu/java/awt/peer/gtk/GtkComponentPeer.java, + * gnu/java/awt/peer/gtk/GtkToolkit.java: Removed mistakenly + committed code. -2007-02-12 Francis Kung <fkung@redhat.com> +2008-02-08 Roman Kennke <kennke@aicas.com> - * gnu/java/awt/ClasspathToolkit.java: - * gnu/java/awt/peer/gtk/AsyncImage.java, - * gnu/java/awt/peer/gtk/BufferedImageGraphics.java, * gnu/java/awt/peer/gtk/CairoGraphics2D.java, - * gnu/java/awt/peer/gtk/CairoSurface.java, - * gnu/java/awt/peer/gtk/ComponentGraphics.java, - * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java, * gnu/java/awt/peer/gtk/GdkFontPeer.java, + * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java, * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java, - * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java, - * gnu/java/awt/peer/gtk/GtkChoicePeer.java, - * gnu/java/awt/peer/gtk/GtkClipboard.java, - * gnu/java/awt/peer/gtk/GtkClipboardNotifier.java, * gnu/java/awt/peer/gtk/GtkComponentPeer.java, - * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java, - * gnu/java/awt/peer/gtk/GtkFramePeer.java, - * gnu/java/awt/peer/gtk/GtkImage.java, - * gnu/java/awt/peer/gtk/GtkImageConsumer.java, - * gnu/java/awt/peer/gtk/GtkLabelPeer.java, - * gnu/java/awt/peer/gtk/GtkListPeer.java, - * gnu/java/awt/peer/gtk/GtkMainThread.java, - * gnu/java/awt/peer/gtk/GtkMenuBarPeer.java, - * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java, - * gnu/java/awt/peer/gtk/GtkMenuPeer.java, - * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java, - * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java, - * gnu/java/awt/peer/gtk/GtkScrollPanePeer.java, - * gnu/java/awt/peer/gtk/GtkSelection.java, - * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java, - * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java, - * gnu/java/awt/peer/gtk/GtkToolkit.java, - * gnu/java/awt/peer/gtk/GtkWindowPeer.java, - * gnu/java/awt/peer/gtk/VolatileImageGraphics.java, - * java/awt/RenderingHints.java, - * java/awt/image/BufferedImage.java: Reformatted and added generics. - -2007-02-12 Tom Tromey <tromey@redhat.com> - - * java/net/Socket.java (bind): Typo fix. - -2007-02-12 Tom Tromey <tromey@redhat.com> - - * vm/reference/java/lang/reflect/Method.java (getDefaultValue): - New method. - * sun/reflect/annotation/AnnotationInvocationHandler.java (create): - New method. - (arrayClone): New method. - (invoke): Clone array return results. - -2007-02-12 Jakub Jelinek <jakub@redhat.com> - - PR 23566 - * scripts/timezones.pl: Parse each file in 2 passes, in one parse - just Rule lines, in the other everything else. Pass 0 instead of - $savings as second argument to parseRule when parsing the start - rule. - * java/util/TimeZone.java (timezones): Regenerate from tzdata2007a. - -2007-02-12 Jakub Jelinek <jakub@redhat.com> - - * vm/reference/java/util/VMTimeZone.java: Rewrite to handle both - the old 'TZif\0' format and the new one. - * java/util/TimeZone.java: Handle default (one hour) daylight - savings. - -2007-02-12 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/Query.java: - New file. - * javax/management/StandardMBean.java: - Use the implementation's class loader. - -2007-02-10 Mark Wielaard <mark@klomp.org> - - * javax/swing/plaf/metal/MetalFileChooserUI.java: Import Date from - java.util, not from java.sql. - -2007-02-10 Roman Kennke <kennke@aicas.com> - - * javax/imageio/stream/ImageOutputStreamImpl.java - (flushBits): Implemented. - (writeBit): Implemented. - (writeBits): Implemented. - -2007-02-10 Roman Kennke <kennke@aicas.com> - - * javax/swing/TransferHandler.java - (SwingDragGestureRecognizer): New inner class. - (SwingDragHandler): New inner class. - (recognizer): New field. - (exportAsDrag): Implemented missing method. - -2007-02-10 Roman Kennke <kennke@aicas.com> - - * java/awt/GraphicsConfiguration.java - (createCompatibleVolatileImage(int,int,ImageCapabilities): Provide - default implementation that delegates to - createCompatibleVolatileImage(int,int). - (createCompatibleVolatileImage(int,int,ImageCapabilities,int): - New method from JDK5 spec. Default implementation by delegating to - (createCompatibleVolatileImage(int,int,int). - -2007-02-09 Tom Tromey <tromey@redhat.com> - - PR libgcj/30647: - * configure.ac: Also check for jack/jack.h. - -2007-02-09 Mario Torre <neugens@limasoftware.net> - - * java/io/File.java: remove import for - gnu.classpath.NotImplementedException. - (getUsableSpace): removed stub. - (getFreeSpace): likewise. - (getTotalSpace): likewise. - -2007-02-09 Mario Torre <neugens@limasoftware.net> - - * vm/reference/java/io/VMFile.java: - (canExecute): new 1.6 native method. - (setReadable): likewise. - (setWritable): likewise. - (setExecutable): likewise. - * java/io/File.java: added import for gnu.classpath.NotImplementedException. - (setReadOnly): new 1.6 method. - (canExecute): likewise. - (setReadable): likewise. - (setWritable): likewise. - (setExecutable): likewise. - (getUsableSpace): added stub for new 1.6 method. - (getFreeSpace): likewise. - (getTotalSpace): likewise. - (checkExec): new private method to support new 1.6 additions. - * native/jni/java-io/java_io_VMFile.c: - set_file_permissions: new helper function. - Java_java_io_VMFile_setReadable: new native method to bakcup 1.6 methods - in VMFile.java. - Java_java_io_VMFile_setWritable: likewise. - Java_java_io_VMFile_setExecutable: likewise. - Java_java_io_VMFile_canExecute: likewise. - * native/jni/native-lib/cpio.h: added new flags: CPFILE_FLAG_EXEC, - CPFILE_FLAG_USR and CPFILE_FLAG_OFF. - cpio_chmod: new function declaration. - cpio_checkAccess: likewise. - * native/jni/native-lib/cpio.c: - cpio_chmod: new function definition. - cpio_checkAccess: likewise. - -2007-02-09 Gary Benson <gbenson@redhat.com> - - * javax/management/ObjectName.java - (quote): Initialize StringBuilder correctly. - -2007-02-09 Francis Kung <fkung@redhat.com> - - * java/awt/image/BufferedImage: Reformatted. - -2007-02-09 Ito Kazumitsu <kaz@maczuka.gcd.org> - - Fixes bug #30732 - * gnu/java/util/regex/RETokenChar.java(chain): Check whether the next - token has a next token. - -2007-02-08 Roman Kennke <kennke@aicas.com> - - PR 30347 - * javax/swing/JViewport.java - (scrollRectToVisible): Use correct X/Y offset for calculations. - (paintBackingStore): Update backbuffer when we are not the paint - root. - -2007-02-08 Roman Kennke <kennke@aicas.com> - - * java/awt/image/SinglePixelPackedSampleModel.java - (getDataElements(int,int,Object,DataBuffer)): - Replace DataBuffer using method with simple - switch. This does not check for the exact type (class) of the - DataBuffer but instead checks the transfer type. - (getDataElements(int,int,int,intObject,DataBuffer)): Removed. - (setDataElements): Fixed indentation. - (setPixels): Removed unused statement. - -2007-02-07 Tom Tromey <tromey@redhat.com> - - * tools/gnu/classpath/tools/javah/PathOptionGroup.java - (PathOptionGroup): Allow '-cp' as well. + * gnu/java/awt/peer/gtk/GtkToolkit.java: Only call + System.loadLibrary() when configured so. -2007-02-07 Chris Burdess <dog@gnu.org> +2008-02-08 Dalibor Topic <robilad@kaffe.org> - Fixes PR 30718. - * gnu/xml/dom/ls/SAXEventSink.java: Add public accessor/mutators. - * gnu/xml/transform/XSLURIResolver.java: Add support for custom - SAXSources without a backing URL or stream. + * NEWS: Documented removal of floatToIntBits and doubleToLongBits from + VM interface. -2007-02-06 Tom Tromey <tromey@redhat.com> +2008-02-08 Dalibor Topic <robilad@kaffe.org> - PR libgcj/30707: - * tools/gnu/classpath/tools/javah/JniIncludePrinter.java - (printClass): Always print a header. - -2007-02-06 Chris Burdess <dog@gnu.org> - - Fixes PR 27710. - * gnu/xml/dom/DomDocumentBuilderFactory.java: Fall back to synchronous - LSParser if implementation does not support asynchronous. - * gnu/xml/stream/XMLParser.java, - gnu/xml/stream/XIncludeFilter.java: Use custom code instead of - java.net.URL to resolve to an an absolute URI, to avoid nonexistent - protocol handler problems. - -2007-02-05 Andrew Haley <aph@redhat.com> - - PR cp-tools/30706 - * tools/gnu/classpath/tools/javah/JniIncludePrinter.java: - (printClass): Replace '/' in filenames with '_'. - * tools/gnu/classpath/tools/javah/JniStubPrinter.java - (printClass): Likewise. - -2007-02-05 Tom Tromey <tromey@redhat.com> - - * java/net/Proxy.java (equals): Handle case where address==null. - (hashCode): Likewise. - (toString): Likewise. - -2007-02-04 Jeroen Frijters <jeroen@frijters.net> - - * java/lang/Class.java - (newInstance): Moved setAccessible call to helper method. - (getEnumConstants): Call new helper method to allow values method to be - called on non-public enum classes. - (setAccessible): New helper method. - * java/lang/Enum.java - (valueOf): Call new helper method in class to allow field value to - be read on non-public enum classes. - -2007-02-04 Jeroen Frijters <jeroen@frijters.net> - - Fix for #30693 - * gnu/java/nio/charset/ByteCharset.java - (ByteCharset.Decoder.decodeLoop): Reset input buffer position if - the byte read was unmappable. - -2007-02-02 Kyle Galloway <kgallowa@redhat.com> - - * gnu/classpath/jdwp/processor/StackFrameCommandSet.java - (executeGetValues): Changed getFrame to use a jlong to pass frameID. - (executeSetValues): Ditto. - (executeThisObject): Ditto. - * vm/reference/gnu/classpath/jdwp/VMFrame.java: Added thread field and a - constructor used to create VMFrames. - (getThread): New method. - * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java(getFrame): Changed - to take a long instead of a ByteBuffer to pass the frameID. - -2007-02-01 Tom Tromey <tromey@redhat.com> - - * java/util/logging/LogManager.java (reset): Remove bogus - 'while'. - -2007-01-31 Casey Marshall <csm@gnu.org> - - * gnu/javax/net/ssl/Base64.java: move to `gnu/java/util/Base64.java.' - * gnu/javax/net/ssl/PrivateCredentials.java: clean up unused imports. - (add): use `gnu.java.util.Base64.' - * gnu/java/net/protocol/http/Request.java (authenticate): use - `gnu.java.util.Base64.' - * tools/gnu/classpath/tools/jarsigner/HashUtils.java (hashStream): - likewise. - * tools/gnu/classpath/tools/keytool/CertReqCmd.java (start): likewise. - * tools/gnu/classpath/tools/keytool/ExportCmd.java (start): likewise. - * tools/gnu/classpath/tools/keytool/ListCmd.java (printRFC1421): - likewise. - * gnu/java/net/Base64.java: removed. - * gnu/java/security/util/Base64.java: removed. - -2007-01-31 Casey Marshall <csm@gnu.org> - - Fixes PR classpath/24191. - Fix suggested by Rafael Teixeira <monoman@gmail.com>. - * javax/crypto/CipherOutputStream.java (write): check return value - of `update' for null. - -2007-01-31 Tom Tromey <tromey@redhat.com> - - * resource/gnu/classpath/tools/jar/messages.properties - (Main.Stdin): New message. - * tools/gnu/classpath/tools/jar/Main.java (initializeParser): Add - '-@' option. - (readNames): New method. - (run): Use it. - -2007-01-30 Roman Kennke <kennke@aicas.com> + * vm/reference/java/lang/VMFloat.java (floatToIntBits): Removed unused + method. - PR 20577 - * javax/swing/DefaultDesktopManager.java - (activateFrame): Added a bunch of null checks. Don't call - JInternalFrame.setSelected() to avoid recursion. + * native/jni/java-lang/java_lang_VMFloat.c (Java_java_lang_VMFloat_floatToIntBits): Removed unused function. -2007-01-29 Andrew Haley <aph@redhat.com> + * include/java_lang_VMDouble.h: Regenerated. + + * doc/cp-vmintegration.texinfo (java.lang.VMFloat): Removed + unused method floatToIntBits. (java.lang.VMDouble): Use similar + text to text used for floatToRawIntBits for doubleToLongBits. - * java/lang/SecurityManager.java (SecurityManager): Load and - initialize java.security.Security. - -2007-01-28 Ito Kazumitsu <kaz@maczuka.gcd.org> - - * native/jni/java-nio/gnu_java_nio_VMChannel.c - (Java_gnu_java_nio_VMChannel_accept): Throw SocketTimeoutException - in case of timeout. - * native/jni/java-nio/javanio.c(cpnio_accept): Call select() if - SO_RCVTIMEO is set. +2008-02-08 Dalibor Topic <robilad@kaffe.org> -2007-01-26 Tom Tromey <tromey@redhat.com> - - * tools/gnu/classpath/tools/javah/FieldHelper.java (print): Print - 'volatile' after field type. + * java/lang/Float.java (floatToIntBits): Simplified. -2007-01-26 Chris Burdess <dog@gnu.org> +2008-02-08 Dalibor Topic <robilad@kaffe.org> - Fixes #30597 - * gnu/xml/dom/DomDocumentBuilder.java: Throw IOException where cause - of LSException is an IOException. - * gnu/xml/dom/ls/DomLSParser.java, - gnu/xml/stream/SAXParser.java: Ensure coalescing feature is set - correctly during LS parsing. - -2007-01-21 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/PersistentMBean.java: - New file. - -2007-01-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH) [USER_JAVAH]: Check for gjavah-4.2 + and gjavah-4.1. - * javax/management/AttributeChangeNotificationFilter.java: - Correct typo. - * javax/management/NotificationFilterSupport.java: - New file. - -2007-01-21 Mark Wielaard <mark@klomp.org> +2008-02-08 Dalibor Topic <robilad@kaffe.org> - * java/security/SecureClassLoader.java (defineClass): Method returns - Class<?>. - * java/security/SignatureSpi.java (engineUpdate(ByteBuffer): - Does not throw SignatureException. Chain SignatureException inside - IllegalStateException. + * vm/reference/java/lang/VMDouble.java (doubleToLongBits): Removed unused method. -2007-01-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + * native/jni/java-lang/java_lang_VMDouble.c (Java_java_lang_VMDouble_doubleToLongBits): + Removed unused function. - * javax/management/NotificationBroadcasterSupport.java: - New file. + * include/java_lang_VMDouble.h: Regenerated. -2007-01-20 Ito Kazumitsu <kaz@maczuka.gcd.org> + * doc/cp-vmintegration.texinfo (java.lang.VMDouble): Removed + unused method doubleToLongBits. - * java/text/DecimalFormat.java(parse): Corrected the ParsePosition - settings. +2008-02-08 Dalibor Topic <robilad@kaffe.org> -2007-01-20 Ito Kazumitsu <kaz@maczuka.gcd.org> + * java/lang/Double.java (doubleToLongBits): Simplified. - * java/text/SimpleDateFormat(parse): Corrected the usage of - NumberFormat. +2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk> -2007-01-20 Ito Kazumitsu <kaz@maczuka.gcd.org> + * java/lang/String.java + (replace): Only copy "live" portion of String. Use array copies in preference + to clone. + (toLowerCaseTurkish): likewise + (toLowerCase): likewise + (toUpperCaseTurkish): likewise + (toUpperCase): likewise + (toCharArray): Use array copies in preference to clone. - Fixes bug #30488 - * native/jni/native-lib/cpnet.c(SOCKET_NOSIGNAL): Deleted, - (setsockopt_NOSIGPIPE): New function, - (cpnet_send): Corrected the option setting to send(), - (cpnet_sendTo): Corrected the option setting to sendto(). +2008-02-05 Ian Rogers <ian.rogers@manchester.ac.uk> -2007-01-19 Marco Trudel <mtrudel@gmx.ch> + * gnu/java/lang/reflect/TypeSignature.java + * java/io/BufferedReader.java + * java/io/DataInputStream.java + * java/lang/StackTraceElement.java + * java/lang/Throwable.java + * java/lang/reflect/Proxy.java + * java/net/URI.java + * java/net/URLClassLoader.java + * java/net/URLEncoder.java + * java/text/SimpleDateFormat.java + * java/util/AbstractMap.java + * java/util/Calendar.java + * java/util/Date.java + * java/util/Hashtable.java + Use StringBuilder in preference to StringBuffer + * java/util/Calendar.java + * java/util/Hashtable.java + Make private fields that can be final, final + * java/net/URI.java + Avoid creating Integer objects for the sake of comparison + * java/lang/reflect/Proxy.java + * java/text/SimpleDateFormat.java + Swap use of "new Character/Integer" to use of valueOf methods + +2008-01-29 Ito Kazumitsu <kaz@maczuka.gcd.org> + + Fixes bug #22941 + * java/io/DataInputStream.java(readUTFLong): New method. + (readUTF): New private method. + * java/io/DataOutputStream.java(getUTFlength): Made package-private, + Return type changed to long. + (writeUTF): Use the new method writeUTFShort. + (writeUTFShort): New package-private method. + (writeUTFLong): New package-private method. + (writeUTFBytes): New private method. + * java/io/ObjectInputStream.java(parseContent): Separate the + handling of TC_LONGSTRING from TC_STRING. + * java/io/ObjectOutputStream.java(writeObject): When to write a + String, use writeUTFShort or writeUTFLong depending on the byte length. - * java/util/Arrays.java (binarySearch): Change comparison order. +2008-01-27 Bernhard Fischer <rep.dot.nop@gmail.com> -2007-01-17 Keith Seitz <keiths@redhat.com> + * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment. + * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in + exception message. - * gnu/classpath/jdwp/events/filters/StepFilter.java: - Update javadoc. - (matches): Implement. +2008-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> - * gnu/classpath/jdwp/event/EventManager.java (EventManager): Honor - agent startup suspension for VM_INIT. + * doc/README.jaxp: Fix typos. -2007-01-17 Tom Tromey <tromey@redhat.com> +2008-01-25 Dalibor Topic <robilad@kaffe.org> - * tools/gnu/classpath/tools/javah/PathOptionGroup.java - (PathOptionGroup): Set default boot class path. + * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java + (createParser): Removed unused "reversed" misspelling. Use + Native2ASCII.ReverseHelp instead of Native2ASCII.ReversedHelp. -2007-01-17 Mark Wielaard <mark@klomp.org> + * resource/gnu/classpath/tools/native2ascii/messages.properties + (Native2ASCII.ReverseHelp): New, renamed from ... + (Native2ASCII.ReversedHelp): Removed. + (Native2ASCII.ReversedHelpCompat): Removed. - * javax/activity/ActivityCompletedException.java: Make constructors - public. - * javax/activity/ActivityRequiredException.java: Likewise. - * javax/activity/InvalidActivityException.java: Likewise. +2008-01-24 Tom Tromey <tromey@redhat.com> -2007-01-17 Roman Kennke <kennke@aicas.com> + * resource/gnu/classpath/tools/native2ascii/messages.properties + (Native2ASCII.ReversedHelpCompat): New. + * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java + (createParser): Add -reverse. Update -reversed. - * javax/swing/plaf/basic/BasicRadioButtonUI.java - (paint): Use helper method to figure out icon. Don't override - the icon field in that class. Check for null icons. - (getCurrentIcon): New helper function to determine icon to be - painted. +2008-01-21 Luciano Chavez <lnx1138@us.ibm.com> -2007-01-17 Mark Wielaard <mark@klomp.org> + PR libgcj/34369: + * java/net/URI.java (relativize): Check initial segment for + trailing "/". - * javax/activity/ActivityCompletedException.java: New file. - * javax/activity/ActivityRequiredException.java: Likewise. - * javax/activity/InvalidActivityException.java: Likewise. - * javax/activity/package.html: Likewise. +2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> -2007-01-15 Andrew John Hughes <gnu_andrew@member.fsf.org> + * m4/acinclude.m4: + Remove bootclasspath option which fails with + OpenJDK javac. + +2008-01-14 Roman Kennke <kennke@aicas.com> - * javax/management/DefaultLoaderRepository.java: - (loadClass(String)): Made static. - (loadClassWithout(String,ClassLoader)): Likewise. + * javax/tools/FileObject.java: New interface. -2007-01-15 Kyle Galloway <kgallowa@redhat.com> +2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> - * gnu/classpath/jdwp/exception/TypeMismatchException.java: New file. - * gnu/classpath/jdwp/exception/InvalidFrameException.java: Fix indentation. - * gnu/classpath/jdwp/exception/InvalidSlotException.java: Fix indentation. + * javax/accessibility/AccessibleAction.java: + (CLICK): Added. + (TOGGLE_POPUP): Likewise. + * javax/accessbiility/AccessibleRole.java: + (HTML_CONTAINER): Added. -2007-01-15 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> - * javax/management/AttributeValueExp.java: - Corrected serialVersionUID typo. - * javax/management/DefaultLoaderRepository.java: - New file. - * javax/management/MBeanServerFactory.java: - Add generic typing. + * javax/accessibility/AccessibleAttributeSequence.java: + (AccessibleAttributeSequence(int,int,AttributeSet)): + Implemented. + * javax/accessibility/AccessibleTextSequence.java: + (AccessibleTextSequence(int,int,String)): + Likewise. -2007-01-15 Kyle Galloway <kgallowa@redhat.com> +2008-01-13 Leen Toelen <toelen@gmail.com> - * gnu/classpath/jdwp/exception/InvalidFrameException.java: New file. + * native/fdlibm/ieeefp.h: Added avr32 support. -2007-01-15 Kyle Galloway <kgallowa@redhat.com> +2008-01-09 Stefan Huehner <stefan@huehner.org> + + * native/jni/java-io/java_io_VMObjectStreamClass.c, + * native/jni/java-lang/java_lang_VMDouble.c, + * native/jni/java-net/java_net_VMInetAddress.c: + Don't discard const by casting (const char *) to + (char *) when it's not needed. - * gnu/classpath/jdwp/exception/AbsentInformationException.java: New file. +2008-01-09 Stefan Huehner <stefan@huehner.org> -2007-01-15 Kyle Galloway <kgallowa@redhat.com> + * gnu/classpath/jdwp/event/ExceptionEvent.java, + * gnu/java/awt/peer/gtk/GtkMainThread.java: + Use Boolean.TRUE|FALSE instead of new Boolean(true|false) + * gnu/java/rmi/server/ConnectionRunnerPool.java, + * gnu/xml/aelfred2/XmlParser.java, + * gnu/xml/libxmlj/dom/GnomeXPathResult.java, + * gnu/xml/stream/XIncludeFilter.java: + Use Integer|Double|Charater.toString(var) instead of + new Integer|Double|Character(var).toString() - * gnu/classpath/jdwp/exception/InvalidSlotException.java: New file. +2006-01-09 Roman Kennke <kennke@aicas.com> -2007-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> + * javax/tools/Diagnostic.java, + * javax/tools/DiagnosticListener.java: + New interfaces. - * javax/management/AttributeValueExp.java: New file. - * javax/management/QueryEval.java: Likewise. - * javax/management/StringValueExp.java: Likewise. - -2007-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> +2006-01-09 Roman Kennke <kennke@aicas.com> - * javax/management/AttributeChangeNotificationFilter.java: - New file. - -2007-01-11 Andreas Tobler <a.tobler@schweiz.org> - - * examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java - (AicasGraphicsBenchmark): Load images from ../icons. - * examples/gnu/classpath/examples/java2d/J2dBenchmark.java (init): - Likewise. - * examples/Makefile.am (EXAMPLE_ICONS): Add rule to copy *.gif files - to icons. - * examples/gnu/classpath/examples/awt/aicas.png: Move to ../icons. - Delete here. - * examples/gnu/classpath/examples/awt/palme.gif: Likewise. - * examples/gnu/classpath/examples/java2d/aicas.png: Likewise. - * examples/gnu/classpath/examples/java2d/palme.gif: Likewise. - * examples/gnu/classpath/examples/icons/aicas.png: Moved. - * examples/gnu/classpath/examples/icons/palme.gif: Likewise. - -2007-01-09 Tania Bento <tbento@redhat.com> - - * java/security/Permission.java: - (toString): If there are no actions, then there should not - be a space between its name and ')'. - -2007-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * javax/management/AttributeChangeNotification.java: - New file. - -2007-01-08 Cameron McCormack <cam@mcc.id.au> - - PR 30355 - * java/util/Arrays.java: - (binarySearch(byte[],byte)): Added check for zero-length array. - (binarySearch(short[],short)): Likewise. - (binarySearch(int[],int)): Likewise. - (binarySearch(long[],long)): Likewise. - (binarySearch(char[],char)): Likewise. - (binarySearch(float[],float)): Likewise. - (binarySearch(double[],double)): Likewise. - (binarySearch(Object[],Object)): Likewise. - (binarySearch(T[],T,Comparator)): Likewise. - -2007-01-08 Tom Tromey <tromey@redhat.com> - - * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java (run): - Fix length check. PR classpath/30346. - -2007-01-09 Raif S. Naffah <classpath@naffah-raif.name> - - * tools/gnu/classpath/tools/jarsigner/SFHelper.java: Updated copyright year. - (sfEntries): Use generics. - (writeDSA()): Likewise. - (startSigning()): Likewise. - (updateEntry()): Likewise. - * tools/gnu/classpath/tools/jarsigner/Messages.java: Updated copyright year. - (CACHED_FORMATS): Use generics. - (getFormattedString()): Likewise. - * tools/gnu/classpath/tools/jarsigner/Main.java: Updated copyright year. - (fileAndAlias): Use generics. - (ToolParser.validate()): Likewise. - * tools/gnu/classpath/tools/jarsigner/JarVerifier.java: - Updated copyright year. - Re-ordered imports and removed unused entries. - (entryHashes): Use generics. - (start()): Likewise. - (verifySFEntries()): Likewise. - Use map's entrySet() instead of its keySet(). - -2007-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * java/text/DateFormat.java: - (computeInstance(int,int,Locale,boolean,boolean)): - Throw an exception when locale info. is unavailable. - (computeDefault(int,int,boolean,boolean)): New method. - (getDateInstance(int,Locale)): Check providers. - (getDateTimeInstance(int,int,Locale)): Likewise. - (getTimeInstance(int,Locale)): Likewise. - * java/text/DateFormatSymbols.java: - Update documentation to match DecimalFormatSymbols. - * java/text/DecimalFormatSymbols.java: - (DecimalFormatSymbols(Locale)): Reordered. - (getInstance()): Implemented. - (getInstance(Locale)): Implemented. - * java/text/NumberFormat.java: - (computeInstance(Locale,String,String)): - Throw an exception when locale info is unavailable. - (getCurrencyInstance(Locale)): Check providers. - (getIntegerInstance(Locale)): Likewise. - (getNumberInstance(Locale)): Likewise. - (getPercentInstance(Locale)): Likewise. - * java/text/spi/DateFormatProvider.java: New file. - * java/text/spi/DecimalFormatSymbolsProvider.java: Likewise. - * java/text/spi/NumberFormatProvider.java: Likewise. - -2007-01-07 Ito Kazumitsu <kaz@maczuka.gcd.org> - - Fixes bug #30377 - * native/jni/native-lib/cpnet.h: Add some include files. - -2007-01-07 Roman Kennke <roman@kennke.org> - - PR 30337 - * java/awt/Component.java - (getFontImpl): Return null when the component has no font set - and also has no parent yet. - * javax/swing/plaf/basic/BasicComboBoxUI.java - (PropertyChangeHandler.propertyChange): Only add editor when combo - box is editable. Avoid fetching the property name repeatedly. - Invalidate when renderer or prototypeDisplayValue change. - (uninstallComponents): Unconfigure everything and then remove all - components. - * javax/swing/plaf/basic/BasicComboPopup.java - (uninstallingUI): Don't nullify list model. - * javax/swing/plaf/metal/MetalComboBoxUI.java - (createArrowButton): Pass currentValuePane to the MetalComboBoxButton - constructor rather than a new (unconnected) CellRendererPane. - -2007-01-06 Roman Kennke <roman@kennke.org> - - PR 30337 - * javax/swing/plaf/basic/BasicComboBoxUI.java - (installUI): Install popup and list here. - Don't configure the arrow button and editor here. - (installComponents): Don't install popup and list here. (Moved - to installUI). Configure arrow button here and check for null. - (addEditor): Configure editor here. - (configureArrowButton): Directly fetch listeners from popup. - (paintCurrentValue): Removed unused local variables. - (layoutContainer): Removed unused local variables. - (PropertyChangeHandler.propertyChange): Don't invalidate minimumSize - on each property change. Avoid calling getPropertyName() repeatedly. - Clean up. Call addEditor() when editor changes. Configure and - unconfigure editor when editable changes. Use 'model' instead - of non-existing 'dataModel' property. - * javax/swing/plaf/basic/BasicComboPopup.java - (uninstallingUI): Remove property change listener and item listener - here. Uninstall list listeners. Set model to null to prevent leakage. - (configureList): Don't sync list selection there. - (uninstallComboBoxListeners): Moved to uninstallingUI. - (uninstallListeners): Moved to uninstallingUI. - * javax/swing/plaf/metal/MetalComboBoxUI.java - (createPopup): Call super. - (getMinimumSize): Removed unused statement. - -2007-01-06 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * java/text/Collator.java: - (getInstance(Locale)): Check providers. - * java/text/spi/CollatorProvider.java: - New file. - -2007-01-04 Roman Kennke <roman@kennke.org> - - PR 30122 - * java/awt/Component.java - (getFont): Don't synchronize on tree lock here. The method is - thread-safe 'enough' by fetching local variables in getFontImpl(). - -2007-01-04 Roman Kennke <roman@kennke.org> - - * java/awt/AWTEvent.java - (toString): Don't include the whole component in the output, - only its name. - * java/awt/Component.java - (isShowing): Create local copy of parent field for better - thread safety and efficiency. - * java/awt/EventDispatchThread.java - (EventDispatchThread): Make sure the event thread is not a daemon - thread in case it gets started by a daemon thread. - * java/awt/image/IndexColorModel.java - (createColorMap): New helper method for creating the color map. - (IndexColorModel): (all constructors) use createColorMap() helper - method. - -2007-01-04 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/font/autofit/GlyphHints.java - (alignStrongPoints): Don't special case the vertical dimension. - (computeInflectionPoints): Corrected computation of inflection - points. - * gnu/java/awt/font/autofit/Utils.java - (ANGLE_4PI): Removed. - (ANGLE_PI2): New constant for PI/2. - (ANGLE_PI4): New constant for PI/4. - (angleDiff): Fixed. - (atan): Fixed. - -2007-01-03 Cameron McCormack <cam@mcc.id.au> - - Fixes bug #29246 - * java/awt/Toolkit.java (getLockingKeyState): Use AWTUtilities - isValidKey method. Throw UnsupportedOperationException on a valid - key (for which no locking state can be given). - * gnu/java/awt/AWTUtilities.java (isValidKey): New method. - * gnu/java/awt/peer/gtk/GtkToolkit.java (getLockingKeyState): New - method. - * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c - (Java_gnu_java_awt_peer_gtk_GtkToolkit_getLockState): New method. - * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerated. - -2007-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * java/text/BreakIterator.java: - (getCharacterInstance(Locale)): Check providers. - (getLineInstance(Locale)): Likewise. - (getSentenceInstance(Locale)): Likewise. - (getWordInstance(Locale)): Likewise. - * java/text/spi/BreakIteratorProvider.java: - New file. - * java/text/spi/DateFormatSymbolsProvider.java: - Update header text. - * java/util/ServiceConfigurationError.java: - Add serialVersionUID. - -2007-01-03 Francis Kung <fkung@redhat.com> + * gnu/java/awt/peer/x/XWindowPeer.java + (getFontMetrics): Re-enable that for X fonts. - * gnu/java/awt/peer/gtk/CairoGraphics2D.java: - (copy): Copy and set antialias value. +2008-01-09 Stefan Huehner <stefan@huehner.org> -2007-01-03 Tania Bento <tbento@redhat.com> - * java/awt/CardLayout.java: - (maximumLayoutSize): Return a new Dimension with a width of value - Integer.MAX_VALUE and a height of value Integer.MAX_VALUE if Component - has no components. + * examples/gnu/classpath/examples/java2d/J2dBenchmark.java, + * gnu/CORBA/OrbFocused.java, + * gnu/CORBA/CDR/HeadlessInput.java, + * gnu/java/awt/peer/gtk/CairoGraphics2D.java, + * gnu/java/awt/peer/gtk/GtkFramePeer.java, + * gnu/java/awt/peer/qt/QtMenuPeer.java, + * gnu/java/nio/FileChannelImpl.java, + * gnu/java/nio/SocketChannelSelectionKeyImpl.java, + * gnu/java/security/Engine.java, + * gnu/javax/imageio/jpeg/JPEGComponent.java, + * gnu/javax/imageio/jpeg/JPEGDecoder.java, + * gnu/javax/imageio/jpeg/JPEGFrame.java, + * gnu/javax/print/PrinterDialog.java, + * gnu/javax/security/auth/Password.java, + * gnu/javax/swing/text/html/parser/support/Parser.java, + * gnu/javax/swing/text/html/parser/support/parameterDefaulter.java, + * gnu/xml/pipeline/DomConsumer.java, + * java/awt/AWTKeyStroke.java, + * java/awt/DefaultKeyboardFocusManager.java, + * java/awt/GridBagLayout.java, + * java/awt/dnd/DragGestureRecognizer.java, + * java/awt/geom/Arc2D.java, + * java/awt/geom/CubicCurve2D.java, + * java/awt/geom/QuadCurve2D.java, + * java/awt/im/InputContext.java, + * java/awt/image/AffineTransformOp.java, + * java/beans/Encoder.java, + * java/io/ObjectInputStream.java, + * java/io/ObjectStreamClass.java, + * java/net/ResolverCache.java, + * java/nio/charset/Charset.java, + * java/security/SecureClassLoader.java, + * java/text/MessageFormat.java, + * java/util/jar/Manifest.java, + * javax/accessibility/AccessibleRelationSet.java, + * javax/imageio/ImageReader.java, + * javax/imageio/metadata/IIOMetadataNode.java, + * javax/print/attribute/standard/MediaSize.java, + * javax/print/attribute/standard/PrinterStateReasons.java, + * javax/swing/JTree.java, + * javax/swing/table/DefaultTableColumnModel.java, + * javax/swing/text/html/MinimalHTMLWriter.java, + * javax/swing/text/html/parser/DTD.java, + * javax/swing/tree/DefaultMutableTreeNode.java, + * javax/swing/undo/UndoManager.java, + * org/omg/CosNaming/NamingContextExtPOA.java, + * org/omg/CosNaming/NamingContextPOA.java, + * org/omg/CosNaming/_NamingContextExtImplBase.java, + * org/omg/CosNaming/_NamingContextImplBase.java, + * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java: + Remove unneeded casts + +2006-01-09 Roman Kennke <kennke@aicas.com> + + * java/text/CollationElementIterator.java + (text): Changed type to CharacterIterator. + (CollationElementIterator(RuleBasedCollator,CharacterIterator)): New + constructor. + (setOffset(int)): Use CharacterIterator.getEndIndex() instead of + String.length(). + (setText(String)): Wrap string into a StringCharacterIterator. + * java/text/RuleBasedCollator.java + (getCollationElementIterator(CharacterIterator)): Simply return + CollationElementIterator for the character iterator, instead of + expanding things. + +2008-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34579: + * m4/acinclude.m4: + (CLASSPATH_CHECK_JAVAC): Delete Colour.java + +2008-01-04 Stefan Huehner <stefan@huehner.org> + + * gnu/CORBA/BigDecimalHelper.java, + * gnu/CORBA/CDR/AbstractCdrInput.java, + * gnu/CORBA/CDR/AbstractCdrOutput.java, + * gnu/CORBA/CDR/HeadlessInput.java, + * gnu/CORBA/CDR/gnuRuntime.java, + * gnu/CORBA/Connected_objects.java, + * gnu/CORBA/GIOP/CancelHeader.java, + * gnu/CORBA/GIOP/v1_0/CancelHeader.java, + * gnu/CORBA/IOR.java, + * gnu/CORBA/Interceptor/Registrator.java, + * gnu/CORBA/IorDelegate.java, + * gnu/CORBA/NamingService/NameTransformer.java, + * gnu/CORBA/ObjectCreator.java, + * gnu/CORBA/OrbFunctional.java, + * gnu/CORBA/Poa/AOM.java, + * gnu/CORBA/Poa/gnuPOA.java, + * gnu/CORBA/Poa/gnuPOAManager.java, + * gnu/CORBA/Poa/gnuServantObject.java, + * gnu/CORBA/typecodes/FixedTypeCode.java, + * gnu/CORBA/typecodes/RecursiveTypeCode.java, + * gnu/java/awt/AWTUtilities.java, + * gnu/java/awt/peer/gtk/CairoGraphics2D.java, + * gnu/java/awt/peer/gtk/CairoSurface.java, + * gnu/java/awt/peer/swing/SwingMenuBarPeer.java, + * gnu/java/text/AttributedFormatBuffer.java, + * gnu/java/util/regex/REToken.java, + * gnu/javax/imageio/gif/GIFFile.java, + * gnu/javax/imageio/png/PNGDecoder.java, + * gnu/javax/management/Server.java, + * gnu/javax/naming/giop/ContextContinuation.java, + * gnu/javax/naming/jndi/url/rmi/ContextContinuation.java, + * gnu/javax/swing/text/html/css/Selector.java, + * gnu/javax/swing/text/html/parser/models/node.java, + * gnu/javax/swing/text/html/parser/support/Parser.java, + * gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java, + * gnu/javax/swing/text/html/parser/support/textPreProcessor.java, + * gnu/xml/util/Resolver.java, + * java/awt/image/AreaAveragingScaleFilter.java, + * java/beans/Beans.java, + * java/beans/XMLDecoder.java, + * java/beans/beancontext/BeanContextServicesSupport.java, + * java/beans/beancontext/BeanContextSupport.java, + * java/io/CharArrayWriter.java, + * java/lang/System.java, + * java/net/ResolverCache.java, + * java/util/Calendar.java, + * java/util/Collections.java, + * java/util/Formatter.java, + * javax/accessibility/AccessibleEditableText.java, + * javax/imageio/ImageReader.java, + * javax/imageio/ImageTypeSpecifier.java, + * javax/imageio/ImageWriter.java, + * javax/imageio/spi/ServiceRegistry.java, + * javax/imageio/stream/ImageInputStream.java, + * javax/management/MBeanPermission.java, + * javax/rmi/CORBA/PortableRemoteObjectDelegate.java, + * javax/rmi/CORBA/Util.java, + * javax/rmi/CORBA/UtilDelegate.java, + * javax/rmi/CORBA/ValueHandler.java, + * javax/rmi/PortableRemoteObject.java, + * org/ietf/jgss/GSSContext.java, + * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java, + * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java, + * tools/gnu/classpath/tools/appletviewer/TagParser.java, + * vm/reference/gnu/java/nio/VMChannel.java: + Correct javadoc to match the functions' parameters + * gnu/java/awt/peer/swing/SwingTextFieldPeer.java: + Rename start_pos parameter to startPos to conform to style. + +2008-01-07 Jeroen Frijters <jeroen@frijters.net> + + * java/awt/image/Raster.java + (createInterleavedRaster): Fixed ComponentSampleModel constructor + argument order. -2007-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org> - * java/text/DateFormatSymbols.java: - (getZoneStrings(ResourceBundle)): Changed to... - (getZoneStrings(ResourceBundle,Locale)): Added - use of TimeZoneNamesProvider. - (getZoneStrings()): Return either mutated zone - strings or initial ones. - (getInstance(Locale)): Check DateFormatSymbolsProvider - instances. - * java/text/spi/DateFormatSymbolsProvider.java: - New file. - * java/text/spi/package.html: New file. + PR classpath/34579: + * m4/acinclude.m4: + (CLASSPATH_CHECK_JAVAC): Don't rely on 1.5 class + library. -2007-01-02 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * java/util/Currency.java: - (getSymbol(Locale)): Removed unneeded variable - and terminate loop early. - * java/util/Locale.java: - (getDisplayLanguage(Locale)): Fixed to use - LocaleNameProvider. - (getDisplayCountry(Locale)): Likewise. - (getDisplayVariant(Locale)): Likewise. - * java/util/spi/LocaleNameProvider.java: - New file. - * java/util/spi/TimeZoneNameProvider.java: - Likewise. - -2007-01-02 Andrew John Hughes <gnu_andrew@member.fsf.org> +2008-01-01 Andrew John Hughes <gnu_andrew@member.fsf.org> - * gnu/java/locale/LocaleHelper.java: - (getLocalizedString(Locale,String,String,boolean, - boolean)): Removed, no longer needed. - (getFallbackLocale(Locale)): Implemented. - * java/lang/String.java: - (isEmpty()): Implemented. - * java/util/Currency.java: - (getSymbol(Locale)): Reimplemented to use SPI. - * java/util/Locale.java: - (ROOT): Added. - * java/util/spi/CurrencyNameProvider.java: - New file. - * java/util/spi/LocaleServiceProvider.java: - Likewise. - * java/util/spi/package.html: Likewise. - -2007-01-02 Roman Kennke <roman@kennke.org> - - * gnu/java/awt/java2d/AbstractGraphics2D.java - (FONT): New constant field. This is the default font to use as long - as nothing else is set. - (paintContext): New field. Temporarily stores the paint context. - (scanlineConverters): New field. Stores the scanline converters - for each thread. - (shapeCache): Genericified. - (STANDARD_HINTS): New constant field. The standard rendering hints - as long as nothing else is set. - (STANDARD_STROKE): New constant field. The standard stroke as long - as nothing else is set. - (static_initializer): Initialize standard hints. - (AbstractGraphics2D): Use constant fields for hints and stroke. - (drawGlyphVector): Use simpler method to draw the outline. - (fillScanline): Use paintContext field. - (fillShape): Use new ScanlineConverter to fill shapes. - (fillShapeAntialias): Removed. This will be done in fillShape. - (fillShapeImpl): Removed. This is done now in the ScanlineConverter - class. - (getScanlineConverter): New method. Returns the scanline converter - for each thread. - (getSegments): Removed. This is now implemented in ScanlineConverter. - (getShapeCache): Use genericified shapeCache field. - (init): Use fixed default font. Don't fetch destination raster here. - * gnu/java/awt/java2d/ActiveEdges.java: New class. Stores a set - of active edges for scanline conversion. - * gnu/java/awt/java2d/PolyEdge.java - (poolNext): Implements linked list for edge pool. - (scanlineNext): Implements linked list for scanline edge lists. - (slope): Use fixed point decimal. - (slope,x0,y0,x1,y1,xIntersection): Use fixed point decimal. - (PolyEdge()): New constructor. - (PolyEdge): Use fixed point decimals. - (init): Use fixed point decimals. - (intersect): New method. Intersects this edge with a scanline. - * gnu/java/awt/java2d/Scanline.java: New class. A list of edges - for a scanline plus utilities. - * gnu/java/awt/java2d/ScanlineConverter.java: New class. Implements - an efficient scanline converter for rendering Shape objects. - -2007-01-02 Roman Kennke <roman@kennke.org> - - * gnu/java/math/Fixed.java: New class. Fixed point arithmetics - utilities. - -2007-01-01 Andrew John Hughes <gnu_andrew@member.fsf.org> - - * ChangeLog-2006: New file. - * gnu/classpath/ServiceFactory.java: - Add option of throwing a ServiceConfigurationError. - (lookupProviders(Class,ClassLoader,boolean)): Implemented. - * java/util/ServiceConfigurationError.java: New file. - * java/util/ServiceLoader.java: Likewise. - + * ChangeLog-2007: New file. Local Variables: diff --git a/libjava/classpath/ChangeLog-2007 b/libjava/classpath/ChangeLog-2007 new file mode 100644 index 00000000000..821ff98e811 --- /dev/null +++ b/libjava/classpath/ChangeLog-2007 @@ -0,0 +1,4810 @@ +2007-12-31 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/remote/rmi/RMIConnection.java: + Partial implementation. + * javax/management/remote/rmi/RMIServer.java: + Implemented. + +2007-12-31 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34582: + * javax/rmi/ssl/SslRMIClientSocketFactory.java: + (getProp(String)): Check for the property being null. + +2007-12-28 Dalibor Topic <robilad@kaffe.org> + + * configure.ac (AC_CHECK_HEADERS): Check for + netinet/in_systm.h, netinet/ip.h and net/if.h + for Windows CE. + + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c: + Guard net/if.h include statement. Use unsigned int + instead of u_int. + + * native/jni/java-nio/gnu_java_nio_VMChannel.c: + Guard sys/mman.h include statement. + + * native/jni/java-nio/gnu_java_nio_VMSelector.c: + Guard sys/select.h include statement. + + * native/jni/java-nio/javanio.c: + Guard sys/select.h include statement. + + * native/jni/java-nio/javanio.h: + Include sys/time.h. + + * native/jni/native-lib/cpio.c: + Guard chmod call by S_IWRITE, since it's not + defined in the arm-wince toolchain. + + * native/jni/native-lib/cpnet.h: + Guard netinet/in_systm.h and netinet/ip.h + include statements. + +2007-12-28 Dalibor Topic <robilad@kaffe.org> + + * m4/acinclude.m4 (CLASSPATH_WITH_GLIBJ): Use + AC_PATH_PROGS instead of AC_PATH_PROG to check + for FASTJAR as fastjar, gjar or jar. Add braces + to AC_PATH_PROGS arguments. + + * tools/Makefile.am (TOOLS_ZIP), + lib/Makefile.am (collections.jar, glibj.zip): + Quote FASTJAR in case it's in a path with + whitespace. + +2007-12-25 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34580: + * java/awt/Desktop.java: + (isDesktopSupported()): Made public. + +2007-12-25 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34577: + * javax/swing/JFrame.java: + (addImpl(Component,Object,int)): Add a similar + check for the root pane as in remove, adding using + the superclass when this occurs rather than the + content pane. + +2007-12-25 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34576: + * java/awt/Container.java: + (isAncestorOf(Component)): Swap ordering so that + the parent is retrieved prior to checking against + this, thus preventing a component being an ancestor of + itself. + +2007-12-11 Robert Schuster <robertschuster@fsfe.org> + + * AUTHORS: Added my name to the list. + +2007-12-10 Robert Schuster <robertschuster@fsfe.org> + + * THANKYOU: Added my name to the list. + +2007-12-10 Robert Schuster <robertschuster@fsfe.org> + + PR classpath/32516: + * tools/gnu/classpath/tools/jar/Entry.java: + (Entry(File, String)): Added loop to remove all dot-file separator + prefixes. + (Entry(File)): Call Entry(File, String) constructor variant. + +2007-12-10 Robert Schuster <robertschuster@fsfe.org> + + * native/jni/native-lib/cpio.c: + (cpio_df): Mark arguments as possibly unused. + +2007-12-10 Robert Schuster <robertschuster@fsfe.org> + + * javax/swing/text/GlyphView.java: + (paint): Removed debug output. + +2007-12-02 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34276: + * gnu/javax/management/Translator.java: + (translate(String)): Select only public methods + from a composite type, try this translation in all + cases and exit only when no fields are translated. + +2007-11-30 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/34276: + * gnu/java/lang/management/BeanImpl.java: + (getDescription(MBeanConstructorInfo,MBeanParameterInfo,int)): + Added to provide a default description if the current one is null. + (getDescription(MBeanOperationInfo,MBeanParameterInfo,int)): + Likewise. + (getParameterName(MBeanConstructorInfo,MBeanParameterInfo,int)): + Likewise for the name. + (getParameterName(MBeanOperationInfo,MBeanParameterInfo,int)): + Likewise. + * gnu/javax/management/Server.java: + (getMBeanInfo()): Try using a StandardMBean wrapper if reflection + fails to find getMBeanInfo(). + +2007-11-28 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * examples/gnu/classpath/examples/management/TestBeans.java: + Simplify so that it uses the management server. + * examples/gnu/classpath/examples/management/TestClassLoading.java: + Test via the server and the proxy as well. + +2007-11-27 Thomas Fitzsimmons <fitzsim@redhat.com> + + * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, + native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c + (isWindowUnderMouse): New method. + * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: + Regenerate. + * gnu/java/awt/peer/gtk/GtkComponentPeer.java + (getLocationOnScreen): Move WindowPeer section to... + * gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen): + New method. + * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java + (isWindowUnderMouse): Implement. + * java/awt/Component.java (getMousePosition): New method. + (getMousePositionHelper): Likewise. + (mouseOverComponent): Likewise. + * java/awt/Container.java (getMousePosition): New method. + (mouseOverComponent): Likewise. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c: + Revert 2007-09-11 changes. + +2007-11-27 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/package.html: Added. + * javax/management/remote/package.html: Likewise. + +2007-11-24 Mario Torre <neugens@limasoftware.net> + + * java/util/concurrent/CopyOnWriteArrayList.java: + (addAll): fix implementation, now add elements in the correct position. + (addAllAbsent): fixed typos (whoops!). + (remove(int)): fixed range in arraycopy that was causing for incorrect + values to be inserted in the list. Refactored to give variables better + names. + (remove(Object)): refactored to give better names to variable. + (listIterator): fix to set the starting index. + (listIterator.previous): fix to decrement element position before + returning the previous element in the iterator. + +2007-11-23 Mario Torre <neugens@limasoftware.net> + + * gnu/java/util/prefs/EventDispatcher.java: class removed. + * gnu/classpath/toolkit/DefaultDaemonThreadFactory.java: new file. + * java/util/prefs/AbstractPreferences.java: (fire(PreferenceChangeEvent)): + Use DefaultDaemonThreadFactory and Executors.newSingleThreadExecutor + instead of EventDispatcher. Import statement refactored accordingly. + Also refactored to use 1.5 enhanced for loop and generics. + (fire(NodeChangeEvent, boolean)): likewise. + * gnu/java/util/prefs/GConfBasedPreferences.java (childSpi): + removed startWatchingNode call. + * gnu/java/util/prefs/gconf/GConfNativePeer.java: + (GConfNativePeer): removed use of semaphore. + (gconf_all_nodes): method name shortened, renamed from + gconf_client_all_nodes (removed client_ from method signature) and + declared synchronized. + (gconf_suggest_sync): likewise. + (gconf_get_string): likewise. + (gconf_unescape_key): likewise. + (gconf_set_string): likewise. + (gconf_escape_key): likewise. + (gconf_all_keys): likewise. + (gconf_dir_exists): likewise. + (getKeys): refactored to use new native method name. + (getKey): likewise. + (setString): likewise. + (getChildrenNodes): likewise. + (unset): likewise. + (suggestSync): likewise. + (finalize): likewise. + (nodeExist): likewise. + (gconf_client_add_dir): removed, not needed anymore. + (gconf_client_remove_dir): likewise. + (startWatchingNode): likewise. + (stopWatchingNode): likewise. + * native/jni/conf-peer/GConfNativePeer.c: + All native methods renamed to match changes in GConfNativePeer.java + Now use GConfEngine instead of GConfClient. + Removed gdk_thread_enter/leave locking from all methods. + (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir): + removed. + (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists): + likewise. + * include/gnu_java_util_prefs_gconf_GConfNativePeer.h: regenerated. + +2007-11-23 Mario Torre <neugens@limasoftware.net> + + * java/util/concurrent/CopyOnWriteArrayList.java: + Added javadoc. + (serialVersionUID): new field. + (iterator): new method, override from base class. + (remove): likewise. + (listIterator): likewise. + (removeAll): likewise. + (retainAll): likewise. + (contains): fixed typo in javadoc. + (addIfAbsent): added javadoc. + (addAllAbsent): Rewrite to improve performance. Also add javadoc. + +2007-11-23 Ian Rogers <ian.rogers@manchester.ac.uk> + + * java/io/FileOutputStream.java, + * java/io/PrintStream.java, + * java/util/Locale.java: + Make fields that can be final, final. + * gnu/java/nio/charset/ByteCharset.java, + * gnu/java/nio/charset/Cp424.java, + * gnu/java/nio/charset/Cp437.java, + * gnu/java/nio/charset/Cp737.java, + * gnu/java/nio/charset/Cp775.java, + * gnu/java/nio/charset/Cp850.java, + * gnu/java/nio/charset/Cp852.java, + * gnu/java/nio/charset/Cp855.java, + * gnu/java/nio/charset/Cp857.java, + * gnu/java/nio/charset/Cp860.java, + * gnu/java/nio/charset/Cp861.java, + * gnu/java/nio/charset/Cp862.java, + * gnu/java/nio/charset/Cp863.java, + * gnu/java/nio/charset/Cp864.java, + * gnu/java/nio/charset/Cp865.java, + * gnu/java/nio/charset/Cp866.java, + * gnu/java/nio/charset/Cp869.java, + * gnu/java/nio/charset/Cp874.java, + * gnu/java/nio/charset/EncodingHelper.java, + * gnu/java/nio/charset/ISO_8859_13.java, + * gnu/java/nio/charset/ISO_8859_15.java, + * gnu/java/nio/charset/ISO_8859_1.java, + * gnu/java/nio/charset/ISO_8859_2.java, + * gnu/java/nio/charset/ISO_8859_3.java, + * gnu/java/nio/charset/ISO_8859_4.java, + * gnu/java/nio/charset/ISO_8859_5.java, + * gnu/java/nio/charset/ISO_8859_6.java, + * gnu/java/nio/charset/ISO_8859_7.java, + * gnu/java/nio/charset/ISO_8859_8.java, + * gnu/java/nio/charset/ISO_8859_9.java, + * gnu/java/nio/charset/KOI_8.java, + * gnu/java/nio/charset/MacCentralEurope.java, + * gnu/java/nio/charset/MacCroatian.java, + * gnu/java/nio/charset/MacCyrillic.java, + * gnu/java/nio/charset/MacDingbat.java, + * gnu/java/nio/charset/MacGreek.java, + * gnu/java/nio/charset/MacIceland.java, + * gnu/java/nio/charset/MacRomania.java, + * gnu/java/nio/charset/MacRoman.java, + * gnu/java/nio/charset/MacSymbol.java, + * gnu/java/nio/charset/MacThai.java, + * gnu/java/nio/charset/MacTurkish.java, + * gnu/java/nio/charset/MS874.java, + * gnu/java/nio/charset/Provider.java, + * gnu/java/nio/charset/US_ASCII.java, + * gnu/java/nio/charset/Windows1250.java, + * gnu/java/nio/charset/Windows1251.java, + * gnu/java/nio/charset/Windows1252.java, + * gnu/java/nio/charset/Windows1253.java, + * gnu/java/nio/charset/Windows1254.java, + * gnu/java/nio/charset/Windows1255.java, + * gnu/java/nio/charset/Windows1256.java, + * gnu/java/nio/charset/Windows1257.java, + * gnu/java/nio/charset/Windows1258.java, + * gnu/java/nio/charset/ByteDecodeLoopHelper.java, + * gnu/java/nio/charset/ByteEncodeLoopHelper.java: + Optimize for array based buffers. + * native/jni/gtk-peer/gtkpeer.c: + Make 32bit pointer a global JNI reference. + * java/lang/String: + (toLowerCaseTurkish): new method. + (toUpperCaseTurkish): new method. + (toLowerCase): special case Turkish + (toUpperCase): likewise. + * java/lang/Long: + (valueOf): remove unnecessary synchronized. + +2007-11-08 Jeroen Frijters <jeroen@frijters.net> + + * java/util/Locale.java + (Locale): Always intern strings. + +2007-11-06 Mario Torre <neugens@limasoftware.net> + + * vm/reference/java/io/VMFile.java: + (getTotalSpace): new method. + (getUsableSpace): likewise. + (getFreeSpace): likewise. + * java/io/File.java: (getTotalSpace): new method. + (getUsableSpace): likewise. + (getFreeSpace): likewise. + * native/jni/java-io/java_io_VMFile.c: + (Java_java_io_VMFile_getTotalSpace): new function. + (Java_java_io_VMFile_getFreeSpace): likewise. + (Java_java_io_VMFile_getUsableSpace): likewise. + * native/jni/native-lib/cpio.h: (cpio_df): new function. + (CPFILE_DF_TYPE): enum type for cpio_df. + * native/jni/native-lib/cpio.c: (cpio_df): new function. + * include/java_io_VMFile.h: regenerated. + * configure.ac: added check for statvfs. + +2007-11-04 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33385: + * tools/com/sun/tools/javac/Main.java: + Make our wrapper 1.5 capable. + +2007-11-04 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/java/lang/MainThread.java: + Fix varargs warning. + * lib/Makefile.am: + Remove restriction on ecj printing varargs warnings. + +2007-11-01 Mario Torre <neugens@limasoftware.net> + + PR classpath/33982: + * configure.ac: add GDK_CFLAGS for the GStreamer peer. + +2007-11-01 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/java/awt/java2d/ScanlineCoverage.java, + * gnu/javax/net/ssl/provider/ServerHandshake.java: + Fix non-ASCII characters in the Javadoc comments. + * gnu/java/lang/management/BeanImpl.java, + * gnu/javax/management/Server.java, + * gnu/xml/pipeline/EventFilter.java, + * java/awt/AWTKeyStroke.java, + * java/beans/DefaultPersistenceDelegate.java, + * java/beans/EventHandler.java, + * java/io/ObjectStreamClass.java, + * java/lang/Class.java, + * java/lang/reflect/Proxy.java, + * javax/management/NotificationBroadcasterSupport.java, + * javax/management/StandardMBean.java, + * javax/swing/TransferHandler.java: + Fix warnings from use of varargs methods. + +2007-10-27 Ian Rogers <ian.rogers@manchester.ac.uk> + + * java/beans/PropertyChangeSupport.java, + * java/beans/VetoableChangeSupport.java, + * java/io/ObjectStreamClass.java, + * java/lang/reflect/Array.java, + * java/net/DatagramSocket.java, + * java/net/ServerSocket.java, + * java/net/Socket.java, + * java/nio/charset/CoderResult.java, + * java/security/Security.java, + * java/security/spec/RSAKeyGenParameterSpec.java, + * java/text/ChoiceFormat.java, + * java/text/DecimalFormat.java, + * java/text/MessageFormat.java: + Make use of new valueOf methods. + +2007-10-27 Ian Rogers <ian.rogers@manchester.ac.uk> + + * java/io/OutputStreamWriter.java: + Make fields of this class that can be final, final. + +2007-10-27 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33385: + * tools/com/sun/tools/javac/Main.java: + Revert patch that adds bootclasspath. + +2007-10-22 Dalibor Topic <robilad@kaffe.org> + + * native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c: + Include config-int.h for uint32_t. + +2007-10-16 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * NEWS: Kickoff updates for 0.97. + * configure.ac: Set version to 0.97-pre. + * doc/www.gnu.org/newsitems.txt: Add 0.96.1. + * doc/www.gnu.org/downloads/downloads.wml: Likewise. + * doc/www.gnu.org/announce/20071015.wml: Add missing URLs. + * doc/www.gnu.org/announce/20071016.wml: New file. + +2007-10-16 Mark Wielaard <mark@klomp.org> + + * NEWS: Mention small compile/configure/build fixes. + * configure.ac: Set version to 0.96.1 + +2007-10-16 from Alexandre Oliva <aoliva@redhat.com> + + * scripts/check_jni_methods.sh: Don't depend on diff -b ignoring + a single trailing whitespace. + +2007-10-16 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * m4/acinclude.m4: Add -sourcepath so that + some proprietary JDKs don't try to compile the + whole of Classpath when testing the compiler. + +2007-10-16 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * doc/www.gnu.org/newsitems.txt: Add 0.96. + * doc/www.gnu.org/downloads/downloads.wml: Likewise. + * doc/www.gnu.org/announce/20071015.wml: New file. + +2007-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * NEWS: Kickoff updates for 0.97. + * configure.ac: Set version to 0.97-pre. + +2007-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * NEWS: Add date of 0.96 release. + * configure.ac: Set version to 0.96. + +2007-10-15 Mario Torre <neugens@limasoftware.net> + + * doc/cp-hacking.texinfo: Update GConf requirement, and added information + about the GStreamer Sound peer. + +2007-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * README.gstreamer: Correct a few typos. + * doc/cp-hacking.texinfo: Update to match current status + (e.g. mention cacao, use of 1.5, etc.) + +2007-10-15 Roman Kennke <roman.kennke@aicas.com> + + * java/awt/event/MouseEvent.java + (MouseEvent): For the no-absX/absY constructor, set the + absX/absY to 0, instead of calling into getLocationOnScreen(), + which might cause nasty deadlocks. + +2007-10-15 Mario Torre <neugens@limasoftware.net> + + * javax/swing/text/DefaultStyledDocument.java (ElementBuffer.insertElement): + Added check for empty stack to avoid EmptyStackException. + +2007-10-15 Roman Kennke <roman.kennke@aicas.com> + + * java/awt/LightweightDispatcher.java + (dispatchEvent): Don't synchronize on the AWT lock here, + this causes a deadlock in some situations. + +2007-10-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33385: + * tools/com/sun/tools/javac/Main.java: + Add bootclasspath and 1.5 options so the compiler + can run. + +2007-10-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33622: + * lib/Makefile.am: Use JAVAC_ARGS variable. + * m4/acinclude.m4: Check javac is 1.5 compliant + and whether it supports -J. + +2007-10-12 Mario Torre <neugens@limasoftware.net> + + * gnu/javax/swing/text/html/css/FontSize.java (mapPercent): + (mapPoints): prevent a NumberFormatException when a floating point is given + instead of a integer. + (mapPixels): likewise. + (mapPercent): likewise. + +2007-10-12 Mario Torre <neugens@limasoftware.net> + + * gnu/javax/sound/AudioSecurityManager.java: Added Copyright header. + (Permission): added missing javadoc. + (checkPermissions): likewise. + +2007-10-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33622: + * lib/Makefile.am: Add -J-mX512M option to + allow javac enough memory to build Classpath. + +2007-10-12 Roman Kennke <roman.kennke@aicas.com> + + * NEWS: Added entry for Escher peers. + +2007-10-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * NEWS: Updated for 0.96 + +2007-10-12 Robin Garner <robin.garner@anu.edu.au> + + PR classpath/32541: + * java/io/OutputStreamWriter.java: + Provide buffering when not converting to improve + performance. + +2007-10-12 Ian Rogers <ian.rogers@manchester.ac.uk> + + PR classpath/33746: + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: + Remove atexit call that makes JikesRVM deadlock. + +2007-10-12 Ian Rogers <ian.rogers@manchester.ac.uk> +2007-10-12 Andrew Haley <aph@redhat.com> + + PR classpath/33741: + * java/lang/Double.java: + (compare(double,double)): Increase performance + of this method. + * java/lang/Float.java: + (compare(float,float)): Likewise. + +2007-10-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33623: + * m4/acinclude.m4: + Fix typo which prevents --with-ecj being used. + +2007-10-11 Roman Kennke <roman.kennke@aicas.com> + + * javax/swing/plaf/basic/BasicTreeUI.java + (EDIT): Removed obsolete constant. + +2007-10-10 Andrew John Hughes <gnu_andrew@member.fsf.org> + + Recommitting patch by Dalibor Topic from 2007-09-21. + * java/lang/management/ThreadInfo.java: + Removed unused private constructors. + +2007-10-09 Mario Torre <neugens@limasoftware.net> + + * README.gstreamer: new file. + +2007-10-08 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/33623: + * examples/Makefile.am: + Exit with no compiler. + * lib/Makefile.am: Likewise. + * m4/acinclude.m4: Handle ecj and javac + using separate variables and catch when JAVAC/ECJ is + empty. + +2007-10-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + + PR classpath/23854: + * java/util/zip/ZipEntry.java: + (parseExtra()): Pass time to setTime in milliseconds + rather than seconds by multiplying by 1000. + +2007-09-27 Mario Torre <neugens@limasoftware.net> + + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java: + (gstreamer_get_audio_format_stream): Removed parameter from javadoc. + (gstreamer_get_audio_format_file): likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: + Added class javadoc and implementation notes. + (READ): new constant. + (WRITE): likewise. + (QUEUED): likewise. + (CAPACITY_KEY): likewise. + (lock): likewise. + (prefs): new variable. + (GstPipeline constructor): added OS independent rutines to detect + filesystem pipes size plus save and restores this information via + preferences. Now closes open pipe on user abort at VM exit. + (open_native_pipe): new native method. + (close_native_pipe): likewise. + (detect_pipe_size): likewise. + (createForWrite): update to use new native methods. + (setState): removed hack to synchronize reading and writing of the + filesystme named pipe. + (available): implemented. + (drain): new implementation, now correctly waits for data to be consumed + in the pipeline. + (prepareWrite): removed hack to synchronize reading and writing of the + filesystme named pipe. + (CleanPipeline): new inner class, used for cleaning of native pipelines + still opened at VM exit. + * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine: + (getFramePosition): method still stubbed, now output "implement me" + note when called (used for testing). + (getLongFramePosition): likewise. + (getMicrosecondPosition): likewise. + * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: + regenerated. + * native/jni/gstreamer-peer/gst_native_data_line.c: + (setup_pipeline): Changed signature, now uses a file descriptor instead of + char with the name of the native pipeline. Also changed to use "fdsrc" + when creating the GStreamer pipeline. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_setup_1sink_1pipeline): + now uses gst_native_pipeline_get_pipeline_fd to get the file descriptor + of the native pipeline, instead of gst_native_pipeline_get_pipeline_name. + Chaged to use "autoaudiosink" as GStreamer audio sink. + (gst_newpad): fix indentation. + * native/jni/gstreamer-peer/gst_native_pipeline.c: include new headers for + compilation. + (capacityFID): new filed for caching. + (GST_DETECTED_PIPE_CAPACITY): new field. + (enum): maps READ and WRITE in GstPipeline class. + (_GstNativePipelinePrivate.fd): new field. + (create_name): new function. + (init_pointer_IDs): likewise. + (get_free_space): likewise. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1id_1cache): + cache capacityFID. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance): + get value for GST_DETECTED_PIPE_CAPACITY from mapped class. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_set_1state): + removed "unused" attribute from parameters, clean pipeline name on exit. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_open_1native_1pipe): + new function. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_close_1native_1pipe): + likewise. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_create_1named_1pipe): + pipe name created with a dedicated function. + (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_available): new + function. + * native/jni/gstreamer-peer/gst_native_pipeline.h: + (gst_native_pipeline_clean): removed. + (gst_native_pipeline_get_pipeline_fd): new function. + * native/jni/gstreamer-peer/gst_peer.h: new defines used by the peer. + * native/jni/gstreamer-peer/gstreamer_io_peer.c: (_GST_MALLOC_SIZE_): moved + in gst_peer.h. + +2007-09-27 Dalibor Topic <robilad@kaffe.org> + + * native/fdlibm/dtoa.c: Include mprec.h after system includes. + * native/fdlibm/mprec.h [_EXFUN]: Only define _EXFUN if it is not + already defined. + +2007-09-24 Dalibor Topic <robilad@kaffe.org> + + * java/lang/management/ThreadInfo.java: Reverted patch from + 2007-09-21, as it breaks JikesRVM. + +2007-09-23 Mark Wielaard <mark@klomp.org> + + * doc/www.gnu.org/include/layout.wml: Fix Planet Classpath link. + * doc/www.gnu.org/faq/faq.wml: Fix typo prorietary. + +2007-09-22 Paul Jenner <psj@harker.dyndns.org> + + * doc/www.gnu.org/include/layout.wml: Added link to Wiki. + +2007-09-21 Dalibor Topic <robilad@kaffe.org> + + * gnu/java/rmi/server/RMIClassLoaderImpl.java, + java/beans/beancontext/BeanContextServicesSupport.java, + java/lang/management/ThreadInfo.java: + Removed unused private constructors. + +2007-09-21 Dalibor Topic <robilad@kaffe.org> + + * gnu/CORBA/CDR/AbstractCdrInput.java, + gnu/CORBA/CDR/Vio.java, + gnu/CORBA/DynAn/gnuDynUnion.java, + gnu/CORBA/GIOP/MessageHeader.java, + gnu/CORBA/IorDelegate.java, + gnu/java/security/key/dss/FIPS186.java, + gnu/javax/crypto/key/dh/RFC2631.java, + gnu/javax/swing/text/html/parser/support/Parser.java, + gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java, + gnu/xml/aelfred2/XmlParser.java, + java/awt/im/InputContext.java: + Removed unused labels. + +2007-09-21 Roman Kennke <roman.kennke@aicas.com> + + * javax/swing/plaf/basic/BasicGraphicsUtils.java + (drawStringUnderlineCharAt): Fix Y location of underline. + +2007-09-21 Roman Kennke <roman.kennke@aicas.com> + + * java/awt/LightweightDispatcher.java + (dispatchEvent): Lock the component's tree to avoid threading + problems. + (redispatch): Only redispatch when component is showing. + +2007-09-21 Roman Kennke <roman.kennke@aicas.com> + + * java/awt/Font.java + (hashCode): New field. Stores a cached hash code. + (hashCode()): Re-implemented. Don't create new string here, instead + make hashcode of name, style, size and transform. Cache hashcode. + +2007-09-20 Roman Kennke <roman.kennke@aicas.com> + + * gnu/java/awt/font/GNUGlyphVector.java + (cleanOutline): New field, caches the untransformed outline. + (getOutline()): No need to validate here. Already done in + getOutline(float,float). + (getOutline(float,float)): Cache untransformed outlines. Protect + returned shape from modification by wrapping in ShapeWrapper + object. + * gnu/java/awt/font/OpenTypeFontPeer.java: New class. Implements + ClasspathFontPeer for OpenType fonts. + * gnu/java/awt/java2d/AbstractGraphics2D.java + (DEFAULT_TEXT_AA): New constant/property for controlling + default anti-aliasing for text. + (GC_CACHE_SIZE): New constant for the size of the glyph vector + cache. + (shapeCache): Don't make shapeCache thread local. This wouldn't + gain much, because the event dispatch thread is restarted quite + often. + (scanlineConverters): Don't make scanlineConverters thread local, + but instead pool them into a list. + (gvCache): New cache for glyph vectors. + (searchTextKey): New static field, a shared key used for GV caching. + (drawString): Cache glyph vectors. + (getFontRenderContext): Protect the current transform from beeing + changed. + (clone): Check clip for null when cloning. + (drawLine): Use shared shape cache. No need for calling a method here. + (drawRect): Likewise. Add translation to rectangle coordinates. + (fillRect): Use shared shape cache. No need for calling a method here. + (drawRoundRect): Likewise. + (fillRoundRect): Likewise. + (drawOval): Likewise. + (fillOval): Likewise. + (drawArc): Likewise. + (fillArc): Likewise. + (drawPolyline): Likewise. + (drawPolygon): Likewise. + (fillPolygon): Likewise. + (fillShape): Check property for default text AA. Set Y resolution. + (rawDrawLine): Use shared shape cache. No need for calling a method + here. + (rawDrawRect): Likewise. + (rawFillRect): Likewise. + (rawDrawString): Removed. Subclasses override drawString() instead. + (getShapeCache): Removed. No longer needed. + (getScanlineConverter): New helper method for pooling + scanline converters. + (freeScanlineConverter): New helper method for pooling + scanline converters. + * gnu/java/awt/java2d/PixelCoverage.java: New class. Used by the + reworked scanline converter. + * gnu/java/awt/java2d/ScanlineConverter.java + (Y_RESOLUTION): Removed. The Y resolution is now specified + by the caller. + (yResolution): New field. Stores the Y resolution. + (renderShape): Take y resolution as argument. + (setResolution): Take y resolution as argument. + * gnu/java/awt/java2d/ShapeWrapper.java: New class. Protects + shape objects from modification by application code. + * gnu/java/awt/java2d/TextCacheKey.java: New class. Used for + caching GlyphVectors. + * gnu/java/awt/peer/x/XFontPeer2.java: Removed. This is now + implemented in OpenTypeFontPeer now. + * gnu/java/awt/peer/x/XEventPump.java + (handleEvent): Check insets. + * gnu/java/awt/peer/x/XFontPeer.java + Changed class and method names for changed Escher API. + (clinit): Use font properties from xfonts.properties. + (canDisplay): Changed to take int argument. + * gnu/java/awt/peer/x/XFramePeer.java + (XFramePeer): Set the title of the frame on creation time. + (setTitle): Implemented. + * gnu/java/awt/peer/x/XGraphics2D.java + (imageCache): New field. Caches native representations for + images. + (drawString): New method. Optimized version for X fonts. + (fillScanline): Removed. + (fillScanlineAA): Removed. + (rawDrawImage): Optimized drawing for ZPixmap-backed images. + (rawDrawRect): Optimized rectangle drawing. + (renderScanline): Added compositing code. + (setFont): Overridden for X font support. + (setPaint): Added TODO. + * gnu/java/awt/peer/x/XGraphicsConfiguration.java + (getSize): New helper method for XToolkit. + (getResolution): New helper method for XToolkit. + * gnu/java/awt/peer/x/XGraphicsEnvironment.java + (getAvailableFontFamilyNames): Implemented. + * gnu/java/awt/peer/x/XToolkit.java + (fontCache): New field for caching fonts. + (getClasspathFontPeer): Cache fonts. + (getScreenSize): Implemented. + (getScreenResolution): Implemented. + (getFontList): Implemented. + (isModalExclusionTypeSupported): New method. + (isModalityTypeSupported): New method. + * gnu/java/awt/peer/x/XWindowPeer.java + (insets): New field for storing the insets of the frame. + (XWindowPeer): Set correct decoration. + (getGraphics): Set foreground, background and font. + (show): Determine the correct frame extents. + (reshape): Only resize when not inside callback. + (insets): Implemented correctly. + (getFontMetrics): Use OpenTypeFontPeer. + * gnu/java/awt/peer/x/ZPixmapDataBuffer.java + (getZPixmap): New method. This is used in XGraphics2D for drawing + the buffer. + * gnu/java/util/LRUCache.java: New class. Implements an LRU cache. + +2007-09-19 Dalibor Topic <robilad@kaffe.org> + + * native/jni/native-lib/Makefile.am + (AM_LDFLAGS) Use CLASSPATH_CONVENIENCE flags, as it is a convenience library. + +2007-09-19 Dalibor Topic <robilad@kaffe.org> + + * native/fdlibm/dtoa.c: Include stdlib.h to have a declaration for free. + +2007-09-18 Dalibor Topic <robilad@kaffe.org> + + * examples/gnu/classpath/examples/management/TestMemoryPool.java, + examples/gnu/classpath/examples/swing/DocumentFilterDemo.java, + examples/gnu/classpath/examples/swing/TableDemo.java, + gnu/CORBA/BigDecimalHelper.java, + gnu/CORBA/ByteArrayComparator.java, + gnu/CORBA/CollocatedOrbs.java, + gnu/CORBA/EmptyExceptionHolder.java, + gnu/CORBA/IorDelegate.java, + gnu/CORBA/OrbRestricted.java, + gnu/CORBA/ServiceRequestAdapter.java, + gnu/CORBA/gnuContextList.java, + gnu/CORBA/gnuExceptionList.java, + gnu/CORBA/gnuRequest.java, + gnu/CORBA/CDR/LittleEndianInputStream.java, + gnu/CORBA/DynAn/DivideableAny.java, + gnu/CORBA/DynAn/gnuDynArray.java, + gnu/CORBA/GIOP/CodeSetServiceContext.java, + gnu/CORBA/Interceptor/IORInterceptors.java, + gnu/CORBA/NamingService/NameParser.java, + gnu/CORBA/Poa/gnuPOAManager.java, + gnu/classpath/jdwp/event/filters/StepFilter.java, + gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java, + gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java, + gnu/java/awt/ClasspathToolkit.java, + gnu/java/awt/EmbeddedWindow.java, + gnu/java/awt/peer/KDEDesktopPeer.java, + gnu/java/awt/peer/gtk/CairoSurface.java, + gnu/java/awt/peer/swing/SwingCheckboxPeer.java, + gnu/java/awt/peer/swing/SwingTextAreaPeer.java, + gnu/java/awt/peer/swing/SwingTextFieldPeer.java, + gnu/java/awt/print/PostScriptGraphics2D.java, + gnu/java/awt/print/SpooledDocument.java, + gnu/java/io/PlatformHelper.java, + gnu/java/lang/management/BeanImpl.java, + gnu/java/locale/LocaleHelper.java, + gnu/java/net/protocol/http/Request.java, + gnu/java/nio/DatagramChannelImpl.java, + gnu/java/nio/KqueueSelectionKeyImpl.java, + gnu/java/nio/NIOSocket.java, + gnu/java/nio/ServerSocketChannelImpl.java, + gnu/java/nio/SocketChannelImpl.java, + gnu/java/rmi/server/RMIObjectInputStream.java, + gnu/java/util/regex/RE.java, + gnu/javax/imageio/bmp/DecodeBF16.java, + gnu/javax/imageio/bmp/EncodeRGB32.java, + gnu/javax/imageio/jpeg/JPEGDecoder.java, + gnu/javax/imageio/jpeg/JPEGException.java, + gnu/javax/imageio/jpeg/JPEGImageInputStream.java, + gnu/javax/imageio/png/PNGChunk.java, + gnu/javax/imageio/png/PNGEncoder.java, + gnu/javax/imageio/png/PNGFile.java, + gnu/javax/imageio/png/PNGGamma.java, + gnu/javax/net/ssl/SSLRecordHandler.java, + gnu/javax/net/ssl/StaticTrustAnchors.java, + gnu/javax/net/ssl/provider/CertificateRequestBuilder.java, + gnu/javax/net/ssl/provider/ClientHandshake.java, + gnu/javax/net/ssl/provider/ClientPSKParameters.java, + gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java, + gnu/javax/net/ssl/provider/ContentType.java, + gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java, + gnu/javax/net/ssl/provider/Handshake.java, + gnu/javax/net/ssl/provider/InputSecurityParameters.java, + gnu/javax/net/ssl/provider/OutputSecurityParameters.java, + gnu/javax/net/ssl/provider/ProtocolVersion.java, + gnu/javax/net/ssl/provider/Random.java, + gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java, + gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java, + gnu/javax/net/ssl/provider/SessionImpl.java, + gnu/javax/net/ssl/provider/Signature.java, + gnu/javax/net/ssl/provider/SimpleSessionContext.java, + gnu/javax/net/ssl/provider/TLSHMac.java, + gnu/javax/net/ssl/provider/TrustedAuthorities.java, + gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java, + gnu/javax/net/ssl/provider/X509KeyManagerFactory.java, + gnu/javax/security/auth/Password.java, + gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java, + gnu/javax/sound/midi/file/MidiFileWriter.java, + gnu/javax/sound/sampled/AU/AUReader.java, + gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java, + gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java, + gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java, + gnu/xml/dom/html2/DomHTMLButtonElement.java, + gnu/xml/dom/html2/DomHTMLCollection.java, + gnu/xml/dom/html2/DomHTMLParser.java, + gnu/xml/stream/EndDocumentImpl.java, + gnu/xml/stream/SAXParser.java, + gnu/xml/stream/XIncludeFilter.java, + gnu/xml/stream/XMLEventImpl.java, + gnu/xml/transform/StreamSerializer.java, + gnu/xml/transform/Stylesheet.java, + gnu/xml/validation/datatype/Base64BinaryType.java, + gnu/xml/validation/datatype/BooleanType.java, + gnu/xml/validation/datatype/DecimalType.java, + gnu/xml/validation/datatype/DoubleType.java, + gnu/xml/validation/datatype/FloatType.java, + gnu/xml/validation/datatype/HexBinaryType.java, + gnu/xml/validation/datatype/NotationType.java, + gnu/xml/validation/datatype/SimpleType.java, + gnu/xml/validation/datatype/StringType.java, + gnu/xml/validation/datatype/Type.java, + gnu/xml/validation/datatype/TypeBuilder.java, + gnu/xml/validation/relaxng/FullSyntaxBuilder.java, + gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java, + gnu/xml/validation/xmlschema/XMLSchemaBuilder.java, + gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java, + gnu/xml/xpath/XPathParser.java, + java/awt/MenuShortcut.java, + java/awt/font/LineBreakMeasurer.java, + java/awt/font/TextMeasurer.java, + java/awt/image/BufferedImage.java, + java/beans/beancontext/BeanContextServicesSupport.java, + java/security/SecureClassLoader.java, + java/security/cert/CertificateFactory.java, + javax/imageio/metadata/IIOMetadataFormatImpl.java, + javax/imageio/stream/MemoryCacheImageInputStream.java, + javax/management/ObjectName.java, + javax/management/openmbean/ArrayType.java, + javax/net/ssl/HttpsURLConnection.java, + javax/print/attribute/standard/JobStateReasons.java, + javax/swing/RepaintManager.java, + javax/swing/plaf/basic/BasicDirectoryModel.java, + javax/swing/plaf/basic/BasicFileChooserUI.java, + javax/swing/plaf/basic/BasicLabelUI.java, + javax/swing/plaf/metal/MetalScrollButton.java, + javax/swing/table/DefaultTableCellRenderer.java, + javax/swing/text/ParagraphView.java, + javax/swing/text/html/ResetableToggleButtonModel.java, + javax/swing/text/html/parser/Entity.java, + javax/swing/tree/DefaultTreeCellRenderer.java, + javax/xml/datatype/DatatypeFactory.java, + javax/xml/stream/XMLEventFactory.java, + javax/xml/stream/XMLInputFactory.java, + org/omg/IOP/TaggedComponentHelper.java, + sun/reflect/annotation/ExceptionProxy.java, + tools/gnu/classpath/tools/appletviewer/Main.java, + tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java, + tools/gnu/classpath/tools/orbd/Main.java, + tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java, + tools/gnu/classpath/tools/rmic/Main.java, + tools/gnu/classpath/tools/rmid/Main.java, + tools/gnu/classpath/tools/tnameserv/Main.java, + vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java, + vm/reference/java/lang/VMClass.java, + vm/reference/java/security/VMSecureRandom.java: + Removed unused imports. + +2007-09-18 Dalibor Topic <robilad@kaffe.org> + + * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java, + examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java, + examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java, + examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java, + examples/gnu/classpath/examples/awt/AnimationApplet.java: Removed unused imports. + +2007-09-18 Dalibor Topic <robilad@kaffe.org> + + * .classpath: Reverted escher-specific changes that break + the build under Eclipse. + +2007-09-16 Mark Wielaard <mark@klomp.org> + + * examples/Makefile.am (JCOMPILER): Add tools.zip for ecj. + +2007-09-14 Roman Kennke <roman@kennke.org> + + * .classpath: Include javah in Eclipse build. + +2007-09-13 David P Grove <groved@us.ibm.com> + + PR 30275 + * native/fdlibm/fdlibm.h [_AIX]: Define _ALL_SOURCE + rather than _XOPEN_SOURCE to fix build on AIX 5. + +2007-09-12 Robert Schuster <robertschuster@fsfe.org> + + * native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c: + Add #ifndef guard around definition of _GNU_SOURCE. + +2007-09-12 Dalibor Topic <robilad@kaffe.org> + + * examples/Makefile.am, tools/Makefile.am + (GLIBJ_CLASSPATH): Removed unnecessary paths to avoid + using unix path separators on windows. + (JCOMPILER) Don't add '.' to classpath for javac. + Fixes the build on Cygwin. + +2007-09-11 Roman Kennke <roman@kennke.org> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + Removed unused includes. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c + Removed unused includes. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c + Removed unusued excludes. Put Xrender includes in HAVE_XRENDER + conditional. + (flush): Use gdk_display_flush() instead of XFlush(). + (initState): Use GDK/Cairo functions to get cairo_t object. + (initFromVolatile): Likewise. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c + Removed unused includes. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c + Use HAVE_XTEST conditionals for code that uses XTest. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c + Removed unused includes. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + Removed unused includes. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c + Removed unused includes. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c + Removed unused includes. Rewrote frame-extents code to use + gdk_window_get_frame_extents() rather than the X window properties + directly. + * include/gnu_java_awt_peer_gtk_ComponentGraphics.h + (initFromVolatile): Removed width and height parameters. + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (initFromVolatile): Remove width and height parameters. + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java + (VolatileImageGraphics): Use initFromVolatile without width and + height. + * configure.ac: Check for presence of XTest, and define HAVE_XTEST + accordingly. + +2007-09-08 Michael Koch <konqueror@gmx.de> + + * native/jni/midi-alsa/Makefile.am (AM_CFLAGS): + Removed @ERROR_CFLAGS@ to not fail build with GCC 4.2. + +2007-09-05 Andrew Haley <aph@redhat.com> + + * gnu/javax/crypto/jce/DiffieHellmanImpl.java (engineDoPhase): + Don't check the length of q. + +2007-08-30 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * include/jni.h (jobjectRefType): New type. + (JNI_VERSION_1_6): Added. + (JNINativeInterface_): Added GetObjectRefType. + (_Jv_JNIEnv): Likewise. + +2007-08-28 John X <johnx@dodgit.com> + + PR classpath/33206: + * java/math/BigInteger.java (isProbablePrime): Handle case of + large 'b'. + +2007-08-24 Mark Wielaard <mark@klomp.org> + + * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Regenerated. + +2007-08-23 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/GtkComponentPeer.java: + (getLocationOnScreen): Check for GTK main thread. + (gtkWidgetGetLocationOnScreenUnlocked): New native method. + (gtkWindowGetLocationOnScreenUnlocked): New native method. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c: + (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen): + Delegate to unlocked function. + (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked): + New function. + (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen): + Delegate to unlocked function. + (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked): + New function. + +2007-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/util/EnumSet.java: + Documented. + (complementOf(EnumSet)): Fixed to flip only + the bits used by the enumset. + +2007-08-20 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * vm/reference/java/lang/VMClass.java: + (getCanonicalName(Class)): Fix handling of member + classes so we don't fall out of the if block. + (getSimpleName(Class)): Handle class names which include + the $ sign to break up anonymous/inner/member classes. + +2007-08-19 Mario Torre <neugens@limasoftware.net> + + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: + (getAudioFileFormat (File)): method implemented. + (getAudioFileFormat (InputStream)): likewise. + (getAudioFileFormat(InputStream, String)): new method. + (getAudioInputStream): better exception handling. + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java + (getAudioFormat): added basic extension detection for known files. + * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: + (BASIC_FORMATS): removed, unused. + (GST_TYPE_NAME): new constant. + (GST_FILE_EXTENSION): likewise. + +2007-08-19 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: + Removed. + * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider: + Likewise. + * resource/META-INF/services/.cvsignore: Updated to reflect this. + +2007-08-19 Mario Torre <neugens@limasoftware.net> + + * native/jni/gstreamer-peer/gst_native_pipeline.c: + (init_pointer_IDs): fix typo that prevents compilation on 64 bit systems. + +2007-08-19 Mario Torre <neugens@limasoftware.net> + + * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider: + regenerated to avoid listing by default of the + gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider class, as the + GStreamer Sound peer is not enabled unless specified at configure time. + +2007-08-18 Mario Torre <neugens@limasoftware.net> + + * examples/gnu/classpath/examples/sound/AudioPlayerSample.java: new file. + * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: removed + unused import. + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise. + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java: + (gstreamer_get_audio_format_stream): changed signature tu accept a Pointer + object instead of a BufferedInputStream. + (GstHeader): + (getAudioFormat(InputStream, GstHeader)): new private method. + (getAudioFormat(public)): refactored to use the private getAudioFormat + with shared functionality. + (getAudioFormat(GstHeader header)): removed a redundant check. + (init_id_cache): new native method. + * gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java: new file. + * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java: + (GstDataLine.State): removed enum. + (state): removed local variable. + (isRunning): removed method. + (open): likewise. + (setFormat): new methods. + (setOpen): likewise. + (setBufferSize): likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: + (createSourcePipeline): new method. + (setup_sink_pipeline): likewise. + (init_id_cache): likewise. Added to the static initializer. + * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: + (GstPipeline.State): new enum. + (state): new local variable. + (name): likewise. + (output): likewise. + (source): likewise. + (ready): likewise. + (getState): new method. + (closePipe): likewise. + (create_named_pipe): likewise. + (set_state): likewise. + (available): likewise. + (drain): likewise. + (GstPipeline): likewise. + (close): likewise. + (prepareWrite): likewise. + (flush): likewise. + (write): likewise. + (init_instance): likewise. + (read): likewise. + (createForWrite): likewise. + (setState): likewise. + (getNativeClass): likewise. + (init_id_cache): likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java: + (pipeline): new local variable. + (opne): likewise. + (isActive): method implemented. + (stop): likewise. + (open): likewise. + (flush): likewise. + (isRunning): likewise. + (start): likewise. + (write): likewise. + (available): likewise. + (drain): likewise. + (close): likewise. + * include/Makefile.am: added entry to generate new header file. + * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: + regenerated. + * include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: likewise. + * include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: + likewise. + * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: + likewise. + * native/jni/gstreamer-peer/gstclasspathsrc.c: removed. + * native/jni/gstreamer-peer/gstinputstream.c: likewise. + * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise. + * native/jni/gstreamer-peer/gstinputstream.h: likewise. + * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise. + * native/jni/gstreamer-peer/Makefile.am: new file added for compilation. + code reformat to keep the 80 columns constraint. + * native/jni/gstreamer-peer/gst_native_pipeline.h: new file. + * native/jni/gstreamer-peer/gst_input_stream.c: likewise. + * native/jni/gstreamer-peer/gst_input_stream.h: likewise. + * native/jni/gstreamer-peer/gst_classpath_src.c: likewise. + * native/jni/gstreamer-peer/gst_native_pipeline.c: likewise. + * native/jni/gstreamer-peer/gst_native_data_line.c: likewise. + * native/jni/gstreamer-peer/gst_classpath_src.h: likewise. + * native/jni/gstreamer-peer/gstreamer_io_peer.c: likewise. + * native/jni/gstreamer-peer/gst_peer.c: likewise. + * native/jni/gstreamer-peer/gst_peer.h: likewise. + +2007-08-16 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * NEWS: Update with info on VM changes. + * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java: + (getHeapMemoryUsage()): New default implementation. + (getNonHeapMemoryUsage()): Likewise. + +2007-08-15 Tom Tromey <tromey@redhat.com> + + * java/util/LinkedHashSet.java (LinkedHashSet): Fix typo. + +2007-08-15 Tom Tromey <tromey@redhat.com> + + * java/lang/Class.java (internalGetFields): Use LinkedHashSet. + +2007-08-08 Mario Torre <neugens@limasoftware.net> + + * java/io/PipedInputStream.java: + (buffer): variable now initialized in constructors. + (PipedInputStream(int)): new constructor, creates the buffer + storage of size int. + (PipedInputStream()): now calls PipedInputStream(int) with + default capacity. + (PipedInputStream(PipedOutputStream)): now calls PipedInputStream(). + (PipedInputStream(PipedOutputStream, int)): new constructor. + +2007-07-31 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * tools/gnu/classpath/tools/javah/Main.java (writeHeaders): + Renamed filename to file. + * tools/gnu/classpath/tools/javah/CniIncludePrinter.java + (printClass): Likewise. + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java + (printClass): Replace '$' with '_' in filename. + +2007-07-31 Dalibor Topic <robilad@kaffe.org> + + PR 32844 + * java/util/EnumSet.java: + Made class abstract per API spec. + (size, iterator, add, addAll, clear, contains, + containsAll, remove, removeAll, retainAll) Moved + into an anonymous inner class in of(T). + (allOf, noneOf, copyOf, of, range) Made more + implementation independent. + (of(T)) return an instance of an anonymous class + implementing EmptySet. + +2007-07-28 Matthias Klose <doko@ubuntu.com> + + * include/jvmti.h (jniNativeInterface): Rename type. + +2007-07-28 Chris Burdess <dog@gnu.org> + + PR 32539 + * gnu/xml/stream/XMLParser.java: don't call next() during hasNext(). + +2007-07-24 Tom Tromey <tromey@redhat.com> + + PR java/32862: + * java/util/EnumMap.java (get): Special case emptySlot. + (clone): Rewrote. + +2007-07-23 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * gnu/java/nio/charset/ISO_8859_1.java: Added ISO8859-1 to + aliases. + +2007-07-23 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * vm/reference/sun/misc/Unsafe.java (unpark): Changed signature to + be compatible with OpenJDK. + +2007-07-13 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/java2d/AbstractGraphics2D.java + (clip(Shape)): Call setClip when the clip changes. + (drawImage): Add translation. + (drawLine): Add translation. + * gnu/java/awt/peer/x/PixmapVolatileImage.java + (getPixmap): New method. + * gnu/java/awt/peer/x/XEventPump.java + (XEventPump): Name thread. Start as daemon thread. + * gnu/java/awt/peer/x/XGraphics2D.java + (rawDrawImage): Special handling for PixmapVolatileImage. + (rawDrawLine): Don't add translation here. This is done in + the superclass. + (rawFillRect): Don't add translation here. This is done in + the superclass. + (renderScanline): Added null check. + +2007-07-13 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/x/PixmapVolatileImage.java: New class. + * gnu/java/awt/peer/x/XGraphicsConfiguration.java + (createCompatibleImage(int,int)): Delegate to the 3-int overload. + (createCompatibleImage(int,int,int)): Implemented. Using + the ZPixmapDataBuffer for OPAQUE images. + (createCompatibleVolatileImage(int,int)): Delegate to the 3-int + overload. + (createCompatibleVolatileImage(int,int,int)): Implemented. Using + PixmapVolatileImage. + * gnu/java/awt/peer/x/XWindowPeer.java + (createImage): Return a PixmapVolatileImage (for now). + (createVolatileImage): Implemented, using PixmapVolatileImage. + * gnu/java/awt/peer/x/ZPixmapDataBuffer.java + New class. + +2007-07-10 Roman Kennke <roman@kennke.org> + + PR 32645 + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c + (copyPixbuf): Swap asserts. + +2007-07-09 Chris Burdess <dog@gnu.org> + + Fixes #32672 + * gnu/xml/dom/DomElement.java, + * gnu/xml/dom/DomNamedNodeMap.java: don't check owner in + setNamedNode when cloning. + +2007-07-08 Mario Torre <neugens@limasoftware.net> + + * gnu/javax/sound/sampled/gstreamer: new package hierarchy. + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: new file. + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java: + likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java: likewise. + * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: likewise. + * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java: likewise. + * gnu/javax/sound/AudioSecurityManager.java: likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java: likewise. + * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: likewise. + * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise. + * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in: + likewise. + * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in: + likewise. + * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider: + likewise. + * native/jni/gstreamer-peer/gstclasspathsrc.c: likewise. + * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise. + * native/jni/gstreamer-peer/gstinputstream.c: likewise. + * native/jni/gstreamer-peer/gstinputstream.h: likewise. + * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise. + * native/jni/gstreamer-peer/Makefile.am: likewise. + * native/jni/gstreamer-peer/.cvsignore: likewise. + * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: + likewise. + * include/Makefile.am: add gstreamer generated headers. + * configure.ac: add gstreamer sound backend configuration. + The backend is currently disabled by default. + * native/jni/Makefile.am: code to allow compilation of the gstreamer + sound backend. + * javax/sound/sampled/spi/MixerProvider.java (isMixerSupported): + indentation fixes. + * javax/sound/sampled/AudioFormat.java (toString): fix method to display + informations only when available. + * javax/sound/sampled/DataLine.java: + (Info.isFormatSupported): indentation fixes. + (Info): indentation fixes. + (Info.toString): indentation fixes. + (Info.matches): indentation fixes. + +2007-07-03 Tania Bento <tbento@redhat.com> + + * java/lang/Integer.java: + (parseInt(String,int,boolean)): Throw NumberFormatException if + String is just "+". + +2007-07-01 Chris Burdess <dog@gnu.org> + + * gnu/xml/transform/WithParam.java: Handle case where content is + empty. + +2007-06-28 Tom Tromey <tromey@redhat.com> + + * include/jni.h: Fixed local variables. + +2007-06-26 Ito Kazumitsu <kaz@maczuka.gcd.org> + + * ChangeLog: Correction of a bug fix number. + +2007-06-25 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/ClasspathFontPeer.java + (canDisplay): Take character as integer codepoint. + * gnu/java/awt/peer/gtk/GdkFontPeer.java + (canDisplay): Take character as integer codepoint. + * gnu/java/awt/peer/gtk/GtkComponentPeer.java + (postMouseEvent): Use MouseEvent constructor with absolute coordinates + to avoid deadlock (over getLocationOnScreen()). + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java + (getDeviceConfiguration): Fall back to the default configuration + if the component is not set. + * gnu/java/awt/peer/qt/QtFontMetrics.java + (canDisplay): Take character as integer codepoint. + * gnu/java/awt/peer/qt/QtFontPeer.java + (canDisplay): Take character as integer codepoint. + * gnu/java/awt/peer/x/XFontPeer2.java + (canDisplay): Take character as integer codepoint. + * include/gnu_java_awt_peer_qt_QtFontMetrics.h + (canDisplay): Take character as integer codepoint. + * java/awt/Font.java + (DIALOG): New constant. + (DIALOG_INPUT): New constant. + (MONOSPACED): New constant. + (SANS_SERIF): New constant. + (SERIF): New constant. + (Font(Font)): New constructor. + (canDisplay(char)): Use new canDisplay(int) method. + (canDisplay(int)): New method. + (hasLayoutAttributes): New method. + * java/awt/event/MouseEvent.java + (absX,absY): New fields. + (MouseEvent): New constructor with absolute coordinates. + (getLocationOnScreen): New method. + (getXOnScreen): New method. + (getYOnScreen): New method. + * native/jni/qt-peer/qtfontmetrics.cpp + (canDisplay): Take character as integer codepoint. + +2007-06-25 Mark Wielaard <mark@klomp.org> + + * native/jni/native-lib/cpnet.c + (cpnet_aton) Moved variable declaration of inet6_addr so it is + actually in the scope of its use. + +2007-06-25 Dalibor Topic <robilad@kaffe.org> + + * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c + (THROW_NO_IPV6): New macro. + (Java_gnu_java_net_VMPlainSocketImpl_bind6) Conditionally + build code if IPv6 facilities are available, otherwise + throw an error. + (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6, + Java_gnu_java_net_VMPlainSocketImpl_join6, + Java_gnu_java_net_VMPlainSocketImpl_leave6, + Java_gnu_java_net_VMPlainSocketImpl_joinGroup6, + Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6) + Use THROW_NO_IPV6. + + * native/jni/java-net/java_net_VMInetAddress.c + (Java_java_net_VMInetAddress_getHostByAddr, + Java_java_net_VMInetAddress_getHostByName, + Java_java_net_VMInetAddress_aton) Build IPv6 dependant + code conditionally on IPv6 facilities being available. + Switched if-else blocks where necessary to allow that. + + * native/jni/java-net/javanet.c + (_javanet_get_ip_netaddr) Build IPv6 dependant code conditionally + on IPv6 facilities being available. + + * native/jni/native-lib/cpnet.c + (cpnet_getHostByName, cpnet_getHostByAddr) Build IPv6 dependant + code conditionally on IPv6 facilities being available. + (cpnet_aton) Moved variable declaration of inet6_addr to the scope + of its use. Build IPv6 dependant code conditionally + on IPv6 facilities being available. + + * native/jni/native-lib/cpnet.h (cpnet_newIPV6Address, + cpnet_isIPV6Address, cpnet_IPV6AddressToBytes, + cpnet_bytesToIPV6Address): Make IPv6 dependant utility functions + available conditionally on IPv6 facilities being available. + +2007-06-25 Dalibor Topic <robilad@kaffe.org> + + * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): If the user passes an + explicit argument to configure, just use it, and don't attempt to + run AC_CHECK_PROG. This makes --with-javac="javac -J-Xmx512M" work. + +2007-06-25 Dalibor Topic <robilad@kaffe.org> + + * configure.ac: Check for MSG_WAITALL, since it does not exist on + Cygwin. + + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_receive): Define MSG_WAITALL as 0 if + it does not exist. + +2007-06-24 Ito Kazumitsu <kaz@maczuka.gcd.org> + + Fixes bug #31927 + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_available): Retry using fstat if ioctl + fails with ENOTTY. + +2007-06-22 Tania Bento <tbento@redhat.com> + + * java/util/Currency.java: + (getInstance (Locale)): Check that the country of the + locale given is valid. If it is not, throw an + IllegalArgumentException. + +2007-06-22 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/GLightweightPeer.java + * gnu/java/awt/peer/gtk/GdkRobotPeer.java + * gnu/java/awt/peer/gtk/GtkCompoonentPeer.java + * gnu/java/awt/peer/gtk/GtkFramePeer.java + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + * gnu/java/awt/peer/qt/QtComponentPeer.java + * gnu/java/awt/peer/qt/QtFramePeer.java + * gnu/java/awt/peer/qt/QtWindowPeer.java + * gnu/java/awt/peer/swing/SwingComponentPeer.java + * gnu/java/awt/peer/swing/SwingWindowPeer.java + * gnu/java/awt/peer/x/XFramePeer.java: + Removed @Override annotations from some interface implementation + methods to ensure 1.5 compatibility. + +2007-06-22 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * include/jni.h (JNINativeInterface): Renamed to + JNINativeInterface_, added const to arguments where necessary. + (JNIInvokeInterface): Renamed to JNIInvokeInterface_. + +2007-06-22 Roman Kennke <roman@kennke.org> + + * sun/awt/CausedFocusEvent.java: New class. Needed for compatibility + in java.awt.peer. + * java/awt/Dialog.java + (ModalExclusionType): New enum. + (ModalityType): New enum. + * java/awt/Toolkit.java + (isModalExclusionTypeSupported): New abstract method. + (isModalityTypeSupported): New abstract method. + * java/awt/peer/ComponentPeer.java + (requestFocus): New method. + * java/awt/peer/FramePeer.java + (getBoundsPrivate): New method. + * java/awt/peer/RobotPeer.java + (dispose): New method. + * java/awt/peer/WindowPeer.java + (setAlwaysOnTop): New method. + (updateFocusableWindowState): New method. + (setModalBlocked): New method. + (updateMinimumSize): New method. + (updateIconImages): New method. + * gnu/java/awt/peer/GLightweightPeer.java + (requestFocus): New method. + * gnu/java/awt/peer/gtk/GdkRobotPeer.java + (dispose): New method. + * gnu/java/awt/peer/gtk/GtkComponentPeer.java + (requestFocus): New method. + * gnu/java/awt/peer/gtk/GtkFramePeer.java + (getBoundsPrivate): New method. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (isModalExclusionTypeSupported): New method. + (isModalityTypeSupported): New method. + * gnu/java/awt/peer/gtk/GtkWindowPeer.java + (updateIconImages): New method. + (updateMinimumSize): New method. + (setModalBlocked): New method. + (updateFocusableWindowState): New method. + (setAlwaysOnTop): New method. + * gnu/java/awt/peer/headless/HeadlessToolkit.java + (isModalExclusionTypeSupported): New method. + (isModalityTypeSupported): New method. + * gnu/java/awt/peer/qt/QtComponentPeer.java + (requestFocus): New method. + * gnu/java/awt/peer/qt/QtFramePeer.java + (getBoundsPrivate): New method. + * gnu/java/awt/peer/qt/QtToolkit.java + (isModalExclusionTypeSupported): New method. + (isModalityTypeSupported): New method. + * gnu/java/awt/peer/qt/QtWindowPeer.java + (updateIconImages): New method. + (updateMinimumSize): New method. + (setModalBlocked): New method. + (updateFocusableWindowState): New method. + (setAlwaysOnTop): New method. + * gnu/java/awt/peer/swing/SwingComponentPeer.java + (requestFocus): New method. + * gnu/java/awt/peer/swing/SwingToolkit.java + (isModalExclusionTypeSupported): New method. + (isModalityTypeSupported): New method. + * gnu/java/awt/peer/swing/SwingWindowPeer.java + (updateIconImages): New method. + (updateMinimumSize): New method. + (setModalBlocked): New method. + (updateFocusableWindowState): New method. + (setAlwaysOnTop): New method. + * gnu/java/awt/peer/x/XFramePeer.java + (getBoundsPrivate): New method. + * gnu/java/awt/peer/x/XToolkit.java + (isModalExclusionTypeSupported): New method. + (isModalityTypeSupported): New method. + +2007-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * tools/Makefile.am: + Compile in com.sun.tools.javah + * tools/com/sun/tools/javah/Main.java: + Javah Sun-->Classpath wrapper. + +2007-06-21 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * javax/swing/text/html/parser/AttributeList.java (getValues): + Check if values is null. + +2007-06-21 Roman Kennke <roman@kennke.org> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c: + Fix some type signatures. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c: + Fix intendation. + +2007-06-21 Jeroen Frijters <jeroen@frijters.net> + + * java/io/ObjectStreamClass.java (getClassUID): Return 0L for + enums and proxies. + +2007-06-21 Jeroen Frijters <jeroen@frijters.net> + + * java/net/URLClassLoader.java + (URLClassLoader(URL[],ClassLoader,URLStreamHandlerFactory): + Add factory to cache before calling addURLS. + (run): Don't call initCause() on ClassNotFoundException. + +2007-06-21 Jeroen Frijters <jeroen@frijters.net> + + Fixes #32356 + * java/lang/reflect/Array.java + (newInstance(Class,int[])): Call createMultiArray correctly. + (createMultiArray): Fixed dimensions processing order. + +2007-06-21 Jeroen Frijters <jeroen@frijters.net> + + * gnu/java/net/loader/URLLoader.java + (URLLoader(URLClassLoader,URLStreamHandlerCache, + URLStreamHandlerFactory,URL,URL)): Disabiguate CodeSource constructor + invocation. + * java/awt/AWTKeyStroke.java + (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile + error when compiled against OpenJDK java.util package. + * java/awt/AlphaComposite.java + (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile + error when compiled against OpenJDK java.util package. + +2007-06-21 Jeroen Frijters <jeroen@frijters.net> + + * gnu/java/security/Engine.java + (getInstance(String,String,Provider,Object[]): Use correctly cased + property name. + +2007-07-19 Keith Seitz <keiths@redhat.com> + + * classpath/gnu/classpath/jdwp/value/StringValue.java + (StringValue): Tag of StringValue is STRING not OBJECT. + (write): String values are written to the wire as tag byte + and object ID, not JdwpString. + +2007-07-19 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java + (executeInvokeMethod): No need to use ValueFactory any more; + MethodResult.getReturnedValue now returns a Value. + (executeNewInstance): Double-check that return result is + an ObjectValue; throw JdwpInternalErrorException if it is not. + (invokeMethod): Method IDs come from VMMethod, not VMIdManager. + Arguments are Values not Objects. + Use ValueFactory to create arguments. + Pass invocation options to VMVirtualMachine.executeMethod. + Don't do any thread suspend/resume work: VMVM.executeMethod + will take care of it. + * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java + (executeInvokeMethod): Method IDs come from VMMethod, not + VMIdManager. + Arguments should be Values instead of Objects. + Use ValueFactory to create Values. + Remove specific option handling and pass options to + VMVirtualMachine.executeMethod. + Remove thread suspension. + Use MethodResult.getReturnedValue to get method's result. + * gnu/classpath/jdwp/util/MethodResult.java + (returnedValue): Change type to Value. + (thrownException): Change type to Throwable. + (resType): Remove. + (MethodResult): New constructor. + (setReturnedValue): Remove. + (SetThrownException): Remove. + (getResultType): Remove. + (setResultType): Remove. + * gnu/classpath/jdwp/value/ObjectValue.java (getValue): + New method. + * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java + (executeMethod): Replace "nonVirtual" parameter with more + generic "options" parameter. + Replace java.lang.reflect.Method parameter with VMMethod. + Replace Objet[] parameter with Value[] parameter. + +2007-07-10 Dalibor Topic <robilad@kaffe.org> + + * configure.ac (FOUND_CACAO): Removed. + +2007-06-01 Robin Garner <robin.garner@anu.edu.au> + + Fixes #32162 + * gnu/xml/dom/DomNode.java: Correct concurrency problem when deep + cloning nodes. + +2007-05-30 Mark Wielaard <mark@klomp.org> + + Fixes bug #32030 reported by Steve.Blackburn@anu.edu.au + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_open): Only set O_TRUNC when + CPNIO_APPEND is not, but O_WRONLY is set. + +2007-05-25 Robert Schuster <robertschuster@fsfe.org> + + * gnu/java/awt/peer/x/XGraphics2D.java: + (rawDrawLine): Added addition of translation. + (rawFillRect): Dito. + +2007-05-25 Robert Schuster <robertschuster@fsfe.org> + + * gnu/java/awt/font/opentype/OpenTypeFont.java: + (getGlyphIndex): Call getGlyphCharMap() instead of + accessing cmap field directly. + +2007-05-24 Ito Kazumitsu <kaz@maczuka.gcd.org> + + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_available): Use fstat or select as an + alternative to ioctl. + * native/jni/native-lib/cpio.c(cpio_availableBytes): Corrected typo. + +2007-05-24 Roman Kennke <roman@kennke.org> + + * gnu/java/math/Fixed.java + (trunc): New method. + +2007-05-24 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/java2d/AbstractGraphics2D.java + (fillShape): Pass rendering hints to scanline converter. + * gnu/java/awt/java2d/ScanlineConverter.java + (ONE): New constant for the number 1 as fixed point number. + (Y_RESOLUTION): New constant for the Y resolution. + (doScanline): Handle the Y resolution. + (renderShape): Accept rendering hints. + (setResolution): Adjust maximum resolution with Y resolution. + * gnu/java/awt/java2d/ScanlineCoverage.java + (Iterator.handledPixelCoverage): New field. + (Iterator.next): Handle single pixel coverage. + (Iterator.hasNext): Handle single pixel coverage. + (Iterator.reset): Reset single pixel coverage. + (Range.toString): New method. + (Coverage.pixelCoverage): New field. + (add): Include Y (pixel) coverage. + (findOrInsert): Reset Y coverage in reused entries. + +2007-05-24 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/java2d/ScanlineCoverage.java + (Iterator): New class. + (Range): New class. + (Coverage.covDelta): Made field package private. + (Coverage.xPos): Made field package private. + (iterator): New field. Stores the iterator that is reused. + (ScanlineCoverage): Initialize iterator. + (assertion): Removed. + (isEmpty): Refined conditions. + (iterate): Return Iterator instance. + (next): Removed. This is done by the Iterator class now. + (test): Removed. + * gnu/java/awt/java2d/ScanlineConverter.java + (main): Removed. + * gnu/java/awt/peer/x/XGraphics2D.java + (renderScanline): Adjust to new coverage iterator stuff. + * gnu/java/awt/java2d/AbstractGraphics2D.java + (renderScanline): Adjust to new coverage iterator stuff. + +2007-05-23 Jeroen Frijters <jeroen@frijters.net> + + * java/util/Arrays.java + (copyOfRange(T,int,int)): Fixed to instantiate right array type. + +2007-05-22 Robert Schuster <robertschuster@fsfe.org> + + * gnu/java/awt/peer/x/XEventQueue.java: + (handleEvent): Calculate modifier value for mouse presse + and release events, clip button values. + (buttonToModifier): New method. + * gnu/java/awt/peer/x/KeyboardMapping.java: + (mapModifiers): Added cases for alt gr and the meta key. + +2007-05-22 Robert Schuster <robertschuster@fsfe.org> + + * gnu/java/awt/peer/x/XEventQueue.java: + (handleEvent): Use Input.event_window_id for + key presses/releases. + +2007-05-22 Robert Schuster <robertschuster@fsfe.org> + + * gnu/java/awt/peer/x/XEventQueue.java: + (handleEvent): Use Input.event_window_id instead of + Input.child_window_id for mouse presses/releases & + movement. + +2007-05-22 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/x/XFontPeer2.java + (XFontMetrics.charWidth): Use cached Point2D instance. + * gnu/java/awt/peer/x/XGraphics2D.java + (renderScanline): New method. Renders a scanline according to + the coverage information. + (setPaint): Call super, so that the state is updated correctly. + +2007-05-19 Andreas Tobler <a.tobler@schweiz.org> + + PR libgcj/31659 + * m4/ax_create_stdint_h.m4: Apply patch from PR31659. + +2007-05-18 Andreas Tobler <a.tobler@schweiz.org> + + * autogen.sh (have_libtool): Update comments for Darwin. + +2007-05-18 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/java2d/AbstractGraphics2D.java + (fillScanlineAA): Removed. Replaced by renderScanline(). + (fillScanline): Dito. + (renderScanline): New method. Renders a scanline according to + the coverage information from the scanline converter. + * gnu/java/awt/java2d/Pixelizer.java: New interface. Describes + the targets of the rasterizer. + * gnu/java/awt/java2d/ScanlineConverter.java + (alphaRes): Removed. + (ONE): Removed. + (scanlineCoverage): New field. Manages the coverage information. + (scanlinesPerPixel): Removed. + (scanlineXCov): Removed. + (scanlineYCov): Removed. + (slPix0): Removed. + (ScanlineConverter): Initialize scanline coverage data structure. + (clear): Also clear the scanline coverage. + (doScanline): Work with Pixelizer objects. + Use the ScanlineCoverage datastructure. + (main): New method. Performs some tests. + (renderShape): Work with pixelizer objects rather than directly + on AbstractGraphic2D. Adjust to use ScanlineCoverage datastructure. + (setResolution): Set resolution on ScanlineCoverage data too. + * gnu/java/awt/java2d/ScanlineCoverage.java: New class. Stores + and manages scanline coverage information. + +2007-05-14 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/rmi/MarshelledObject.java, + * java/rmi/activation/Activatable.java, + * java/rmi/activation/ActivationDesc.java, + * java/rmi/activation/ActivationGroup.java, + * java/rmi/activation/ActivationGroupDesc.java, + * java/rmi/activation/ActivationInstantiator.java, + * java/rmi/activation/ActivationMonitor.java, + * java/rmi/activation/Activator.java: + Genericized. + +2007-05-13 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * configure.ac: + Check if nsl library is needed for inet_pton. + * tools/gappletviewer.in, + * tools/gjar.in, + * tools/gjarsigner.in, + * tools/gjavah.in, + * tools/gkeytool.in, + * tools/gnative2ascii.in, + * tools/gorbd.in, + * tools/grmic.in, + * tools/grmid.in, + * tools/grmiregistry.in, + * tools/gserialver.in, + * tools/gtnameserv.in: + Remove spaces around '=' in setting of datarootdir. + +2007-05-11 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java + (executeMethods): Remove cast to ClassReferenceTypeId. + +2007-05-11 Jeroen Frijters <jeroen@frijters.net> + + * java/lang/Float.java + (toString(float)): Call VMFloat instead of VMDouble. + (parseFloat): Call VMFloat. Fixed comment. + * vm/reference/java/lang/VMFloat.java + (toString, parseFloat): New methods. + NEWS: added note about these changes. + +2007-05-08 Kyle Galloway <kgallowa@redhat.com> + + * vm/reference/VMFrame.java (<init>): Add a parameter for the "this" + pointer of the frame. + +2007-05-08 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/x/XFontPeer.java: Removed. + * gnu/java/awt/peer/x/XGraphics.java: Removed + * gnu/java/awt/peer/x/XFontPeer2.java + (XLineMetrics.getDescent): Use cached idendity transform. + (XFontMetrics.cachedPoint): New field. Caches a Point2D instance + for reuse. + (XFontMetrics.getAscent): Use cached idendity transform. + (XFontMetrics.getDescent): Use cached idendity transform. + (XFontMetrics.getHeight): Use cached idendity transform. + (XFontMetrics.charWidth): Map character to glyph index first. + (XFontMetrics.stringWidth): Use cached idendity transform. + (IDENDITY): New static field. A reused AffineTransform instance. + +2007-05-08 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/font/FontDelegate.java + (getGlyphIndex): New method. Maps characters to their + glyph index in the font. + M gnu/java/awt/font/opentype/OpenTypeFont.java + (getGlyphIndex): New method. Maps characters to their + glyph index in the font. + +2007-05-08 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/java2d/AbstractGraphics2D.java + (AA_SAMPLING): Removed. + (alpha): Removed field. + (edgeTable): Removed field. + (fillScanlineAA): Removed obsolete method. + (drawPolyline): Implemented by using a GeneralPath. + (drawPolygon): Reset the cached polygon. + (fillPolygon): Reset the cached polygon. + (fillShape): Default to antialias on for text. + (rawDrawLine): Use ShapeCache. + (rawDrawRect): Use ShapeCache. + (rawFillRect): Use ShapeCache. + (fillScanlineAA): New method for antialiased rendering. + * gnu/java/awt/java2d/ScanlineConverter.java + (scanlinesPerPixel): New field. + (minX,maxX): New fields. + (scanlineYCov,scanlineXCov): New fields. + (slPix0): New field. + (alphaRes): New field. + (renderShape): Add antialiasing functionality. + (doScanline): Add antialiasing functionality. + (setResolution): Add antialiasing functionality. + (addShape): Determine span in X direction. + (fit): Fix thinko. + * gnu/java/awt/java2d/ShapeCache.java + (polyline): New field for caching polylines. + +2007-05-08 Roman Kennke <roman@kennke.org> + + * examples/gnu/classpath/examples/awt/HintingDemo.java + Add support for showing the original vs the hinted glyphs plus + a grid. + +2007-05-08 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * lib/Makefile.am: Print property files as well. + +2007-05-08 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * native/jni/gtk-peer/gtkpeer.c: + Added support for 64-bit architectures. + +2007-05-04 Chris Burdess <dog@gnu.org> + + Fixes PR #31814 + * gnu/xml/dom/DomDocument.java, + gnu/xml/dom/ls/SAXEventSink.java: Don't default attribute when mode is + #IMPLIED and value is not specified. + * gnu/xml/stream/XMLParser.java: Add debugging info. + +2007-05-03 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/Jdwp.java (notify): Rewrite to call + new array-based method. + (notify): New function. + (sendEvent): Rewrite to use sendEvents. + (sendEvents): New method. + * gnu/classpath/jdwp/event/Event.java (toPacket): Make static. + Change parameters to use arrays for events and requests. + Add suspendPolicy parameter. + Move per-event data transformation to... + (_toData): ... here. + * gnu/classpath/jdwp/transport/JdwpConnection.java + (sendEvent): Renamed to ... + (sendEvents): ... this. + Change parameters to use arrays for events and requests. + Add suspendPolicy parameter. + +2007-05-03 Thomas Fitzsimmons <fitzsim@redhat.com> + + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304 + * javax/swing/text/html/HTMLEditorKit.java + (getStyleSheet): Throw RuntimeException when style loading fails. + * lib/Makefile.am: Treat css files as a property files. + * javax/swing/text/html/default.css: Move to... + * resource/javax/swing/text/html/default.css: New file. + +2007-05-03 Andrew Haley <aph@redhat.com> + + * gnu/javax/management/Server.java (Server): Record the delegate. + (registerMBean): Notify the delegate. + (unregisterMBean): Likewise. + (notify): New method. + +2007-04-30 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/x/XLightweightPeer.java: Removed. + * gnu/java/awt/peer/x/XEventPump.java + (handleEvent): Improved handling of event ids to window mapping. + * gnu/java/awt/peer/x/XFontPeer2.java: + Load font.properties at startup. + (XLineMetrics.glyphVector): New field. + (XLineMetrics.XLineMetrics): Get glyphVector from font delegate. + (XLineMetrics.getHeight): Implemented using glyph vector. + (XLineMetrics.getLeading): Implemented. + (XFontPeer2): Change hardwired font to something more common. + (encodeFont): New methods, encodes a font to the font.properties + format. + (validName): New method. Checks and returns a valid font name. + * gnu/java/awt/peer/x/XGraphics2D.java + (foreground): New field. + (rawSetPixel): Removed. + (rawDrawLine): Draw a segment. + (rawSetForeground): Removed. + (fillScanline): New method. + (fillScanlineAA): New method. + (setPaint): Set the foreground color. + (fillShape): Synchronize super behaviour. + (rawDrawImage): Optimize XImage. + * gnu/java/awt/peer/x/XGraphicsDevice.java + (getDisplay): Improve creation of socket. + (createLocalSocket): New helper method to create a local socket. + * gnu/java/awt/peer/x/XImage.java + (getGraphics): Return an XGraphics2D. + * gnu/java/awt/peer/x/XToolkit.java + (getClasspathFontPeer): Use XFontPeer2. + (createComponent): Removed. + * gnu/java/awt/peer/x/XWindowPeer.java + (getGraphics): Return an XGraphics2D. + (show): Clear the window. + (getFontMetrics): Use XFontPeer2. + +2007-04-30 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/swing/SwingButtonPeer.java + (SwingButton.handleFocusEvent): New method. Handles focus events. + (SwingButton.requestFocus): Overridden to avoid loop into peer + and back. + (SwingButton.requestFocus(boolean)): Overridden to avoid loop + into peer and back. + * gnu/java/awt/peer/swing/SwingCheckboxPeer.java: New class. + Implements CheckboxPeer for Swing toolkit. + * gnu/java/awt/peer/swing/SwingComponent.java + (handleFocusEvent): New method. Handles focus events. + * gnu/java/awt/peer/swing/SwingComponentPeer.java + (getMinimumSize): Delegate to minimumSize(). + (getPreferredSize): Delegate to preferredSize(). + (handleEvent): Only paint when component is showing. Coalesce + paint event in any case. Reformat. Handle focus events. + (requestFocus): Post FOCUS_GAINED event. + (handleFocusEvent): New method. Delegate to SwingComponent + object. + * gnu/java/awt/peer/swing/SwingContainerPeer.java + (addHeavyweightDescendent): Make this protected. + (removeHeavyweightDescendent): Make this protected. + (getHeavyweightDescendents): New method. Returns all registered + heavyweights. + (handleKeyEvent): Delegate to peer's handleEvent() method. + * gnu/java/awt/peer/swing/SwingLabelPeer.java + (SwingLabel.handleFocusEvent): New method. + * gnu/java/awt/peer/swing/SwingListPeer.java + (SwingList.handleFocusEvent): New method. + * gnu/java/awt/peer/swing/SwingPanelPeer.java + Fix typo and import. + * gnu/java/awt/peer/swing/SwingTextAreaPeer.java + Wrap up text area in viewport. + * gnu/java/awt/peer/swing/SwingTextFieldPeer.java + (SwingTextField.handleFocusEvent): New method. + (SwingTextField.requestFocus): New method. + (SwingTextField.requestFocus(boolean)): New method. + +2007-04-27 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/event/EventManager.java + (getEventRequest): Rename to... + (getEventRequests): ...this. + Change return type to array of requests. + Construct a list of all matching events and return + them all. + * gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests + and send event notifications for all matching requests. + +2007-04-27 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java + (matches): Use Location.equals to determine equality. + * vm/reference/gnu/classpath/jdwp/VMMethod.java (equals): + New method. + * gnu/classpath/jdwp/util/Location.java (equals): + New method. + +2007-04-27 Roman Kennke <roman@kennke.org> + + * java/nio/CharViewBufferImpl.java + (slice): Fixed offset for slice buffer. + * java/nio/DoubleViewBufferImpl.java + (slice): Fixed offset for slice buffer. + * java/nio/FloatViewBufferImpl.java + (slice): Fixed offset for slice buffer. + * java/nio/IntViewBufferImpl.java + (slice): Fixed offset for slice buffer. + * java/nio/LongViewBufferImpl.java + (slice): Fixed offset for slice buffer. + * java/nio/ShortViewBufferImpl.java + (slice): Fixed offset for slice buffer. + +2007-04-25 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/gtk/GdkFontPeer.java, + * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java, + * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java, + * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java, + * gnu/java/awt/peer/gtk/GtkGenericPeer.java, + * gnu/java/awt/peer/gtk/GtkToolkit.java: + Added fields to hold the native state. Added class initialization + things to fetch the JNI field IDs. + * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h, + * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h, + * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h, + * include/gnu_java_awt_peer_gtk_GtkToolkit.h: + Added / changed class init methods for field ID initialization. + * native/jni/classpath/Makefile.am: Removed native_state stuff. + * native/jni/classpath/native_state.c, + * native/jni/classpath/native_state.h: Removed. + * native/jni/gconf-peer/Makefile.am: Removed native_state stuff. + * native/jni/gtk-peer/Makefile.am: Removed native_state stuff. + * native/jni/gtk-peer/cairographics2d.h, + * native/jni/gtk-peer/gdkdisplay.h, + * native/jni/gtk-peer/gdkfont.h, + * native/jni/gtk-peer/GtkDragSourceContextPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c, + * native/jni/gtk-peer/gtk_jawt.c: + Removed native state stuff and replaced that with an approach + to store the native state of an object directly in that object. + * native/jni/gtk-peer/gtkpeer.c: New file. Implements the new native + state management. + * native/jni/gtk-peer/gtkpeer.h: Remove NSA stuff and added + prototypes for new native state handling. + +2007-04-23 Mark Wielaard <mark@klomp.org> + + * doc/www.gnu.org/newsitems.txt: Add 0.95. + * doc/www.gnu.org/downloads/downloads.wml: Likewise. + * doc/www.gnu.org/announce/20070423.wml: New file. + +2007-04-23 Mark Wielaard <mark@klomp.org> + + * NEWS: Add new 0.95 features. + +2007-04-23 Jeroen Frijters <jeroen@frijters.net> + + PR classpath/31646: + * java/util/Arrays.java (qsort): Corrected initial median calculation. + +2007-04-22 Dalibor Topic <robilad@kaffe.org> + + * Makefile.am (ACLOCAL_AMFLAGS): Add contents of env var + LOCAL_AUTORECONF_AMFLAGS to allow for systems where the user + has a mix of system & hacked-up autotools. + +2007-04-22 Dalibor Topic <robilad@kaffe.org> + + * autogen.sh: Removed unnecessary -I m4 flag. + +2007-04-19 Casey Marshall <csm@gnu.org> + + PR classpath/31626: + * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java + (createSocket): New method. + +2007-04-19 Dalibor Topic <robilad@kaffe.org> + + * tools/gappletviewer.in, + tools/gjar.in, + tools/gjarsigner.in, + tools/gjavah.in, + tools/gkeytool.in, + tools/gnative2ascii.in, + tools/gorbd.in, + tools/grmic.in, + tools/grmid.in, + tools/grmiregistry.in, + tools/gserialver.in, + tools/gtnameserv.in: Set datarootdir to fix a warning from + configure. + +2007-04-19 Dalibor Topic <robilad@kaffe.org> + + * INSTALL: Removed file generated by autogen.sh. + + * .cvsignore: Added INSTALL. + +2007-04-19 Dalibor Topic <robilad@kaffe.org> + + * INSTALL: Replaced by generic install file. + + * autogen.sh: Removed redundant and no longer necessary + sections. Use autoreconf. + +2007-04-19 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * m4/acinclude.m4 + (CLASSPATH_FIND_JAVAC): Allow detected JAVAC. + +2007-04-19 Dalibor Topic <robilad@kaffe.org> + + * lib/Makefile.am (propertyfiles, cssfiles, metafiles, + iconfiles) Removed variables, inlined them into resource + target to avoid use of shell construct and fix portability + warning from automake 1.10. + +2007-04-18 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/MethodHelper.java (print): + Changed arguments. Directly print method name. + * tools/gnu/classpath/tools/javah/ClassWrapper.java + (methodNameMap): New field. + (makeVtable): Initialize it. + (printMethods): Compute name for bridge targets. + +2007-04-18 Andrew Haley <aph@redhat.com> + + * gnu/java/rmi/server/UnicastConnectionManager.java + (UnicastConnectionManager(int port, RMIServerSocketFactory)): + Listen on "localhost", not localhost. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * include/GtkDragSourceContextPeer.h: Removed, renamed to .. + + * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: + New file. + + * native/jni/gtk-peer/GtkDragSourceContextPeer.c: Include + gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h. + + * include/Makefile.am (GTKPEER_H_FILES): Renamed + GtkDragSourceContextPeer.h to + gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h + per current convention. Use portable construct to create + gtk and libxmlj peer headers. Depend on the java source code, + rather then the class files in order to avoid spurious + regeneration. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * include/Makefile.am: Use portable construct to create + qt peer headers. Depend on the java source code, + rather then the class files in order to avoid spurious + regeneration. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * include/Makefile.am: Use portable construct to create + alsa and dssi peer headers. Depend on the java source code, + rather then the class files in order to avoid spurious + regeneration. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * include/Makefile.am: Use portable construct to create + gconf peer header. Depend on the java source code, rather + the class file to avoid spurious regeneration. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h: + Removed empty header file. + + * include/Makefile.am (QTPEER_H_FILES): + Removed gnu_java_awt_peer_qt_QtGraphicsEnvironment.h. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * native/jni/xmlj/xmlj_xpath.c: Don't include + gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h. + + * include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h: + Removed empty header file. + + * include/Makefile.am (XMLJ_H_FILES): Removed + gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h. + +2007-04-18 Dalibor Topic <robilad@kaffe.org> + + * include/gnu_java_awt_peer_qt_QtContainerPeer.h: Removed + empty header file. + + * include/Makefile.am (QTPEER_H_FILES): Removed + gnu_java_awt_peer_qt_QtContainerPeer.h. + +2007-04-17 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * native/jni/java-net/local.c: + Fix import of FIONREAD. + * native/jni/java-nio/gnu_java_nio_VMChannel.c, + * native/jni/native-lib/cpnet.c: + Likewise. + +2007-04-17 Dalibor Topic <robilad@kaffe.org> + + * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH): + Use AC_CHECK_PROGS and AC_MSG_ERROR. Check for + gjavah, gcjh-wrapper-4.1 and gcjh-4.1. Error out + when no javah implementation can be found. + +2007-04-17 Dalibor Topic <robilad@kaffe.org> + + * configure.ac (CLASSPATH_WITH_JAVAH): Only check if + the JNI headers need to be regenerated. + + * m4/acinclude.m4 (USER_SPECIFIED_JAVAH): Removed unused + conditional. + +2007-04-17 Dalibor Topic <robilad@kaffe.org> + + * lib/Makefile.am (JAVAH): Removed unused variable. + +2007-04-17 Casey Marshall <csm@gnu.org> + + PR classpath/31302: + * gnu/javax/net/ssl/provider/SSLSocketImpl.java (SSLSocketImpl): + Always make a new socket. + (bind, connect, getInetAddress, getLocalAddress, getPort, + getLocalPort, getRemoteSocketAddress, getLocalSocketAddress, + setTcpNoDelay, getTcpNoDelay, setSoLinger, getSoLinger, + setOOBInline, getOOBInline, setSoTimeout, getSoTimeout, + setSendBufferSize, getSendBufferSize, setReceiveBufferSize, + getReceiveBufferSize, setKeepAlive, getKeepAlive, setTrafficClass, + getTrafficClass, setReuseAddress, getReuseAddress, close, + shutdownInput, shutdownOutput, isConnected, isBound, isClosed, + isInputShutdown, isOutputShutdown): Always use + 'underlyingSocket'. + +2007-04-16 Dalibor Topic <robilad@kaffe.org> + + * configure.ac (AM_PROG_CC_C_O): Added to fix automake 1.10 + warning. + +2007-04-16 Dalibor Topic <robilad@kaffe.org> + + * native/plugin/Makefile.am (libgcjwebplugin_la_LDFLAGS): + Added AM_LDFLAGS for automake 1.10. + +2007-04-16 Tom Tromey <tromey@redhat.com> + + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614 + * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java + (createSocket): Change order of delegation. + +2007-04-16 Andrew Haley <aph@redhat.com> + + * java/io/ObjectInputStream.java: (parseContent): Call (String, + Object) version of dumpElementln. + (dumpElementln(String, Object)): New method. + * java/io/ObjectOutputStream.java (writeObject): Call (String, + Object) version of dumpElementln. + (dumpElementln(String, Object)): New method. + +2007-04-16 Mark Wielaard <mark@klomp.org> + + Fixes bug #31590 + * java/net/URI.java (parseServerAuthority): Allow empty portStr. + +2007-04-16 Andrew Haley <aph@redhat.com> + + * org/omg/IOP/TaggedComponentHelper.java (read): Use + read_octet_array(), not read(). + (write): Use write_octet_array(), not write(). + + * org/omg/PortableServer/Servant.java (_get_delegate): Throw if no + delegate has been set. + +2007-04-16 Chris Burdess <dog@gnu.org> + + * gnu/xml/stream/XMLParser.java: Work around a problem with incorrectly + formatted file URLs. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * native/jni/java-lang/Makefile.am (libjavalang_la_LIBADD): + Fix portability warnings from automake 1.10. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * Makefile.am (EXTRA_DIST): Add ChangeLog-2006. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * native/target/.cvsignore: Removed. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * doc/Makefile.am: Fix portability warnings from + automake 1.10. + +2007-04-15 Roman Kennke <roman@kennke.org> + + * native/target/Linux/.cvsignore, + * native/target/generic/.cvsignore: Removed. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * depcomp, install-sh, missing, mkinstalldirs, + doc/texinfo.tex: Removed files generated by autogen.sh. + + * .cvsignore: Ignore generated files depcomp, install-sh, + missing, mkinstalldirs. + + * doc/.cvsignore: Ignore generated file doc/texinfo.tex. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * doc/cp-hacking.texinfo: Updated with information from + INSTALL file. Removed duplicate and outdated information. + Updated compiler information. Fixed versioning information + where entries diverged. Turned command, option, file and + URL strings into proper texinfo elements. + +2007-04-15 Dalibor Topic <robilad@kaffe.org> + + * configure.ac: Added support for Iceape libraries as + a substitute for Mozilla for Debian. + +2007-04-12 Roman Kennke <roman@kennke.org> + + * java/nio/Buffer.java + (array): New abstract method. + (hasArray): New abstract method. + (arrayOffset): New abstract method. + (isDirect): New abstract method. + +2007-04-12 Roman Kennke <roman@kennke.org> + + * java/nio/CharBuffer.java + (wrap(CharSequence,int,int)): Reimplemented using specialized + subclass. + * java/nio/CharSequenceBuffer.java: New class. Implements char + buffers that wrap CharSequences. + +2007-04-12 Francis Kung <fkung@redhat.com> + + PR 23887 + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawGlyphVector): Check for transforms before using optimized path. + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (FreetypeGlyphVector(FreetypeGlyphVector)): Initialize glyphTransforms array + to null and check for nulls in copied array. + (hasTransforms): New method. + (performDefaultLayout): Check for identity transform. + (setGlyphTransform): Check for equality before making changes. + +2007-04-12 Francis Kung <fkung@redhat.com> + + PR 23887 + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (getGlyphLogicalBounds): Fix number of coordinates in transform call. + (performDefaultLayout): Respect transformation in font attributes. + * javax/swing/plaf/basic/BasicProgressBarUI.java + (getStringPlacement): Handle vertical orientations. + (paintString): Space vertical text properly. + +2007-04-12 Francis Kung <fkung@redhat.com> + + PR 31539 + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c + (ft2_map): New static variable. + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState): Set up ft2_map. + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Use cached ft2_map. + +2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c + (clipboard_get_func): Call DeleteLocalRef. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c + (clipboard_targets_received): Likewise. + (clipboard_uris_received): Likewise. + +2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * LICENSE: Added m4/ax_func_which_gethostbyname_r.m4 license. + * configure.ac: Added AX_FUNC_WHICH_GETHOSTBYNAME_R check. + * m4/ax_func_which_gethostbyname_r.m4: New file. + * native/jni/native-lib/cpnet.c (cpnet_getHostByName): Check for + different number of arguments of gethostbyname_r. + +2007-04-12 Mark Wielaard <mark@klomp.org> + + * gnu/java/awt/peer/ClasspathFontPeer.java (LRUCache): New static + inner class. + (transCache): New static LRUChache field. + (copyTransformToAttrs): Check whether a TransformAttribute already + exists in the transCache for the given AffineTransform. + +2007-04-12 Mark Wielaard <mark@klomp.org> + + * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8. + +2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * native/jni/java-nio/javanio.c: Include fcntl.h instead of + sys/fcntl.h. + +2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed + warning on some compilers, e.g. MIPSpro. + +2007-04-11 Francis Kung <fkung@redhat.com> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Avoid unneeded + object reference. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): Unlock font. + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Remove redundant checks. + +2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * configure.ac: Added AC_C_INLINE. + +2007-04-10 Mark Wielaard <mark@klomp.org> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c + (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile): + Destroy surface after it is used to create a cairo context. + +2007-04-09 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/ObjectName.java: + (parse(String)): Catch multiple wildcards, + initialise with an empty string (so null isn't + appended), and emit comma even when wildcard + ends the list. + (checkComponents()): Catch newlines. + (quote(String)): Handle newlines and quotes + correctly. + +2007-04-09 Francis Kung <fkung@redhat.com> + + PR 31311 + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (dispose): Removed method. + (disposeSurface): Removed method. + * gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c + (Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface): Removed. + (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surface + after it is used to create a cairo context. + +2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/ObjectName.java: + (propertyValuePattern): New cache variable. + (parse(String)): Record in propertyListPattern + not propertyPattern and set propertyValuePattern. + (isPropertyPattern()): Semantics altered to be the + OR of isPropertyListPattern() and isPropertyValuePattern(). + (isPropertyListPattern()): Implemented. + (isPropertyValuePattern()): Implemented. + (isPropertyValuePattern(String)): Implemented. + +2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/ObjectName.java: + (parse(String)): Fix result of getKeyPropertyListString(). + +2007-04-07 Mark Wielaard <mark@klomp.org> + + * resource/META-INF/services/javax.xml.parsers.DocumentBuilderFactor, + resource/META-INF/services/javax.xml.parsers.SAXParserFactory, + resource/META-INF/services/javax.xml.parsers.TransformerFactory, + resource/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory, + resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList, + resource/META-INF/services/org.xml.sax.driver: Removed. + +2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/ObjectName.java: + (checkComponents()): Separate value and + key illegal characters to allow value wildcards. + +2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/ObjectName.java + (parse(String)): Fix parsing where the wildcard + is juxtaposed between other pairs. + +2007-04-06 Mark Wielaard <mark@klomp.org> + + * configure.ac (VERSION): Set to 0.96-pre. + +2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/MBeanAttributeInfo.java: + (serialVersionUID): Added. + * javax/management/MBeanFeatureInfo.java: + (writeObject(ObjectOutputStream)): Added for + later 1.6 support. + * javax/management/Notification.java: + (serialVersionUID): Added. + (Notification(String,Object,long,long)): Make + default message the empty string not null. + (Notification(String,Object,long,long,String)): + Set source explicitly. + (writeObject(ObjectOutputStream)): Added to match + Sun. + +2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/util/Hashtable.java: + (putAllInternal(Map)): Remove redundant semi-colon. + +2007-04-06 Mark Wielaard <mark@klomp.org> + + * lib/mkcollections.pl.in: Add externalclasses. + * java/util/Collections.java: Unroll enhanced for loops. + * java/util/HashMap.java: Likewise. + * java/util/Hashtable.java: Likewise. + * java/util/TreeMap.java: Likewise. + +2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/javax/management/Translator.java: + (getTypeName(type)): Move type name creation to its own method. + * javax/management/ObjectName.java: + (WILDCARD): Added. + +2007-04-04 Andrew Haley <aph@redhat.com> + + * javax/management/ObjectName.java: + (serialVersionUID): Declare. + Make all fields transient. + (parse): Break out from constructor. + (writeObject, readObject): New methods. + +2007-04-05 Francis Kung <fkung@redhat.com> + + * include/Makefile.am: Remove old entry. + +2007-04-05 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/GtkToolkit.java + (createDragGestureRecognizer): Remove failing subClass call. + +2007-04-05 Gary Benson <gbenson@redhat.com> + + * java/util/GregorianCalendar.java + (computeFields): Fix WEEK_OF_MONTH calculation. + +2007-04-05 Christian Thalinger <twisti@complang.tuwien.ac.at> + + PR classpath/22800: + * native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits) + (doubleToRawLongBits, longBitsToDouble): Swap the byte + ordering for little-endian arms without VFP. + +2007-04-05 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * native/jni/java-net/java_net_VMNetworkInterface.c + [HAVE_IFADDRS_H && HAVE_GETIFADDRS] (free_netif_list): Added + #ifdef. + (getVMInterfaces): Added UNUSED argument attribute. + +2007-04-05 Christian Thalinger <twisti@complang.tuwien.ac.at> + + * native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c, + native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c + [HAVE_ICONV] (createRawData, getData, infid, outfid): Added + #ifdef. + (openIconv): Added UNUSED argument attribute, so we can build with + -Werror. + (decode): Likewise. + (closeIconv): Likewise. + +2007-04-05 Mark Wielaard <mark@klomp.org> + + * autogen.sh: Recognize automake 1.10. + * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-portability. + * native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add AM_LDFLAGS. + * native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): Likewise. + * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS): Likewise. + * native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS): Likewise. + * native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS): Likewise. + * native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Likewise. + +2007-04-04 Mark Wielaard <mark@klomp.org> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c + (cp_gtk_image_get_pixbuf): Return NULL when pointer is NULL. + * gnu/java/awt/peer/gtk/GtkImage.java (setImage): Set loaded and + call deliver() after pixels have been set. + * gnu/java/awt/peer/gtk/GtkFramePeer.java (setIconImage): Only + set icon when image has been properly loaded. + +2007-04-04 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawCairoSurface): Made protected. + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (cairoDrawGlyphVector): Removed method. + (cairoSetFont): Removed method. + (disposeNative): Removed method. + (drawCairoSurface): New method. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Added + locking. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont): Added locking. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Added locking. + +2007-04-04 Gary Benson <gbenson@redhat.com> + + * java/util/GregorianCalendar.java + (GregorianCalendar(TimeZone, Locale)): Remove redundant complete(). + +2007-04-04 Roman Kennke <roman@kennke.org> + + * java/nio/channels/spi/SelectorProvider.java + (inheritedChannel): Make method concrete and move default impl + to here. Perform security checks as mandated by the spec. + * gnu/java/nio/SelectorProviderImpl.java + (inheritedChannel): Removed. Default impl is in SelectorProvider. + +2007-04-04 Roman Kennke <roman@kennke.org> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + (init_glib_threads): Create global reference on lock object. + +2007-04-04 Roman Kennke <roman@kennke.org> + + * java/awt/Frame.java + (weakFrames): Make private. + (weakFramesQueue): New field. A reference queue to collect + GCed references. + (getFrames): Only do one iterations to avoid collecting null + references. + (hasDisplayableFrames): New helper method. Checks if there + are any displayable frames. This is used by the event queue + shutdown check. + (noteFrame): Clean up GCed frames in the list. + * java/awt/EventQueue.java + (isShutdown): Move frame checking code into Frame. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * java/lang/System.java + (inheritedChannel): New method, wraps + SelectorProvider.inheritedChannel(). + * java/nio/channels/spi/SelectorProvider.java + (inheritedChannel): New abstract method. + * gnu/java/nio/SelectorProviderImpl.java + (inheritedChannel): New method, return null as default. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * java/nio/ByteOrder.java + (nativeByteOrder): Let this fail when the corresponding + property is not set properly. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * javax/swing/plaf/basic/BasicTreeUI.java + (getPathBounds): Consider the tree's insets. Added a bunch of + null checks. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * javax/swing/plaf/basic/BasicLabelUI.java + (cachedInsets): New field. Used for reusing the insets instance. + (getFontMetrics): New helper method for fetching a suitable + FontMetrics object. + (getPreferredSize): Use new helper method for font metrics. + (paint): Only do something if we have an icon or text. + Use cached Insets instance and new font metrics helper. + (paintDisabledText): Don't restore the graphics' color. + (paintEnabledText): Don't restore the graphics' color. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * javax/swing/plaf/metal/MetalButtonUI.java + (paintButtonPressed): Fill the whole button not only visibleRect. + * javax/swing/plaf/metal/MetalLookAndFeel.java + (LAF_defaults): Removed. + (getDefaults): Always fetch super's defaults. + * javax/swing/plaf/metal/MetalMenuBarUI.java + (update): Don't leave 2 pixel gap. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * native/target/.cvsignore, + * native/target/Linux/.cvsignore, + * native/target/generic/.cvsignore: Some new ignores. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/peer/gtk/GThreadMutex.java, + * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java, + * include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h, + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c, + * native/jni/gtk-peer/gthread-jni.c, + * native/jni/gtk-peer/gthread-jni.h: Removed. + * native/jni/gtk-peer/Makefile.am: Removed obsolete entries + for removed files. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + Removed unused bits from gthread-jni.c. + +2007-04-03 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (getGlyphs(int[], int[], long[])): Return void. + +2007-04-03 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/value/ArrayValue.java: New file. + +2007-04-03 Roman Kennke <roman@kennke.org> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + (global_lock): New global variable that holds the object reference + to the global GTK lock. + (init_glib_threads): Add lock argument. Use + gdk_threads_set_lock_functions to replace GTK's locking function + with two callbacks that allow reentrant locking, based on + JNI's MonitorEnter() and MonitorExit(). + (jni_lock_cb): New callback function for GTK locking. + (jni_unlock_cb): New callback function for GTK unlocking. + (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Add lock argument. + Call init_glib_threads() with lock object. + * include/gnu_java_awt_peer_gtk_GtkToolkit.h + Regenerated. + * gnu/java/awt/peer/gtk/GtkToolkit.java + (GTK_LOCK): New static field. This is used as the global lock for + GTK. + (gtkInit): Add lock parameter. + (static_init): Initialize global lock and call gtkInit() with + that lock. + +2007-04-02 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (fontSet): Initialize to null. + (FreetypeGlyphVector(Font, int[], FontRenderContext)): Populate fontSet + array with default font if needed. + (FreetypeGlyphVector(FreetypeGlyphVector)): Clone all fields. + (getNativeFontPointer): New native method. + * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Regenerated. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer): + New function. + +2007-04-02 Francis Kung <fkung@redhat.com> + + * INSTALL: Document known bug in at-spi, atk, and gail packages prior to + version 1.18.0. + +2007-04-02 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (cairoDrawGlyphVector): Added parameter. + (drawGlyphVector): Retrieve and pass fontset parameter. + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (cairoDrawGlyphVector): Added parameter. + (lock): Removed unnecessary cast. + (unlock): Removed unnecessary cast and explicitly set to ONE variable. + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (fontSet): New field. + (dispose): New native method. + (finalize): New method. + (getGlyphFonts): New method. + (getGlyphOutline): Pass fontSet parameter to native method. + (getGlyphOutlineNative): Added parameter. + (getGlyphs): Pass extra parameters to native method. + (getGlyphsNative): Added parameters. + (getKerning): Added fontSet parameter. + (getMetricsNative): Added fontSet parameter. + (performDefaultLayout): Only check kerning if glyphs use the same font. + (setupGlyphMetrics): Pass extra parameters to native methods. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h, + * include/gnu_java_awt_peer_gtk_FreetypGlyphVector.h: Regenerated. + * native/jni/gtk-peer/gdkfont.h: Enable pango engine. + (peerfont): Add variable for fontset. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Accept + array of font pointers to use when drawing glyphs. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c + (getFontSet): New function. + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose): New function. + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative): + Added and use new fontSet parameter. + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Use pango + to retrieve glyphs and estimate font, if the current font does not contain + a requested glyph. + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning): Added and use + new fontSet parameter. + (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative): Added + and use new fontSet parameter. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose): Free fontset. + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Load fontset. + +2007-04-02 Andrew Haley <aph@redhat.com> + + * javax/management/ObjectName.java: Handle 0-length names. + * javax/management/MBeanServerFactory.java: Use the domain that + we've been passed, not the fixed string "DefaultDomain". + +2007-04-01 Mark Wielaard <mark@klomp.org> + + * org/omg/CORBA/DynAny.java: Mark as deprecated. + * org/omg/CORBA/DynArray.java: Likewise. + * org/omg/CORBA/DynEnum.java: Likewise. + * org/omg/CORBA/DynFixed.java: Likewise. + * org/omg/CORBA/DynSequence.java: Likewise. + * org/omg/CORBA/DynStruct.java: Likewise. + * org/omg/CORBA/DynUnion.java: Likewise. + * org/omg/CORBA/DynValue.java: Likewise. + * org/omg/CORBA/ORB.java (create_basic_dyn_any): Likewise. + (create_dyn_any): Likewise. + (create_dyn_array): likewise. + (create_dyn_enum): Likewise. + (create_dyn_sequence): Likewise. + (create_dyn_struct): Likewise. + (create_dyn_union): Likewise. + +2007-04-01 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/javax/management/Translator.java: + (fromJava(Object[],Method)): Use the array from the + parameter not the newly created one... + (fromJava(Object, Type)): Support MXBeans. + * javax/management/JMX.java: + (newMXBeanProxy(MBeanServerConnection,ObjectName,Class)): + Call newMXBeanProxy rather than newMBeanProxy. + * javax/management/StandardMBean.java: + (setAttribute(Attribute)): Use InvocationTargetException + as cause. + +2007-03-31 Jeroen Frijters <jeroen@frijters.net> + + PR classpath/31402: + * java/util/concurrent/CopyOnWriteArrayList.java + (remove): Fixed ArrayIndexOutOfBoundsException when index == 0. + +2007-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/openmbean/CompositeDataInvocationHandler.java: + New file. + +2007-03-30 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/util/VariableTable.java: Make argCnt and slots ints. + (write): Replace writeLong with writeInt for above. + +2007-03-30 Tom Tromey <tromey@redhat.com> + + PR libgcj/29869: + * gnu/java/util/jar/JarUtils.java (log): Commented out. + (readSFManifest): Don't log. + +2007-03-29 Tom Tromey <tromey@redhat.com> + + PR libgcj/29869: + * java/util/logging/LogManager.java (readConfiguration): Handle + comma-separated 'handlers'. Don't try to add a non-existing + handler. + +2007-03-29 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/event/ThreadStartEvent.java (Event): + Event type is "THREAD_START" not "THERAD_END". + + * gnu/classpath/jdwp/transport/SocketTransport.java (ITransport): + Handle configure strings ":port" and "port". + +2007-03-29 Francis Kung <fkung@redhat.com> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Revert last patch. + +2007-03-29 Mark Wielaard <mark@klomp.org> + + * native/jni/java-nio/Makefile.am (LIBADD): Add libclasspathnative. + +2007-03-28 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/StandardMBean.java: + (setAttribute(Attribute)): Add handling of primitive + types and subtype parameters. + (getMutator(String,Class<?>)): New helper method to + return the mutator. + +2007-03-28 Roman Kennke <roman@kennke.org> + + * java/io/OutputStreamWriter.java, + * java/io/InputStreamReader.java: Revert big stream patch due to + problems. + +2007-03-28 Tom Tromey <tromey@redhat.com> + + PR classpath/31303: + * external/sax/org/xml/sax/helpers/XMLReaderFactory.java + (createXMLReader): Code in Classpath default. + +2007-03-28 Tom Tromey <tromey@redhat.com> + + PR classpath/31276: + * native/jni/java-lang/java_lang_VMDouble.c + (parseDoubleFromChars): Use %p, not %i. + +2007-03-28 Mark Wielaard <mark@klomp.org> + + * native/jni/java-nio/Makefile.am (LIBADD): Don't add + libclasspathnative. + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_open): Don't set and reset umask. + +2007-03-27 Francis Kung <fkung@redhat.com> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Prevent loading of + accessibility modules as temporary workaround for Gnome bug. + +2007-03-27 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpth/jdwp/processor/ThreadReferenceCommandSet.java + (executeResume): Change to call VMVirtualMachine.resumeThread. + +2007-03-27 Roman Kennke <roman@kennke.org> + + * java/io/InputStreamReader.java + (BUFFER_SIZE): New constant. + (bytesCache): Removed. + (cacheLock): Removed. + (hasSavedSurrogate): Removed. + (lastArray): New field. Used for caching CharBuffers. + (lastBuffer): New field. Used for caching CharBuffers. + (maxBytesPerChar): Removed. + (oneChar): New field. Caches a char array for read(). + (savedSurrogate): New field. + (InputStreamReader): (all constructors) Cleaned up. + Use initDecoderAndBuffer() method. Check for null parameters. + Use new EncodingHelper.getDefaultCharset() for fetching the + default charset. + (decode): New helper method. Decodes using the NIO decoder or + using a raw Latin1 decoding. + (getCharBuffer): New helper method. Implements caching of + CharBuffers for output arrays. + (initDecoderAndBuffer): New helper method. Initializes the decoder + and input buffer. + (read): Use cached array. + (read(char[],int,int)): Reworked using a cleaner NIO based + implementation. This decodes the incoming data in bigger chunks + rather then calling the decoder for each character. + (ready): Also check the input buffer. + (refillInputBuffer): New helper methods. Refills the input buffer + when it runs out of data. + * java/io/OutputStreamWriter.java + (lastArray): Implements caching of the output array buffer. + (lastBuffer): Implements caching of the output array buffer. + (oneChar): New field. Caches a char array for write(). + (outputBuffer): Make this a ByteBuffer. + (OutputStreamWriter): (all constructors) Cleaned up. + Use initEncoderAndBuffer() method. Check for null parameters. + Use new EncodingHelper.getDefaultCharset() for fetching the + default charset. + (encode): New helper method. Encodes the input buffer to the output + buffer using either the NIO encoder or a raw Latin1 encoding. + (encodeChars): New helper method. The encoding loop. + (flush): Directly use the array of the output buffer. + (getCharBuffer): New helper method. Implements caching of the + output buffer. + (initEncoderAndBuffer): New helper method for initialization. + (write(char[],int,int)): Reworked to make better use of the NIO + encoders. + (write): Use cached array. + (write(String,int,int)): Don't copy the string but rather wrap it + and handle it the same as the wrapped char array. + (writeConvert): Removed. + * gnu/java/nio/charset/EncodingHelper.java + (getDefaultCharset): New method. Returns the default charset for + the case when the file.encoding charset is not valid. This + always returns an UTF8 codec. + +2007-03-27 Roman Kennke <kennke@aicas.com> + + * java/awt/Frame.java + (weakFrames): Make this generic and package private. + (noteFrame): Use generic WeakReference. + * java/awt/EventQueue.java + (isShutdown): Iterate over the weakFrames directly, rather than + using Frame.getFrames(). The latter iterates several times over + weakFrames completely and creates a new array on each call. The + former iterates only once and aborts when it finds a frame which + is displayable. + +2007-03-27 Roman Kennke <kennke@aicas.com> + + * javax/swing/JScrollBar.java + (getUnitIncrement(int)): Don't multiply direction parameter. + (getBlockIncrement(int)): Don't multiply direction parameter. + +2007-03-26 Tom Tromey <tromey@redhat.com> + + * doc/cp-tools.texinfo (gcjh Tool): Added more text. + (rmid Tool): Likewise. + +2007-03-26 Stepan Kasal <skasal@redhat.com> + + * tools/gnu/classpath/tools/javah/Main.java (cniOrJniSeen): New + field. + (getParser): Use new field. + +2007-03-25 Dalibor Topic <robilad@kaffe.org> + + * doc/cp-tools.texinfo: Fix node ordering. + +2007-03-19 Matthias Klose <doko@ubuntu.com> + + * doc/Makefile.am: Build a gcjh(1) man page. + * doc/cp-tools.texinfo: Add documentation for gcjh. + +2007-03-23 Jeroen Frijters <jeroen@frijters.net> + + * java/net/ServerSocket.java (implAccept): set implCreated flag on + socket. + * java/net/Socket.java (implCreated): Make package accessible for + ServerSocket. + +2007-03-22 Casey Marshall <csm@gnu.org> + + * gnu/javax/net/ssl/provider/ClientHandshake.java (RSAGen.implRun): + check keyEncipherment bit of the certificate, and just pass the public + key to the cipher. + +2007-03-20 Mario Torre <neugens@limasoftware.net> + + * configure.ac: GConf requirement for building the java.util.prefs backend + are relaxed down to version 2.6.0 (instead of 2.11.2). + +2007-03-19 Mario Torre <neugens@limasoftware.net> + + * gnu/java/awt/peer/KDEDesktopPeer.java: + (mail): Fixed error dialog in KDE when the mail method is called without + argument; now opens the default mailer with a blank window. + (getCommand): Handle the use of kprinter as default print command for KDE. + (supportCommand): Enable the print command when a KDE desktop is detected. + +2007-03-19 Jeroen Frijters <jeroen@frijters.net> + + * java/net/Socket.java + (implCreated): New field. + (getImpl): Call impl.create() if it hasn't been called yet. + (bind): Removed explicit impl.create() call. + +2007-03-18 Mark Wielaard <mark@klomp.org> + + * javax/crypto/CipherOutputStream.java (write): Use out.write() + not super.write(). + +2007-03-18 Mark Wielaard <mark@klomp.org> + + * configure.ac (COMPILE_PLUGIN): Check for gtk+-2.0 >= 2.8 + gthread-2.0 >= 2.2 and gdk-pixbuf-2.0 + +2007-03-16 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/Main.java (run): Use class' + name in File case. + +2007-03-16 Thomas Fitzsimmons <fitzsim@redhat.com> + + * resource/com/sun/tools/javac/messages.properties + (Main.FailedToRead, Main.MalformedURL, Main.FailedToLoad): Clarify + messages for when --with-ecj-jar is not specified. + + * configure.ac (FOUND_ECJ_JAR): Remove conditional. + * tools/Makefile.am: Build com.sun.tools.javac package + unconditionally. + +2007-03-16 Mark Wielaard <mark@klomp.org> + + * configure.ac (COMPILE_PLUGIN): Stop when no plugin headers found. + Also check for gtk+ dependency. + +2007-03-16 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/JniStubPrinter.java + (printClass): Added filename argument. + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java + (printClass): Added filename argument. + * tools/gnu/classpath/tools/javah/CniIncludePrinter.java + (printClass): Use user's file name. + * tools/gnu/classpath/tools/javah/CniStubPrinter.java + (printClass): Use user's file name. + * tools/gnu/classpath/tools/javah/Printer.java (printClass): Added + filename argument. + * tools/gnu/classpath/tools/javah/Main.java (getParser): Fix '-v' + argument order. + (writeHeaders): Use a HashMap. + (run): Put class name into HashMap for writeHeaders. + +2007-03-16 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (cairoArc): Make protected rather than private so it can be over-ridden. + (cairoClip): Likewise. + (cairoClosePath): Likewise. + (cairoCurveTo): Likewise. + (cairoDrawGlyphVector): Likewise. + (cairoFill): Likewise. + (cairoLineTo): Likewise. + (cairoMoveTo): Likewise. + (cairoNewPath): Likewise. + (cairoRectangle): Likewise. + (cairoResetClip): Likewise. + (cairoRestore): Likewise. + (cairoSave): Likewise. + (cairoScale): Likewise. + (cairoSetAntialias): Likewise. + (cairoSetDash): Likewise. + (cairoSetFillRule): Likewise. + (cairoSetFont): Likewise. + (cairoSetLine): Likewise. + (cairoSetMatrix): Likewise. + (cairoSetOperator): Likewise. + (cairoSetRGBAColor): Likewise. + (cairoStroke): Likewise. + (drawPixels): Likewise. + (init): Likewise. + (setGradient): Likewise. + (setPaintPixels): Likewise. + (cairoDrawLine): Removed. + (cairoDrawRect): Removed. + (cairoFillRect): Removed. + (cairoPreserveClip): Removed. + (cairoRelCurveTo): Removed. + (cairoRelLineTo): Removed. + (cairoRelMoveTo): Removed. + * gnu/java/awt/peer/gtk/ComponentGraphics.java + (cairoArc): New method wrapping superclass method in locks. + (cairoClip): Likewise. + (cairoClosePath): Likewise. + (cairoCurveTo): Likewise. + (cairoDrawGlyphVector): Likewise. + (cairoFill): Likewise. + (cairoLineTo): Likewise. + (cairoMoveTo): Likewise. + (cairoNewPath): Likewise. + (cairoRectangle): Likewise. + (cairoResetClip): Likewise. + (cairoRestore): Likewise. + (cairoSave): Likewise. + (cairoScale): Likewise. + (cairoSetAntialias): Likewise. + (cairoSetDash): Likewise. + (cairoSetFillRule): Likewise. + (cairoSetFont): Likewise. + (cairoSetLine): Likewise. + (cairoSetMatrix): Likewise. + (cairoSetOperator): Likewise. + (cairoSetRGBAColor): Likewise. + (cairoStroke): Likewise. + (disposeNative): Likewise. + (drawPixels): Likewise. + (init): Likewise. + (setGradient): Likewise. + (setPaintPixels): Likewise. + (draw): Do not lock, as locking is now done in the wrapped native methods. + (drawComposite): Likewise. + (drawGlyphVector): Likewise. + (drawImage): Likewise. + (drawRenderedImage): Likewise. + (fill): Likewise. + (setClip): Removed. + (lock): Added documentation. + (unlock): Added documentation. + * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated. + * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine): Removed. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawRect): Removed. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect): Removed. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip): Removed. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelCurveTo): Removed. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelLineTo): Removed. + (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelMoveTo): Removed. + +2007-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/openmbean/ArrayType.java: + (getArrayClassName(String, int)): Replaced by... + (getArrayClassName(OpenType, int, boolean)): + Returns appropriate class name for the array. + (getDimensions(OpenType, int)): New method. + (getPrimitiveType(Class<?>)): Likewise. + (getPrimitiveTypeClass(OpenType<?>)): Likewise. + (getElementType(OpenType<?>)): Likewise. + (getElementTypeName(OpenType<?>)): Likewise. + (ArrayType(int, OpenType<?>)): Rewritten + to handle ArrayTypes as input. + (ArrayType(SimpleType<?>, boolean)): New constructor. + (equals(Object)): Handle primitiveArray flag. + (hashCode()): Likewise. + (getArrayType(OpenType<E>)): New method. + (getPrimitiveArrayType(Class<T>)): Likewise. + (isPrimitiveArray()): Likewise. + (toString()): Updated to list primitiveArray + flag. + * javax/management/openmbean/OpenType.java: + (OpenType(String,String,String)): Use Class.forName() + and methods of Class to validate arrays. + * javax/management/openmbean/SimpleType.java: + Include causal exception when creating pre-defined types + throws an exception. + +2007-03-09 Andreas Tobler <a.tobler@schweiz.org> + + Port change from gcc: + + 2007-03-06 Matthias Klose <doko@ubuntu.com> + + * doc/Makefile.am(gkeytool.pod): Don't use sed -i. + +2007-03-09 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/exception/InvalidTagException.java: New file. + * gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java + (executeGetValues): Use Value type. + (exectureSetValues): Ditto. + * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java + (executeGetValues): Use Value type. + (executeSetValues): Ditto. + (invokeMethod): Record method return type. + * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java + (executeGetValues): Use Value type. + (executeSetValues): Ditto. + * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java + (executeGetValues): Use Value type. + * gnu/classpath/jdwp/processor/StackFrameCommandSet.java + (executeGetValues): Use Value type. + (executeSetValues): Ditto. + * gnu/classpath/jdwp/util/MethodResult.java: Add resType to store return + type. + (getResultType): New Method. + (setResultType): Ditto. + * gnu/classpath/jdwp/util/Value.java: Remove. + * gnu/classpath/jdwp/value: New Package. + * gnu/classpath/jdwp/value/Value.java: New file. + * gnu/classpath/jdwp/value/BooleanValue.java: New file. + * gnu/classpath/jdwp/value/ByteValue.java: New file. + * gnu/classpath/jdwp/value/CharValue.java: New file. + * gnu/classpath/jdwp/value/DoubleValue.java: New file. + * gnu/classpath/jdwp/value/FloatValue.java: New file. + * gnu/classpath/jdwp/value/IntValue.java: New file. + * gnu/classpath/jdwp/value/LongValue.java: New file. + * gnu/classpath/jdwp/value/ObjectValue.java: New file. + * gnu/classpath/jdwp/value/ShortValue.java: New file. + * gnu/classpath/jdwp/value/StringValue.java: New file. + * gnu/classpath/jdwp/value/ValueFactory.java: New file. + * gnu/classpath/jdwp/value/VoidValue.java: New file. + +2007-03-09 Roman Kennke <kennke@aicas.com> + + * java/awt/image/SinglePixelPackageSampleModel.java + (createDataBuffer): Avoid use of Buffers class and create + DataBuffer directly in place. + +2007-03-09 Roman Kennke <kennke@aicas.com> + + * java/awt/image/ComponentSampleModel.java + (tightPixelPacking): Removed. + (ComponentSampleModel): Removed unnecessary 'optimization' code. + (createDataBuffer): Avoid use of Buffers helper class. + (getDataElements(int,int,int,int,Object,DataBuffer): Removed. + (getDataElements(int,int,Object,DataBuffer): Do not use Buffers + helper class and instead fetch the values directly. Don't expect + any specific DataBuffer subclass. + (setDataElements(int,int,int,int,Object,DataBuffer): Removed. + (setDataElements(int,int,Object,DataBuffer): Do not use Buffers + helper class and instead set the values directly. Don't expect + any specific DataBuffer subclass. + +2007-03-08 Tom Tromey <tromey@redhat.com> + + PR libgcj/31093: + * java/net/MulticastSocket.java (setTimeToLive): Allow ttl==0. + +2007-03-08 Gary Benson <gbenson@redhat.com> + + PR classpath/30983: + * gnu/xml/dom/ls/DomLSParser.java (getInputSource): + Do not use the entity resolver to resolve the top-level document. + +2007-03-07 Tom Tromey <tromey@redhat.com> + + PR classpath/31057: + * java/util/regex/Pattern.java (toString): New method. + +2007-03-07 Gary Benson <gbenson@redhat.com> + + PR classpath/30906: + * resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList: + New file. + +2007-03-06 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/java/lang/management/BeanImpl.java: + (translate(String)): Add horrible generics hacks + to make things work with the new type signatures. + * javax/management/loading/ClassLoaderRepository.java: + Added generic types. + * javax/management/openmbean/CompositeDataSupport.java: + Likewise. + * javax/management/openmbean/OpenMBeanOperationInfo.java: + Likewise. + * javax/management/openmbean/OpenMBeanParameterInfo.java: + Likewise. + +2007-03-06 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java + (getGlyphOutline): Apply glyph position translation. + (getOutline): Do not apply glyph position translation. + +2007-03-06 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/Main.java (getName): New + method. + (getParser): Now protected. Use getName. Add '-v' alias for + --verbose. + (postParse): New method. + (run): Now protected. Use postParse. + * tools/gnu/classpath/tools/javah/GcjhMain.java: New file. + +2007-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/javax/management/Translator.java: + (translate(String)): Use a Boolean array to + comply with the new typing. + * javax/management/openmbean/ArrayType.java: + Added generic types and updated copyright headers. + * javax/management/openmbean/CompositeData.java: + Likewise. + * javax/management/openmbean/CompositeDataSupport.java: + Likewise. + * javax/management/openmbean/CompositeType.java: + Likewise. + * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java: + Likewise. + * javax/management/openmbean/OpenMBeanOperationInfoSupport.java: + Likewise. + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + Likewise. + * javax/management/openmbean/OpenType.java: + Updated copyright header. + * javax/management/openmbean/SimpleType.java: + Added generic types and updated copyright headers. + * javax/management/openmbean/TabularData.java: + Likewise. + * javax/management/openmbean/TabularDataSupport.java: + Likewise. + * javax/management/openmbean/TabularType.java: + Likewise. + +2007-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/java/lang/management/BeanImpl.java: + Reference the new Translator class. + (translate(String)): Moved to Translator. + * gnu/javax/management/Translator.java: + New file. + * javax/management/JMX.java: + Likewise. + * javax/management/MBeanServerInvocationHandler.java: + Likewise. + * javax/management/MXBean.java: + Likewise. + * javax/management/ObjectName.java: + (ObjectName(String)): Catch a key without a value. + * javax/management/StandardMBean.java: + (StandardMBean(Class<?>)): Handle MXBeans. + (StandardMBean(Object, Class<?>)): Likewise. + (invoke(String,Object[],String[])): Disallow + calling attribute methods and handle null signatures. + (setAttribute(Attribute)): Search for mutators + with the appropriate signature. + * javax/management/openmbean/OpenType.java: + Add generic typing. + (ALLOWED_CLASSNAMES_LIST): New field. + +2007-03-02 Mario Torre <neugens@limasoftware.net> + + PR classpath/31017: + committed for Petteri Räty <betelgeuse@gentoo.org> + * configure.ac: fix broken build for gcj browser plugin + +2007-03-02 Mario Torre <neugens@limasoftware.net> + + * java/awt/Desktop.java: new java 1.6 class. + * java/awt/peer/DesktopPeer.java: new inteface. + * gnu/java/awt/peer/GnomeDesktopPeer.java: new class. + * gnu/java/awt/peer/ClasspathDesktopPeer.java: new class. + * gnu/java/awt/peer/KDEDesktopPeer.java: new class. + * java/awt/Toolkit.java (createDesktopPeer): new method to support the + creation of DesktopPeer instances. + * gnu/java/awt/peer/qt/QtToolkit.java: update copyright notice and + organize import. + * gnu/java/awt/ClasspathToolkit.java (createDesktopPeer): new method. + +2007-02-28 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/processor/EventRequestCommandSet.java + (executeSet): Check if VM has capability for field access + or modification events. + * gnu/classpath/jdwp/processor/MethodCommandSet.java + (executeByteCodes): Check if VM has capability and + implement. + * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java + (executeMonitorInfo): Likewise. + * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java + (executeSourceDebugExtension): Likewise. + * gnu/classpath/jdwp/processor/StackFrameCommandSet.java + (executePopFrames): Likewise. + * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java + (executeOwnedMonitors): Likewise. + (executeCurrentContendedMonitor): Likewise. + * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java + (executeCapabilities): Rewrite using new VMVirtualMachine + capabilities. + (executeRedefineClasses): Check if VM has capability and + implement. + (executeSetDefaultStratum): Likewise. + * gnu/classpath/jdwp/util/MonitorInfo.java; New file. + * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java + (canWatchFieldModification): New class constant. + (canWatchFieldAccess): Likewise. + (canGetBytecodes): Likewise. + (canGetSyntheticAttribute): Likewise. + (canGetOwnedMonitorInfo): Likewise. + (canGetCurrentContendedMonitor): Likewise. + (canGetMonitorInfo): Likewise. + (canRedefineClasses): Likewise. + (canAddMethod): Likewise. + (canUnrestrictedlyRedefineClasses): Likewise. + (canPopFrames): Likewise. + (canUseInstanceFilters): Likewise. + (canGetSourceDebugExtension): Likewise. + (canRequestVMDeathEvent): Likewise. + (canSetDefaultStratum): Likewise. + (redefineClasses): New method. + (setDefaultStratum): Likewise. + (getSourceDebugExtension): Likewise. + (getBytecodes): Likewise. + (getMonitorInfo): Likewise. + (getOwnedMonitors): Likewise. + (getCurrentContendedMonitor): Likewise. + (popFrames): Likewise. + +2007-03-01 Roman Kennke <kennke@aicas.com> + + * java/awt/Canvas.java + (graphicsConfiguration): Removed duplicate (from Component) field. + (Canvas(GraphicsConfiguration)): Set the Component's graphicsConfig + field. + (getGraphicsConfigurationImpl): Removed. + * java/awt/Component.java + (getGraphicsConfiguration): Moved implementation here. Synchronize + on tree lock to prevent threading nastiness. Don't query peer + and instead return the setting of the graphicsConfig field. + (getGraphicsConfigurationImpl): Removed. + * java/awt/Window.java + (graphicsConfiguration): Removed duplicate (from Component) field. + (Window): Set the Component's graphicsConfig field. + (Window(GraphicsConfiguration)): Set the Component's graphicsConfig + field. + (Window(Window,GraphicsConfiguration)): Set the Component's + graphicsConfig field. + (getGraphicsConfigurationImpl): Removed. + (getGraphicsConfiguration): Fetch the local graphics env here + if not already done and return that. + +2007-02-28 Thomas Fitzsimmons <fitzsim@redhat.com> + + * INSTALL: Document --with-ecj-jar configure option and ecj jar + requirement for com.sun.tools.javac support. + * configure.ac: Add --with-ecj-jar configure option. + * gnu/classpath/Configuration.java.in (ECJ_JAR): New field. + * tools/Makefile.am: Build decendents of com and sun directories. + * resource/com/sun/tools/javac/messages.properties, + resource/sun/rmi/rmic/messages.properties, + tools/com/sun/javadoc/ClassDoc.java, + tools/com/sun/javadoc/ConstructorDoc.java, + tools/com/sun/javadoc/Doc.java, + tools/com/sun/javadoc/DocErrorReporter.java, + tools/com/sun/javadoc/Doclet.java, + tools/com/sun/javadoc/ExecutableMemberDoc.java, + tools/com/sun/javadoc/FieldDoc.java, + tools/com/sun/javadoc/MemberDoc.java, + tools/com/sun/javadoc/MethodDoc.java, + tools/com/sun/javadoc/PackageDoc.java, + tools/com/sun/javadoc/ParamTag.java, + tools/com/sun/javadoc/Parameter.java, + tools/com/sun/javadoc/ProgramElementDoc.java, + tools/com/sun/javadoc/RootDoc.java, + tools/com/sun/javadoc/SeeTag.java, + tools/com/sun/javadoc/SerialFieldTag.java, + tools/com/sun/javadoc/SourcePosition.java, + tools/com/sun/javadoc/Tag.java, + tools/com/sun/javadoc/ThrowsTag.java, + tools/com/sun/javadoc/Type.java, + tools/com/sun/javadoc/TypeVariable.java, + tools/com/sun/tools/doclets/Taglet.java, + tools/com/sun/tools/javac/Main.java, + tools/com/sun/tools/javac/Messages.java, + tools/sun/rmi/rmic/Main.java, tools/sun/rmi/rmic/Messages.java: + New files. + +2007-02-28 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/processor/MethodCommandSet.java + (executeLineTable): Use ReferenceTypeId instead of + ClassReferenceTypeId. + (executeVariableTable): Likewise. + (executeVariableTableWithGeneric): Fix error message. + * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java + (executeSignatureWithGeneric): Fix error message. + (executeFieldWithGeneric): Likewise. + (executeMethodsWithGeneric): Likewise. + * gnu/classpath/jdwp/processor/StackFrameCommandSet.java + (executeGetValues): Use ThreadId instead of ObjectId. + (executeSetValues): Likewise. + (executeThisObject): Likewise. + +2007-02-28 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/id/NullObjectId.java: New class. + * gnu/classpath/jdwp/util/NullObject.java: New class. + * vm/reference/gnu/classpath/jdwp/VMIdManager.java + (getObjectId): Handle null object. + (get): Handle objectId of 0. + +2007-02-26 Francis Kung <fkung@redhat.com> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Stop using deprecated + function for creating new font map. + +2007-02-26 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawCairoSurface): Do not reset clip. + (drawImage(Image,AffineTransform,Color,ImageObserver)): Likewise. + +2007-02-23 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawCairoSurface): New method. + (drawImage(Image,AffineTransform,Color,ImageObserver)): Use new + drawCairoSurface() method. + * gnu/java/awt/peer/gtk/CairoSurface.java + (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Copy correct + width/height values, and copy sharedBuffer value. + (createWritableChild): Remove debug line. + (drawSurface): Removed method. + * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java + (drawComposite): Translate image when drawing. + +2007-02-23 Gary Benson <gbenson@redhat.com> + Jakub Jelinek <jakub@redhat.com> + + PR libgcj/17002 + PR classpath/28550 + * java/util/Date.java (parse): Properly parse 09:01:02 as + hours/minutes/seconds, not as hours/minutes/year. + * java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify + {start,end}TimeMode constructor by calling shorter constructor, + set {start,end}TimeMode fields after it returns. + (setStartRule): Don't adjust startTime into WALL_TIME. Set + startTimeMode to WALL_TIME. + (endStartRule): Similarly. + (getOffset): Handle properly millis + dstOffset overflowing into the + next day. Adjust startTime resp. endTime based on startTimeMode + resp. endTimeMode. + * java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New + static fields. + (timezones): Remove synchronized keyword. Set zoneinfo_dir. + If non-null, set up aliases0 and don't put anything into + timezones0. + (defaultZone): Call getTimeZone instead of timezones().get. + (getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6. Use + getTimeZoneInternal instead of timezones().get. + (parseTime): Parse correctly hour:minute. + (getTimeZoneInternal): New private method. + (getTimeZone): Do the custom ID checking first, canonicalize + ID for custom IDs as required by documentation. Call + getTimeZoneInternal to handle the rest. + (getAvailableIDs(int)): Add locking. Handle zoneinfo_dir != null. + (getAvailableIDs(File,String,ArrayList)): New private method. + (getAvailableIDs()): Add locking. Handle zoneinfo_dir != null. + * vm/reference/java/util/VMTimeZone.java (getDefaultTimeZoneId): + To read /etc/localtime, use ZoneInfo.readTZFile instead of + VMTimeZone.readtzFile. Get better timezone name for + /etc/localtime, either if it is a symlink or through + /etc/sysconfig/clock. + (readSysconfigClockFile): New static method. + (readtzFile): Removed. + * gnu/java/util/ZoneInfo.java: New file. + * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments. + * NEWS: Documented TimeZone interface changes. + +2007-02-23 Francis Kung <fkung@redhat.com> + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c + (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Remove debug line. + +2007-02-22 Keith Seitz <keiths@redhat.ecom> + + * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java + (getAllLoadedClassesCount): Remove. + (getAllLoadedClasses): Return a Collection. + * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java + (executeClassesBySignature): VMVirtualMachine.getAllLoadedClasses + now returns Collection. + (executeAllClasses): Likewise. + Get size of return from Colleciton instead of calling + getAllLoadedClassesCount. + +2007-02-22 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/processor/StackFrameCommandSet.java + (executeGetValues): Pass a signature byte to VMFrame.getValue. + * vm/reference/gnu/classpath/jdwp/VMFrame.java (getValue): Add + signature parameter. + +2007-02-22 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoSurface.java + (copyAreaNative): Pass surface pointer into copyAreaNative2(). + (copyAreaNative2): Add parameter for surface pointer. + (getFlippedBuffer): Add parameter for surface pointer. + (getGtkImage): Pass surface pointer into getFlippedBuffer(). + +2007-02-21 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/BufferedImageGraphcs.java + (constructor): Add pre-multiplied colour model to types available for + optimization. + (updateBufferedImage): Change surface.getPixels() call to surface.getData(). + * gnu/java/awt/peer/gtk/CairoGraphics2D.java + (drawImage): Add checks before using CairoSurface optimization. + * gnu/java/awt/peer/gtk/CairoSurface.java + (bufferPointer): Removed field. + (sharedBuffer): New field. + (CairoSurface(GtkImage)): Copy array rather than using setPixels() call. + (CairoSurface(int,int,int)): Use getData() convenience method. + (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Remove reference + to deleted bufferPointer field. + (copyAreaNative): Update documentation, remove reference to bufferPointer. + (copyAreaNative2): Remove reference to deleted bufferPointer field. + (destroy): Remove reference to deleted bufferPointer field. + (dispose): Updated to reflect new method signature for destroy(). + (drawSurface): Added documentation. + (getData): New convience method. + (getFlippedBuffer): Removed method parameters. + (getGtkImage): Updated to reflect new method signature. + (getPixels): Removed method. + (nativeGetElem): Removed method. + (netiveGetPixels): Removed method. + (nativeSetElem): Removed method. + (nativeSetPixels): Removed method. + (setPixels): Removed method. + (syncJavaToNative): New method. + (syncNativeToJava): New method. + * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java + (draw): Sync buffers if necessary. + (drawGlyphVector): Likewise. + (drawImage): Likewise. + (drawRenderedImage): Likewise, + (fill): Likewise. + * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c + (Java_gnu_java_awt_peer_gtk_CairoSurface_copyAreaNative2): Use pointer to + surface rather than pointer to buffer. + (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Provide fall-back for + copied arrays. + (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Handle copied arrays. + (Java_gnu_java_awt_peer_gtk_CairoSurface_getFlippedBuffer): Retrieve + information on size using JNI calls. + (Java_gnu_java_awt_peer_gtk_CairoSurface_getElem): Removed. + (Java_gnu_java_awt_peer_gtk_CairoSurface_getPixels): Removed. + (Java_gnu_java_awt_peer_gtk_CairoSurface_setElem): Removed. + (Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Removed. + (Java_gnu_java_awt_peer_gtk_CairoSurface_syncJavaToNative): New function. + (Java_gnu_java_awt_peer_gtk_CairoSurface_syncNativeToJava): New function. + (BUFFER): Removed constant. + (SHARED): New constant. + +2007-02-20 Gary Benson <gbenson@redhat.com> + + * javax/management/ObjectName.java + (domainMatches): New method. + (apply): Rearranged to use the above. + +2007-02-19 Mark Wielaard <mark@klomp.org> + + * doc/.cvsignore: Add *.1. + * doc/Makefile.am (CLEANFILES): Add Tools_MANFILES. + +2007-02-19 Dalibor Topic <robilad@kaffe.org> + + * cp-hacking.texinfo, cp-tools.texinfo, + cp-vmintegration.texinfo: Prefix output file name + with cp. + +2007-02-19 Gary Benson <gbenson@redhat.com> + + * javax/management/ObjectName.java + (properties): Initialize when declared. + (ObjectName(String)): Don't initialize properties here. + (ObjectName(String, String, String): Likewise. + +2007-02-19 Chris Burdess <dog@gnu.org> + + Fixes #30831 + * gnu/xml/dom/ls/SAXEventSink.java: Only set extended document + properties when reader is available. + +2007-02-19 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/MBeanServer.java: + (queryMBeans(ObjectName,QueryExp)): Returned + generically-typed Set. + (queryNames(ObjectName,QueryExp)): Likewise. + * javax/management/MBeanServerConnection.java: + (queryMBeans(ObjectName,QueryExp)): Returned + generically-typed Set. + (queryNames(ObjectName,QueryExp)): Likewise. + * javax/management/ObjectName.java: + Use a generically-typed TreeMap. + (ObjectName(String,Hashtable<String,String>): + Genericized. + (getKeyPropertyList()): Likewise. + * javax/management/StandardMBean.java: + Use a generically-typed interface class. + (StandardMBean(Class<?>)): Genericized. + (StandardMBean(T, Class<T>)): Likewise. + (getImplementationClass()): Likewise. + (getMBeanInterface()): Likewise. + +2007-02-19 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/Descriptor.java: + New file. + * javax/management/DescriptorRead.java: + Likewise. + * javax/management/DescriptorAccess.java: + Likewise. + +2007-02-16 Matthias Klose <doko@ubuntu.com> + + * doc/Makefile.am: Add rules to build and install man pages + from texinfo docs. + * doc/hacking.texinfo doc/tools.texinfo, doc/vmintegration.texinfo: + Rename, prefix files with "cp-". + * doc/cp-tools.texinfo: Add markup for man page generation, + add documentation for command line options for gjar, gjavah, + gnative2ascii, gorbd, grmid, grmiregistry, gserialver, gtnameserv. + doc/texi2pod.pl: New, taken from the GCC sources. + +2007-02-16 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/ClasspathGraphicsEnvironment.java: New file. + * gnu/java/awt/peer/gtk/CairoSurface.java + (CairoDataBuffer): Removed inner class. + (CairoSurface(int,int,int,int)): New constructor. + (CairoSurface(int,int)): Delegate to new constructor. + (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): New constructor + for creating child rasters. + (create): Added int[] parameter. + (createChild): New method. + (createCompatibleWritableRaster): New methods. + (createTranslatedChild): New method. + (createWritableChild): New method. + (createWritableTranslatedChild): New method. + (destroy): Added int[] parameter. + (dispose): Only free native resources if this Surface has no parents. + (isCompatibleColorModel): New method. + (isCompatibleSampleModel): New method. + * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java + (draw): Set transform, smarter bounds generation. + (drawComposite): Improved clipping. + (drawImage): Fixed bounds translation. + (drawRenderedImage): Set transform in buffer. + (fill): Set transform in buffer. + * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java + (createRaster): New method. + * java/awt/image/BufferedImage.java + (BufferedImage(int,int,int)): Use optimized raster if possible. + * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c + (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Share data buffer between + Cairo and Java. + (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Free data array. + +2007-02-16 Francis Kung <fkung@redhat.com> + + * javax/management/NotificationBroadcasterSupport.java: Update imports. + +2007-02-16 Andrew Haley <aph@redhat.com> + + * gnu/java/lang/management/MemoryMXBeanImpl.java, + javax/management/MBeanServerDelegate.java: Use + gnu.javax.management.ListenerData rather than + gnu.classpath.ListenerData. + * gnu/javax/management/ListenerData.java: Move here from + gnu/classpath/ListenerData.java. + +2006-10-14 Edwin Steiner <edwin.steiner@gmx.net> + + PR classpath/28652: + * javax/management/MBeanInfo.java (MBeanInfo): + Use clone to duplicate the arrays in order to + preserve the array type. + +2007-02-15 Gary Benson <gbenson@redhat.com> + + * gnu/javax/management/Server.java + (registerMBean): Always register objects that implement the + MBeanRegistration interface, and check the name returned by + preRegister before using it. + +2007-02-15 Roman Kennke <kennke@aicas.com> + + * java/nio/ByteOrder.java + (nativeOrder): Avoid NPE when comparing a system property. + +2007-02-13 Gary Benson <gbenson@redhat.com> + + * javax/management/ObjectName.java + (toString): Return this item's canonical name. + +2007-02-12 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/ClasspathToolkit.java: + * gnu/java/awt/peer/gtk/AsyncImage.java, + * gnu/java/awt/peer/gtk/BufferedImageGraphics.java, + * gnu/java/awt/peer/gtk/CairoGraphics2D.java, + * gnu/java/awt/peer/gtk/CairoSurface.java, + * gnu/java/awt/peer/gtk/ComponentGraphics.java, + * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java, + * gnu/java/awt/peer/gtk/GdkFontPeer.java, + * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java, + * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java, + * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java, + * gnu/java/awt/peer/gtk/GtkChoicePeer.java, + * gnu/java/awt/peer/gtk/GtkClipboard.java, + * gnu/java/awt/peer/gtk/GtkClipboardNotifier.java, + * gnu/java/awt/peer/gtk/GtkComponentPeer.java, + * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java, + * gnu/java/awt/peer/gtk/GtkFramePeer.java, + * gnu/java/awt/peer/gtk/GtkImage.java, + * gnu/java/awt/peer/gtk/GtkImageConsumer.java, + * gnu/java/awt/peer/gtk/GtkLabelPeer.java, + * gnu/java/awt/peer/gtk/GtkListPeer.java, + * gnu/java/awt/peer/gtk/GtkMainThread.java, + * gnu/java/awt/peer/gtk/GtkMenuBarPeer.java, + * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java, + * gnu/java/awt/peer/gtk/GtkMenuPeer.java, + * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java, + * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java, + * gnu/java/awt/peer/gtk/GtkScrollPanePeer.java, + * gnu/java/awt/peer/gtk/GtkSelection.java, + * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java, + * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java, + * gnu/java/awt/peer/gtk/GtkToolkit.java, + * gnu/java/awt/peer/gtk/GtkWindowPeer.java, + * gnu/java/awt/peer/gtk/VolatileImageGraphics.java, + * java/awt/RenderingHints.java, + * java/awt/image/BufferedImage.java: Reformatted and added generics. + +2007-02-12 Tom Tromey <tromey@redhat.com> + + * java/net/Socket.java (bind): Typo fix. + +2007-02-12 Tom Tromey <tromey@redhat.com> + + * vm/reference/java/lang/reflect/Method.java (getDefaultValue): + New method. + * sun/reflect/annotation/AnnotationInvocationHandler.java (create): + New method. + (arrayClone): New method. + (invoke): Clone array return results. + +2007-02-12 Jakub Jelinek <jakub@redhat.com> + + PR 23566 + * scripts/timezones.pl: Parse each file in 2 passes, in one parse + just Rule lines, in the other everything else. Pass 0 instead of + $savings as second argument to parseRule when parsing the start + rule. + * java/util/TimeZone.java (timezones): Regenerate from tzdata2007a. + +2007-02-12 Jakub Jelinek <jakub@redhat.com> + + * vm/reference/java/util/VMTimeZone.java: Rewrite to handle both + the old 'TZif\0' format and the new one. + * java/util/TimeZone.java: Handle default (one hour) daylight + savings. + +2007-02-12 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/Query.java: + New file. + * javax/management/StandardMBean.java: + Use the implementation's class loader. + +2007-02-10 Mark Wielaard <mark@klomp.org> + + * javax/swing/plaf/metal/MetalFileChooserUI.java: Import Date from + java.util, not from java.sql. + +2007-02-10 Roman Kennke <kennke@aicas.com> + + * javax/imageio/stream/ImageOutputStreamImpl.java + (flushBits): Implemented. + (writeBit): Implemented. + (writeBits): Implemented. + +2007-02-10 Roman Kennke <kennke@aicas.com> + + * javax/swing/TransferHandler.java + (SwingDragGestureRecognizer): New inner class. + (SwingDragHandler): New inner class. + (recognizer): New field. + (exportAsDrag): Implemented missing method. + +2007-02-10 Roman Kennke <kennke@aicas.com> + + * java/awt/GraphicsConfiguration.java + (createCompatibleVolatileImage(int,int,ImageCapabilities): Provide + default implementation that delegates to + createCompatibleVolatileImage(int,int). + (createCompatibleVolatileImage(int,int,ImageCapabilities,int): + New method from JDK5 spec. Default implementation by delegating to + (createCompatibleVolatileImage(int,int,int). + +2007-02-09 Tom Tromey <tromey@redhat.com> + + PR libgcj/30647: + * configure.ac: Also check for jack/jack.h. + +2007-02-09 Mario Torre <neugens@limasoftware.net> + + * java/io/File.java: remove import for + gnu.classpath.NotImplementedException. + (getUsableSpace): removed stub. + (getFreeSpace): likewise. + (getTotalSpace): likewise. + +2007-02-09 Mario Torre <neugens@limasoftware.net> + + * vm/reference/java/io/VMFile.java: + (canExecute): new 1.6 native method. + (setReadable): likewise. + (setWritable): likewise. + (setExecutable): likewise. + * java/io/File.java: added import for gnu.classpath.NotImplementedException. + (setReadOnly): new 1.6 method. + (canExecute): likewise. + (setReadable): likewise. + (setWritable): likewise. + (setExecutable): likewise. + (getUsableSpace): added stub for new 1.6 method. + (getFreeSpace): likewise. + (getTotalSpace): likewise. + (checkExec): new private method to support new 1.6 additions. + * native/jni/java-io/java_io_VMFile.c: + set_file_permissions: new helper function. + Java_java_io_VMFile_setReadable: new native method to bakcup 1.6 methods + in VMFile.java. + Java_java_io_VMFile_setWritable: likewise. + Java_java_io_VMFile_setExecutable: likewise. + Java_java_io_VMFile_canExecute: likewise. + * native/jni/native-lib/cpio.h: added new flags: CPFILE_FLAG_EXEC, + CPFILE_FLAG_USR and CPFILE_FLAG_OFF. + cpio_chmod: new function declaration. + cpio_checkAccess: likewise. + * native/jni/native-lib/cpio.c: + cpio_chmod: new function definition. + cpio_checkAccess: likewise. + +2007-02-09 Gary Benson <gbenson@redhat.com> + + * javax/management/ObjectName.java + (quote): Initialize StringBuilder correctly. + +2007-02-09 Francis Kung <fkung@redhat.com> + + * java/awt/image/BufferedImage: Reformatted. + +2007-02-09 Ito Kazumitsu <kaz@maczuka.gcd.org> + + Fixes bug #30732 + * gnu/java/util/regex/RETokenChar.java(chain): Check whether the next + token has a next token. + +2007-02-08 Roman Kennke <kennke@aicas.com> + + PR 30347 + * javax/swing/JViewport.java + (scrollRectToVisible): Use correct X/Y offset for calculations. + (paintBackingStore): Update backbuffer when we are not the paint + root. + +2007-02-08 Roman Kennke <kennke@aicas.com> + + * java/awt/image/SinglePixelPackedSampleModel.java + (getDataElements(int,int,Object,DataBuffer)): + Replace DataBuffer using method with simple + switch. This does not check for the exact type (class) of the + DataBuffer but instead checks the transfer type. + (getDataElements(int,int,int,intObject,DataBuffer)): Removed. + (setDataElements): Fixed indentation. + (setPixels): Removed unused statement. + +2007-02-07 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/PathOptionGroup.java + (PathOptionGroup): Allow '-cp' as well. + +2007-02-07 Chris Burdess <dog@gnu.org> + + Fixes PR 30718. + * gnu/xml/dom/ls/SAXEventSink.java: Add public accessor/mutators. + * gnu/xml/transform/XSLURIResolver.java: Add support for custom + SAXSources without a backing URL or stream. + +2007-02-06 Tom Tromey <tromey@redhat.com> + + PR libgcj/30707: + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java + (printClass): Always print a header. + +2007-02-06 Chris Burdess <dog@gnu.org> + + Fixes PR 27710. + * gnu/xml/dom/DomDocumentBuilderFactory.java: Fall back to synchronous + LSParser if implementation does not support asynchronous. + * gnu/xml/stream/XMLParser.java, + gnu/xml/stream/XIncludeFilter.java: Use custom code instead of + java.net.URL to resolve to an an absolute URI, to avoid nonexistent + protocol handler problems. + +2007-02-05 Andrew Haley <aph@redhat.com> + + PR cp-tools/30706 + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java: + (printClass): Replace '/' in filenames with '_'. + * tools/gnu/classpath/tools/javah/JniStubPrinter.java + (printClass): Likewise. + +2007-02-05 Tom Tromey <tromey@redhat.com> + + * java/net/Proxy.java (equals): Handle case where address==null. + (hashCode): Likewise. + (toString): Likewise. + +2007-02-04 Jeroen Frijters <jeroen@frijters.net> + + * java/lang/Class.java + (newInstance): Moved setAccessible call to helper method. + (getEnumConstants): Call new helper method to allow values method to be + called on non-public enum classes. + (setAccessible): New helper method. + * java/lang/Enum.java + (valueOf): Call new helper method in class to allow field value to + be read on non-public enum classes. + +2007-02-04 Jeroen Frijters <jeroen@frijters.net> + + Fix for #30693 + * gnu/java/nio/charset/ByteCharset.java + (ByteCharset.Decoder.decodeLoop): Reset input buffer position if + the byte read was unmappable. + +2007-02-02 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/processor/StackFrameCommandSet.java + (executeGetValues): Changed getFrame to use a jlong to pass frameID. + (executeSetValues): Ditto. + (executeThisObject): Ditto. + * vm/reference/gnu/classpath/jdwp/VMFrame.java: Added thread field and a + constructor used to create VMFrames. + (getThread): New method. + * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java(getFrame): Changed + to take a long instead of a ByteBuffer to pass the frameID. + +2007-02-01 Tom Tromey <tromey@redhat.com> + + * java/util/logging/LogManager.java (reset): Remove bogus + 'while'. + +2007-01-31 Casey Marshall <csm@gnu.org> + + * gnu/javax/net/ssl/Base64.java: move to `gnu/java/util/Base64.java.' + * gnu/javax/net/ssl/PrivateCredentials.java: clean up unused imports. + (add): use `gnu.java.util.Base64.' + * gnu/java/net/protocol/http/Request.java (authenticate): use + `gnu.java.util.Base64.' + * tools/gnu/classpath/tools/jarsigner/HashUtils.java (hashStream): + likewise. + * tools/gnu/classpath/tools/keytool/CertReqCmd.java (start): likewise. + * tools/gnu/classpath/tools/keytool/ExportCmd.java (start): likewise. + * tools/gnu/classpath/tools/keytool/ListCmd.java (printRFC1421): + likewise. + * gnu/java/net/Base64.java: removed. + * gnu/java/security/util/Base64.java: removed. + +2007-01-31 Casey Marshall <csm@gnu.org> + + Fixes PR classpath/24191. + Fix suggested by Rafael Teixeira <monoman@gmail.com>. + * javax/crypto/CipherOutputStream.java (write): check return value + of `update' for null. + +2007-01-31 Tom Tromey <tromey@redhat.com> + + * resource/gnu/classpath/tools/jar/messages.properties + (Main.Stdin): New message. + * tools/gnu/classpath/tools/jar/Main.java (initializeParser): Add + '-@' option. + (readNames): New method. + (run): Use it. + +2007-01-30 Roman Kennke <kennke@aicas.com> + + PR 20577 + * javax/swing/DefaultDesktopManager.java + (activateFrame): Added a bunch of null checks. Don't call + JInternalFrame.setSelected() to avoid recursion. + +2007-01-29 Andrew Haley <aph@redhat.com> + + * java/lang/SecurityManager.java (SecurityManager): Load and + initialize java.security.Security. + +2007-01-28 Ito Kazumitsu <kaz@maczuka.gcd.org> + + * native/jni/java-nio/gnu_java_nio_VMChannel.c + (Java_gnu_java_nio_VMChannel_accept): Throw SocketTimeoutException + in case of timeout. + * native/jni/java-nio/javanio.c(cpnio_accept): Call select() if + SO_RCVTIMEO is set. + +2007-01-26 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/FieldHelper.java (print): Print + 'volatile' after field type. + +2007-01-26 Chris Burdess <dog@gnu.org> + + Fixes #30597 + * gnu/xml/dom/DomDocumentBuilder.java: Throw IOException where cause + of LSException is an IOException. + * gnu/xml/dom/ls/DomLSParser.java, + gnu/xml/stream/SAXParser.java: Ensure coalescing feature is set + correctly during LS parsing. + +2007-01-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/PersistentMBean.java: + New file. + +2007-01-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/AttributeChangeNotificationFilter.java: + Correct typo. + * javax/management/NotificationFilterSupport.java: + New file. + +2007-01-21 Mark Wielaard <mark@klomp.org> + + * java/security/SecureClassLoader.java (defineClass): Method returns + Class<?>. + * java/security/SignatureSpi.java (engineUpdate(ByteBuffer): + Does not throw SignatureException. Chain SignatureException inside + IllegalStateException. + +2007-01-21 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/NotificationBroadcasterSupport.java: + New file. + +2007-01-20 Ito Kazumitsu <kaz@maczuka.gcd.org> + + * java/text/DecimalFormat.java(parse): Corrected the ParsePosition + settings. + +2007-01-20 Ito Kazumitsu <kaz@maczuka.gcd.org> + + * java/text/SimpleDateFormat(parse): Corrected the usage of + NumberFormat. + +2007-01-20 Ito Kazumitsu <kaz@maczuka.gcd.org> + + Fixes bug #30488 + * native/jni/native-lib/cpnet.c(SOCKET_NOSIGNAL): Deleted, + (setsockopt_NOSIGPIPE): New function, + (cpnet_send): Corrected the option setting to send(), + (cpnet_sendTo): Corrected the option setting to sendto(). + +2007-01-19 Marco Trudel <mtrudel@gmx.ch> + + * java/util/Arrays.java (binarySearch): Change comparison order. + +2007-01-17 Keith Seitz <keiths@redhat.com> + + * gnu/classpath/jdwp/events/filters/StepFilter.java: + Update javadoc. + (matches): Implement. + + * gnu/classpath/jdwp/event/EventManager.java (EventManager): Honor + agent startup suspension for VM_INIT. + +2007-01-17 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/javah/PathOptionGroup.java + (PathOptionGroup): Set default boot class path. + +2007-01-17 Mark Wielaard <mark@klomp.org> + + * javax/activity/ActivityCompletedException.java: Make constructors + public. + * javax/activity/ActivityRequiredException.java: Likewise. + * javax/activity/InvalidActivityException.java: Likewise. + +2007-01-17 Roman Kennke <kennke@aicas.com> + + * javax/swing/plaf/basic/BasicRadioButtonUI.java + (paint): Use helper method to figure out icon. Don't override + the icon field in that class. Check for null icons. + (getCurrentIcon): New helper function to determine icon to be + painted. + +2007-01-17 Mark Wielaard <mark@klomp.org> + + * javax/activity/ActivityCompletedException.java: New file. + * javax/activity/ActivityRequiredException.java: Likewise. + * javax/activity/InvalidActivityException.java: Likewise. + * javax/activity/package.html: Likewise. + +2007-01-15 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/DefaultLoaderRepository.java: + (loadClass(String)): Made static. + (loadClassWithout(String,ClassLoader)): Likewise. + +2007-01-15 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/exception/TypeMismatchException.java: New file. + * gnu/classpath/jdwp/exception/InvalidFrameException.java: Fix indentation. + * gnu/classpath/jdwp/exception/InvalidSlotException.java: Fix indentation. + +2007-01-15 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/AttributeValueExp.java: + Corrected serialVersionUID typo. + * javax/management/DefaultLoaderRepository.java: + New file. + * javax/management/MBeanServerFactory.java: + Add generic typing. + +2007-01-15 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/exception/InvalidFrameException.java: New file. + +2007-01-15 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/exception/AbsentInformationException.java: New file. + +2007-01-15 Kyle Galloway <kgallowa@redhat.com> + + * gnu/classpath/jdwp/exception/InvalidSlotException.java: New file. + +2007-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/AttributeValueExp.java: New file. + * javax/management/QueryEval.java: Likewise. + * javax/management/StringValueExp.java: Likewise. + +2007-01-14 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/AttributeChangeNotificationFilter.java: + New file. + +2007-01-11 Andreas Tobler <a.tobler@schweiz.org> + + * examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java + (AicasGraphicsBenchmark): Load images from ../icons. + * examples/gnu/classpath/examples/java2d/J2dBenchmark.java (init): + Likewise. + * examples/Makefile.am (EXAMPLE_ICONS): Add rule to copy *.gif files + to icons. + * examples/gnu/classpath/examples/awt/aicas.png: Move to ../icons. + Delete here. + * examples/gnu/classpath/examples/awt/palme.gif: Likewise. + * examples/gnu/classpath/examples/java2d/aicas.png: Likewise. + * examples/gnu/classpath/examples/java2d/palme.gif: Likewise. + * examples/gnu/classpath/examples/icons/aicas.png: Moved. + * examples/gnu/classpath/examples/icons/palme.gif: Likewise. + +2007-01-09 Tania Bento <tbento@redhat.com> + + * java/security/Permission.java: + (toString): If there are no actions, then there should not + be a space between its name and ')'. + +2007-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * javax/management/AttributeChangeNotification.java: + New file. + +2007-01-08 Cameron McCormack <cam@mcc.id.au> + + PR 30355 + * java/util/Arrays.java: + (binarySearch(byte[],byte)): Added check for zero-length array. + (binarySearch(short[],short)): Likewise. + (binarySearch(int[],int)): Likewise. + (binarySearch(long[],long)): Likewise. + (binarySearch(char[],char)): Likewise. + (binarySearch(float[],float)): Likewise. + (binarySearch(double[],double)): Likewise. + (binarySearch(Object[],Object)): Likewise. + (binarySearch(T[],T,Comparator)): Likewise. + +2007-01-08 Tom Tromey <tromey@redhat.com> + + * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java (run): + Fix length check. PR classpath/30346. + +2007-01-09 Raif S. Naffah <classpath@naffah-raif.name> + + * tools/gnu/classpath/tools/jarsigner/SFHelper.java: Updated copyright year. + (sfEntries): Use generics. + (writeDSA()): Likewise. + (startSigning()): Likewise. + (updateEntry()): Likewise. + * tools/gnu/classpath/tools/jarsigner/Messages.java: Updated copyright year. + (CACHED_FORMATS): Use generics. + (getFormattedString()): Likewise. + * tools/gnu/classpath/tools/jarsigner/Main.java: Updated copyright year. + (fileAndAlias): Use generics. + (ToolParser.validate()): Likewise. + * tools/gnu/classpath/tools/jarsigner/JarVerifier.java: + Updated copyright year. + Re-ordered imports and removed unused entries. + (entryHashes): Use generics. + (start()): Likewise. + (verifySFEntries()): Likewise. + Use map's entrySet() instead of its keySet(). + +2007-01-08 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/text/DateFormat.java: + (computeInstance(int,int,Locale,boolean,boolean)): + Throw an exception when locale info. is unavailable. + (computeDefault(int,int,boolean,boolean)): New method. + (getDateInstance(int,Locale)): Check providers. + (getDateTimeInstance(int,int,Locale)): Likewise. + (getTimeInstance(int,Locale)): Likewise. + * java/text/DateFormatSymbols.java: + Update documentation to match DecimalFormatSymbols. + * java/text/DecimalFormatSymbols.java: + (DecimalFormatSymbols(Locale)): Reordered. + (getInstance()): Implemented. + (getInstance(Locale)): Implemented. + * java/text/NumberFormat.java: + (computeInstance(Locale,String,String)): + Throw an exception when locale info is unavailable. + (getCurrencyInstance(Locale)): Check providers. + (getIntegerInstance(Locale)): Likewise. + (getNumberInstance(Locale)): Likewise. + (getPercentInstance(Locale)): Likewise. + * java/text/spi/DateFormatProvider.java: New file. + * java/text/spi/DecimalFormatSymbolsProvider.java: Likewise. + * java/text/spi/NumberFormatProvider.java: Likewise. + +2007-01-07 Ito Kazumitsu <kaz@maczuka.gcd.org> + + Fixes bug #30377 + * native/jni/native-lib/cpnet.h: Add some include files. + +2007-01-07 Roman Kennke <roman@kennke.org> + + PR 30337 + * java/awt/Component.java + (getFontImpl): Return null when the component has no font set + and also has no parent yet. + * javax/swing/plaf/basic/BasicComboBoxUI.java + (PropertyChangeHandler.propertyChange): Only add editor when combo + box is editable. Avoid fetching the property name repeatedly. + Invalidate when renderer or prototypeDisplayValue change. + (uninstallComponents): Unconfigure everything and then remove all + components. + * javax/swing/plaf/basic/BasicComboPopup.java + (uninstallingUI): Don't nullify list model. + * javax/swing/plaf/metal/MetalComboBoxUI.java + (createArrowButton): Pass currentValuePane to the MetalComboBoxButton + constructor rather than a new (unconnected) CellRendererPane. + +2007-01-06 Roman Kennke <roman@kennke.org> + + PR 30337 + * javax/swing/plaf/basic/BasicComboBoxUI.java + (installUI): Install popup and list here. + Don't configure the arrow button and editor here. + (installComponents): Don't install popup and list here. (Moved + to installUI). Configure arrow button here and check for null. + (addEditor): Configure editor here. + (configureArrowButton): Directly fetch listeners from popup. + (paintCurrentValue): Removed unused local variables. + (layoutContainer): Removed unused local variables. + (PropertyChangeHandler.propertyChange): Don't invalidate minimumSize + on each property change. Avoid calling getPropertyName() repeatedly. + Clean up. Call addEditor() when editor changes. Configure and + unconfigure editor when editable changes. Use 'model' instead + of non-existing 'dataModel' property. + * javax/swing/plaf/basic/BasicComboPopup.java + (uninstallingUI): Remove property change listener and item listener + here. Uninstall list listeners. Set model to null to prevent leakage. + (configureList): Don't sync list selection there. + (uninstallComboBoxListeners): Moved to uninstallingUI. + (uninstallListeners): Moved to uninstallingUI. + * javax/swing/plaf/metal/MetalComboBoxUI.java + (createPopup): Call super. + (getMinimumSize): Removed unused statement. + +2007-01-06 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/text/Collator.java: + (getInstance(Locale)): Check providers. + * java/text/spi/CollatorProvider.java: + New file. + +2007-01-04 Roman Kennke <roman@kennke.org> + + PR 30122 + * java/awt/Component.java + (getFont): Don't synchronize on tree lock here. The method is + thread-safe 'enough' by fetching local variables in getFontImpl(). + +2007-01-04 Roman Kennke <roman@kennke.org> + + * java/awt/AWTEvent.java + (toString): Don't include the whole component in the output, + only its name. + * java/awt/Component.java + (isShowing): Create local copy of parent field for better + thread safety and efficiency. + * java/awt/EventDispatchThread.java + (EventDispatchThread): Make sure the event thread is not a daemon + thread in case it gets started by a daemon thread. + * java/awt/image/IndexColorModel.java + (createColorMap): New helper method for creating the color map. + (IndexColorModel): (all constructors) use createColorMap() helper + method. + +2007-01-04 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/font/autofit/GlyphHints.java + (alignStrongPoints): Don't special case the vertical dimension. + (computeInflectionPoints): Corrected computation of inflection + points. + * gnu/java/awt/font/autofit/Utils.java + (ANGLE_4PI): Removed. + (ANGLE_PI2): New constant for PI/2. + (ANGLE_PI4): New constant for PI/4. + (angleDiff): Fixed. + (atan): Fixed. + +2007-01-03 Cameron McCormack <cam@mcc.id.au> + + Fixes bug #29246 + * java/awt/Toolkit.java (getLockingKeyState): Use AWTUtilities + isValidKey method. Throw UnsupportedOperationException on a valid + key (for which no locking state can be given). + * gnu/java/awt/AWTUtilities.java (isValidKey): New method. + * gnu/java/awt/peer/gtk/GtkToolkit.java (getLockingKeyState): New + method. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c + (Java_gnu_java_awt_peer_gtk_GtkToolkit_getLockState): New method. + * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerated. + +2007-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/text/BreakIterator.java: + (getCharacterInstance(Locale)): Check providers. + (getLineInstance(Locale)): Likewise. + (getSentenceInstance(Locale)): Likewise. + (getWordInstance(Locale)): Likewise. + * java/text/spi/BreakIteratorProvider.java: + New file. + * java/text/spi/DateFormatSymbolsProvider.java: + Update header text. + * java/util/ServiceConfigurationError.java: + Add serialVersionUID. + +2007-01-03 Francis Kung <fkung@redhat.com> + + * gnu/java/awt/peer/gtk/CairoGraphics2D.java: + (copy): Copy and set antialias value. + +2007-01-03 Tania Bento <tbento@redhat.com> + + * java/awt/CardLayout.java: + (maximumLayoutSize): Return a new Dimension with a width of value + Integer.MAX_VALUE and a height of value Integer.MAX_VALUE if Component + has no components. + +2007-01-03 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/text/DateFormatSymbols.java: + (getZoneStrings(ResourceBundle)): Changed to... + (getZoneStrings(ResourceBundle,Locale)): Added + use of TimeZoneNamesProvider. + (getZoneStrings()): Return either mutated zone + strings or initial ones. + (getInstance(Locale)): Check DateFormatSymbolsProvider + instances. + * java/text/spi/DateFormatSymbolsProvider.java: + New file. + * java/text/spi/package.html: New file. + +2007-01-02 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * java/util/Currency.java: + (getSymbol(Locale)): Removed unneeded variable + and terminate loop early. + * java/util/Locale.java: + (getDisplayLanguage(Locale)): Fixed to use + LocaleNameProvider. + (getDisplayCountry(Locale)): Likewise. + (getDisplayVariant(Locale)): Likewise. + * java/util/spi/LocaleNameProvider.java: + New file. + * java/util/spi/TimeZoneNameProvider.java: + Likewise. + +2007-01-02 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * gnu/java/locale/LocaleHelper.java: + (getLocalizedString(Locale,String,String,boolean, + boolean)): Removed, no longer needed. + (getFallbackLocale(Locale)): Implemented. + * java/lang/String.java: + (isEmpty()): Implemented. + * java/util/Currency.java: + (getSymbol(Locale)): Reimplemented to use SPI. + * java/util/Locale.java: + (ROOT): Added. + * java/util/spi/CurrencyNameProvider.java: + New file. + * java/util/spi/LocaleServiceProvider.java: + Likewise. + * java/util/spi/package.html: Likewise. + +2007-01-02 Roman Kennke <roman@kennke.org> + + * gnu/java/awt/java2d/AbstractGraphics2D.java + (FONT): New constant field. This is the default font to use as long + as nothing else is set. + (paintContext): New field. Temporarily stores the paint context. + (scanlineConverters): New field. Stores the scanline converters + for each thread. + (shapeCache): Genericified. + (STANDARD_HINTS): New constant field. The standard rendering hints + as long as nothing else is set. + (STANDARD_STROKE): New constant field. The standard stroke as long + as nothing else is set. + (static_initializer): Initialize standard hints. + (AbstractGraphics2D): Use constant fields for hints and stroke. + (drawGlyphVector): Use simpler method to draw the outline. + (fillScanline): Use paintContext field. + (fillShape): Use new ScanlineConverter to fill shapes. + (fillShapeAntialias): Removed. This will be done in fillShape. + (fillShapeImpl): Removed. This is done now in the ScanlineConverter + class. + (getScanlineConverter): New method. Returns the scanline converter + for each thread. + (getSegments): Removed. This is now implemented in ScanlineConverter. + (getShapeCache): Use genericified shapeCache field. + (init): Use fixed default font. Don't fetch destination raster here. + * gnu/java/awt/java2d/ActiveEdges.java: New class. Stores a set + of active edges for scanline conversion. + * gnu/java/awt/java2d/PolyEdge.java + (poolNext): Implements linked list for edge pool. + (scanlineNext): Implements linked list for scanline edge lists. + (slope): Use fixed point decimal. + (slope,x0,y0,x1,y1,xIntersection): Use fixed point decimal. + (PolyEdge()): New constructor. + (PolyEdge): Use fixed point decimals. + (init): Use fixed point decimals. + (intersect): New method. Intersects this edge with a scanline. + * gnu/java/awt/java2d/Scanline.java: New class. A list of edges + for a scanline plus utilities. + * gnu/java/awt/java2d/ScanlineConverter.java: New class. Implements + an efficient scanline converter for rendering Shape objects. + +2007-01-02 Roman Kennke <roman@kennke.org> + + * gnu/java/math/Fixed.java: New class. Fixed point arithmetics + utilities. + +2007-01-01 Andrew John Hughes <gnu_andrew@member.fsf.org> + + * ChangeLog-2006: New file. + * gnu/classpath/ServiceFactory.java: + Add option of throwing a ServiceConfigurationError. + (lookupProviders(Class,ClassLoader,boolean)): Implemented. + * java/util/ServiceConfigurationError.java: New file. + * java/util/ServiceLoader.java: Likewise. + + + +Local Variables: +coding: iso-latin-1-unix +End: diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj index 7dc67d27884..010aad3ebb0 100644 --- a/libjava/classpath/ChangeLog.gcj +++ b/libjava/classpath/ChangeLog.gcj @@ -1,3 +1,14 @@ +2008-06-28 Matthias Klose <doko@ubuntu.com> + + * m4/ac_prog_javac.m4: Disable check for JAVAC, when + not configured with --enable-java-maintainer-mode. + * aclocal.m4, configure: Regenerate. + * native/jni/gstreamer-peer/Makefile.am: Do not link with + libclasspathnative. + * native/jni/gstreamer-peer/Makefile.in: Regenerate. + * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting + JCOMPILER, drop flags not understood by gcj. + 2008-06-24 Tom Tromey <tromey@redhat.com> PR libgcj/32198: @@ -6,6 +17,62 @@ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class: Rebuilt. +2008-04-18 Paolo Bonzini <bonzini@gnu.org> + + PR bootstrap/35457 + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2008-04-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * lib/gen-classlist.sh.in: Avoid grepping each omission, by + building an awk script with a hash for literal files, and + awk regular expressions for the rest. + * configure.ac: Call AC_PROG_AWK. + * configure: Regenerate. + + * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name. + * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar) + (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv) + (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies + for these scripts, to trick automake into hiding the respective + rules for the programs below the CREATE_WRAPPERS conditional. + * aclocal.m4: Regenerate. + * configure: Likewise. + * Makefile.in: Likewise. + * native/jni/Makefile.in: Likewise. + * native/jni/classpath/Makefile.in: Likewise. + * native/jni/gstreamer-peer/Makefile.in: Likewise. + * native/jni/midi-dssi/Makefile.in: Likewise. + * native/jni/gconf-peer/Makefile.in: Likewise. + * native/jni/java-io/Makefile.in: Likewise. + * native/jni/native-lib/Makefile.in: Likewise. + * native/jni/java-util/Makefile.in: Likewise. + * native/jni/java-lang/Makefile.in: Likewise. + * native/jni/midi-alsa/Makefile.in: Likewise. + * native/jni/java-nio/Makefile.in: Likewise. + * native/jni/java-net/Makefile.in: Likewise. + * native/jni/xmlj/Makefile.in: Likewise. + * native/jni/qt-peer/Makefile.in: Likewise. + * native/jni/gtk-peer/Makefile.in: Likewise. + * native/Makefile.in: Likewise. + * native/jawt/Makefile.in: Likewise. + * native/fdlibm/Makefile.in: Likewise. + * native/plugin/Makefile.in: Likewise. + * resource/Makefile.in: Likewise. + * scripts/Makefile.in: Likewise. + * tools/Makefile.in: Likewise. + * doc/Makefile.in: Likewise. + * doc/api/Makefile.in: Likewise. + * lib/Makefile.in: Likewise. + * external/Makefile.in: Likewise. + * external/jsr166/Makefile.in: Likewise. + * external/sax/Makefile.in: Likewise. + * external/w3c_dom/Makefile.in: Likewise. + * external/relaxngDatatype/Makefile.in: Likewise. + * include/Makefile.in: Likewise. + * examples/Makefile.in: Likewise. + 2008-04-17 Tom Tromey <tromey@redhat.com> PR libgcj/35950: @@ -13,6 +80,22 @@ Classpath. * tools/classes/gnu/classpath/tools/jar/Entry.class: Update. +2008-03-10 Jim Meyering <meyering@redhat.com> + + Don't leak upon failed realloc. + * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc, + free the original buffer before throwing the exception. + +2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * doc/cp-hacking.texinfo: Fix spacing after periods. + * doc/cp-tools.texinfo: Likewise. + * doc/cp-vmintegration.texinfo: Likewise. + + * doc/cp-hacking.texinfo: Fix some typos. + * doc/cp-tools.texinfo: Likewise. + * doc/cp-vmintegration.texinfo: Likewise. + 2008-03-02 Jakub Jelinek <jakub@redhat.com> * gnu/java/rmi/registry/RegistryImpl.java (version): Update @@ -42,6 +125,16 @@ * tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class: Added. +2008-01-27 Bernhard Fischer <rep.dot.nop@gmail.com> + + * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment. + * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in + exception message. + +2008-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + * doc/README.jaxp: Fix typos. + 2007-09-04 Matthias Klose <doko@ubuntu.com> * configure.ac: Append libgcj soversion to nativeexeclibdir. diff --git a/libjava/classpath/INSTALL b/libjava/classpath/INSTALL index 23e5f25d0e5..d3c5b40a940 100644 --- a/libjava/classpath/INSTALL +++ b/libjava/classpath/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. @@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it. Basic Installation ================== -These are generic installation instructions. +Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +26,9 @@ debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. @@ -67,6 +67,9 @@ The simplest way to compile this package is: all sorts of other programs in order to regenerate files that came with the distribution. + 6. Often, you can also type `make uninstall' to remove the installed + files again. + Compilers and Options ===================== @@ -78,7 +81,7 @@ details on some of the pertinent environment variables. by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. @@ -87,17 +90,15 @@ Compiling For Multiple Architectures You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. Installation Names ================== @@ -190,12 +191,12 @@ them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: +overridden in the site shell script). - /bin/bash ./configure CONFIG_SHELL=/bin/bash +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== diff --git a/libjava/classpath/Makefile.am b/libjava/classpath/Makefile.am index 4434026c331..fec369bad7f 100644 --- a/libjava/classpath/Makefile.am +++ b/libjava/classpath/Makefile.am @@ -1,6 +1,7 @@ ## Input file for automake to generate the Makefile.in used by configure # lib first, to compile .class files before native code, last examples +## GCJ LOCAL: unconditionally build tools subdur SUBDIRS = lib doc external include native resource scripts tools $(EXAMPLESDIR) DIST_SUBDIRS = lib doc external include native resource scripts tools examples @@ -15,7 +16,8 @@ EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \ ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \ autogen.sh -#DISTCHECK_CONFIGURE_FLAGS = --enable-gjdoc +DISTCHECK_CONFIGURE_FLAGS = --with-gjdoc --enable-gstreamer-peer \ + --enable-xmlj --enable-qt-peer dist-hook: -$(mkinstalldirs) $(distdir)/include diff --git a/libjava/classpath/Makefile.in b/libjava/classpath/Makefile.in index 05898b48a7e..73e52f364c2 100644 --- a/libjava/classpath/Makefile.in +++ b/libjava/classpath/Makefile.in @@ -67,6 +67,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -177,7 +179,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -189,19 +190,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -233,15 +223,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -289,10 +276,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -376,6 +361,9 @@ EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \ ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \ autogen.sh +DISTCHECK_CONFIGURE_FLAGS = --with-gjdoc --enable-gstreamer-peer \ + --enable-xmlj --enable-qt-peer + all: all-recursive .SUFFIXES: @@ -828,8 +816,6 @@ uninstall-info: uninstall-info-recursive native: lib -#DISTCHECK_CONFIGURE_FLAGS = --enable-gjdoc - dist-hook: -$(mkinstalldirs) $(distdir)/include -cp -f $(top_srcdir)/include/*.in $(distdir)/include diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS index c46be603589..0a9e4620e87 100644 --- a/libjava/classpath/NEWS +++ b/libjava/classpath/NEWS @@ -1,9 +1,61 @@ -New in release 0.96 +Bug fixes in release 0.97.2 (Jun 06, 2007) + +* Include headers in the release tarball. +* Allow the building of tools to be optional. +* Only check for a Java compiler when required. +* Allow VMOperatingSystemMXBeanImpl to compile on Solaris. +* Documentation typo fixes +* Fix memory leak in native/jni/classpath/jcl.c +* Web page updates (PR classpath/22883) +* Fixes to pass the JSR166 TCK +* Use awk to construct the classlist on building +* Fix deadlock in Logger (PR classpath/35974) +* Fix regression in java.lang.String (PR classpath/35482) +* Allow Classpath tools to handle @file options. +* Allow parseInt to handle a + prefix correctly. +* Remove use of 1.5 language constructs in the VM layer. + +Bug fixes in release 0.97.1 (Mar 11, 2007) + +* Include documentation for JSR166 (java.util.concurrent) +* Fix STaX API compatability. +* Include the tools properties file in the release tarball. + +New in release 0.97 (Feb 22, 2007) + +Build changes: + +* A copy of javah (to produce C header files from Java source code) +is now required to generate the files in include. +* The javac check has been changed so that it attempts to find ecj, +javac and gcj (in that order). You may override this by using +JAVAC=<preferred javac> + +Runtime interface changes: + +* Removed VMFloat.floatToIntBits amd VMDouble.doubleToLongBits. +* Added new getParameterAnnotations() methods in Constructor and Method. + +New in release 0.96.1 (Oct 16, 2007) + +* Small compile, configure and build fixes. + +New in release 0.96 (Oct 15, 2007) + +* New experimental GStreamer javax.sound peer (see README.gstreamer) +* The JNI interface has been updated to 1.6 +* Better support for the OpenJDK javac compiler +* Support for using javah via tools.zip and com.sun.tools.javah.Main +* Much improved Escher AWT peers +* Many bug fixes including improvements to AWT and Swing support Runtime interface changes: * Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default implementations are the same as previous behavior. +* Add new default implementations of VMMemoryMXBean.getHeapUsage() + and VMMemoryMXBean.getNonHeapUsage() via iteration over the memory + pools of the appropriate type. New in release 0.95 (Apr 23, 2007) diff --git a/libjava/classpath/THANKYOU b/libjava/classpath/THANKYOU index cb93e25b197..036bd0857b4 100644 --- a/libjava/classpath/THANKYOU +++ b/libjava/classpath/THANKYOU @@ -41,6 +41,7 @@ Patrik Reali (reali@inf.ethz.ch) Petter Reinholdtsen (pere@hungry.com) Julian Scheid (julian.scheid@sektor37.de) Martin Schröder (ms@artcom-gmbh.de) +Robert Schuster (robertschuster@fsfe.org) Gaute Smaaland (gs@sevenmountains.no) Michael Smith (msmith@spinnakernet.com) J. Russell Smyth (drfish@uswest.net) diff --git a/libjava/classpath/aclocal.m4 b/libjava/classpath/aclocal.m4 index be4d5cb7ca6..2639d47c37f 100644 --- a/libjava/classpath/aclocal.m4 +++ b/libjava/classpath/aclocal.m4 @@ -911,6 +911,8 @@ m4_include([../../libtool.m4]) m4_include([../../ltoptions.m4]) m4_include([../../ltsugar.m4]) m4_include([../../ltversion.m4]) +m4_include([m4/ac_prog_javac.m4]) +m4_include([m4/ac_prog_javac_works.m4]) m4_include([m4/acattribute.m4]) m4_include([m4/accross.m4]) m4_include([m4/acinclude.m4]) diff --git a/libjava/classpath/config.guess b/libjava/classpath/config.guess index 2b03b482280..c7607c74f1b 100755 --- a/libjava/classpath/config.guess +++ b/libjava/classpath/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2006-12-08' +timestamp='2008-04-14' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -56,8 +56,8 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -330,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; - i86pc:SunOS:5.*:*) + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) @@ -532,7 +532,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[45]) + *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -781,7 +781,7 @@ EOF i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; - i*:MINGW*:*) + *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) @@ -791,12 +791,18 @@ EOF i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - x86:Interix*:[3456]*) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; + *:Interix*:[3456]*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T | authenticamd) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; @@ -830,7 +836,14 @@ EOF echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-gnu + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -951,8 +964,8 @@ EOF x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; - xtensa:Linux:*:*) - echo xtensa-unknown-linux-gnu + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so @@ -972,9 +985,6 @@ EOF a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. @@ -1203,6 +1213,9 @@ EOF BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; @@ -1218,6 +1231,9 @@ EOF SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; @@ -1468,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and - http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub + http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be diff --git a/libjava/classpath/config.sub b/libjava/classpath/config.sub index b91a4bc4f29..63bfff03070 100755 --- a/libjava/classpath/config.sub +++ b/libjava/classpath/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. -timestamp='2006-12-08' +timestamp='2008-04-14' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -72,8 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -250,13 +250,14 @@ case $basic_machine in | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore \ - | mep \ + | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ - | mips64vr | mips64vrel \ + | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ @@ -332,13 +333,14 @@ case $basic_machine in | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mep-* \ | mips16-* \ | mips64-* | mips64el-* \ - | mips64vr-* | mips64vrel-* \ + | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ @@ -366,15 +368,19 @@ case $basic_machine in | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa-* \ + | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) @@ -445,6 +451,14 @@ case $basic_machine in basic_machine=ns32k-sequent os=-dynix ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; c90) basic_machine=c90-cray os=-unicos @@ -477,8 +491,8 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16c) - basic_machine=cr16c-unknown + cr16) + basic_machine=cr16-unknown os=-elf ;; crds | unos) @@ -516,6 +530,10 @@ case $basic_machine in basic_machine=m88k-motorola os=-sysv3 ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp @@ -670,6 +688,14 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; m88k-omron*) basic_machine=m88k-omron ;; @@ -685,6 +711,10 @@ case $basic_machine in basic_machine=i386-pc os=-mingw32 ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; miniframe) basic_machine=m68000-convergent ;; @@ -811,6 +841,14 @@ case $basic_machine in basic_machine=i860-intel os=-osf ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; pbd) basic_machine=sparc-tti ;; @@ -1019,6 +1057,10 @@ case $basic_machine in basic_machine=tic6x-unknown os=-coff ;; + tile*) + basic_machine=tile-unknown + os=-linux-gnu + ;; tx39) basic_machine=mipstx39-unknown ;; @@ -1224,7 +1266,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1354,6 +1396,9 @@ case $os in -zvmoe) os=-zvmoe ;; + -dicos*) + os=-dicos + ;; -none) ;; *) @@ -1419,6 +1464,9 @@ case $basic_machine in m68*-cisco) os=-aout ;; + mep-*) + os=-elf + ;; mips*-cisco) os=-elf ;; diff --git a/libjava/classpath/configure b/libjava/classpath/configure index 6a10d6cacdb..966fcbd54f9 100755 --- a/libjava/classpath/configure +++ b/libjava/classpath/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for GNU Classpath 0.96-pre. +# Generated by GNU Autoconf 2.59 for GNU Classpath 0.97.2. # # Report bugs to <classpath@gnu.org>. # @@ -418,8 +418,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='GNU Classpath' PACKAGE_TARNAME='classpath' -PACKAGE_VERSION='0.96-pre' -PACKAGE_STRING='GNU Classpath 0.96-pre' +PACKAGE_VERSION='0.97.2' +PACKAGE_STRING='GNU Classpath 0.97.2' PACKAGE_BUGREPORT='classpath@gnu.org' ac_unique_file="java/lang/System.java" @@ -461,7 +461,7 @@ ac_includes_default="\ # include <unistd.h> #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC ECJ JAVAC FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_JAVAC_TRUE FOUND_JAVAC_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVAC JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS' ac_subst_files='' ac_pwd=`pwd` @@ -943,7 +943,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures GNU Classpath 0.96-pre to adapt to many kinds of systems. +\`configure' configures GNU Classpath 0.97.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1014,7 +1014,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Classpath 0.96-pre:";; + short | recursive ) echo "Configuration of GNU Classpath 0.97.2:";; esac cat <<\_ACEOF @@ -1059,7 +1059,8 @@ Optional Features: default=no --disable-plugin compile gcjwebplugin (disabled by --disable-plugin) default=yes - --enable-regen-headers automatically regenerate JNI headers default=no + --enable-regen-headers automatically regenerate JNI headers default=yes if + headers don't exist --enable-tool-wrappers create tool wrapper binaries default=no --enable-static[=PKGS] build static libraries [default=no] @@ -1077,6 +1078,7 @@ Optional Features: will the VM explicitly invoke java.lang.System's static initialization methods default=no --enable-examples enable build of the examples default=yes + --enable-tools enable build of the tools default=yes --enable-portable-native-sync synchronize VM threads portably --enable-local-sockets enables local (AF_LOCAL) socket API default: no @@ -1100,12 +1102,6 @@ Optional Packages: --with-qt4dir=DIR Qt4 installation directory used for OS-X. For other systems use pkg-config. --with-javah specify path or name of a javah-like program - --with-gcj bytecode compilation with gcj - --with-jikes bytecode compilation with jikes - --with-kjc bytecode compilation with kjc - --with-ecj bytecode compilation with ecj - --with-javac bytecode compilation with javac - --with-classpath specify path to a classes.zip like file --with-vm-classes specify path to VM override source files --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java Compiler @@ -1113,8 +1109,7 @@ Optional Packages: --with-glibj define what to install (zip|flat|both|none|build) [default=zip] --with-gjdoc generate documentation using gjdoc (default is NO) - --with-jay Regenerate the parsers with jay must be given the - path to the jay executable + --with-jay=DIR|PATH Regenerate the parsers with jay --with-glibj-zip=ABS.PATH use prebuilt glibj.zip class library --with-escher=ABS.PATH specify path to escher dir or JAR for X peers @@ -1230,7 +1225,7 @@ fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -GNU Classpath configure 0.96-pre +GNU Classpath configure 0.97.2 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1244,7 +1239,7 @@ cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Classpath $as_me 0.96-pre, which was +It was created by GNU Classpath $as_me 0.97.2, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -2105,7 +2100,7 @@ fi # Define the identity of the package. PACKAGE='classpath' - VERSION='0.96-pre' + VERSION='0.97.2' cat >>confdefs.h <<_ACEOF @@ -4852,10 +4847,14 @@ if test "${enable_regen_headers+set}" = set; then case "${enableval}" in yes) REGENERATE_JNI_HEADERS=yes ;; no) REGENERATE_JNI_HEADERS=no ;; - *) REGENERATE_JNI_HEADERS=no ;; + *) REGENERATE_JNI_HEADERS=yes ;; esac else - REGENERATE_JNI_HEADERS=no + if test -e include/java_lang_VMSystem.h; then + REGENERATE_JNI_HEADERS=no ; + else + REGENERATE_JNI_HEADERS=yes ; + fi fi; @@ -5753,13 +5752,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:5756: $ac_compile\"" >&5) + (eval echo "\"\$as_me:5755: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:5759: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:5758: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:5762: output\"" >&5) + (eval echo "\"\$as_me:5761: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -6803,7 +6802,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 6806 "configure"' > conftest.$ac_ext + echo '#line 6805 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -7435,11 +7434,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7438: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7437: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7442: \$? = $ac_status" >&5 + echo "$as_me:7441: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7757,11 +7756,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7760: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7759: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7764: \$? = $ac_status" >&5 + echo "$as_me:7763: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7862,11 +7861,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7865: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7864: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7869: \$? = $ac_status" >&5 + echo "$as_me:7868: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -7917,11 +7916,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7920: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7919: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7924: \$? = $ac_status" >&5 + echo "$as_me:7923: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -10769,7 +10768,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10772 "configure" +#line 10771 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10869,7 +10868,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10872 "configure" +#line 10871 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -15312,11 +15311,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15315: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15314: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:15319: \$? = $ac_status" >&5 + echo "$as_me:15318: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -15411,11 +15410,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15414: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15413: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:15418: \$? = $ac_status" >&5 + echo "$as_me:15417: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15463,11 +15462,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15466: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15465: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:15470: \$? = $ac_status" >&5 + echo "$as_me:15469: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -17107,6 +17106,10 @@ fi + + + + for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \ asm/ioctls.h \ inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \ @@ -17117,7 +17120,9 @@ for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \ sys/mman.h \ magic.h \ sys/event.h sys/epoll.h \ - ifaddrs.h + ifaddrs.h \ + netinet/in_systm.h netinet/ip.h net/if.h \ + sys/loadavg.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then @@ -17535,6 +17540,7 @@ fi + for ac_func in ftruncate fsync select \ gethostname socket strerror fork pipe execve open close \ lseek fstat read readv write writev htonl memset htons connect \ @@ -17543,11 +17549,12 @@ for ac_func in ftruncate fsync select \ gethostbyname_r localtime_r \ strerror_r \ fcntl \ + statvfs \ mmap munmap mincore msync madvise getpagesize sysconf \ lstat readlink \ inet_aton inet_addr inet_pton \ getifaddrs kqueue kevent epoll_create \ - readdir_r getloadavg + getloadavg do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 @@ -19945,7 +19952,7 @@ ac_x_header_dirs=' /usr/openwin/share/include' if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. + # Guess where to find include files, by looking for Intrinsic.h. # First, try using that file with no special directory specified. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -19953,7 +19960,7 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Xlib.h> +#include <X11/Intrinsic.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 @@ -19980,7 +19987,7 @@ else sed 's/^/| /' conftest.$ac_ext >&5 for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then + if test -r "$ac_dir/X11/Intrinsic.h"; then ac_x_includes=$ac_dir break fi @@ -19994,7 +20001,7 @@ if test "$ac_x_libraries" = no; then # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" + LIBS="-lXt $LIBS" if test x$gcc_no_link = xyes; then { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} @@ -20006,11 +20013,11 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -#include <X11/Xlib.h> +#include <X11/Intrinsic.h> int main () { -XrmInitialize () +XtMalloc (0) ; return 0; } @@ -21323,7 +21330,7 @@ fi echo "$as_me: error: GTK+ peers requested but no X library available" >&2;} { (exit 1); exit 1; }; } fi - echo "$as_me:$LINENO: checking for XTestQueryExtension in -lXtst" >&5 + echo "$as_me:$LINENO: checking for XTestQueryExtension in -lXtst" >&5 echo $ECHO_N "checking for XTestQueryExtension in -lXtst... $ECHO_C" >&6 if test "${ac_cv_lib_Xtst_XTestQueryExtension+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 @@ -21393,15 +21400,18 @@ fi echo "$as_me:$LINENO: result: $ac_cv_lib_Xtst_XTestQueryExtension" >&5 echo "${ECHO_T}$ac_cv_lib_Xtst_XTestQueryExtension" >&6 if test $ac_cv_lib_Xtst_XTestQueryExtension = yes; then - XTEST_LIBS="$XTEST_LIBS -lX11 -lXtst" + +cat >>confdefs.h <<\_ACEOF +#define HAVE_XTEST 1 +_ACEOF +XTEST_LIBS="$XTEST_LIBS -X11 -lXtst" else - { { echo "$as_me:$LINENO: error: libXtst NOT found, required for GdkRobot" >&5 -echo "$as_me: error: libXtst NOT found, required for GdkRobot" >&2;} - { (exit 1); exit 1; }; } + true fi + succeeded=no if test -z "$PKG_CONFIG"; then @@ -22165,7 +22175,7 @@ echo "$as_me: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adj USE_GCONF_PREFS_PEER=$enable_default_preferences_peer if test "$USE_GCONF_PREFS_PEER" = ""; then - DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory + DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory fi fi @@ -22479,6 +22489,107 @@ echo "$as_me: error: Library requirements (gstreamer-plugins-base-$GST_MAJORMINO GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined' + + succeeded=no + + if test -z "$PKG_CONFIG"; then + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG + +if test -n "$PKG_CONFIG"; then + echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + PKG_CONFIG_MIN_VERSION=0.9.0 + if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then + echo "$as_me:$LINENO: checking for gdk-2.0 >= 2.8" >&5 +echo $ECHO_N "checking for gdk-2.0 >= 2.8... $ECHO_C" >&6 + + if $PKG_CONFIG --exists "gdk-2.0 >= 2.8" ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + succeeded=yes + + echo "$as_me:$LINENO: checking GDK_CFLAGS" >&5 +echo $ECHO_N "checking GDK_CFLAGS... $ECHO_C" >&6 + GDK_CFLAGS=`$PKG_CONFIG --cflags "gdk-2.0 >= 2.8"` + echo "$as_me:$LINENO: result: $GDK_CFLAGS" >&5 +echo "${ECHO_T}$GDK_CFLAGS" >&6 + + echo "$as_me:$LINENO: checking GDK_LIBS" >&5 +echo $ECHO_N "checking GDK_LIBS... $ECHO_C" >&6 + GDK_LIBS=`$PKG_CONFIG --libs "gdk-2.0 >= 2.8"` + echo "$as_me:$LINENO: result: $GDK_LIBS" >&5 +echo "${ECHO_T}$GDK_LIBS" >&6 + else + GDK_CFLAGS="" + GDK_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + GDK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gdk-2.0 >= 2.8"` + echo $GDK_PKG_ERRORS + fi + + + + else + echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + fi + fi + + if test $succeeded = yes; then + : + else + { { echo "$as_me:$LINENO: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 +echo "$as_me: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} + { (exit 1); exit 1; }; } + fi + + + + GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider fi @@ -23805,7 +23916,7 @@ fi fi else - for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah + for ac_prog in gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -23904,7 +24015,7 @@ fi fi else - for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah + for ac_prog in gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -24006,7 +24117,7 @@ fi fi else - for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah + for ac_prog in gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -24091,1623 +24202,6 @@ echo "$as_me: WARNING: no" >&2;} fi - user_specified_javac= - - - -# Check whether --with-gcj or --without-gcj was given. -if test "${with_gcj+set}" = set; then - withval="$with_gcj" - - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - - if test "x${withval}" != x; then - if test -f "${withval}"; then - GCJ="${withval}" - else - # Extract the first word of ""${withval}"", so it can be a program name with args. -set dummy "${withval}"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GCJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -GCJ=$ac_cv_path_GCJ - -if test -n "$GCJ"; then - echo "$as_me:$LINENO: result: $GCJ" >&5 -echo "${ECHO_T}$GCJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""gcj"", so it can be a program name with args. -set dummy "gcj"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GCJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -GCJ=$ac_cv_path_GCJ - -if test -n "$GCJ"; then - echo "$as_me:$LINENO: result: $GCJ" >&5 -echo "${ECHO_T}$GCJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test "x$GCJ" != x; then - echo "$as_me:$LINENO: checking gcj version 4.0" >&5 -echo $ECHO_N "checking gcj version 4.0... $ECHO_C" >&6 - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -#if __GNUC__ <= 3 - #error GCJ 4.0.0 or higher is required - #endif - -_ACEOF - $GCJ -E conftest.c > /dev/null - gcj_4_result=$? - if test "x$gcj_4_result" = "x0"; then - echo "$as_me:$LINENO: result: 4.0 or higher found" >&5 -echo "${ECHO_T}4.0 or higher found" >&6 - else - { echo "$as_me:$LINENO: WARNING: 4.0 or higher required" >&5 -echo "$as_me: WARNING: 4.0 or higher required" >&2;} - fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi - - else - if test "x${withval}" != xno; then - - if test "x" != x; then - if test -f ""; then - GCJ="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GCJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -GCJ=$ac_cv_path_GCJ - -if test -n "$GCJ"; then - echo "$as_me:$LINENO: result: $GCJ" >&5 -echo "${ECHO_T}$GCJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""gcj"", so it can be a program name with args. -set dummy "gcj"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GCJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -GCJ=$ac_cv_path_GCJ - -if test -n "$GCJ"; then - echo "$as_me:$LINENO: result: $GCJ" >&5 -echo "${ECHO_T}$GCJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test "x$GCJ" != x; then - echo "$as_me:$LINENO: checking gcj version 4.0" >&5 -echo $ECHO_N "checking gcj version 4.0... $ECHO_C" >&6 - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -#if __GNUC__ <= 3 - #error GCJ 4.0.0 or higher is required - #endif - -_ACEOF - $GCJ -E conftest.c > /dev/null - gcj_4_result=$? - if test "x$gcj_4_result" = "x0"; then - echo "$as_me:$LINENO: result: 4.0 or higher found" >&5 -echo "${ECHO_T}4.0 or higher found" >&6 - else - { echo "$as_me:$LINENO: WARNING: 4.0 or higher required" >&5 -echo "$as_me: WARNING: 4.0 or higher required" >&2;} - fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi - - fi - fi - user_specified_javac=gcj - -else - - - if test "x" != x; then - if test -f ""; then - GCJ="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GCJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -GCJ=$ac_cv_path_GCJ - -if test -n "$GCJ"; then - echo "$as_me:$LINENO: result: $GCJ" >&5 -echo "${ECHO_T}$GCJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""gcj"", so it can be a program name with args. -set dummy "gcj"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GCJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GCJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -GCJ=$ac_cv_path_GCJ - -if test -n "$GCJ"; then - echo "$as_me:$LINENO: result: $GCJ" >&5 -echo "${ECHO_T}$GCJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test "x$GCJ" != x; then - echo "$as_me:$LINENO: checking gcj version 4.0" >&5 -echo $ECHO_N "checking gcj version 4.0... $ECHO_C" >&6 - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - cat >conftest.$ac_ext <<_ACEOF -#if __GNUC__ <= 3 - #error GCJ 4.0.0 or higher is required - #endif - -_ACEOF - $GCJ -E conftest.c > /dev/null - gcj_4_result=$? - if test "x$gcj_4_result" = "x0"; then - echo "$as_me:$LINENO: result: 4.0 or higher found" >&5 -echo "${ECHO_T}4.0 or higher found" >&6 - else - { echo "$as_me:$LINENO: WARNING: 4.0 or higher required" >&5 -echo "$as_me: WARNING: 4.0 or higher required" >&2;} - fi - ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi - - -fi; - - - - -# Check whether --with-jikes or --without-jikes was given. -if test "${with_jikes+set}" = set; then - withval="$with_jikes" - - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - - if test "x${withval}" != x; then - if test -f "${withval}"; then - JIKES="${withval}" - else - # Extract the first word of ""${withval}"", so it can be a program name with args. -set dummy "${withval}"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JIKES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JIKES in - [\\/]* | ?:[\\/]*) - ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JIKES=$ac_cv_path_JIKES - -if test -n "$JIKES"; then - echo "$as_me:$LINENO: result: $JIKES" >&5 -echo "${ECHO_T}$JIKES" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""jikes"", so it can be a program name with args. -set dummy "jikes"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JIKES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JIKES in - [\\/]* | ?:[\\/]*) - ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JIKES=$ac_cv_path_JIKES - -if test -n "$JIKES"; then - echo "$as_me:$LINENO: result: $JIKES" >&5 -echo "${ECHO_T}$JIKES" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test "x$JIKES" != "x"; then - echo "$as_me:$LINENO: checking jikes version" >&5 -echo $ECHO_N "checking jikes version... $ECHO_C" >&6 - JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5` - JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1` - JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2` - if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then - if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then - JIKES="" - fi - fi - if test "x$JIKES" != "x"; then - echo "$as_me:$LINENO: result: $JIKES_VERSION" >&5 -echo "${ECHO_T}$JIKES_VERSION" >&6 - else - { echo "$as_me:$LINENO: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&5 -echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;} - fi - - JIKESENCODING= - if test -n "`$JIKES --help 2>&1 | grep encoding`"; then - JIKESENCODING='-encoding UTF-8' - fi - - - JIKESWARNINGS="+Pno-switchcheck" - if test "x$JIKES_VERSION_MAJOR" = x"1" ; then - if ! test "x$JIKES_VERSION_MINOR" = x"19"; then - JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow" - fi - fi - - - fi - - else - if test "x${withval}" != xno; then - - if test "x" != x; then - if test -f ""; then - JIKES="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JIKES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JIKES in - [\\/]* | ?:[\\/]*) - ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JIKES=$ac_cv_path_JIKES - -if test -n "$JIKES"; then - echo "$as_me:$LINENO: result: $JIKES" >&5 -echo "${ECHO_T}$JIKES" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""jikes"", so it can be a program name with args. -set dummy "jikes"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JIKES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JIKES in - [\\/]* | ?:[\\/]*) - ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JIKES=$ac_cv_path_JIKES - -if test -n "$JIKES"; then - echo "$as_me:$LINENO: result: $JIKES" >&5 -echo "${ECHO_T}$JIKES" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test "x$JIKES" != "x"; then - echo "$as_me:$LINENO: checking jikes version" >&5 -echo $ECHO_N "checking jikes version... $ECHO_C" >&6 - JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5` - JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1` - JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2` - if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then - if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then - JIKES="" - fi - fi - if test "x$JIKES" != "x"; then - echo "$as_me:$LINENO: result: $JIKES_VERSION" >&5 -echo "${ECHO_T}$JIKES_VERSION" >&6 - else - { echo "$as_me:$LINENO: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&5 -echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;} - fi - - JIKESENCODING= - if test -n "`$JIKES --help 2>&1 | grep encoding`"; then - JIKESENCODING='-encoding UTF-8' - fi - - - JIKESWARNINGS="+Pno-switchcheck" - if test "x$JIKES_VERSION_MAJOR" = x"1" ; then - if ! test "x$JIKES_VERSION_MINOR" = x"19"; then - JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow" - fi - fi - - - fi - - fi - fi - user_specified_javac=jikes - -else - - - if test "x" != x; then - if test -f ""; then - JIKES="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JIKES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JIKES in - [\\/]* | ?:[\\/]*) - ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JIKES=$ac_cv_path_JIKES - -if test -n "$JIKES"; then - echo "$as_me:$LINENO: result: $JIKES" >&5 -echo "${ECHO_T}$JIKES" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""jikes"", so it can be a program name with args. -set dummy "jikes"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JIKES+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JIKES in - [\\/]* | ?:[\\/]*) - ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JIKES=$ac_cv_path_JIKES - -if test -n "$JIKES"; then - echo "$as_me:$LINENO: result: $JIKES" >&5 -echo "${ECHO_T}$JIKES" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test "x$JIKES" != "x"; then - echo "$as_me:$LINENO: checking jikes version" >&5 -echo $ECHO_N "checking jikes version... $ECHO_C" >&6 - JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5` - JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1` - JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2` - if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then - if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then - JIKES="" - fi - fi - if test "x$JIKES" != "x"; then - echo "$as_me:$LINENO: result: $JIKES_VERSION" >&5 -echo "${ECHO_T}$JIKES_VERSION" >&6 - else - { echo "$as_me:$LINENO: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&5 -echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;} - fi - - JIKESENCODING= - if test -n "`$JIKES --help 2>&1 | grep encoding`"; then - JIKESENCODING='-encoding UTF-8' - fi - - - JIKESWARNINGS="+Pno-switchcheck" - if test "x$JIKES_VERSION_MAJOR" = x"1" ; then - if ! test "x$JIKES_VERSION_MINOR" = x"19"; then - JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow" - fi - fi - - - fi - - -fi; - - - - -# Check whether --with-kjc or --without-kjc was given. -if test "${with_kjc+set}" = set; then - withval="$with_kjc" - - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - - if test "x${withval}" != x; then - if test -f "${withval}"; then - KJC="${withval}" - else - # Extract the first word of ""${withval}"", so it can be a program name with args. -set dummy "${withval}"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_KJC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $KJC in - [\\/]* | ?:[\\/]*) - ac_cv_path_KJC="$KJC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -KJC=$ac_cv_path_KJC - -if test -n "$KJC"; then - echo "$as_me:$LINENO: result: $KJC" >&5 -echo "${ECHO_T}$KJC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""kJC"", so it can be a program name with args. -set dummy "kJC"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_KJC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $KJC in - [\\/]* | ?:[\\/]*) - ac_cv_path_KJC="$KJC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -KJC=$ac_cv_path_KJC - -if test -n "$KJC"; then - echo "$as_me:$LINENO: result: $KJC" >&5 -echo "${ECHO_T}$KJC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - else - if test "x${withval}" != xno; then - - if test "x" != x; then - if test -f ""; then - KJC="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_KJC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $KJC in - [\\/]* | ?:[\\/]*) - ac_cv_path_KJC="$KJC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -KJC=$ac_cv_path_KJC - -if test -n "$KJC"; then - echo "$as_me:$LINENO: result: $KJC" >&5 -echo "${ECHO_T}$KJC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""kJC"", so it can be a program name with args. -set dummy "kJC"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_KJC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $KJC in - [\\/]* | ?:[\\/]*) - ac_cv_path_KJC="$KJC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -KJC=$ac_cv_path_KJC - -if test -n "$KJC"; then - echo "$as_me:$LINENO: result: $KJC" >&5 -echo "${ECHO_T}$KJC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - fi - fi - user_specified_javac=kjc - -else - - - if test "x" != x; then - if test -f ""; then - KJC="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_KJC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $KJC in - [\\/]* | ?:[\\/]*) - ac_cv_path_KJC="$KJC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -KJC=$ac_cv_path_KJC - -if test -n "$KJC"; then - echo "$as_me:$LINENO: result: $KJC" >&5 -echo "${ECHO_T}$KJC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""kJC"", so it can be a program name with args. -set dummy "kJC"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_KJC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $KJC in - [\\/]* | ?:[\\/]*) - ac_cv_path_KJC="$KJC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -KJC=$ac_cv_path_KJC - -if test -n "$KJC"; then - echo "$as_me:$LINENO: result: $KJC" >&5 -echo "${ECHO_T}$KJC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - -fi; - - - - -# Check whether --with-ecj or --without-ecj was given. -if test "${with_ecj+set}" = set; then - withval="$with_ecj" - - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - - if test "x${withval}" != x; then - if test -f "${withval}"; then - ECJ="${withval}" - else - # Extract the first word of ""${withval}"", so it can be a program name with args. -set dummy "${withval}"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ECJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ECJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ECJ=$ac_cv_path_ECJ - -if test -n "$ECJ"; then - echo "$as_me:$LINENO: result: $ECJ" >&5 -echo "${ECHO_T}$ECJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""ecj"", so it can be a program name with args. -set dummy "ecj"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ECJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ECJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ECJ=$ac_cv_path_ECJ - -if test -n "$ECJ"; then - echo "$as_me:$LINENO: result: $ECJ" >&5 -echo "${ECHO_T}$ECJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - else - if test "x${withval}" != xno; then - - if test "x" != x; then - if test -f ""; then - ECJ="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ECJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ECJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ECJ=$ac_cv_path_ECJ - -if test -n "$ECJ"; then - echo "$as_me:$LINENO: result: $ECJ" >&5 -echo "${ECHO_T}$ECJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""ecj"", so it can be a program name with args. -set dummy "ecj"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ECJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ECJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ECJ=$ac_cv_path_ECJ - -if test -n "$ECJ"; then - echo "$as_me:$LINENO: result: $ECJ" >&5 -echo "${ECHO_T}$ECJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - fi - fi - user_specified_javac=ecj - -else - - - if test "x" != x; then - if test -f ""; then - ECJ="" - else - # Extract the first word of """", so it can be a program name with args. -set dummy ""; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ECJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ECJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ECJ=$ac_cv_path_ECJ - -if test -n "$ECJ"; then - echo "$as_me:$LINENO: result: $ECJ" >&5 -echo "${ECHO_T}$ECJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - else - # Extract the first word of ""ecj"", so it can be a program name with args. -set dummy "ecj"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_ECJ+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $ECJ in - [\\/]* | ?:[\\/]*) - ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -ECJ=$ac_cv_path_ECJ - -if test -n "$ECJ"; then - echo "$as_me:$LINENO: result: $ECJ" >&5 -echo "${ECHO_T}$ECJ" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - -fi; - - - - -# Check whether --with-javac or --without-javac was given. -if test "${with_javac+set}" = set; then - withval="$with_javac" - - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - - if test "x${withval}" != x; then - JAVAC="${withval}" - else - # Extract the first word of ""javac"", so it can be a program name with args. -set dummy "javac"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JAVAC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JAVAC in - [\\/]* | ?:[\\/]*) - ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JAVAC=$ac_cv_path_JAVAC - -if test -n "$JAVAC"; then - echo "$as_me:$LINENO: result: $JAVAC" >&5 -echo "${ECHO_T}$JAVAC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - else - if test "x${withval}" != xno; then - - if test "x" != x; then - JAVAC="" - else - # Extract the first word of ""javac"", so it can be a program name with args. -set dummy "javac"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JAVAC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JAVAC in - [\\/]* | ?:[\\/]*) - ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JAVAC=$ac_cv_path_JAVAC - -if test -n "$JAVAC"; then - echo "$as_me:$LINENO: result: $JAVAC" >&5 -echo "${ECHO_T}$JAVAC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - fi - fi - user_specified_javac=javac - -else - - - if test "x" != x; then - JAVAC="" - else - # Extract the first word of ""javac"", so it can be a program name with args. -set dummy "javac"; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_JAVAC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $JAVAC in - [\\/]* | ?:[\\/]*) - ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - ;; -esac -fi -JAVAC=$ac_cv_path_JAVAC - -if test -n "$JAVAC"; then - echo "$as_me:$LINENO: result: $JAVAC" >&5 -echo "${ECHO_T}$JAVAC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - - -fi; - - - - if test "x${user_specified_javac}" = x; then - - -if test "x${GCJ}" != x; then - FOUND_GCJ_TRUE= - FOUND_GCJ_FALSE='#' -else - FOUND_GCJ_TRUE='#' - FOUND_GCJ_FALSE= -fi - - - -if test "x${JIKES}" != x; then - FOUND_JIKES_TRUE= - FOUND_JIKES_FALSE='#' -else - FOUND_JIKES_TRUE='#' - FOUND_JIKES_FALSE= -fi - - - -if test "x${ECJ}" != x; then - FOUND_ECJ_TRUE= - FOUND_ECJ_FALSE='#' -else - FOUND_ECJ_TRUE='#' - FOUND_ECJ_FALSE= -fi - - - -if test "x${JAVAC}" != x; then - FOUND_JAVAC_TRUE= - FOUND_JAVAC_FALSE='#' -else - FOUND_JAVAC_TRUE='#' - FOUND_JAVAC_FALSE= -fi - - else - - -if test "x${user_specified_javac}" = xgcj; then - FOUND_GCJ_TRUE= - FOUND_GCJ_FALSE='#' -else - FOUND_GCJ_TRUE='#' - FOUND_GCJ_FALSE= -fi - - - -if test "x${user_specified_javac}" = xjikes; then - FOUND_JIKES_TRUE= - FOUND_JIKES_FALSE='#' -else - FOUND_JIKES_TRUE='#' - FOUND_JIKES_FALSE= -fi - - - -if test "x${user_specified_javac}" = xecj; then - FOUND_ECJ_TRUE= - FOUND_ECJ_FALSE='#' -else - FOUND_ECJ_TRUE='#' - FOUND_ECJ_FALSE= -fi - - - -if test "x${user_specified_javac}" = xjavac; then - FOUND_JAVAC_TRUE= - FOUND_JAVAC_FALSE='#' -else - FOUND_JAVAC_TRUE='#' - FOUND_JAVAC_FALSE= -fi - - fi - - -if test "x${user_specified_javac}" = xkjc; then - FOUND_KJC_TRUE= - FOUND_KJC_FALSE='#' -else - FOUND_KJC_TRUE='#' - FOUND_KJC_FALSE= -fi - - - ## GCJ LOCAL - if test "x${GCJ}" = x && test "x${JIKES}" = x && test "x${ECJ}" = x \ - && test "x${JAVAC}" = x && test "x${user_specified_javac}" != xkjc - then - { { echo "$as_me:$LINENO: error: cannot find javac, try --with-ecj" >&5 -echo "$as_me: error: cannot find javac, try --with-ecj" >&2;} - { (exit 1); exit 1; }; } - fi - ## END GCJ LOCAL - - - - -# Check whether --with-classpath or --without-classpath was given. -if test "${with_classpath+set}" = set; then - withval="$with_classpath" - - if test "x${withval}" = xyes; then - # set user classpath to CLASSPATH from env - echo "$as_me:$LINENO: checking for classlib" >&5 -echo $ECHO_N "checking for classlib... $ECHO_C" >&6 - USER_CLASSLIB=${CLASSPATH} - - echo "$as_me:$LINENO: result: ${USER_CLASSLIB}" >&5 -echo "${ECHO_T}${USER_CLASSLIB}" >&6 - conditional_with_classlib=true - elif test "x${withval}" != x && test "x${withval}" != xno; then - # set user classpath to specified value - echo "$as_me:$LINENO: checking for classlib" >&5 -echo $ECHO_N "checking for classlib... $ECHO_C" >&6 - USER_CLASSLIB=${withval} - - echo "$as_me:$LINENO: result: ${withval}" >&5 -echo "${ECHO_T}${withval}" >&6 - conditional_with_classlib=true - fi - -else - conditional_with_classlib=false -fi; - - -if test "x${conditional_with_classlib}" = xtrue; then - USER_SPECIFIED_CLASSLIB_TRUE= - USER_SPECIFIED_CLASSLIB_FALSE='#' -else - USER_SPECIFIED_CLASSLIB_TRUE='#' - USER_SPECIFIED_CLASSLIB_FALSE= -fi - - # Check whether --with-vm-classes or --without-vm-classes was given. if test "${with_vm_classes+set}" = set; then @@ -26023,8 +24517,10 @@ echo $ECHO_N "checking for user supplied fastjar... $ECHO_C" >&6 echo "${ECHO_T}${FASTJAR}" >&6 else - # Extract the first word of "fastjar", so it can be a program name with args. -set dummy fastjar; ac_word=$2 + for ac_prog in fastjar gjar jar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_FASTJAR+set}" = set; then @@ -26062,6 +24558,9 @@ else echo "${ECHO_T}no" >&6 fi + test -n "$FASTJAR" && break +done + fi; if test x"${FASTJAR}" != x; then ZIP="" @@ -26153,6 +24652,24 @@ fi; fi + # Check whether --enable-tools or --disable-tools was given. +if test "${enable_tools+set}" = set; then + enableval="$enable_tools" + case "${enableval}" in + yes) TOOLSDIR="tools" ;; + no) TOOLSDIR="" ;; + *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-tools" >&5 +echo "$as_me: error: bad value ${enableval} for --enable-tools" >&2;} + { (exit 1); exit 1; }; } ;; + esac +else + TOOLSDIR="tools" +fi; + if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then + TOOLSDIR="" + fi + + @@ -26260,8 +24777,33 @@ fi if test "${with_jay+set}" = set; then withval="$with_jay" - if test -d "${withval}"; then + echo "$as_me:$LINENO: checking whether to regenerate parsers with jay" >&5 +echo $ECHO_N "checking whether to regenerate parsers with jay... $ECHO_C" >&6 + JAY_FOUND=no + JAY_DIR_PATH= + if test "x${withval}" = xno; then + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + elif test "x${withval}" = xyes; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + JAY_DIR_PATH="/usr/share/jay" + elif test -d "${withval}"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 JAY_DIR_PATH="${withval}" + elif test -f "${withval}"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + JAY_DIR_PATH=`dirname "${withval}"` + JAY="${withval}" + else + { { echo "$as_me:$LINENO: error: jay not found at ${withval}" >&5 +echo "$as_me: error: jay not found at ${withval}" >&2;} + { (exit 1); exit 1; }; } + fi + + if test "x${JAY_DIR_PATH}" != x; then # Extract the first word of "jay", so it can be a program name with args. set dummy jay; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -26275,7 +24817,8 @@ else ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in ${JAY_DIR_PATH} +as_dummy="${JAY_DIR_PATH}:${PATH}" +for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. @@ -26303,17 +24846,12 @@ echo "${ECHO_T}no" >&6 fi if test "x${JAY}" = xno; then - { { echo "$as_me:$LINENO: error: \"jay executable not found\"" >&5 -echo "$as_me: error: \"jay executable not found\"" >&2;} + { { echo "$as_me:$LINENO: error: jay executable not found" >&5 +echo "$as_me: error: jay executable not found" >&2;} { (exit 1); exit 1; }; }; fi - else - JAY_DIR_PATH=`dirname "${withval}"` - JAY="${withval}" - - fi - JAY_SKELETON="${JAY_DIR_PATH}/skeleton" - as_ac_File=`echo "ac_cv_file_${JAY_SKELETON}" | $as_tr_sh` + JAY_SKELETON="${JAY_DIR_PATH}/skeleton" + as_ac_File=`echo "ac_cv_file_${JAY_SKELETON}" | $as_tr_sh` echo "$as_me:$LINENO: checking for ${JAY_SKELETON}" >&5 echo $ECHO_N "checking for ${JAY_SKELETON}... $ECHO_C" >&6 if eval "test \"\${$as_ac_File+set}\" = set"; then @@ -26334,15 +24872,20 @@ echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6 if test `eval echo '${'$as_ac_File'}'` = yes; then : else - { { echo "$as_me:$LINENO: error: \"Expected skeleton file in \`dirname ${withval}\`\"" >&5 -echo "$as_me: error: \"Expected skeleton file in \`dirname ${withval}\`\"" >&2;} + { { echo "$as_me:$LINENO: error: Expected skeleton file in ${JAY_DIR_PATH}" >&5 +echo "$as_me: error: Expected skeleton file in ${JAY_DIR_PATH}" >&2;} { (exit 1); exit 1; }; } fi - JAY_FOUND=yes + JAY_FOUND=yes + fi else + echo "$as_me:$LINENO: checking whether to regenerate parsers with jay" >&5 +echo $ECHO_N "checking whether to regenerate parsers with jay... $ECHO_C" >&6 + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 JAY_FOUND=no fi; @@ -29306,6 +27849,173 @@ fi +# Check for javac if we need to build either the class library, +# the examples or the tools +if test "x${use_glibj_zip}" = xfalse || \ + test "x${EXAMPLESDIR}" != x || \ + test "x${TOOLSDIR}" != x && \ + test "x${build_class_files}" != xno; then + +if test "x$JAVAPREFIX" = x; then + test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_JAVAC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$JAVAC"; then + ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_JAVAC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +JAVAC=$ac_cv_prog_JAVAC +if test -n "$JAVAC"; then + echo "$as_me:$LINENO: result: $JAVAC" >&5 +echo "${ECHO_T}$JAVAC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$JAVAC" && break +done + +else + test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_prog_JAVAC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$JAVAC"; then + ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_JAVAC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + +fi +fi +JAVAC=$ac_cv_prog_JAVAC +if test -n "$JAVAC"; then + echo "$as_me:$LINENO: result: $JAVAC" >&5 +echo "${ECHO_T}$JAVAC" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + + test -n "$JAVAC" && break +done +test -n "$JAVAC" || JAVAC="$JAVAPREFIX" + +fi +test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5 +echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +if test "$enable_java_maintainer_mode" = yes; then + +echo "$as_me:$LINENO: checking if $JAVAC works" >&5 +echo $ECHO_N "checking if $JAVAC works... $ECHO_C" >&6 +if test "${ac_cv_prog_javac_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +JAVA_TEST=Object.java +CLASS_TEST=Object.class +cat << \EOF > $JAVA_TEST +/* #line 27957 "configure" */ +package java.lang; + +public class Object +{ + static <T> void doStuff() + { + } +} +EOF +if { ac_try='$JAVAC $JAVA_TEST' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } >/dev/null 2>&1; then + ac_cv_prog_javac_works=yes +else + { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5 +echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;} + { (exit 1); exit 1; }; } + echo "configure: failed program was:" >&5 + cat $JAVA_TEST >&5 +fi +rm -f $JAVA_TEST $CLASS_TEST + +fi +echo "$as_me:$LINENO: result: $ac_cv_prog_javac_works" >&5 +echo "${ECHO_T}$ac_cv_prog_javac_works" >&6 + +fi + + + JAVA_TEST=Test.java + CLASS_TEST=Test.class + cat << \EOF > $JAVA_TEST + /* #line 27993 "configure" */ + public class Test + { + public static void main(String args) + { + System.out.println("Hello World"); + } + } +EOF + echo "$as_me:$LINENO: checking whether javac supports -J" >&5 +echo $ECHO_N "checking whether javac supports -J... $ECHO_C" >&6 + $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST + javac_result=$? + if test "x$javac_result" = "x0"; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + JAVAC_MEM_OPT="-J-Xmx768M" + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + rm -f $JAVA_TEST $CLASS_TEST + + +fi + # Check whether --with-escher or --without-escher was given. if test "${with_escher+set}" = set; then @@ -29630,7 +28340,7 @@ fi - ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d" + ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d" if test "x${COMPILE_WRAPPERS}" = xno @@ -29898,76 +28608,6 @@ echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${FOUND_GCJ_TRUE}" && test -z "${FOUND_GCJ_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_GCJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_GCJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_JIKES_TRUE}" && test -z "${FOUND_JIKES_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_JIKES\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_JIKES\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_ECJ_TRUE}" && test -z "${FOUND_ECJ_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_ECJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_ECJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_JAVAC_TRUE}" && test -z "${FOUND_JAVAC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_JAVAC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_JAVAC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_GCJ_TRUE}" && test -z "${FOUND_GCJ_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_GCJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_GCJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_JIKES_TRUE}" && test -z "${FOUND_JIKES_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_JIKES\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_JIKES\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_ECJ_TRUE}" && test -z "${FOUND_ECJ_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_ECJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_ECJ\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_JAVAC_TRUE}" && test -z "${FOUND_JAVAC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_JAVAC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_JAVAC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${FOUND_KJC_TRUE}" && test -z "${FOUND_KJC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"FOUND_KJC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"FOUND_KJC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${USER_SPECIFIED_CLASSLIB_TRUE}" && test -z "${USER_SPECIFIED_CLASSLIB_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"USER_SPECIFIED_CLASSLIB\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"USER_SPECIFIED_CLASSLIB\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -30302,7 +28942,7 @@ _ASBOX } >&5 cat >&5 <<_CSEOF -This file was extended by GNU Classpath $as_me 0.96-pre, which was +This file was extended by GNU Classpath $as_me 0.97.2, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -30368,7 +29008,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -GNU Classpath config.status 0.96-pre +GNU Classpath config.status 0.97.2 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" @@ -30880,6 +29520,7 @@ do "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "lib/gen-classlist.sh" ) CONFIG_FILES="$CONFIG_FILES lib/gen-classlist.sh" ;; "lib/copy-vmresources.sh" ) CONFIG_FILES="$CONFIG_FILES lib/copy-vmresources.sh" ;; + "scripts/check_jni_methods.sh" ) CONFIG_FILES="$CONFIG_FILES scripts/check_jni_methods.sh" ;; "tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "examples/Makefile.jawt" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile.jawt" ;; @@ -31165,26 +29806,6 @@ s,@GLIB_LIBS@,$GLIB_LIBS,;t t s,@PLUGIN_DIR@,$PLUGIN_DIR,;t t s,@USER_JAVAH@,$USER_JAVAH,;t t s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t -s,@GCJ@,$GCJ,;t t -s,@JIKES@,$JIKES,;t t -s,@JIKESENCODING@,$JIKESENCODING,;t t -s,@JIKESWARNINGS@,$JIKESWARNINGS,;t t -s,@KJC@,$KJC,;t t -s,@ECJ@,$ECJ,;t t -s,@JAVAC@,$JAVAC,;t t -s,@FOUND_GCJ_TRUE@,$FOUND_GCJ_TRUE,;t t -s,@FOUND_GCJ_FALSE@,$FOUND_GCJ_FALSE,;t t -s,@FOUND_JIKES_TRUE@,$FOUND_JIKES_TRUE,;t t -s,@FOUND_JIKES_FALSE@,$FOUND_JIKES_FALSE,;t t -s,@FOUND_ECJ_TRUE@,$FOUND_ECJ_TRUE,;t t -s,@FOUND_ECJ_FALSE@,$FOUND_ECJ_FALSE,;t t -s,@FOUND_JAVAC_TRUE@,$FOUND_JAVAC_TRUE,;t t -s,@FOUND_JAVAC_FALSE@,$FOUND_JAVAC_FALSE,;t t -s,@FOUND_KJC_TRUE@,$FOUND_KJC_TRUE,;t t -s,@FOUND_KJC_FALSE@,$FOUND_KJC_FALSE,;t t -s,@USER_CLASSLIB@,$USER_CLASSLIB,;t t -s,@USER_SPECIFIED_CLASSLIB_TRUE@,$USER_SPECIFIED_CLASSLIB_TRUE,;t t -s,@USER_SPECIFIED_CLASSLIB_FALSE@,$USER_SPECIFIED_CLASSLIB_FALSE,;t t s,@vm_classes@,$vm_classes,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t @@ -31207,6 +29828,7 @@ s,@INSTALL_CLASS_FILES_FALSE@,$INSTALL_CLASS_FILES_FALSE,;t t s,@BUILD_CLASS_FILES_TRUE@,$BUILD_CLASS_FILES_TRUE,;t t s,@BUILD_CLASS_FILES_FALSE@,$BUILD_CLASS_FILES_FALSE,;t t s,@EXAMPLESDIR@,$EXAMPLESDIR,;t t +s,@TOOLSDIR@,$TOOLSDIR,;t t s,@GJDOC@,$GJDOC,;t t s,@CREATE_API_DOCS_TRUE@,$CREATE_API_DOCS_TRUE,;t t s,@CREATE_API_DOCS_FALSE@,$CREATE_API_DOCS_FALSE,;t t @@ -31217,6 +29839,8 @@ s,@REGEN_PARSERS_FALSE@,$REGEN_PARSERS_FALSE,;t t s,@USE_PREBUILT_GLIBJ_ZIP_TRUE@,$USE_PREBUILT_GLIBJ_ZIP_TRUE,;t t s,@USE_PREBUILT_GLIBJ_ZIP_FALSE@,$USE_PREBUILT_GLIBJ_ZIP_FALSE,;t t s,@PATH_TO_GLIBJ_ZIP@,$PATH_TO_GLIBJ_ZIP,;t t +s,@JAVAC@,$JAVAC,;t t +s,@JAVAC_MEM_OPT@,$JAVAC_MEM_OPT,;t t s,@USE_ESCHER_TRUE@,$USE_ESCHER_TRUE,;t t s,@USE_ESCHER_FALSE@,$USE_ESCHER_FALSE,;t t s,@PATH_TO_ESCHER@,$PATH_TO_ESCHER,;t t diff --git a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac index 96db95d9749..a14d2c128c3 100644 --- a/libjava/classpath/configure.ac +++ b/libjava/classpath/configure.ac @@ -6,7 +6,7 @@ dnl ----------------------------------------------------------- dnl define([AC_CACHE_LOAD], )dnl dnl define([AC_CACHE_SAVE], )dnl -AC_INIT([GNU Classpath],[0.96-pre],[classpath@gnu.org],[classpath]) +AC_INIT([GNU Classpath],[0.97.2],[classpath@gnu.org],[classpath]) AC_CONFIG_SRCDIR(java/lang/System.java) dnl GCJ LOCAL @@ -338,13 +338,17 @@ dnl ----------------------------------------------------------- dnl Regenerate headers at build time (disabled by default) dnl ----------------------------------------------------------- AC_ARG_ENABLE([regen-headers], - [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=no])], + [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=yes if headers don't exist])], [case "${enableval}" in yes) REGENERATE_JNI_HEADERS=yes ;; no) REGENERATE_JNI_HEADERS=no ;; - *) REGENERATE_JNI_HEADERS=no ;; + *) REGENERATE_JNI_HEADERS=yes ;; esac], - [REGENERATE_JNI_HEADERS=no]) + [if test -e include/java_lang_VMSystem.h; then + REGENERATE_JNI_HEADERS=no ; + else + REGENERATE_JNI_HEADERS=yes ; + fi]) AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes) dnl ----------------------------------------------------------- @@ -416,6 +420,8 @@ if test "x${COMPILE_JNI}" = xyes; then dnl On that system, sys/ioctl.h will not include sys/filio.h unless dnl BSD_COMP is defined; just including sys/filio.h is simpler. dnl Check for crt_externs.h on Darwin. + dnl Check for netinet/in_systm.h, netinet/ip.h and net/if.h for Windows CE. + dnl Check for sys/loadavg.h for getloadavg() on Solaris 9. AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \ asm/ioctls.h \ inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \ @@ -426,7 +432,9 @@ if test "x${COMPILE_JNI}" = xyes; then sys/mman.h \ magic.h \ sys/event.h sys/epoll.h \ - ifaddrs.h]) + ifaddrs.h \ + netinet/in_systm.h netinet/ip.h net/if.h \ + sys/loadavg.h]) AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t])) AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t])) @@ -442,11 +450,12 @@ if test "x${COMPILE_JNI}" = xyes; then gethostbyname_r localtime_r \ strerror_r \ fcntl \ + statvfs \ mmap munmap mincore msync madvise getpagesize sysconf \ lstat readlink \ inet_aton inet_addr inet_pton \ getifaddrs kqueue kevent epoll_create \ - readdir_r getloadavg]) + getloadavg]) LIBMAGIC= AC_CHECK_LIB(magic, magic_open, LIBMAGIC=-lmagic) @@ -539,11 +548,13 @@ if test "x${COMPILE_JNI}" = xyes; then if test "$no_x" = yes; then AC_MSG_ERROR([GTK+ peers requested but no X library available]) fi - dnl We explicitly want the XTest Extension for Robot support. + dnl Check if we can link against the XTest library and set + dnl HAVE_XTEST accordingly. AC_CHECK_LIB([Xtst], [XTestQueryExtension], - [XTEST_LIBS="$XTEST_LIBS -lX11 -lXtst"], - [AC_MSG_ERROR([libXtst NOT found, required for GdkRobot])], - [${X_LIBS}]) + [AC_DEFINE(HAVE_XTEST, 1, [Define to 1 if you have libXtst.])[XTEST_LIBS="$XTEST_LIBS -X11 -lXtst"]], + [true], + [${X_LIBS}]) + PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0) PKG_CHECK_MODULES(FREETYPE2, freetype2) @@ -586,7 +597,7 @@ if test "x${COMPILE_JNI}" = xyes; then dnl compiled in USE_GCONF_PREFS_PEER=$enable_default_preferences_peer if test "$USE_GCONF_PREFS_PEER" = ""; then - DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory + DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory fi fi @@ -614,6 +625,10 @@ if test "x${COMPILE_JNI}" = xyes; then GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined' AC_SUBST(GST_PLUGIN_LDFLAGS) + + PKG_CHECK_MODULES(GDK, gdk-2.0 >= 2.8) + AC_SUBST(GDK_CFLAGS) + AC_SUBST(GDK_LIBS) dnl set the gstreamer based file reader, writer and mixer GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader @@ -773,8 +788,6 @@ if test "x${COMPILE_JNI}" = xyes; then AC_CONFIG_LINKS([$ac_config_links_1]) fi -CLASSPATH_FIND_JAVAC - CLASSPATH_WITH_CLASSLIB dnl ----------------------------------------------------------- @@ -935,6 +948,16 @@ esac; AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue) AC_SUBST(PATH_TO_GLIBJ_ZIP) +# Check for javac if we need to build either the class library, +# the examples or the tools +if test "x${use_glibj_zip}" = xfalse || \ + test "x${EXAMPLESDIR}" != x || \ + test "x${TOOLSDIR}" != x && \ + test "x${build_class_files}" != xno; then + AC_PROG_JAVAC + CLASSPATH_JAVAC_MEM_CHECK +fi + dnl ----------------------------------------------------------- dnl Build with Escher based X peers. dnl ----------------------------------------------------------- @@ -1030,6 +1053,7 @@ scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh +scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt diff --git a/libjava/classpath/depcomp b/libjava/classpath/depcomp index 04701da536f..e5f9736c723 100755 --- a/libjava/classpath/depcomp +++ b/libjava/classpath/depcomp @@ -1,9 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2005-07-09.11 +scriptversion=2007-03-29.01 -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software +# Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -91,7 +92,20 @@ gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" stat=$? if test $stat -eq 0; then : else @@ -201,34 +215,39 @@ aix) # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u "$@" -M fi stat=$? - if test -f "$tmpdepfile"; then : - else - stripped=`echo "$stripped" | sed 's,^.*/,,'` - tmpdepfile="$stripped.u" - fi - if test $stat -eq 0; then : else - rm -f "$tmpdepfile" + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done if test -f "$tmpdepfile"; then - outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -276,6 +295,46 @@ icc) rm -f "$tmpdepfile" ;; +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. @@ -288,13 +347,13 @@ tru64) if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a - # static library. This mecanism is used in libtool 1.4 series to + # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in in $dir.libs/$base.o.d and + # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is diff --git a/libjava/classpath/doc/Makefile.in b/libjava/classpath/doc/Makefile.in index f29a519ff0d..7c1b244c590 100644 --- a/libjava/classpath/doc/Makefile.in +++ b/libjava/classpath/doc/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -154,7 +156,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -166,19 +167,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -210,15 +200,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -266,10 +253,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/doc/api/Makefile.am b/libjava/classpath/doc/api/Makefile.am index b63b31f3444..76b35c5f850 100644 --- a/libjava/classpath/doc/api/Makefile.am +++ b/libjava/classpath/doc/api/Makefile.am @@ -2,7 +2,7 @@ if CREATE_API_DOCS noinst_DATA = html endif -sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax +sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/jsr166 classpathbox = "<span class='logo'><a href='http://www.gnu.org/software/classpath' target='_top'>GNU Classpath</a> ($(VERSION))" diff --git a/libjava/classpath/doc/api/Makefile.in b/libjava/classpath/doc/api/Makefile.in index 5166cbed8ce..0412d330f44 100644 --- a/libjava/classpath/doc/api/Makefile.in +++ b/libjava/classpath/doc/api/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -131,7 +133,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -143,19 +144,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -187,15 +177,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -243,10 +230,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -319,7 +304,7 @@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ @CREATE_API_DOCS_TRUE@noinst_DATA = html -sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax +sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/jsr166 classpathbox = "<span class='logo'><a href='http://www.gnu.org/software/classpath' target='_top'>GNU Classpath</a> ($(VERSION))" all: all-am diff --git a/libjava/classpath/doc/cp-hacking.texinfo b/libjava/classpath/doc/cp-hacking.texinfo index ee2b8f53cab..829b0e40e81 100644 --- a/libjava/classpath/doc/cp-hacking.texinfo +++ b/libjava/classpath/doc/cp-hacking.texinfo @@ -121,12 +121,12 @@ Localization @comment node-name, next, previous, up @chapter Introduction -The GNU Classpath Project is a dedicated to providing a 100% free, +The GNU Classpath Project is dedicated to providing a 100% free, clean room implementation of the standard core class libraries for compilers and runtime environments for the java programming language. It offers free software developers an alternative core library implementation upon which larger java-like programming environments -can be build. The GNU Classpath Project was started in the Spring of +can be built. The GNU Classpath Project was started in the Spring of 1998 as an official Free Software Foundation project. Most of the volunteers working on GNU Classpath do so in their spare time, but a couple of projects based on GNU Classpath have paid programmers to @@ -225,7 +225,7 @@ java.net package, there are non-public classes for implementing sockets. Without those classes, the public socket interface is useless. But do not feel obligated to completely implement all of the functionality at once. For example, in the java.net package, there are different types -of protocol handlers for different types of URL's. Not all of these +of protocol handlers for different types of URLs. Not all of these need to be written at once. @item @@ -278,8 +278,8 @@ While free operating systems are the top priority, the other priorities can shift depending on whether or not there is a volunteer to port Classpath to those platforms and to test releases. -Eventually we hope the Classpath will support all JVM's that provide -JNI or CNI support. However, the top priority is free JVM's. A small +Eventually we hope the Classpath will support all JVMs that provide +JNI or CNI support. However, the top priority is free JVMs. A small list of Compiler/VM environments that are currently actively incorporating GNU Classpath is below. A more complete overview of projects based on GNU classpath can be found online at @@ -292,38 +292,40 @@ Classpath stories page}. @item @uref{http://jamvm.sourceforge.net/,jamvm} @item -@uref{http://kissme.sourceforge.net/,Kissme} +@uref{http://www.cacaojvm.org/,cacao} @item -@uref{http://www.ibm.com/developerworks/oss/jikesrvm/,Jikes RVM} -@item -@uref{http://www.sablevm.org/,SableVM} +@uref{http://jikesrvm.org,Jikes RVM} @item @uref{http://www.kaffe.org/,Kaffe} +@item +@uref{http://www.ikvm.net/,IKVM} @end enumerate As with OS platform support, this priority list could change if a volunteer comes forward to port, maintain, and test releases for a particular JVM@. Since gcj is part of the GNU Compiler Collective it is one of the most important targets. But since it doesn't currently -work out of the box with GNU Classpath it is currently not the easiest -target. When hacking on GNU Classpath the easiest is to use -compilers and runtime environments that that work out of the box with -it, such as the jikes compiler and the runtime environments jamvm and -kissme. But you can also work directly with targets like gcj and -kaffe that have their own copy of GNU Classpath currently. In that -case changes have to be merged back into GNU Classpath proper though, -which is sometimes more work. SableVM is starting to migrate from an -integrated GNU Classpath version to being usable with GNU Classpath -out of the box. - - -The initial target version for Classpath is the 1.1 spec. Higher -versions can be implemented (and have been implemented, including lots -of 1.4 functionality) if desired, but please do not create classes -that depend on features in those packages unless GNU Classpath already +work out of the box with GNU Classpath it is not the easiest +target. When hacking on GNU Classpath the easiest solution is to use +compilers and runtime environments that work out of the box with +it, such as the Eclipse compiler, ecj, and the runtime environments jamvm and +cacao. Both Jikes RVM and Kaffe use an included version of GNU Classpath by +default, but Kaffe can now use a pre-installed version and Jikes RVM supports +using a CVS snapshot as well as the latest release. Working directly with +targets such as Jikes RVM, gcj and IKVM is possible but can be a little more +difficult as changes have to be merged back into GNU Classpath proper, +which requires additional work. Due to a recent switch to the use of 1.5 language +features within GNU Classpath, a compiler compatible with these features is required. +At present, this includes the Eclipse compiler, ecj, and the OpenJDK compiler. + +GNU Classpath currently implements the majority of the 1.4 and 1.5 APIs +(binary compatibility is above 95% for both, but does not take into account +internal implementations of features such as graphic and sound support). There +is support for some 1.6 APIs but this is still nascent. Please do not create classes +that depend on features in other packages unless GNU Classpath already contains those features. GNU Classpath has been free of any proprietary dependencies for a long time now and we like to keep it -that way. But finishing, polishing up, documenting, testing and +that way. Finishing, polishing up, documenting, testing and debugging current functionality is of higher priority then adding new functionality. @@ -332,11 +334,11 @@ functionality. @chapter Needed Tools and Libraries If you want to hack on Classpath, you should at least download and -install the following tools. And try to familiarize yourself with -them. Although in most cases having these tools installed will be all +install the following tools and try to familiarize yourself with +them. In most cases having these tools installed will be all you really need to know about them. Also note that when working on -(snapshot) releases only GCC 3.3+ (plus a free VM from the list above -and the libraries listed below) is needed. The other tools are only +(snapshot) releases only a 1.5 compiler (plus a free VM from the list above +and the libraries listed below) is required. The other tools are only needed when working directly on the CVS version. @itemize @bullet @@ -446,8 +448,8 @@ When working from CVS you can run those tools by executing For building the Java bytecode (.class files), you can select which compiler should be employed using @option{--with-javac} or -@option{--with-ecj} as argument to @command{configure}; -the present default is @command{ecj}. +@option{--with-ecj} as an argument to @command{configure}; +the present default is @command{ecj} if found. Instead of @command{ecj}, you can also use @command{javac}, which is available at @@ -563,12 +565,25 @@ configuration settings in GNOME. @end table +The GStreamer backend for javax.sound.sampled (The Java Sound API, not +including the MIDI portion) needs the following library headers: + +@table @b +@item GStreamer +@uref{http://gstreamer.freedesktop.org/,GStreamer} version 0.10.10 +(or higher). You will also need at least gstreamer-base and +gstreamer-plugins-base. More plugins can be used to allow streaming of +different sound types but are not a compile time requirement. See +README.gstreamer in the source distribution for more informations. + +@end table + For building @command{gcjwebplugin} you'll need the Mozilla plugin support headers and libraries, which are available at @uref{http://www.mozilla.org,www.mozilla.org}. For enabling the com.sun.tools.javac support in tools.zip you -will a need jar file containing the Eclipse Java Compiler. +will need a jar file containing the Eclipse Java Compiler. Otherwise com.sun.tools.javac will not be included in @file{tools.zip}. For building the xmlj JAXP implementation (disabled by default, @@ -591,7 +606,7 @@ that are not part of GNU Classpath proper, but that have been included to provide certain needed functionality. All these external libraries should be clearly marked as such. In general we try to use as much as possible the clean upstream versions of these sources. That way -merging in new versions will be easiest. You should always try to get +merging in new versions will be easier. You should always try to get bug fixes to these files accepted upstream first. Currently we include the following 'external' libraries. Most of these sources are included in the @file{external} directory. That directory also @@ -599,10 +614,24 @@ contains a @file{README} file explaining how to import newer versions. @table @b -@item GNU jaxp -Can be found in @file{external/jaxp}. Provides javax.xml, org.w3c and -org.xml packages. Upstream is -@uref{http://www.gnu.org/software/classpathx/,GNU ClasspathX}. +@item JSR166 concurrency support +Can be found in @file{external/jsr166}. Provides java.util.concurrent +and its subpackages. Upstream is +@uref{http://g.oswego.edu/dl/concurrency-interest/,Doug Lea's Concurrency Interest Site}. + +@item RelaxNG Datatype Interfaces +Can be found in @file{external/relaxngDatatype}. Provides org.relaxng.datatype +and its subpackages. Upstream is +@uref{http://www.oasis-open.org/committees/relax-ng/}. + +@item Simple API for XML (SAX) +Can be found in @file{external/sax}. Provides org.xml.sax and its subpackages. +Upstream is +@uref{http://www.saxproject.org}. + +@item Document Object Model (DOM) bindings +Can be found in @file{external/w3c_dom}. Provides org.w3c.dom and its subpackages. +Upstream locations are listed in @file{external/w3c_dom/README}. @item fdlibm Can be found in @file{native/fdlibm}. Provides native implementations @@ -694,6 +723,10 @@ use prebuilt glibj.zip class library specify jar file containing the Eclipse Java Compiler +@item --with-gstreamer-peer + +build the experimental GStreamer peer (see @file{README.gstreamer}) + @end table For more flags run @command{configure --help}. @@ -770,7 +803,7 @@ The @option{--enable-maintainer-mode} option to @command{configure} currently do little and shouldn't be used by ordinary developers or users anyway. On Windows machines, the native libraries do not currently build, but -the Java bytecode library will. Gcj trunk is beginning to work under +the Java bytecode library will. GCJ trunk is beginning to work under Cygwin. @node Programming Standards, Hacking Code, Misc. Notes, Top @@ -1097,7 +1130,7 @@ Patches that are already approved for libgcj or also OK for Classpath. patches require you to think whether or not they are really OK and non-controversial, or if you would like some feedback first on them before committing. We might get real commit rules in the future, for -now use your own judgment, but be a bit conservative. +now use your own judgement, but be a bit conservative. Always contact the GNU Classpath maintainer before adding anything non-trivial that you didn't write yourself and that does not come from diff --git a/libjava/classpath/doc/cp-vmintegration.texinfo b/libjava/classpath/doc/cp-vmintegration.texinfo index 8381828de6d..0b2d78c845c 100644 --- a/libjava/classpath/doc/cp-vmintegration.texinfo +++ b/libjava/classpath/doc/cp-vmintegration.texinfo @@ -526,10 +526,8 @@ compiler, and is specific to the compiler implementation. of doubles. @itemize @bullet -@item @code{doubleToLongBits(double)} -- Converts the double to the IEEE 754 -bit layout, collapsing NaNs to @code{0x7ff8000000000000L}. -@item @code{doubleToRawLongBits(double)} -- Same as the above, but preserves -NaNs. +@item @code{doubleToRawLongBits(double)} -- Converts the double to the IEEE 754 +bit layout, preserving NaNs. @item @code{longBitsToDouble(long)} -- This is the inverse of the last method, preserving NaNs so that the output of one can be fed into the other without data loss. @@ -552,10 +550,8 @@ implementation optional. @code{VMFloat} provides native support for the conversion of floats. @itemize @bullet -@item @code{floatToIntBits(float)} -- Converts the float to the IEEE 754 -bit layout, collapsing NaNs to @code{0x7fc00000}. -@item @code{floatToRawIntBits(float)} -- Same as the above, but preserves -NaNs. +@item @code{floatToRawIntBits(float)} -- Converts the float to the IEEE 754 +bit layout, preserving NaNs. @item @code{intBitsToFloat(int)} -- This is the inverse of the last method, preserving NaNs so that the output of one can be fed into the other without data loss. diff --git a/libjava/classpath/doc/texinfo.tex b/libjava/classpath/doc/texinfo.tex index ff2c40654b2..d2b264dd9a5 100644 --- a/libjava/classpath/doc/texinfo.tex +++ b/libjava/classpath/doc/texinfo.tex @@ -3,16 +3,16 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2005-07-05.19} +\def\texinfoversion{2007-12-02.17} % -% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software -% Foundation, Inc. +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +% 2007 Free Software Foundation, Inc. % -% This texinfo.tex file is free software; you can redistribute it and/or +% This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as -% published by the Free Software Foundation; either version 2, or (at -% your option) any later version. +% published by the Free Software Foundation, either version 3 of the +% License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty @@ -20,9 +20,7 @@ % General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with this texinfo.tex file; see the file COPYING. If not, write -% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -% Boston, MA 02110-1301, USA. +% along with this program. If not, see <http://www.gnu.org/licenses/>. % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without @@ -67,7 +65,7 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} -\message{Basics,} + \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. @@ -153,28 +151,22 @@ \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -% In some macros, we cannot use the `\? notation---the left quote is -% in some cases the escape char. -\chardef\backChar = `\\ +% Since the category of space is not known, we have to be careful. +\chardef\spacecat = 10 +\def\spaceisspace{\catcode`\ =\spacecat} + +% sometimes characters are active, so we need control sequences. \chardef\colonChar = `\: \chardef\commaChar = `\, +\chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! -\chardef\plusChar = `\+ +\chardef\lquoteChar= `\` \chardef\questChar = `\? +\chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\underChar = `\_ -\chardef\spaceChar = `\ % -\chardef\spacecat = 10 -\def\spaceisspace{\catcode\spaceChar=\spacecat} - -{% for help with debugging. - % example usage: \expandafter\show\activebackslash - \catcode`\! = 0 \catcode`\\ = \active - !global!def!activebackslash{\} -} - % Ignore a token. % \def\gobble#1{} @@ -285,6 +277,50 @@ \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in +% Output a mark which sets \thischapter, \thissection and \thiscolor. +% We dump everything together because we only have one kind of mark. +% This works because we only use \botmark / \topmark, not \firstmark. +% +% A mark contains a subexpression of the \ifcase ... \fi construct. +% \get*marks macros below extract the needed part using \ifcase. +% +% Another complication is to let the user choose whether \thischapter +% (\thissection) refers to the chapter (section) in effect at the top +% of a page, or that at the bottom of a page. The solution is +% described on page 260 of The TeXbook. It involves outputting two +% marks for the sectioning macros, one before the section break, and +% one after. I won't pretend I can describe this better than DEK... +\def\domark{% + \toks0=\expandafter{\lastchapterdefs}% + \toks2=\expandafter{\lastsectiondefs}% + \toks4=\expandafter{\prevchapterdefs}% + \toks6=\expandafter{\prevsectiondefs}% + \toks8=\expandafter{\lastcolordefs}% + \mark{% + \the\toks0 \the\toks2 + \noexpand\or \the\toks4 \the\toks6 + \noexpand\else \the\toks8 + }% +} +% \topmark doesn't work for the very first chapter (after the title +% page or the contents), so we use \firstmark there -- this gets us +% the mark with the chapter defs, unless the user sneaks in, e.g., +% @setcolor (or @url, or @link, etc.) between @contents and the very +% first @chapter. +\def\gettopheadingmarks{% + \ifcase0\topmark\fi + \ifx\thischapter\empty \ifcase0\firstmark\fi \fi +} +\def\getbottomheadingmarks{\ifcase1\botmark\fi} +\def\getcolormarks{\ifcase2\topmark\fi} + +% Avoid "undefined control sequence" errors. +\def\lastchapterdefs{} +\def\lastsectiondefs{} +\def\prevchapterdefs{} +\def\prevsectiondefs{} +\def\lastcolordefs{} + % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} @@ -302,7 +338,9 @@ % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). + \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% + \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% @@ -311,6 +349,13 @@ % before the \shipout runs. % \indexdummies % don't expand commands in the output. + \normalturnoffactive % \ in index entries must not stay \, e.g., if + % the page break happens to be in the middle of an example. + % We don't want .vr (or whatever) entries like this: + % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} + % "\acronym" won't work when it's read back in; + % it needs to be + % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi @@ -338,9 +383,9 @@ \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingxxx.) + % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 2\baselineskip + \vskip 24pt \unvbox\footlinebox \fi % @@ -374,7 +419,7 @@ % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 +\dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } @@ -396,7 +441,7 @@ % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% - \def\next{#2}% + \def\argtorun{#2}% \begingroup \obeylines \spaceisspace @@ -427,8 +472,7 @@ \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty - % We cannot use \next here, as it holds the macro to run; - % thus we reuse \temp. + % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces @@ -440,14 +484,14 @@ % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, -% just before passing the control to \next. +% just before passing the control to \argtorun. % (Similarily, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % -\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} +\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to @@ -1051,9 +1095,9 @@ where each line of input produces a line of output.} % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { - \catcode\underChar = \active + \catcode`\_ = \active \gdef\mathunderscore{% - \catcode\underChar=\active + \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } @@ -1096,15 +1140,24 @@ where each line of input produces a line of output.} \def\minus{$-$} % @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. % \def\dots{% \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil - .\hfil.\hfil.% - \hskip 0pt plus 0.5fil + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em + \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil }% } @@ -1197,28 +1250,28 @@ where each line of input produces a line of output.} \fi \fi -% PDF uses PostScript string constants for the names of xref targets, to +% PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html % (and related messages, the final outcome is that it is up to the TeX % user to double the backslashes and otherwise make the string valid, so -% that's we do). +% that's what we do). % double active backslashes. % {\catcode`\@=0 \catcode`\\=\active - @gdef@activebackslash{@catcode`@\=@active @otherbackslash} @gdef@activebackslashdouble{% - @catcode@backChar=@active + @catcode`@\=@active @let\=@doublebackslash} } % To handle parens, we must adopt a different approach, since parens are % not active characters. hyperref.dtx (which has the same problem as -% us) handles it with this amazing macro to replace tokens. I've -% tinkered with it a little for texinfo, but it's definitely from there. +% us) handles it with this amazing macro to replace tokens, with minor +% changes for Texinfo. It is included here under the GPL by permission +% from the author, Heiko Oberdiek. % % #1 is the tokens to replace. % #2 is the replacement. @@ -1243,21 +1296,87 @@ where each line of input produces a line of output.} \def\backslashparens#1{% \xdef#1{#1}% redefine it as its expansion; the definition is simply % \lastnode when called from \setref -> \pdfmkdest. - \HyPsdSubst{(}{\backslashlparen}{#1}% - \HyPsdSubst{)}{\backslashrparen}{#1}% + \HyPsdSubst{(}{\realbackslash(}{#1}% + \HyPsdSubst{)}{\realbackslash)}{#1}% } -{\catcode\exclamChar = 0 \catcode\backChar = \other - !gdef!backslashlparen{\(}% - !gdef!backslashrparen{\)}% -} +\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images +with PDF output, and none of those formats could be found. (.eps cannot +be supported due to the design of the PDF format; use regular TeX (DVI +output) for that.)} \ifpdf - \input pdfcolor - \pdfcatalog{/PageMode /UseOutlines}% + % + % Color manipulation macros based on pdfcolor.tex. + \def\cmykDarkRed{0.28 1 1 0.35} + \def\cmykBlack{0 0 0 1} + % + \def\pdfsetcolor#1{\pdfliteral{#1 k}} + % Set color, and create a mark which defines \thiscolor accordingly, + % so that \makeheadline knows which color to restore. + \def\setcolor#1{% + \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% + \domark + \pdfsetcolor{#1}% + } + % + \def\maincolor{\cmykBlack} + \pdfsetcolor{\maincolor} + \edef\thiscolor{\maincolor} + \def\lastcolordefs{} + % + \def\makefootline{% + \baselineskip24pt + \line{\pdfsetcolor{\maincolor}\the\footline}% + } + % + \def\makeheadline{% + \vbox to 0pt{% + \vskip-22.5pt + \line{% + \vbox to8.5pt{}% + % Extract \thiscolor definition from the marks. + \getcolormarks + % Typeset the headline with \maincolor, then restore the color. + \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% + }% + \vss + }% + \nointerlineskip + } + % + % + \pdfcatalog{/PageMode /UseOutlines} + % + % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}% - \def\imageheight{#3}% + \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% + % + % pdftex (and the PDF format) support .png, .jpg, .pdf (among + % others). Let's try in that order. + \let\pdfimgext=\empty + \begingroup + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \errhelp = \nopdfimagehelp + \errmessage{Could not find image file #1 for pdf}% + \else \gdef\pdfimgext{pdf}% + \fi + \else \gdef\pdfimgext{JPG}% + \fi + \else \gdef\pdfimgext{jpeg}% + \fi + \else \gdef\pdfimgext{jpg}% + \fi + \else \gdef\pdfimgext{png}% + \fi + \closein 1 + \endgroup + % % without \immediate, pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 @@ -1265,31 +1384,38 @@ where each line of input produces a line of output.} \else \immediate\pdfximage \fi - \ifx\empty\imagewidth\else width \imagewidth \fi - \ifx\empty\imageheight\else height \imageheight \fi + \ifdim \wd0 >0pt width \imagewidth \fi + \ifdim \wd2 >0pt height \imageheight \fi \ifnum\pdftexversion<13 - #1.pdf% + #1.\pdfimgext \else - {#1.pdf}% + {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} + % \def\pdfmkdest#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. - \atdummies + \indexnofonts + \turnoffactive \activebackslashdouble + \makevalueexpandable \def\pdfdestname{#1}% \backslashparens\pdfdestname - \pdfdest name{\pdfdestname} xyz% - }}% + \safewhatsit{\pdfdest name{\pdfdestname} xyz}% + }} % % used to mark target names; must be expandable. - \def\pdfmkpgn#1{#1}% + \def\pdfmkpgn#1{#1} + % + % by default, use a color that is dark enough to print on paper as + % nearly black, but still distinguishable for online viewing. + \def\urlcolor{\cmykDarkRed} + \def\linkcolor{\cmykDarkRed} + \def\endlink{\setcolor{\maincolor}\pdfendlink} % - \let\linkcolor = \Blue % was Cyan, but that seems light? - \def\endlink{\Black\pdfendlink} % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% @@ -1390,8 +1516,8 @@ where each line of input produces a line of output.} % now, I guess we'll just let the pdf reader have its way. \indexnofonts \setupdatafile - \activebackslash - \input \jobname.toc + \catcode`\\=\active \otherbackslash + \input \tocreadfilename \endgroup } % @@ -1409,11 +1535,19 @@ where each line of input produces a line of output.} \else \let \startlink \pdfstartlink \fi + % make a live url in pdf output. \def\pdfurl#1{% \begingroup - \normalturnoffactive\def\@{@}% + % it seems we really need yet another set of dummies; have not + % tried to figure out what each command should do in the context + % of @url. for now, just make @/ a no-op, that's the only one + % people have actually reported a problem with. + % + \normalturnoffactive + \def\@{@}% + \let\/=\empty \makevalueexpandable - \leavevmode\Red + \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} @@ -1440,13 +1574,14 @@ where each line of input produces a line of output.} {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \linkcolor #1\endlink} + \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax - \let\linkcolor = \relax + \let\setcolor = \gobble + \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput @@ -1481,6 +1616,7 @@ where each line of input produces a line of output.} % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} + % Default leading. \newdimen\textleading \textleading = 13.2pt @@ -1492,8 +1628,12 @@ where each line of input produces a line of output.} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % +% can get a sort of poor man's double spacing by redefining this. +\def\baselinefactor{1} +% \def\setleading#1{% - \normalbaselineskip = #1\relax + \dimen0 = #1\relax + \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% @@ -1502,10 +1642,279 @@ where each line of input produces a line of output.} }% } +% PDF CMaps. See also LaTeX's t1.cmap. +% +% do nothing with this by default. +\expandafter\let\csname cmapOT1\endcsname\gobble +\expandafter\let\csname cmapOT1IT\endcsname\gobble +\expandafter\let\csname cmapOT1TT\endcsname\gobble + +% if we are producing pdf, and we have \pdffontattr, then define cmaps. +% (\pdffontattr was introduced many years ago, but people still run +% older pdftex's; it's easy to conditionalize, so we do.) +\ifpdf \ifx\pdffontattr\undefined \else + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1-0) +%%Title: (TeX-OT1-0 TeX OT1 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1) +/Supplement 0 +>> def +/CMapName /TeX-OT1-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<23> <26> <0023> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +40 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1IT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1IT-0) +%%Title: (TeX-OT1IT-0 TeX OT1IT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1IT) +/Supplement 0 +>> def +/CMapName /TeX-OT1IT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<25> <26> <0025> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +42 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<23> <0023> +<24> <00A3> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1IT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1TT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1TT-0) +%%Title: (TeX-OT1TT-0 TeX OT1TT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1TT) +/Supplement 0 +>> def +/CMapName /TeX-OT1TT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +5 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<21> <26> <0021> +<28> <5F> <0028> +<61> <7E> <0061> +endbfrange +32 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <2191> +<0C> <2193> +<0D> <0027> +<0E> <00A1> +<0F> <00BF> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<20> <2423> +<27> <2019> +<60> <2018> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1TT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +\fi\fi + + % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). -% #3 is the font's design size, #4 is a scale factor -\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} +% #3 is the font's design size, #4 is a scale factor, #5 is the CMap +% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass +% empty to omit). +\def\setfont#1#2#3#4#5{% + \font#1=\fontprefix#2#3 scaled #4 + \csname cmap#5\endcsname#1% +} +% This is what gets called when #5 of \setfont is empty. +\let\cmap\gobble +% emacs-page end of cmaps % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -1530,118 +1939,297 @@ where each line of input produces a line of output.} \def\scshape{csc} \def\scbshape{csc} +% Definitions for a main text size of 11pt. This is the default in +% Texinfo. +% +\def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} -\setfont\textrm\rmshape{10}{\mainmagstep} -\setfont\texttt\ttshape{10}{\mainmagstep} -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1095} % A few fonts for @defun names and args. -\setfont\defbf\bfshape{10}{\magstep1} -\setfont\deftt\ttshape{10}{\magstep1} -\setfont\defttsl\ttslshape{10}{\magstep1} +\setfont\defbf\bfshape{10}{\magstep1}{OT1} +\setfont\deftt\ttshape{10}{\magstep1}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 +\def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 +\def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} \def\authortt{\sectt} +\def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} -\setfont\chaprm\rmbshape{12}{\magstep2} -\setfont\chapit\itbshape{10}{\magstep3} -\setfont\chapsl\slbshape{10}{\magstep3} -\setfont\chaptt\ttbshape{12}{\magstep2} -\setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{17}{1000} +\setfont\chaprm\rmbshape{12}{\magstep2}{OT1} +\setfont\chapit\itbshape{10}{\magstep3}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep3}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} +\setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm -\setfont\chapsc\scbshape{10}{\magstep3} +\setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 +\def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} -\setfont\secrm\rmbshape{12}{\magstep1} -\setfont\secit\itbshape{10}{\magstep2} -\setfont\secsl\slbshape{10}{\magstep2} -\setfont\sectt\ttbshape{12}{\magstep1} -\setfont\secttsl\ttslshape{10}{\magstep2} -\setfont\secsf\sfbshape{12}{\magstep1} +\setfont\secrm\rmbshape{12}{\magstep1}{OT1} +\setfont\secit\itbshape{10}{\magstep2}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep2}{OT1} +\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep2} +\setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 +\def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} -\setfont\ssecrm\rmbshape{12}{\magstephalf} -\setfont\ssecit\itbshape{10}{1315} -\setfont\ssecsl\slbshape{10}{1315} -\setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{1315} -\setfont\ssecsf\sfbshape{12}{\magstephalf} +\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} +\setfont\ssecit\itbshape{10}{1315}{OT1IT} +\setfont\ssecsl\slbshape{10}{1315}{OT1} +\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} +\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{1315} +\setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 +\def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} -\setfont\reducedrm\rmshape{10}{1000} -\setfont\reducedtt\ttshape{10}{1000} -\setfont\reducedbf\bfshape{10}{1000} -\setfont\reducedit\itshape{10}{1000} -\setfont\reducedsl\slshape{10}{1000} -\setfont\reducedsf\sfshape{10}{1000} -\setfont\reducedsc\scshape{10}{1000} -\setfont\reducedttsl\ttslshape{10}{1000} +\setfont\reducedrm\rmshape{10}{1000}{OT1} +\setfont\reducedtt\ttshape{10}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{1000}{OT1} +\setfont\reducedit\itshape{10}{1000}{OT1IT} +\setfont\reducedsl\slshape{10}{1000}{OT1} +\setfont\reducedsf\sfshape{10}{1000}{OT1} +\setfont\reducedsc\scshape{10}{1000}{OT1} +\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 +\def\reducedecsize{1000} + +% reset the current fonts +\textfonts +\rm +} % end of 11pt text font size definitions + + +% Definitions to make the main text be 10pt Computer Modern, with +% section, chapter, etc., sizes following suit. This is for the GNU +% Press printing of the Emacs 22 manual. Maybe other manuals in the +% future. Used with @smallbook, which sets the leading to 12pt. +% +\def\definetextfontsizex{% +% Text fonts (10pt). +\def\textnominalsize{10pt} +\edef\mainmagstep{1000} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} +\font\texti=cmmi10 scaled \mainmagstep +\font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1000} + +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstephalf}{OT1} +\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} + +% Fonts for indices, footnotes, small examples (9pt). +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} +\font\smalli=cmmi9 +\font\smallsy=cmsy9 +\def\smallecsize{0900} + +% Fonts for small examples (8pt). +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} +\font\smalleri=cmmi8 +\font\smallersy=cmsy8 +\def\smallerecsize{0800} + +% Fonts for title page (20.4pt): +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} +\let\titlebf=\titlerm +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} +\font\titlei=cmmi12 scaled \magstep3 +\font\titlesy=cmsy10 scaled \magstep4 +\def\authorrm{\secrm} +\def\authortt{\sectt} +\def\titleecsize{2074} + +% Chapter fonts (14.4pt). +\def\chapnominalsize{14pt} +\setfont\chaprm\rmbshape{12}{\magstep1}{OT1} +\setfont\chapit\itbshape{10}{\magstep2}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep2}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\chapsf\sfbshape{12}{\magstep1}{OT1} +\let\chapbf\chaprm +\setfont\chapsc\scbshape{10}{\magstep2}{OT1} +\font\chapi=cmmi12 scaled \magstep1 +\font\chapsy=cmsy10 scaled \magstep2 +\def\chapecsize{1440} + +% Section fonts (12pt). +\def\secnominalsize{12pt} +\setfont\secrm\rmbshape{12}{1000}{OT1} +\setfont\secit\itbshape{10}{\magstep1}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep1}{OT1} +\setfont\sectt\ttbshape{12}{1000}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} +\setfont\secsf\sfbshape{12}{1000}{OT1} +\let\secbf\secrm +\setfont\secsc\scbshape{10}{\magstep1}{OT1} +\font\seci=cmmi12 +\font\secsy=cmsy10 scaled \magstep1 +\def\sececsize{1200} + +% Subsection fonts (10pt). +\def\ssecnominalsize{10pt} +\setfont\ssecrm\rmbshape{10}{1000}{OT1} +\setfont\ssecit\itbshape{10}{1000}{OT1IT} +\setfont\ssecsl\slbshape{10}{1000}{OT1} +\setfont\ssectt\ttbshape{10}{1000}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} +\setfont\ssecsf\sfbshape{10}{1000}{OT1} +\let\ssecbf\ssecrm +\setfont\ssecsc\scbshape{10}{1000}{OT1} +\font\sseci=cmmi10 +\font\ssecsy=cmsy10 +\def\ssececsize{1000} + +% Reduced fonts for @acro in text (9pt). +\def\reducednominalsize{9pt} +\setfont\reducedrm\rmshape{9}{1000}{OT1} +\setfont\reducedtt\ttshape{9}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{900}{OT1} +\setfont\reducedit\itshape{9}{1000}{OT1IT} +\setfont\reducedsl\slshape{9}{1000}{OT1} +\setfont\reducedsf\sfshape{9}{1000}{OT1} +\setfont\reducedsc\scshape{10}{900}{OT1} +\setfont\reducedttsl\ttslshape{10}{900}{OT1TT} +\font\reducedi=cmmi9 +\font\reducedsy=cmsy9 +\def\reducedecsize{0900} + +% reduce space between paragraphs +\divide\parskip by 2 + +% reset the current fonts +\textfonts +\rm +} % end of 10pt text font size definitions + + +% We provide the user-level command +% @fonttextsize 10 +% (or 11) to redefine the text font size. pt is assumed. +% +\def\xword{10} +\def\xiword{11} +% +\parseargdef\fonttextsize{% + \def\textsizearg{#1}% + \wlog{doing @fonttextsize \textsizearg}% + % + % Set \globaldefs so that documents can use this inside @tex, since + % makeinfo 4.8 does not support it, but we need it nonetheless. + % + \begingroup \globaldefs=1 + \ifx\textsizearg\xword \definetextfontsizex + \else \ifx\textsizearg\xiword \definetextfontsizexi + \else + \errhelp=\EMsimple + \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} + \fi\fi + \endgroup +} + % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since @@ -1753,7 +2341,7 @@ where each line of input produces a line of output.} % Set up the default fonts, so we can use them for creating boxes. % -\textfonts \rm +\definetextfontsizexi % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} @@ -1763,10 +2351,10 @@ where each line of input produces a line of output.} \newcount\fontdepth \fontdepth=0 % Fonts for short table of contents. -\setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 -\setfont\shortcontsl\slshape{12}{1000} -\setfont\shortconttt\ttshape{12}{1000} +\setfont\shortcontrm\rmshape{12}{1000}{OT1} +\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 +\setfont\shortcontsl\slshape{12}{1000}{OT1} +\setfont\shortconttt\ttshape{12}{1000}{OT1TT} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic @@ -1829,7 +2417,7 @@ where each line of input produces a line of output.} \null } \def\samp#1{`\tclose{#1}'\null} -\setfont\keyrm\rmshape{8}{1000} +\setfont\keyrm\rmshape{8}{1000}{OT1} \font\keysy=cmsy9 \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% @@ -1837,6 +2425,7 @@ where each line of input produces a line of output.} \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% \kern-0.4pt\hrule}% \kern-.06em\raise0.4pt\hbox{\angleright}}}} +\def\key #1{{\nohyphenation \uppercase{#1}}\null} % The old definition, with no lozenge: %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} @@ -1878,11 +2467,14 @@ where each line of input produces a line of output.} % and arrange explicitly to hyphenate at a dash. % -- rms. { - \catcode`\-=\active - \catcode`\_=\active + \catcode`\-=\active \catcode`\_=\active + \catcode`\'=\active \catcode`\`=\active % \global\def\code{\begingroup - \catcode`\-=\active \catcode`\_=\active + \catcode\rquoteChar=\active \catcode\lquoteChar=\active + \let'\codequoteright \let`\codequoteleft + % + \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder @@ -2118,6 +2710,35 @@ where each line of input produces a line of output.} \thiseurofont } +% Hacks for glyphs from the EC fonts similar to \euro. We don't +% use \let for the aliases, because sometimes we redefine the original +% macro, and the alias should reflect the redefinition. +\def\guillemetleft{{\ecfont \char"13}} +\def\guillemotleft{\guillemetleft} +\def\guillemetright{{\ecfont \char"14}} +\def\guillemotright{\guillemetright} +\def\guilsinglleft{{\ecfont \char"0E}} +\def\guilsinglright{{\ecfont \char"0F}} +\def\quotedblbase{{\ecfont \char"12}} +\def\quotesinglbase{{\ecfont \char"0D}} +% +\def\ecfont{% + % We can't distinguish serif/sanserif and italic/slanted, but this + % is used for crude hacks anyway (like adding French and German + % quotes to documents typeset with CM, where we lose kerning), so + % hopefully nobody will notice/care. + \edef\ecsize{\csname\curfontsize ecsize\endcsname}% + \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% + \ifx\curfontstyle\bfstylename + % bold: + \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize + \else + % regular: + \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize + \fi + \thisecfont +} + % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. @@ -2128,6 +2749,10 @@ where each line of input produces a line of output.} }$% } +% @textdegree - the normal degrees sign. +% +\def\textdegree{$^\circ$} + % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. @@ -2136,6 +2761,12 @@ where each line of input produces a line of output.} \def\Orb{\mathhexbox20D} \fi +% Quotes. +\chardef\quotedblleft="5C +\chardef\quotedblright=`\" +\chardef\quoteleft=`\` +\chardef\quoteright=`\' + \message{page headings,} @@ -2299,12 +2930,39 @@ where each line of input produces a line of output.} % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. - \global\advance\pageheight by -\baselineskip - \global\advance\vsize by -\baselineskip + \global\advance\pageheight by -12pt + \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} +% @evenheadingmarks top \thischapter <- chapter at the top of a page +% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page +% +% The same set of arguments for: +% +% @oddheadingmarks +% @evenfootingmarks +% @oddfootingmarks +% @everyheadingmarks +% @everyfootingmarks + +\def\evenheadingmarks{\headingmarks{even}{heading}} +\def\oddheadingmarks{\headingmarks{odd}{heading}} +\def\evenfootingmarks{\headingmarks{even}{footing}} +\def\oddfootingmarks{\headingmarks{odd}{footing}} +\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} + \headingmarks{odd}{heading}{#1} } +\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} + \headingmarks{odd}{footing}{#1} } +% #1 = even/odd, #2 = heading/footing, #3 = top/bottom. +\def\headingmarks#1#2#3 {% + \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname + \global\expandafter\let\csname get#1#2marks\endcsname \temp +} + +\everyheadingmarks bottom +\everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. @@ -2959,6 +3617,7 @@ where each line of input produces a line of output.} \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: + \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other @@ -2979,16 +3638,16 @@ where each line of input produces a line of output.} \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % - % Define a command to find the next `@end #1', which must be on a line - % by itself. - \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% + % Define a command to find the next `@end #1'. + \long\def\doignoretext##1^^M@end #1{% + \doignoretextyyy##1^^M@#1\_STOP_}% + % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. - \obeylines % \doignoretext ^^M% }% } @@ -3018,7 +3677,12 @@ where each line of input produces a line of output.} } % Finish off ignored text. -\def\enddoignore{\endgroup\ignorespaces} +{ \obeylines% + % Ignore anything after the last `@end #1'; this matters in verbatim + % environments, where otherwise the newline after an ignored conditional + % would result in a blank line in the output. + \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% +} % @set VAR sets the variable VAR to an empty value. @@ -3221,12 +3885,39 @@ where each line of input produces a line of output.} \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% + % % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace % + % I don't entirely understand this, but when an index entry is + % generated from a macro call, the \endinput which \scanmacro inserts + % causes processing to be prematurely terminated. This is, + % apparently, because \indexsorttmp is fully expanded, and \endinput + % is an expandable command. The redefinition below makes \endinput + % disappear altogether for that purpose -- although logging shows that + % processing continues to some further point. On the other hand, it + % seems \endinput does not hurt in the printed index arg, since that + % is still getting written without apparent harm. + % + % Sample source (mac-idx3.tex, reported by Graham Percival to + % help-texinfo, 22may06): + % @macro funindex {WORD} + % @findex xyz + % @end macro + % ... + % @funindex commtest + % + % The above is not enough to reproduce the bug, but it gives the flavor. + % + % Sample whatsit resulting: + % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} + % + % So: + \let\endinput = \empty + % % Do the redefinitions. \commondummies } @@ -3244,6 +3935,7 @@ where each line of input produces a line of output.} % % Do the redefinitions. \commondummies + \otherbackslash } % Called from \indexdummies and \atdummies. @@ -3311,12 +4003,23 @@ where each line of input produces a line of output.} \definedummyword\equiv \definedummyword\error \definedummyword\euro + \definedummyword\guillemetleft + \definedummyword\guillemetright + \definedummyword\guilsinglleft + \definedummyword\guilsinglright \definedummyword\expansion \definedummyword\minus \definedummyword\pounds \definedummyword\point \definedummyword\print + \definedummyword\quotedblbase + \definedummyword\quotedblleft + \definedummyword\quotedblright + \definedummyword\quoteleft + \definedummyword\quoteright + \definedummyword\quotesinglbase \definedummyword\result + \definedummyword\textdegree % % We want to disable all macros so that they are not expanded by \write. \macrolist @@ -3330,63 +4033,62 @@ where each line of input produces a line of output.} % \commondummiesnofonts: common to \commondummies and \indexnofonts. % -% Better have this without active chars. -{ - \catcode`\~=\other - \gdef\commondummiesnofonts{% - % Control letters and accents. - \definedummyletter\!% - \definedummyaccent\"% - \definedummyaccent\'% - \definedummyletter\*% - \definedummyaccent\,% - \definedummyletter\.% - \definedummyletter\/% - \definedummyletter\:% - \definedummyaccent\=% - \definedummyletter\?% - \definedummyaccent\^% - \definedummyaccent\`% - \definedummyaccent\~% - \definedummyword\u - \definedummyword\v - \definedummyword\H - \definedummyword\dotaccent - \definedummyword\ringaccent - \definedummyword\tieaccent - \definedummyword\ubaraccent - \definedummyword\udotaccent - \definedummyword\dotless - % - % Texinfo font commands. - \definedummyword\b - \definedummyword\i - \definedummyword\r - \definedummyword\sc - \definedummyword\t - % - % Commands that take arguments. - \definedummyword\acronym - \definedummyword\cite - \definedummyword\code - \definedummyword\command - \definedummyword\dfn - \definedummyword\emph - \definedummyword\env - \definedummyword\file - \definedummyword\kbd - \definedummyword\key - \definedummyword\math - \definedummyword\option - \definedummyword\samp - \definedummyword\strong - \definedummyword\tie - \definedummyword\uref - \definedummyword\url - \definedummyword\var - \definedummyword\verb - \definedummyword\w - } +\def\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter\!% + \definedummyaccent\"% + \definedummyaccent\'% + \definedummyletter\*% + \definedummyaccent\,% + \definedummyletter\.% + \definedummyletter\/% + \definedummyletter\:% + \definedummyaccent\=% + \definedummyletter\?% + \definedummyaccent\^% + \definedummyaccent\`% + \definedummyaccent\~% + \definedummyword\u + \definedummyword\v + \definedummyword\H + \definedummyword\dotaccent + \definedummyword\ringaccent + \definedummyword\tieaccent + \definedummyword\ubaraccent + \definedummyword\udotaccent + \definedummyword\dotless + % + % Texinfo font commands. + \definedummyword\b + \definedummyword\i + \definedummyword\r + \definedummyword\sc + \definedummyword\t + % + % Commands that take arguments. + \definedummyword\acronym + \definedummyword\cite + \definedummyword\code + \definedummyword\command + \definedummyword\dfn + \definedummyword\emph + \definedummyword\env + \definedummyword\file + \definedummyword\kbd + \definedummyword\key + \definedummyword\math + \definedummyword\option + \definedummyword\pxref + \definedummyword\ref + \definedummyword\samp + \definedummyword\strong + \definedummyword\tie + \definedummyword\uref + \definedummyword\url + \definedummyword\var + \definedummyword\verb + \definedummyword\w + \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index @@ -3445,12 +4147,23 @@ where each line of input produces a line of output.} \def\equiv{==}% \def\error{error}% \def\euro{euro}% + \def\guillemetleft{<<}% + \def\guillemetright{>>}% + \def\guilsinglleft{<}% + \def\guilsinglright{>}% \def\expansion{==>}% \def\minus{-}% \def\pounds{pounds}% \def\point{.}% \def\print{-|}% + \def\quotedblbase{"}% + \def\quotedblleft{"}% + \def\quotedblright{"}% + \def\quoteleft{`}% + \def\quoteright{'}% + \def\quotesinglbase{,}% \def\result{=>}% + \def\textdegree{degrees}% % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. @@ -3490,11 +4203,7 @@ where each line of input produces a line of output.} % \edef\writeto{\csname#1indfile\endcsname}% % - \ifvmode - \dosubindsanitize - \else - \dosubindwrite - \fi + \safewhatsit\dosubindwrite }% \fi } @@ -3531,13 +4240,13 @@ where each line of input produces a line of output.} \temp } -% Take care of unwanted page breaks: +% Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the -% \write will make \lastskip zero. The result is that sequences -% like this: +% \write or \pdfdest will make \lastskip zero. The result is that +% sequences like this: % @end defun % @tindex whatever % @defun ... @@ -3561,25 +4270,31 @@ where each line of input produces a line of output.} % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % +\newskip\whatsitskip +\newcount\whatsitpenalty +% % ..., ready, GO: % -\def\dosubindsanitize{% +\def\safewhatsit#1{% +\ifhmode + #1% +\else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. - \skip0 = \lastskip + \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% - \count255 = \lastpenalty + \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this - % -\skip0 glue we're inserting is preceded by a + % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else - \vskip-\skip0 + \vskip-\whatsitskip \fi % - \dosubindwrite + #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and @@ -3593,13 +4308,14 @@ where each line of input produces a line of output.} % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. - \ifnum\count255>9999 \penalty\count255 \fi + \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. - \nobreak\vskip\skip0 + \nobreak\vskip\whatsitskip \fi +\fi } % The index entry written in the file actually looks like @@ -3642,6 +4358,7 @@ where each line of input produces a line of output.} % \smallfonts \rm \tolerance = 9500 + \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. @@ -3771,11 +4488,8 @@ where each line of input produces a line of output.} % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#1}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd + \setbox\boxA = \hbox{#1}% + \ifdim\wd\boxA = 0pt \ % \else % @@ -3799,9 +4513,9 @@ where each line of input produces a line of output.} \endgroup } -% Like \dotfill except takes at least 1 em. +% Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} + \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} @@ -3911,6 +4625,34 @@ where each line of input produces a line of output.} % % All done with double columns. \def\enddoublecolumns{% + % The following penalty ensures that the page builder is exercised + % _before_ we change the output routine. This is necessary in the + % following situation: + % + % The last section of the index consists only of a single entry. + % Before this section, \pagetotal is less than \pagegoal, so no + % break occurs before the last section starts. However, the last + % section, consisting of \initial and the single \entry, does not + % fit on the page and has to be broken off. Without the following + % penalty the page builder will not be exercised until \eject + % below, and by that time we'll already have changed the output + % routine to the \balancecolumns version, so the next-to-last + % double-column page will be processed with \balancecolumns, which + % is wrong: The two columns will go to the main vertical list, with + % the broken-off section in the recent contributions. As soon as + % the output routine finishes, TeX starts reconsidering the page + % break. The two columns and the broken-off section both fit on the + % page, because the two columns now take up only half of the page + % goal. When TeX sees \eject from below which follows the final + % section, it invokes the new output routine that we've set after + % \balancecolumns below; \onepageout will try to fit the two columns + % and the final section into the vbox of \pageheight (see + % \pagebody), causing an overfull box. + % + % Note that glue won't work here, because glue does not exercise the + % page builder, unlike penalties (see The TeXbook, pp. 280-281). + \penalty0 + % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. @@ -4020,11 +4762,15 @@ where each line of input produces a line of output.} \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise. -% However, they are not reliable, because we don't use marks. +% Each @chapter defines these (using marks) as the number+name, number +% and name of the chapter. Page headings and footings can use +% these. @section does likewise. \def\thischapter{} +\def\thischapternum{} +\def\thischaptername{} \def\thissection{} +\def\thissectionnum{} +\def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count @@ -4325,7 +5071,20 @@ where each line of input produces a line of output.} \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} +% Because \domark is called before \chapoddpage, the filler page will +% get the headings for the next chapter, which is wrong. But we don't +% care -- we just disable all headings on the filler page. +\def\chapoddpage{% + \chappager + \ifodd\pageno \else + \begingroup + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% + \hbox to 0pt{}% + \chappager + \endgroup + \fi +} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} @@ -4359,41 +5118,72 @@ where each line of input produces a line of output.} \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% + % Insert the first mark before the heading break (see notes for \domark). + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% + \gdef\thissection{}}% + % + \def\temptype{#2}% + \ifx\temptype\Ynothingkeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{\thischaptername}}% + \else\ifx\temptype\Yomitfromtockeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{}}% + \else\ifx\temptype\Yappendixkeyword + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\appendixletter}% + \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \else + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\the\chapno}% + \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \fi\fi\fi + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % + % Insert the chapter heading break. \pchapsepmacro + % + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \domark + % {% \chapfonts \rm % - % Have to define \thissection before calling \donoderef, because the + % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. - \gdef\thissection{#1}% - \gdef\thischaptername{#1}% + \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. - \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% - \gdef\thischapter{#1}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% - \gdef\thischapter{}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% - % We don't substitute the actual chapter name into \thischapter - % because we don't want its macros evaluated now. And we don't - % use \thissection because that changes with each section. - % - \xdef\thischapter{\putwordAppendix{} \appendixletter: - \noexpand\thischaptername}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% - \xdef\thischapter{\putwordChapter{} \the\chapno: - \noexpand\thischaptername}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the @@ -4409,6 +5199,7 @@ where each line of input produces a line of output.} \donoderef{#2}% % % Typeset the actual heading. + \nobreak % Avoid page breaks at the interline glue. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% @@ -4471,45 +5262,95 @@ where each line of input produces a line of output.} % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % +\def\seckeyword{sec} +% \def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. \csname #2fonts\endcsname \rm % + \def\sectionlevel{#2}% + \def\temptype{#3}% + % + % Insert first mark before the heading break (see notes for \domark). + \let\prevsectiondefs=\lastsectiondefs + \ifx\temptype\Ynothingkeyword + \ifx\sectionlevel\seckeyword + \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% + \gdef\thissection{\thissectionname}}% + \fi + \else\ifx\temptype\Yomitfromtockeyword + % Don't redefine \thissection. + \else\ifx\temptype\Yappendixkeyword + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \else + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \fi\fi\fi + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % % Insert space above the heading. \csname #2headingbreak\endcsname % - % Only insert the space after the number if we have a section number. - \def\sectionlevel{#2}% - \def\temptype{#3}% + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevsectiondefs=\lastsectiondefs + \domark % + % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, - % and don't redefine \thissection. + % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \fi\fi\fi % - % Write the toc entry (before \donoderef). See comments in \chfplain. + % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). - % Again, see comments in \chfplain. + % Again, see comments in \chapmacro. \donoderef{#3}% % + % Interline glue will be inserted when the vbox is completed. + % That glue will be a valid breakpoint for the page, since it'll be + % preceded by a whatsit (usually from the \donoderef, or from the + % \writetocentry if there was no node). We don't want to allow that + % break, since then the whatsits could end up on page n while the + % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. + \nobreak + % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 % zero if no section number @@ -4572,7 +5413,7 @@ where each line of input produces a line of output.} \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp - } + }% \fi \fi % @@ -4607,7 +5448,7 @@ where each line of input produces a line of output.} \def\readtocfile{% \setupdatafile \activecatcodes - \input \jobname.toc + \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in @@ -4626,7 +5467,6 @@ where each line of input produces a line of output.} % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. - \def\thischapter{}% \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno @@ -4638,11 +5478,16 @@ where each line of input produces a line of output.} \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } +% redefined for the two-volume lispref. We always output on +% \jobname.toc even if this is redefined. +% +\def\tocreadfilename{\jobname.toc} % Normal (long) toc. +% \def\contents{% \startcontents{\putwordTOC}% - \openin 1 \jobname.toc + \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi @@ -4680,7 +5525,7 @@ where each line of input produces a line of output.} \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry - \openin 1 \jobname.toc + \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi @@ -4824,7 +5669,7 @@ where each line of input produces a line of output.} {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} +\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -5015,12 +5860,18 @@ where each line of input produces a line of output.} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword + % end paragraph for sake of leading, in case document has no blank + % line. This is redundant with what happens in \aboveenvbreak, but + % we need to do it before changing the fonts, and it's inconvenient + % to change the fonts afterward. + \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else + \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } @@ -5047,11 +5898,10 @@ where each line of input produces a line of output.} % \maketwodispenvs {lisp}{example}{% \nonfillstart - \tt + \tt\quoteexpand \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } - % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenv {display}{% @@ -5179,6 +6029,34 @@ where each line of input produces a line of output.} \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % \def\starttabbox{\setbox0=\hbox\bgroup} + +% Allow an option to not replace quotes with a regular directed right +% quote/apostrophe (char 0x27), but instead use the undirected quote +% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it +% the default, but it works for pasting with more pdf viewers (at least +% evince), the lilypond developers report. xpdf does work with the +% regular 0x27. +% +\def\codequoteright{% + \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax + \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax + '% + \else \char'15 \fi + \else \char'15 \fi +} +% +% and a similar option for the left quote char vs. a grave accent. +% Modern fonts display ASCII 0x60 as a grave accent, so some people like +% the code environments to do likewise. +% +\def\codequoteleft{% + \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax + \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax + `% + \else \char'22 \fi + \else \char'22 \fi +} +% \begingroup \catcode`\^^I=\active \gdef\tabexpand{% @@ -5191,7 +6069,16 @@ where each line of input produces a line of output.} \wd0=\dimen0 \box0 \starttabbox }% } + \catcode`\'=\active + \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}% + % + \catcode`\`=\active + \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}% + % + \gdef\quoteexpand{\rquoteexpand \lquoteexpand}% \endgroup + +% start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart @@ -5200,6 +6087,7 @@ where each line of input produces a line of output.} \def\par{\leavevmode\egroup\box0\endgraf}% \catcode`\`=\active \tabexpand + \quoteexpand % Respect line breaks, % print special symbols as themselves, and % make each space count @@ -5284,27 +6172,35 @@ where each line of input produces a line of output.} \endgroup } + \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt +\newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak + \defunpenalty=10003 % Will keep this @deffn together with the + % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted - % by \defargscommonending, instead of 10000, since the sectioning + % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. - % - \ifnum\lastpenalty=10002 \penalty2000 \fi + % + % As a minor refinement, we avoid "club" headers by signalling + % with penalty of 10003 after the very first @deffn in the + % sequence (see above), and penalty of 10002 after any following + % @def command. + \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. @@ -5322,7 +6218,7 @@ where each line of input produces a line of output.} % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. - \ifnum\lastpenalty=10002 \penalty3000 \fi + \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% @@ -5340,7 +6236,7 @@ where each line of input produces a line of output.} \advance\rightskip by 0pt plus 1fil \endgraf \nobreak\vskip -\parskip - \penalty 10002 % signal to \startdefun and \dodefunx + \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts @@ -5609,12 +6505,14 @@ where each line of input produces a line of output.} \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } +% these should not use \errmessage; the glibc manual, at least, actually +% has such constructs (when documenting function pointers). \def\badparencount{% - \errmessage{Unbalanced parentheses in @def}% + \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% - \errmessage{Unbalanced square braces in @def}% + \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } @@ -5649,7 +6547,6 @@ where each line of input produces a line of output.} \spaceisspace % % Append \endinput to make sure that TeX does not see the ending newline. - % % I've verified that it is necessary both for e-TeX and for ordinary TeX % --kasal, 29nov03 \scantokens{#1\endinput}% @@ -5710,6 +6607,10 @@ where each line of input produces a line of output.} % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \. +% Non-ASCII encodings make 8-bit characters active, so un-activate +% them to avoid their expansion. Must do this non-globally, to +% confine the change to the current group. + % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. @@ -5724,6 +6625,7 @@ where each line of input produces a line of output.} \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other + \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \def\scanargctxt{% @@ -5916,11 +6818,11 @@ where each line of input produces a line of output.} % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} +\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg - \fi \next} + \fi \macnamexxx} % @alias. @@ -5941,7 +6843,6 @@ where each line of input produces a line of output.} \message{cross references,} \newwrite\auxfile - \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. @@ -5986,7 +6887,7 @@ where each line of input produces a line of output.} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: -% 1) NAME-title - the current sectioning name taken from \thissection, +% 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. @@ -6005,10 +6906,10 @@ where each line of input produces a line of output.} \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% - \toks0 = \expandafter{\thissection}% + \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. - \writexrdef{pg}{\folio}% will be written later, during \shipout + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout }% \fi } @@ -6054,7 +6955,8 @@ where each line of input produces a line of output.} \ifpdf \leavevmode \getfilename{#4}% - {\turnoffactive + {\indexnofonts + \turnoffactive % See comments at \activebackslashdouble. {\activebackslashdouble \xdef\pdfxrefdest{#1}% \backslashparens\pdfxrefdest}% @@ -6067,7 +6969,7 @@ where each line of input produces a line of output.} goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% - \linkcolor + \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" @@ -6085,7 +6987,7 @@ where each line of input produces a line of output.} % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd0 = 0pt - \refx{#1-snt}% + \refx{#1-snt}{}% \else \printedrefname \fi @@ -6105,7 +7007,7 @@ where each line of input produces a line of output.} % is a loss. Therefore, we give the text of the node name again, so it % is as if TeX is seeing it for the first time. \ifdim \wd1 > 0pt - \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% + \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% \else % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand @@ -6201,10 +7103,18 @@ where each line of input produces a line of output.} % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% - \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. + {% The node name might contain 8-bit characters, which in our current + % implementation are changed to commands like @'e. Don't let these + % mess up the control sequence name. + \indexnofonts + \turnoffactive + \xdef\safexrefname{#1}% + }% + % + \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? - \expandafter\iffloat\csname XR#1\endcsname + \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname @@ -6219,7 +7129,8 @@ where each line of input produces a line of output.} % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. - \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 + {\safexrefname}}% \fi } @@ -6323,6 +7234,7 @@ where each line of input produces a line of output.} \input\jobname.#1 \endgroup} + \message{insertions,} % including footnotes. @@ -6515,7 +7427,7 @@ where each line of input produces a line of output.} % above and below. \nobreak\vskip\parskip \nobreak - \line\bgroup\hss + \line\bgroup \fi % % Output the image. @@ -6528,7 +7440,7 @@ where each line of input produces a line of output.} \epsfbox{#1.eps}% \fi % - \ifimagevmode \hss \egroup \bigbreak \fi % space after the image + \ifimagevmode \egroup \bigbreak \fi % space after the image \endgroup} @@ -6595,13 +7507,13 @@ where each line of input produces a line of output.} \global\advance\floatno by 1 % {% - % This magic value for \thissection is output by \setref as the + % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % - \edef\thissection{\floatmagic=\safefloattype}% + \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi @@ -6669,6 +7581,7 @@ where each line of input produces a line of output.} % caption if specified, else the full caption if specified, else nothing. {% \atdummies + % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. @@ -6689,8 +7602,9 @@ where each line of input produces a line of output.} % % place the captured inserts % - % BEWARE: when the floats start float, we have to issue warning whenever an - % insert appears inside a float which could possibly float. --kasal, 26may04 + % BEWARE: when the floats start floating, we have to issue warning + % whenever an insert appears inside a float which could possibly + % float. --kasal, 26may04 % \checkinserts } @@ -6734,7 +7648,7 @@ where each line of input produces a line of output.} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic -% \thissection value which we \setref above. +% \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % @@ -6795,39 +7709,871 @@ where each line of input produces a line of output.} \writeentry }} + \message{localization,} -% and i18n. % @documentlanguage is usually given very early, just after % @setfilename. If done too late, it may not override everything -% properly. Single argument is the language abbreviation. -% It would be nice if we could set up a hyphenation file here. +% properly. Single argument is the language (de) or locale (de_DE) +% abbreviation. It would be nice if we could set up a hyphenation file. % -\parseargdef\documentlanguage{% +{ + \catcode`\_ = \active + \globaldefs=1 +\parseargdef\documentlanguage{\begingroup + \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. + % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% + \documentlanguagetrywithoutunderscore{#1_\finish}% \else \input txi-#1.tex \fi \closein 1 \endgroup +\endgroup} +} +% +% If they passed de_DE, and txi-de_DE.tex doesn't exist, +% try txi-de.tex. +% +\def\documentlanguagetrywithoutunderscore#1_#2\finish{% + \openin 1 txi-#1.tex + \ifeof 1 + \errhelp = \nolanghelp + \errmessage{Cannot read language file txi-#1.tex}% + \else + \input txi-#1.tex + \fi + \closein 1 } +% \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? In the current directory should work if nowhere else does.} +% Set the catcode of characters 128 through 255 to the specified number. +% +\def\setnonasciicharscatcode#1{% + \count255=128 + \loop\ifnum\count255<256 + \global\catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} -% @documentencoding should change something in TeX eventually, most -% likely, but for now just recognize it. -\let\documentencoding = \comment +\def\setnonasciicharscatcodenonglobal#1{% + \count255=128 + \loop\ifnum\count255<256 + \catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} +% @documentencoding sets the definition of non-ASCII characters +% according to the specified encoding. +% +\parseargdef\documentencoding{% + % Encoding being declared for the document. + \def\declaredencoding{\csname #1.enc\endcsname}% + % + % Supported encodings: names converted to tokens in order to be able + % to compare them with \ifx. + \def\ascii{\csname US-ASCII.enc\endcsname}% + \def\latnine{\csname ISO-8859-15.enc\endcsname}% + \def\latone{\csname ISO-8859-1.enc\endcsname}% + \def\lattwo{\csname ISO-8859-2.enc\endcsname}% + \def\utfeight{\csname UTF-8.enc\endcsname}% + % + \ifx \declaredencoding \ascii + \asciichardefs + % + \else \ifx \declaredencoding \lattwo + \setnonasciicharscatcode\active + \lattwochardefs + % + \else \ifx \declaredencoding \latone + \setnonasciicharscatcode\active + \latonechardefs + % + \else \ifx \declaredencoding \latnine + \setnonasciicharscatcode\active + \latninechardefs + % + \else \ifx \declaredencoding \utfeight + \setnonasciicharscatcode\active + \utfeightchardefs + % + \else + \message{Unknown document encoding #1, ignoring.}% + % + \fi % utfeight + \fi % latnine + \fi % latone + \fi % lattwo + \fi % ascii +} + +% A message to be logged when using a character that isn't available +% the default font encoding (OT1). +% +\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} + +% Take account of \c (plain) vs. \, (Texinfo) difference. +\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} + +% First, make active non-ASCII characters in order for them to be +% correctly categorized when TeX reads the replacement text of +% macros containing the character definitions. +\setnonasciicharscatcode\active +% +% Latin1 (ISO-8859-1) character definitions. +\def\latonechardefs{% + \gdef^^a0{~} + \gdef^^a1{\exclamdown} + \gdef^^a2{\missingcharmsg{CENT SIGN}} + \gdef^^a3{{\pounds}} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\missingcharmsg{YEN SIGN}} + \gdef^^a6{\missingcharmsg{BROKEN BAR}} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\copyright} + \gdef^^aa{\ordf} + \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} + \gdef^^ac{$\lnot$} + \gdef^^ad{\-} + \gdef^^ae{\registeredsymbol} + \gdef^^af{\={}} + % + \gdef^^b0{\textdegree} + \gdef^^b1{$\pm$} + \gdef^^b2{$^2$} + \gdef^^b3{$^3$} + \gdef^^b4{\'{}} + \gdef^^b5{$\mu$} + \gdef^^b6{\P} + % + \gdef^^b7{$^.$} + \gdef^^b8{\cedilla\ } + \gdef^^b9{$^1$} + \gdef^^ba{\ordm} + % + \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}} + \gdef^^bc{$1\over4$} + \gdef^^bd{$1\over2$} + \gdef^^be{$3\over4$} + \gdef^^bf{\questiondown} + % + \gdef^^c0{\`A} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\~A} + \gdef^^c4{\"A} + \gdef^^c5{\ringaccent A} + \gdef^^c6{\AE} + \gdef^^c7{\cedilla C} + \gdef^^c8{\`E} + \gdef^^c9{\'E} + \gdef^^ca{\^E} + \gdef^^cb{\"E} + \gdef^^cc{\`I} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\"I} + % + \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} + \gdef^^d1{\~N} + \gdef^^d2{\`O} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\~O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\O} + \gdef^^d9{\`U} + \gdef^^da{\'U} + \gdef^^db{\^U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} + \gdef^^df{\ss} + % + \gdef^^e0{\`a} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\~a} + \gdef^^e4{\"a} + \gdef^^e5{\ringaccent a} + \gdef^^e6{\ae} + \gdef^^e7{\cedilla c} + \gdef^^e8{\`e} + \gdef^^e9{\'e} + \gdef^^ea{\^e} + \gdef^^eb{\"e} + \gdef^^ec{\`{\dotless i}} + \gdef^^ed{\'{\dotless i}} + \gdef^^ee{\^{\dotless i}} + \gdef^^ef{\"{\dotless i}} + % + \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} + \gdef^^f1{\~n} + \gdef^^f2{\`o} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\~o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\o} + \gdef^^f9{\`u} + \gdef^^fa{\'u} + \gdef^^fb{\^u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} + \gdef^^ff{\"y} +} + +% Latin9 (ISO-8859-15) encoding character definitions. +\def\latninechardefs{% + % Encoding is almost identical to Latin1. + \latonechardefs + % + \gdef^^a4{\euro} + \gdef^^a6{\v S} + \gdef^^a8{\v s} + \gdef^^b4{\v Z} + \gdef^^b8{\v z} + \gdef^^bc{\OE} + \gdef^^bd{\oe} + \gdef^^be{\"Y} +} + +% Latin2 (ISO-8859-2) character definitions. +\def\lattwochardefs{% + \gdef^^a0{~} + \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}} + \gdef^^a2{\u{}} + \gdef^^a3{\L} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\v L} + \gdef^^a6{\'S} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\v S} + \gdef^^aa{\cedilla S} + \gdef^^ab{\v T} + \gdef^^ac{\'Z} + \gdef^^ad{\-} + \gdef^^ae{\v Z} + \gdef^^af{\dotaccent Z} + % + \gdef^^b0{\textdegree} + \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}} + \gdef^^b2{\missingcharmsg{OGONEK}} + \gdef^^b3{\l} + \gdef^^b4{\'{}} + \gdef^^b5{\v l} + \gdef^^b6{\'s} + \gdef^^b7{\v{}} + \gdef^^b8{\cedilla\ } + \gdef^^b9{\v s} + \gdef^^ba{\cedilla s} + \gdef^^bb{\v t} + \gdef^^bc{\'z} + \gdef^^bd{\H{}} + \gdef^^be{\v z} + \gdef^^bf{\dotaccent z} + % + \gdef^^c0{\'R} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\u A} + \gdef^^c4{\"A} + \gdef^^c5{\'L} + \gdef^^c6{\'C} + \gdef^^c7{\cedilla C} + \gdef^^c8{\v C} + \gdef^^c9{\'E} + \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}} + \gdef^^cb{\"E} + \gdef^^cc{\v E} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\v D} + % + \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} + \gdef^^d1{\'N} + \gdef^^d2{\v N} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\H O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\v R} + \gdef^^d9{\ringaccent U} + \gdef^^da{\'U} + \gdef^^db{\H U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\cedilla T} + \gdef^^df{\ss} + % + \gdef^^e0{\'r} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\u a} + \gdef^^e4{\"a} + \gdef^^e5{\'l} + \gdef^^e6{\'c} + \gdef^^e7{\cedilla c} + \gdef^^e8{\v c} + \gdef^^e9{\'e} + \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}} + \gdef^^eb{\"e} + \gdef^^ec{\v e} + \gdef^^ed{\'\i} + \gdef^^ee{\^\i} + \gdef^^ef{\v d} + % + \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} + \gdef^^f1{\'n} + \gdef^^f2{\v n} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\H o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\v r} + \gdef^^f9{\ringaccent u} + \gdef^^fa{\'u} + \gdef^^fb{\H u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\cedilla t} + \gdef^^ff{\dotaccent{}} +} + +% UTF-8 character definitions. +% +% This code to support UTF-8 is based on LaTeX's utf8.def, with some +% changes for Texinfo conventions. It is included here under the GPL by +% permission from Frank Mittelbach and the LaTeX team. +% +\newcount\countUTFx +\newcount\countUTFy +\newcount\countUTFz -% Page size parameters. +\gdef\UTFviiiTwoOctets#1#2{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\endcsname} +% +\gdef\UTFviiiThreeOctets#1#2#3{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % +\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} + +\gdef\UTFviiiDefined#1{% + \ifx #1\relax + \message{\linenumber Unicode char \string #1 not defined for Texinfo}% + \else + \expandafter #1% + \fi +} + +\begingroup + \catcode`\~13 + \catcode`\"12 + + \def\UTFviiiLoop{% + \global\catcode\countUTFx\active + \uccode`\~\countUTFx + \uppercase\expandafter{\UTFviiiTmp}% + \advance\countUTFx by 1 + \ifnum\countUTFx < \countUTFy + \expandafter\UTFviiiLoop + \fi} + + \countUTFx = "C2 + \countUTFy = "E0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiTwoOctets\string~}} + \UTFviiiLoop + + \countUTFx = "E0 + \countUTFy = "F0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiThreeOctets\string~}} + \UTFviiiLoop + + \countUTFx = "F0 + \countUTFy = "F4 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiFourOctets\string~}} + \UTFviiiLoop +\endgroup + +\begingroup + \catcode`\"=12 + \catcode`\<=12 + \catcode`\.=12 + \catcode`\,=12 + \catcode`\;=12 + \catcode`\!=12 + \catcode`\~=13 + + \gdef\DeclareUnicodeCharacter#1#2{% + \countUTFz = "#1\relax + \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% + \begingroup + \parseXMLCharref + \def\UTFviiiTwoOctets##1##2{% + \csname u8:##1\string ##2\endcsname}% + \def\UTFviiiThreeOctets##1##2##3{% + \csname u8:##1\string ##2\string ##3\endcsname}% + \def\UTFviiiFourOctets##1##2##3##4{% + \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \gdef\UTFviiiTmp{#2}% + \endgroup} + + \gdef\parseXMLCharref{% + \ifnum\countUTFz < "A0\relax + \errhelp = \EMsimple + \errmessage{Cannot define Unicode char value < 00A0}% + \else\ifnum\countUTFz < "800\relax + \parseUTFviiiA,% + \parseUTFviiiB C\UTFviiiTwoOctets.,% + \else\ifnum\countUTFz < "10000\relax + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% + \else + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiA!% + \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% + \fi\fi\fi + } + + \gdef\parseUTFviiiA#1{% + \countUTFx = \countUTFz + \divide\countUTFz by 64 + \countUTFy = \countUTFz + \multiply\countUTFz by 64 + \advance\countUTFx by -\countUTFz + \advance\countUTFx by 128 + \uccode `#1\countUTFx + \countUTFz = \countUTFy} + + \gdef\parseUTFviiiB#1#2#3#4{% + \advance\countUTFz by "#10\relax + \uccode `#3\countUTFz + \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} +\endgroup + +\def\utfeightchardefs{% + \DeclareUnicodeCharacter{00A0}{\tie} + \DeclareUnicodeCharacter{00A1}{\exclamdown} + \DeclareUnicodeCharacter{00A3}{\pounds} + \DeclareUnicodeCharacter{00A8}{\"{ }} + \DeclareUnicodeCharacter{00A9}{\copyright} + \DeclareUnicodeCharacter{00AA}{\ordf} + \DeclareUnicodeCharacter{00AB}{\guillemetleft} + \DeclareUnicodeCharacter{00AD}{\-} + \DeclareUnicodeCharacter{00AE}{\registeredsymbol} + \DeclareUnicodeCharacter{00AF}{\={ }} + + \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} + \DeclareUnicodeCharacter{00B4}{\'{ }} + \DeclareUnicodeCharacter{00B8}{\cedilla{ }} + \DeclareUnicodeCharacter{00BA}{\ordm} + \DeclareUnicodeCharacter{00BB}{\guillemetright} + \DeclareUnicodeCharacter{00BF}{\questiondown} + + \DeclareUnicodeCharacter{00C0}{\`A} + \DeclareUnicodeCharacter{00C1}{\'A} + \DeclareUnicodeCharacter{00C2}{\^A} + \DeclareUnicodeCharacter{00C3}{\~A} + \DeclareUnicodeCharacter{00C4}{\"A} + \DeclareUnicodeCharacter{00C5}{\AA} + \DeclareUnicodeCharacter{00C6}{\AE} + \DeclareUnicodeCharacter{00C7}{\cedilla{C}} + \DeclareUnicodeCharacter{00C8}{\`E} + \DeclareUnicodeCharacter{00C9}{\'E} + \DeclareUnicodeCharacter{00CA}{\^E} + \DeclareUnicodeCharacter{00CB}{\"E} + \DeclareUnicodeCharacter{00CC}{\`I} + \DeclareUnicodeCharacter{00CD}{\'I} + \DeclareUnicodeCharacter{00CE}{\^I} + \DeclareUnicodeCharacter{00CF}{\"I} + + \DeclareUnicodeCharacter{00D1}{\~N} + \DeclareUnicodeCharacter{00D2}{\`O} + \DeclareUnicodeCharacter{00D3}{\'O} + \DeclareUnicodeCharacter{00D4}{\^O} + \DeclareUnicodeCharacter{00D5}{\~O} + \DeclareUnicodeCharacter{00D6}{\"O} + \DeclareUnicodeCharacter{00D8}{\O} + \DeclareUnicodeCharacter{00D9}{\`U} + \DeclareUnicodeCharacter{00DA}{\'U} + \DeclareUnicodeCharacter{00DB}{\^U} + \DeclareUnicodeCharacter{00DC}{\"U} + \DeclareUnicodeCharacter{00DD}{\'Y} + \DeclareUnicodeCharacter{00DF}{\ss} + + \DeclareUnicodeCharacter{00E0}{\`a} + \DeclareUnicodeCharacter{00E1}{\'a} + \DeclareUnicodeCharacter{00E2}{\^a} + \DeclareUnicodeCharacter{00E3}{\~a} + \DeclareUnicodeCharacter{00E4}{\"a} + \DeclareUnicodeCharacter{00E5}{\aa} + \DeclareUnicodeCharacter{00E6}{\ae} + \DeclareUnicodeCharacter{00E7}{\cedilla{c}} + \DeclareUnicodeCharacter{00E8}{\`e} + \DeclareUnicodeCharacter{00E9}{\'e} + \DeclareUnicodeCharacter{00EA}{\^e} + \DeclareUnicodeCharacter{00EB}{\"e} + \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} + \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} + \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} + \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} + + \DeclareUnicodeCharacter{00F1}{\~n} + \DeclareUnicodeCharacter{00F2}{\`o} + \DeclareUnicodeCharacter{00F3}{\'o} + \DeclareUnicodeCharacter{00F4}{\^o} + \DeclareUnicodeCharacter{00F5}{\~o} + \DeclareUnicodeCharacter{00F6}{\"o} + \DeclareUnicodeCharacter{00F8}{\o} + \DeclareUnicodeCharacter{00F9}{\`u} + \DeclareUnicodeCharacter{00FA}{\'u} + \DeclareUnicodeCharacter{00FB}{\^u} + \DeclareUnicodeCharacter{00FC}{\"u} + \DeclareUnicodeCharacter{00FD}{\'y} + \DeclareUnicodeCharacter{00FF}{\"y} + + \DeclareUnicodeCharacter{0100}{\=A} + \DeclareUnicodeCharacter{0101}{\=a} + \DeclareUnicodeCharacter{0102}{\u{A}} + \DeclareUnicodeCharacter{0103}{\u{a}} + \DeclareUnicodeCharacter{0106}{\'C} + \DeclareUnicodeCharacter{0107}{\'c} + \DeclareUnicodeCharacter{0108}{\^C} + \DeclareUnicodeCharacter{0109}{\^c} + \DeclareUnicodeCharacter{010A}{\dotaccent{C}} + \DeclareUnicodeCharacter{010B}{\dotaccent{c}} + \DeclareUnicodeCharacter{010C}{\v{C}} + \DeclareUnicodeCharacter{010D}{\v{c}} + \DeclareUnicodeCharacter{010E}{\v{D}} + + \DeclareUnicodeCharacter{0112}{\=E} + \DeclareUnicodeCharacter{0113}{\=e} + \DeclareUnicodeCharacter{0114}{\u{E}} + \DeclareUnicodeCharacter{0115}{\u{e}} + \DeclareUnicodeCharacter{0116}{\dotaccent{E}} + \DeclareUnicodeCharacter{0117}{\dotaccent{e}} + \DeclareUnicodeCharacter{011A}{\v{E}} + \DeclareUnicodeCharacter{011B}{\v{e}} + \DeclareUnicodeCharacter{011C}{\^G} + \DeclareUnicodeCharacter{011D}{\^g} + \DeclareUnicodeCharacter{011E}{\u{G}} + \DeclareUnicodeCharacter{011F}{\u{g}} + + \DeclareUnicodeCharacter{0120}{\dotaccent{G}} + \DeclareUnicodeCharacter{0121}{\dotaccent{g}} + \DeclareUnicodeCharacter{0124}{\^H} + \DeclareUnicodeCharacter{0125}{\^h} + \DeclareUnicodeCharacter{0128}{\~I} + \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} + \DeclareUnicodeCharacter{012A}{\=I} + \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} + \DeclareUnicodeCharacter{012C}{\u{I}} + \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} + + \DeclareUnicodeCharacter{0130}{\dotaccent{I}} + \DeclareUnicodeCharacter{0131}{\dotless{i}} + \DeclareUnicodeCharacter{0132}{IJ} + \DeclareUnicodeCharacter{0133}{ij} + \DeclareUnicodeCharacter{0134}{\^J} + \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} + \DeclareUnicodeCharacter{0139}{\'L} + \DeclareUnicodeCharacter{013A}{\'l} + + \DeclareUnicodeCharacter{0141}{\L} + \DeclareUnicodeCharacter{0142}{\l} + \DeclareUnicodeCharacter{0143}{\'N} + \DeclareUnicodeCharacter{0144}{\'n} + \DeclareUnicodeCharacter{0147}{\v{N}} + \DeclareUnicodeCharacter{0148}{\v{n}} + \DeclareUnicodeCharacter{014C}{\=O} + \DeclareUnicodeCharacter{014D}{\=o} + \DeclareUnicodeCharacter{014E}{\u{O}} + \DeclareUnicodeCharacter{014F}{\u{o}} + + \DeclareUnicodeCharacter{0150}{\H{O}} + \DeclareUnicodeCharacter{0151}{\H{o}} + \DeclareUnicodeCharacter{0152}{\OE} + \DeclareUnicodeCharacter{0153}{\oe} + \DeclareUnicodeCharacter{0154}{\'R} + \DeclareUnicodeCharacter{0155}{\'r} + \DeclareUnicodeCharacter{0158}{\v{R}} + \DeclareUnicodeCharacter{0159}{\v{r}} + \DeclareUnicodeCharacter{015A}{\'S} + \DeclareUnicodeCharacter{015B}{\'s} + \DeclareUnicodeCharacter{015C}{\^S} + \DeclareUnicodeCharacter{015D}{\^s} + \DeclareUnicodeCharacter{015E}{\cedilla{S}} + \DeclareUnicodeCharacter{015F}{\cedilla{s}} + + \DeclareUnicodeCharacter{0160}{\v{S}} + \DeclareUnicodeCharacter{0161}{\v{s}} + \DeclareUnicodeCharacter{0162}{\cedilla{t}} + \DeclareUnicodeCharacter{0163}{\cedilla{T}} + \DeclareUnicodeCharacter{0164}{\v{T}} + + \DeclareUnicodeCharacter{0168}{\~U} + \DeclareUnicodeCharacter{0169}{\~u} + \DeclareUnicodeCharacter{016A}{\=U} + \DeclareUnicodeCharacter{016B}{\=u} + \DeclareUnicodeCharacter{016C}{\u{U}} + \DeclareUnicodeCharacter{016D}{\u{u}} + \DeclareUnicodeCharacter{016E}{\ringaccent{U}} + \DeclareUnicodeCharacter{016F}{\ringaccent{u}} + + \DeclareUnicodeCharacter{0170}{\H{U}} + \DeclareUnicodeCharacter{0171}{\H{u}} + \DeclareUnicodeCharacter{0174}{\^W} + \DeclareUnicodeCharacter{0175}{\^w} + \DeclareUnicodeCharacter{0176}{\^Y} + \DeclareUnicodeCharacter{0177}{\^y} + \DeclareUnicodeCharacter{0178}{\"Y} + \DeclareUnicodeCharacter{0179}{\'Z} + \DeclareUnicodeCharacter{017A}{\'z} + \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} + \DeclareUnicodeCharacter{017C}{\dotaccent{z}} + \DeclareUnicodeCharacter{017D}{\v{Z}} + \DeclareUnicodeCharacter{017E}{\v{z}} + + \DeclareUnicodeCharacter{01C4}{D\v{Z}} + \DeclareUnicodeCharacter{01C5}{D\v{z}} + \DeclareUnicodeCharacter{01C6}{d\v{z}} + \DeclareUnicodeCharacter{01C7}{LJ} + \DeclareUnicodeCharacter{01C8}{Lj} + \DeclareUnicodeCharacter{01C9}{lj} + \DeclareUnicodeCharacter{01CA}{NJ} + \DeclareUnicodeCharacter{01CB}{Nj} + \DeclareUnicodeCharacter{01CC}{nj} + \DeclareUnicodeCharacter{01CD}{\v{A}} + \DeclareUnicodeCharacter{01CE}{\v{a}} + \DeclareUnicodeCharacter{01CF}{\v{I}} + + \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} + \DeclareUnicodeCharacter{01D1}{\v{O}} + \DeclareUnicodeCharacter{01D2}{\v{o}} + \DeclareUnicodeCharacter{01D3}{\v{U}} + \DeclareUnicodeCharacter{01D4}{\v{u}} + + \DeclareUnicodeCharacter{01E2}{\={\AE}} + \DeclareUnicodeCharacter{01E3}{\={\ae}} + \DeclareUnicodeCharacter{01E6}{\v{G}} + \DeclareUnicodeCharacter{01E7}{\v{g}} + \DeclareUnicodeCharacter{01E8}{\v{K}} + \DeclareUnicodeCharacter{01E9}{\v{k}} + + \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} + \DeclareUnicodeCharacter{01F1}{DZ} + \DeclareUnicodeCharacter{01F2}{Dz} + \DeclareUnicodeCharacter{01F3}{dz} + \DeclareUnicodeCharacter{01F4}{\'G} + \DeclareUnicodeCharacter{01F5}{\'g} + \DeclareUnicodeCharacter{01F8}{\`N} + \DeclareUnicodeCharacter{01F9}{\`n} + \DeclareUnicodeCharacter{01FC}{\'{\AE}} + \DeclareUnicodeCharacter{01FD}{\'{\ae}} + \DeclareUnicodeCharacter{01FE}{\'{\O}} + \DeclareUnicodeCharacter{01FF}{\'{\o}} + + \DeclareUnicodeCharacter{021E}{\v{H}} + \DeclareUnicodeCharacter{021F}{\v{h}} + + \DeclareUnicodeCharacter{0226}{\dotaccent{A}} + \DeclareUnicodeCharacter{0227}{\dotaccent{a}} + \DeclareUnicodeCharacter{0228}{\cedilla{E}} + \DeclareUnicodeCharacter{0229}{\cedilla{e}} + \DeclareUnicodeCharacter{022E}{\dotaccent{O}} + \DeclareUnicodeCharacter{022F}{\dotaccent{o}} + + \DeclareUnicodeCharacter{0232}{\=Y} + \DeclareUnicodeCharacter{0233}{\=y} + \DeclareUnicodeCharacter{0237}{\dotless{j}} + + \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} + \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} + \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} + \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} + \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} + \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} + \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} + \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} + \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} + \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} + \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} + \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} + + \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} + \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} + + \DeclareUnicodeCharacter{1E20}{\=G} + \DeclareUnicodeCharacter{1E21}{\=g} + \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} + \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} + \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} + \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} + \DeclareUnicodeCharacter{1E26}{\"H} + \DeclareUnicodeCharacter{1E27}{\"h} + + \DeclareUnicodeCharacter{1E30}{\'K} + \DeclareUnicodeCharacter{1E31}{\'k} + \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} + \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} + \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} + \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} + \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} + \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} + \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} + \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} + \DeclareUnicodeCharacter{1E3E}{\'M} + \DeclareUnicodeCharacter{1E3F}{\'m} + + \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} + \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} + \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} + \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} + \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} + \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} + \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} + \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} + \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} + \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} + + \DeclareUnicodeCharacter{1E54}{\'P} + \DeclareUnicodeCharacter{1E55}{\'p} + \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} + \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} + \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} + \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} + \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} + \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} + \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} + \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} + + \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} + \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} + \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} + \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} + \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} + \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} + \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} + \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} + \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} + \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} + + \DeclareUnicodeCharacter{1E7C}{\~V} + \DeclareUnicodeCharacter{1E7D}{\~v} + \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} + \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} + + \DeclareUnicodeCharacter{1E80}{\`W} + \DeclareUnicodeCharacter{1E81}{\`w} + \DeclareUnicodeCharacter{1E82}{\'W} + \DeclareUnicodeCharacter{1E83}{\'w} + \DeclareUnicodeCharacter{1E84}{\"W} + \DeclareUnicodeCharacter{1E85}{\"w} + \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} + \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} + \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} + \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} + \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} + \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} + \DeclareUnicodeCharacter{1E8C}{\"X} + \DeclareUnicodeCharacter{1E8D}{\"x} + \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} + \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} + + \DeclareUnicodeCharacter{1E90}{\^Z} + \DeclareUnicodeCharacter{1E91}{\^z} + \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} + \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} + \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} + \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} + \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} + \DeclareUnicodeCharacter{1E97}{\"t} + \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} + \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} + + \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} + \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} + + \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} + \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} + \DeclareUnicodeCharacter{1EBC}{\~E} + \DeclareUnicodeCharacter{1EBD}{\~e} + + \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} + \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} + \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} + \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} + + \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} + \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} + + \DeclareUnicodeCharacter{1EF2}{\`Y} + \DeclareUnicodeCharacter{1EF3}{\`y} + \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} + + \DeclareUnicodeCharacter{1EF8}{\~Y} + \DeclareUnicodeCharacter{1EF9}{\~y} + + \DeclareUnicodeCharacter{2013}{--} + \DeclareUnicodeCharacter{2014}{---} + \DeclareUnicodeCharacter{2018}{\quoteleft} + \DeclareUnicodeCharacter{2019}{\quoteright} + \DeclareUnicodeCharacter{201A}{\quotesinglbase} + \DeclareUnicodeCharacter{201C}{\quotedblleft} + \DeclareUnicodeCharacter{201D}{\quotedblright} + \DeclareUnicodeCharacter{201E}{\quotedblbase} + \DeclareUnicodeCharacter{2022}{\bullet} + \DeclareUnicodeCharacter{2026}{\dots} + \DeclareUnicodeCharacter{2039}{\guilsinglleft} + \DeclareUnicodeCharacter{203A}{\guilsinglright} + \DeclareUnicodeCharacter{20AC}{\euro} + + \DeclareUnicodeCharacter{2192}{\expansion} + \DeclareUnicodeCharacter{21D2}{\result} + + \DeclareUnicodeCharacter{2212}{\minus} + \DeclareUnicodeCharacter{2217}{\point} + \DeclareUnicodeCharacter{2261}{\equiv} +}% end of \utfeightchardefs + + +% US-ASCII character definitions. +\def\asciichardefs{% nothing need be done + \relax +} + +% Make non-ASCII characters printable again for compatibility with +% existing Texinfo documents that may use them, even without declaring a +% document encoding. +% +\setnonasciicharscatcode \other + + +\message{formatting,} + \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt @@ -6840,7 +8586,7 @@ should work if nowhere else does.} % Don't be so finicky about underfull hboxes, either. \hbadness = 2000 -% Following George Bush, just get rid of widows and orphans. +% Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 @@ -6887,6 +8633,10 @@ should work if nowhere else does.} \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax + % if we don't reset these, they will remain at "1 true in" of + % whatever layout pdftex was dumped with. + \pdfhorigin = 1 true in + \pdfvorigin = 1 true in \fi % \setleading{\textleading} @@ -6901,7 +8651,7 @@ should work if nowhere else does.} \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}% + \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% @@ -6913,7 +8663,7 @@ should work if nowhere else does.} \textleading = 12pt % \internalpagesizes{7.5in}{5in}% - {\voffset}{.25in}% + {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % @@ -6957,7 +8707,7 @@ should work if nowhere else does.} % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex - \internalpagesizes{51\baselineskip}{160mm} + \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% @@ -7022,7 +8772,7 @@ should work if nowhere else does.} \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \dimen0 = #1 + \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize @@ -7117,6 +8867,13 @@ should work if nowhere else does.} % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} +% Used sometimes to turn off (effectively) the active characters even after +% parsing them. +\def\turnoffactive{% + \normalturnoffactive + \otherbackslash +} + \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, @@ -7124,28 +8881,29 @@ should work if nowhere else does.} \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work -% \rawbackslash defines an active \ to do \backslashcurfont. -% \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. -{\catcode`\\=\active - @gdef@rawbackslash{@let\=@backslashcurfont} - @gdef@otherbackslash{@let\=@realbackslash} -} - % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\backslashcurfont}} - +% In texinfo, backslash is an active character; it prints the backslash +% in fixed width font. \catcode`\\=\active +@def@normalbackslash{{@tt@backslashcurfont}} +% On startup, @fixbackslash assigns: +% @let \ = @normalbackslash + +% \rawbackslash defines an active \ to do \backslashcurfont. +% \otherbackslash defines an active \ to be a literal `\' character with +% catcode other. +@gdef@rawbackslash{@let\=@backslashcurfont} +@gdef@otherbackslash{@let\=@realbackslash} -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{% +% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of +% the literal character `\'. +% +@def@normalturnoffactive{% + @let\=@normalbackslash @let"=@normaldoublequote - @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @@ -7157,12 +8915,6 @@ should work if nowhere else does.} @unsepspaces } -% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. (Thus, \ is not expandable when this is in -% effect.) -% -@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} - % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive @@ -7175,7 +8927,7 @@ should work if nowhere else does.} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix +% the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. diff --git a/libjava/classpath/examples/Makefile.am b/libjava/classpath/examples/Makefile.am index 8d619e14dc9..56b3c45776d 100644 --- a/libjava/classpath/examples/Makefile.am +++ b/libjava/classpath/examples/Makefile.am @@ -1,24 +1,7 @@ ## Input file for automake to generate the Makefile.in used by configure -GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip':'$(top_builddir)/tools/tools.zip' - -# Setup the compiler to use the GNU Classpath library we just build -#if FOUND_GCJ -#JCOMPILER = $(GCJ) --bootclasspath '$(top_builddir)/lib' --classpath . -C -#else -#if FOUND_JIKES -#JCOMPILER = $(JIKES) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:. -#else -if FOUND_ECJ -JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_CLASSPATH) -classpath . -else -if FOUND_JAVAC -JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . -else -error dunno how to setup the JCOMPILER and compile -#endif -#endif -endif -endif +GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip' + +JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip' # All our example java source files EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java diff --git a/libjava/classpath/examples/Makefile.in b/libjava/classpath/examples/Makefile.in index e5e0a0e9c0b..fa7082c3823 100644 --- a/libjava/classpath/examples/Makefile.in +++ b/libjava/classpath/examples/Makefile.in @@ -51,6 +51,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -140,7 +142,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -152,19 +153,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -196,15 +186,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -252,10 +239,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -327,19 +312,8 @@ target_os = @target_os@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -GLIBJ_CLASSPATH = '$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip':'$(top_builddir)/tools/tools.zip' -@FOUND_ECJ_FALSE@@FOUND_JAVAC_TRUE@JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath . - -# Setup the compiler to use the GNU Classpath library we just build -#if FOUND_GCJ -#JCOMPILER = $(GCJ) --bootclasspath '$(top_builddir)/lib' --classpath . -C -#else -#if FOUND_JIKES -#JCOMPILER = $(JIKES) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:. -#else -@FOUND_ECJ_TRUE@JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_CLASSPATH) -classpath . -#endif -#endif +GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip' +JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip' # All our example java source files EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java @@ -568,7 +542,6 @@ uninstall-am: uninstall-exampleDATA uninstall-info-am uninstall-local uninstall uninstall-am uninstall-exampleDATA uninstall-info-am \ uninstall-local -@FOUND_ECJ_FALSE@@FOUND_JAVAC_FALSE@error dunno how to setup the JCOMPILER and compile # Make sure all sources and icons are also installed so users can use them. # (Be careful to strip off the srcdir part of the path when installing.) diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java index 652ee53ccee..155ad170bc4 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java +++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java @@ -40,7 +40,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication; import gnu.CORBA.OrbRestricted; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java index 2ac03a895ed..83f422c5273 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java +++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java @@ -39,7 +39,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication; import gnu.CORBA.OrbRestricted; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java index ccf792da875..eac1c9a2415 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java +++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java @@ -42,7 +42,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java index 6ad13a9bbc7..adf4d25d583 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java +++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java @@ -41,7 +41,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication; import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; -import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java b/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java index 9d3b7cebe41..aea8cd4f68e 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java +++ b/libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java @@ -21,7 +21,6 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA package gnu.classpath.examples.awt; import java.awt.*; -import java.awt.event.*; import java.applet.*; diff --git a/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java b/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java index 6d359180891..a0b51f0e23b 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java +++ b/libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java @@ -601,7 +601,7 @@ public class J2dBenchmark void runTestSet(Graphics2D g, Dimension size) { // Any user-specified options (ie set transforms, rendering hints) - prepareGraphics((Graphics2D) g); + prepareGraphics(g); if ((awtTests & J2DTEST_ARC) != 0) { diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java index ad8234555e5..381dca44870 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java +++ b/libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java @@ -22,34 +22,19 @@ package gnu.classpath.examples.management; import java.lang.management.ManagementFactory; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; +import java.util.Set; -import javax.management.DynamicMBean; +import javax.management.MBeanServer; +import javax.management.ObjectName; public class TestBeans { public static void main(String[] args) throws Exception { - List beans = new ArrayList(); - /* FIXME: When there's a server, this will be easier... :) */ - beans.add(ManagementFactory.getOperatingSystemMXBean()); - beans.add(ManagementFactory.getRuntimeMXBean()); - beans.add(ManagementFactory.getThreadMXBean()); - beans.add(ManagementFactory.getCompilationMXBean()); - beans.add(ManagementFactory.getClassLoadingMXBean()); - beans.add(ManagementFactory.getMemoryMXBean()); - beans.addAll(ManagementFactory.getMemoryPoolMXBeans()); - beans.addAll(ManagementFactory.getMemoryManagerMXBeans()); - beans.addAll(ManagementFactory.getGarbageCollectorMXBeans()); - Iterator it = beans.iterator(); - while (it.hasNext()) - { - DynamicMBean bean = (DynamicMBean) it.next(); - if (bean != null) - System.out.println(bean.getMBeanInfo()); - } + MBeanServer server = ManagementFactory.getPlatformMBeanServer(); + Set<ObjectName> names = server.queryNames(null, null); + for (ObjectName name : names) + System.out.println(server.getMBeanInfo(name)); } } diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java index 113a4f2582c..b4e8d98268c 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java +++ b/libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java @@ -23,10 +23,18 @@ package gnu.classpath.examples.management; import java.lang.management.ClassLoadingMXBean; import java.lang.management.ManagementFactory; +import static java.lang.management.ManagementFactory.CLASS_LOADING_MXBEAN_NAME; + +import javax.management.Attribute; +import javax.management.MBeanServer; +import javax.management.ObjectName; + public class TestClassLoading { public static void main(String[] args) + throws Exception { + System.out.println("Testing locally..."); ClassLoadingMXBean bean = ManagementFactory.getClassLoadingMXBean(); System.out.println("Bean: " + bean); System.out.println("Loaded classes: " + bean.getLoadedClassCount()); @@ -37,5 +45,33 @@ public class TestClassLoading System.out.println("Changing verbose setting..."); bean.setVerbose(!verbosity); System.out.println("Verbose class output: " + (bean.isVerbose() ? "yes" : "no")); + System.out.println("Testing via the server..."); + MBeanServer server = ManagementFactory.getPlatformMBeanServer(); + ObjectName classBean = new ObjectName(CLASS_LOADING_MXBEAN_NAME); + System.out.println("Bean: " + classBean); + System.out.println("Loaded classes: " + server.getAttribute(classBean, "LoadedClassCount")); + System.out.println("Unloaded classes: " + server.getAttribute(classBean, + "UnloadedClassCount")); + System.out.println("Total loaded classes: " + server.getAttribute(classBean, + "TotalLoadedClassCount")); + verbosity = (Boolean) server.getAttribute(classBean, "Verbose"); + System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); + System.out.println("Changing verbose setting..."); + server.setAttribute(classBean, new Attribute("Verbose", !verbosity)); + System.out.println("Verbose class output: " + ((Boolean) + server.getAttribute(classBean, "Verbose") ? + "yes" : "no")); + System.out.println("Testing via the proxy..."); + bean = ManagementFactory.newPlatformMXBeanProxy(server, CLASS_LOADING_MXBEAN_NAME, + ClassLoadingMXBean.class); + System.out.println("Bean: " + bean); + System.out.println("Loaded classes: " + bean.getLoadedClassCount()); + System.out.println("Unloaded classes: " + bean.getUnloadedClassCount()); + System.out.println("Total loaded classes: " + bean.getTotalLoadedClassCount()); + verbosity = bean.isVerbose(); + System.out.println("Verbose class output: " + (verbosity ? "yes" : "no")); + System.out.println("Changing verbose setting..."); + bean.setVerbose(!verbosity); + System.out.println("Verbose class output: " + (bean.isVerbose() ? "yes" : "no")); } } diff --git a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java b/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java index 2476ed76fe0..1836c3025d5 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java +++ b/libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java @@ -22,8 +22,6 @@ package gnu.classpath.examples.management; import java.lang.management.ManagementFactory; import java.lang.management.MemoryPoolMXBean; -import java.lang.management.MemoryUsage; - import java.util.Arrays; import java.util.Iterator; diff --git a/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java b/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java new file mode 100644 index 00000000000..5c44c9a10f1 --- /dev/null +++ b/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java @@ -0,0 +1,222 @@ +/* AudioPlayerSample.java -- Simple Java Audio Player + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ +package gnu.classpath.examples.sound; + +import java.io.File; +import java.io.IOException; +import java.util.Map; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioInputStream; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.DataLine; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.SourceDataLine; +import javax.sound.sampled.UnsupportedAudioFileException; + +/** + * A simple demo to show the use of the Java Sound API. + * It plays the given file (up to the end, so don't pass the 26 minutes long + * Pink Floyd's Echoes unless you really want!!). + * + * See: http://jsresources.org/examples/SimpleAudioPlayer.java.html + * + * @author Mario Torre <neugens@limasoftware.net> + */ +public class AudioPlayerSample +{ + private static final int EXTERNAL_BUFFER_SIZE = 128000; + + /** + * @param args + */ + public static void main(String[] args) + { + if (args.length < 1) + { + System.out.println("Radio Classpath -: Usage: " + + "AudioPlayerSample [file]"); + return; + } + + String file = args[0]; + + System.out.println("Welcome to Radio Classpath, only great music for you!"); + System.out.println("Today's DJ Tap The WaterDroplet"); + + // now create the AudioInputStream + AudioInputStream audioInputStream = null; + try + { + audioInputStream = AudioSystem.getAudioInputStream(new File(file)); + } + catch (UnsupportedAudioFileException e) + { + // This happen when the subsystem is unable to parse the kind of + // audio file we are submitting + // See the README for supported audio file types under Classpath + // for the version you are using. + e.printStackTrace(); + return; + } + catch (IOException e) + { + e.printStackTrace(); + return; + } + + // get informations about the kind of file we are about to play + AudioFormat audioFormat = audioInputStream.getFormat(); + + System.out.println("Playing file: " + file); + System.out.println("format: " + audioFormat.toString()); + + System.out.print("Additional properties: "); + + // now, we try to get all the properties we have in this AudioFormat + // and display them + Map<String, Object> properties = audioFormat.properties(); + if (properties.size() < 0) + { + System.out.println("none"); + } + else + { + System.out.println("found #" + properties.size() + " properties"); + for (String key : properties.keySet()) + { + System.out.println(key + ": " + properties.get(key)); + } + } + + // let's setup things for playing + // first, we require a Line. As we are doing playing, we will ask for a + // SourceDataLine + SourceDataLine line = null; + + // To get the source line, we first need to build an Info object + // this is done in one line: + DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat); + + System.out.println("searching line..."); + + // usually, if a backend can parse a file type, it can also + // create a line to handle it, but that's not guaranteed + // so we need to take care and to handle a possible + // LineUnavailableException + try + { + line = (SourceDataLine) AudioSystem.getLine(info); + + System.out.println("line found, opening..."); + + // once created, a line must be opened to let data flow + // though it. + line.open(audioFormat); + } + catch (LineUnavailableException e) + { + // in a real application you should signal that in a kindly way to + // your users + e.printStackTrace(); + return; + } + catch (Exception e) + { + e.printStackTrace(); + return; + } + + // an open line pass data to the backend only when it is in + // a state called "started" ("playing" or "play" in some other + // framework) + System.out.print("starting line... "); + + line.start(); + System.out.println("done"); + + // now we can start reading data from the AudioStream and writing + // data to the pipeline. The Java Sound API is rather low level + // so let you pass up to one byte of data at a time + // (with some constraints, refer to the API documentation to know more) + // We will do some buffering. You may want to check the frame size + // to allow a better buffering, also. + + System.out.println("now playing..."); + + int nBytesRead = 0; + byte[] abData = new byte[EXTERNAL_BUFFER_SIZE]; + while (nBytesRead != - 1) + { + try + { + nBytesRead = audioInputStream.read(abData, 0, abData.length); + } + catch (IOException e) + { + e.printStackTrace(); + } + + if (nBytesRead >= 0) + { + // this method returns the number of bytes actuall written + // to the line. You may want to use this number to check + // for events, display the current position (give also a + // look to the API for other ways of doing that) etc.. + line.write(abData, 0, nBytesRead); + } + } + + System.out.print("stream finished, draining line... "); + + // call this method to ensure that all the data in the internal buffer + // reach the audio backend, otherwise your application will + // cut the last frames of audio data (and users will not enjoy the last + // seconds of their precious music) + line.drain(); + + // Once done, we can close the line. Note that a line, once closed + // may not be reopened (depends on the backend, in some cases a "reopen", + // if allowed, really opens a new line, reallocating all the resources) + + System.out.println("line drained, now exiting"); + line.close(); + + System.out.println("We hope you enjoyed Radio Classpath!"); + } + +} diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java index 28dce1c3462..b338e438027 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java @@ -44,7 +44,6 @@ import javax.swing.text.AbstractDocument; import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.DocumentFilter; -import javax.swing.text.TextAction; /** * A demonstration of the <code>javax.swing.text.DocumentFilter</code> class. diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java index d4a97b3ef45..9f8e3e7d58c 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java @@ -41,25 +41,18 @@ package gnu.classpath.examples.swing; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; -import java.awt.Rectangle; -import java.text.DateFormat; -import java.util.Date; - import javax.swing.AbstractCellEditor; import javax.swing.BorderFactory; import javax.swing.DefaultCellEditor; -import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JFrame; -import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JScrollPane; import javax.swing.JSlider; import javax.swing.JTable; -import javax.swing.JTextField; import javax.swing.SwingUtilities; import javax.swing.border.Border; import javax.swing.plaf.metal.MetalIconFactory; diff --git a/libjava/classpath/external/Makefile.in b/libjava/classpath/external/Makefile.in index 145a286297a..e2305475c33 100644 --- a/libjava/classpath/external/Makefile.in +++ b/libjava/classpath/external/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -138,7 +140,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -150,19 +151,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -194,15 +184,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -250,10 +237,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/external/jsr166/Makefile.in b/libjava/classpath/external/jsr166/Makefile.in index 47ead115acc..62098ab7655 100644 --- a/libjava/classpath/external/jsr166/Makefile.in +++ b/libjava/classpath/external/jsr166/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/external/relaxngDatatype/Makefile.in b/libjava/classpath/external/relaxngDatatype/Makefile.in index 8695dfa45f9..8fbbc008d47 100644 --- a/libjava/classpath/external/relaxngDatatype/Makefile.in +++ b/libjava/classpath/external/relaxngDatatype/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/external/sax/Makefile.in b/libjava/classpath/external/sax/Makefile.in index d8abb93dfb9..6e771b065b4 100644 --- a/libjava/classpath/external/sax/Makefile.in +++ b/libjava/classpath/external/sax/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in index 38577db88bd..afdb5b459ea 100644 --- a/libjava/classpath/external/w3c_dom/Makefile.in +++ b/libjava/classpath/external/w3c_dom/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/gnu/CORBA/BigDecimalHelper.java b/libjava/classpath/gnu/CORBA/BigDecimalHelper.java index f1e1dd6b42c..119db045f0f 100644 --- a/libjava/classpath/gnu/CORBA/BigDecimalHelper.java +++ b/libjava/classpath/gnu/CORBA/BigDecimalHelper.java @@ -45,7 +45,6 @@ import java.io.IOException; import java.math.BigDecimal; import java.math.BigInteger; -import org.omg.CORBA.TypeCode; import org.omg.CORBA.TypeCodePackage.BadKind; /** @@ -128,9 +127,6 @@ public class BigDecimalHelper * * @param out a stream to write into. * @param x a big decimal to write. - * @param digits a number of the decimal digits in the record - * being written. For the smaller - * numbers, zeroes are added to the left. * * @throws IOException if the stream write method throws one. * @throws BadKind if this BigDecimal has more digits than diff --git a/libjava/classpath/gnu/CORBA/ByteArrayComparator.java b/libjava/classpath/gnu/CORBA/ByteArrayComparator.java index 8491154638d..e601399dffb 100644 --- a/libjava/classpath/gnu/CORBA/ByteArrayComparator.java +++ b/libjava/classpath/gnu/CORBA/ByteArrayComparator.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.CORBA; -import java.util.Arrays; import java.util.Comparator; /** diff --git a/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java b/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java index 866ec2cc945..f582c31bd18 100644 --- a/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java +++ b/libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java @@ -195,9 +195,9 @@ public abstract class AbstractCdrInput * Set the Big Endian or Little Endian encoding. The stream reads Big Endian * by default. * - * @param use_little_endian if true, the stream expect the multi-byte data in - * the form "less significant byte first" (Little Endian). This is the - * opposite to the java standard (Big Endian). + * @param use_big_endian if true, the stream expect the multi-byte data in + * the form "most significant byte first" (Big Endian). This is the + * java standard. */ public void setBigEndian(boolean use_big_endian) { @@ -208,7 +208,7 @@ public abstract class AbstractCdrInput /** * Get the used encoding. * - * @param true for Big Endian, false for Little Endian. + * @return true for Big Endian, false for Little Endian. */ public boolean isBigEndian() { @@ -654,7 +654,7 @@ public abstract class AbstractCdrInput byte[] r = new byte[l]; int n = 0; - reading: while (n < r.length) + while (n < r.length) { n += read(r, n, r.length - n); } diff --git a/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java b/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java index 7b4d5ec58ff..7f3e3ab0daf 100644 --- a/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java +++ b/libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java @@ -291,7 +291,7 @@ public abstract class AbstractCdrOutput /** * Write a single byte. - * @param a byte to write (low 8 bits are written). + * @param n byte to write (low 8 bits are written). */ public void write(int n) { @@ -497,7 +497,7 @@ public abstract class AbstractCdrOutput * Writes the lower bytes of the passed array members. * * @param chars an array - * @param offsets offset + * @param offset offset * @param length length */ public void write_char_array(char[] chars, int offset, int length) diff --git a/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java b/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java index 0c18dafb195..273ecea5024 100644 --- a/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java +++ b/libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java @@ -104,7 +104,7 @@ public class HeadlessInput /** * Create an instance, reading from the given buffer. * - * @param a_stram a stream from where the data will be read. + * @param a_stream a stream from where the data will be read. * @param inheritSettings a stream from that endian and other settings are * inherited. */ @@ -151,7 +151,7 @@ public class HeadlessInput else { subsequentCalls = true; - Serializable value = (Serializable) Vio.readValue(this, NONE, null, + Serializable value = Vio.readValue(this, NONE, null, null, repository_id, null, null); return value; } @@ -167,7 +167,7 @@ public class HeadlessInput else { subsequentCalls = true; - value = (Serializable) Vio.readValue(this, NONE, value, null, null, + value = Vio.readValue(this, NONE, value, null, null, null, null); return value; } @@ -186,7 +186,7 @@ public class HeadlessInput { subsequentCalls = true; Serializable value = (Serializable) Vio.instantiateAnyWay(clz); - value = (Serializable) Vio.readValue(this, NONE, value, null, null, + value = Vio.readValue(this, NONE, value, null, null, null, null); return value; } diff --git a/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java b/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java index 02cfa08ae8e..a439b658b44 100644 --- a/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java +++ b/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.CORBA.CDR; -import java.io.DataInput; import java.io.EOFException; import java.io.FilterInputStream; import java.io.IOException; diff --git a/libjava/classpath/gnu/CORBA/CDR/Vio.java b/libjava/classpath/gnu/CORBA/CDR/Vio.java index 28f1c5672f6..67a69b87458 100644 --- a/libjava/classpath/gnu/CORBA/CDR/Vio.java +++ b/libjava/classpath/gnu/CORBA/CDR/Vio.java @@ -637,7 +637,7 @@ public abstract class Vio r = new byte[chunk_size + 256]; n = 0; - reading: while (n < chunk_size) + while (n < chunk_size) n += input.read(r, n, chunk_size - n); output.write(r, 0, n); } diff --git a/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java b/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java index 774c92816ae..929dc72ec8a 100644 --- a/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java +++ b/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java @@ -167,7 +167,7 @@ public class gnuRuntime * @param a_id a repository Id, if only one Id was specified in the stream. * @param a_ids a repository Ids, if the multiple Ids were specified in te * stream. - * @param a_codabase a codebase, if it was specified in the stream. + * @param a_codebase a codebase, if it was specified in the stream. */ public gnuRuntime(String a_codebase, Object a_target) { diff --git a/libjava/classpath/gnu/CORBA/CollocatedOrbs.java b/libjava/classpath/gnu/CORBA/CollocatedOrbs.java index fc1e513efec..51ad836231c 100644 --- a/libjava/classpath/gnu/CORBA/CollocatedOrbs.java +++ b/libjava/classpath/gnu/CORBA/CollocatedOrbs.java @@ -44,10 +44,6 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; -import org.omg.CORBA.LocalObject; -import org.omg.CORBA.portable.Delegate; -import org.omg.CORBA.portable.ObjectImpl; - /** * This class provides support for the direct method invocations without * involving the network in the case when both ORBs run on the same java diff --git a/libjava/classpath/gnu/CORBA/Connected_objects.java b/libjava/classpath/gnu/CORBA/Connected_objects.java index 53ef2dd17d9..655dbe38844 100644 --- a/libjava/classpath/gnu/CORBA/Connected_objects.java +++ b/libjava/classpath/gnu/CORBA/Connected_objects.java @@ -109,7 +109,7 @@ public class Connected_objects /** * Get the record of the stored object. * - * @param object the stored object + * @param stored_object the stored object * * @return the record about the stored object, null if * this object is not stored here. @@ -141,7 +141,7 @@ public class Connected_objects * generated automatically. * * @param object the object to add. - * @param port, on that the ORB will be listening to the remote + * @param port on that the ORB will be listening to the remote * invocations. * * @return the newly created object record. diff --git a/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java b/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java index c96cbedc73b..63fe117f4de 100644 --- a/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java +++ b/libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.CORBA.DynAn; -import gnu.CORBA.TypeKindNamer; - import org.omg.CORBA.Any; import org.omg.CORBA.CompletionStatus; import org.omg.CORBA.ORB; diff --git a/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java b/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java index 825cd0a5638..dc056adff9b 100644 --- a/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java +++ b/libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java @@ -46,7 +46,6 @@ import org.omg.CORBA.BAD_PARAM; import org.omg.CORBA.ORB; import org.omg.CORBA.TCKind; import org.omg.CORBA.TypeCode; -import org.omg.CORBA.TypeCodePackage.BadKind; import org.omg.CORBA.portable.Streamable; import org.omg.DynamicAny.DynAny; import org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode; diff --git a/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java b/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java index ef5aed64512..3cd8efe18f4 100644 --- a/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java +++ b/libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java @@ -271,7 +271,6 @@ public class gnuDynUnion // Get the discriminator variant. - Variants: for (int i = 0; i < final_type.member_count(); i++) { if (final_type.member_label(i).equal(da)) @@ -392,7 +391,6 @@ public class gnuDynUnion // Get the discriminator variant. - Variants: for (int i = 0; i < final_type.member_count(); i++) { if (final_type.member_label(i).equal(da)) diff --git a/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java b/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java index 8fc8697a4f3..6f84da8e5ea 100644 --- a/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java +++ b/libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java @@ -39,10 +39,8 @@ exception statement from your version. */ package gnu.CORBA; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.NO_IMPLEMENT; import org.omg.CORBA.TypeCode; import org.omg.CORBA.UNKNOWN; -import org.omg.CORBA.UnknownUserException; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; import org.omg.CORBA.portable.Streamable; diff --git a/libjava/classpath/gnu/CORBA/GIOP/CancelHeader.java b/libjava/classpath/gnu/CORBA/GIOP/CancelHeader.java index 9f4de0d87d9..40f373721c7 100644 --- a/libjava/classpath/gnu/CORBA/GIOP/CancelHeader.java +++ b/libjava/classpath/gnu/CORBA/GIOP/CancelHeader.java @@ -55,16 +55,16 @@ public abstract class CancelHeader public int request_id; /** - * Write the header. + * Read the header. * - * @param out a stream to write to. + * @param input a stream to read from. */ public abstract void read(InputStream input); /** * Write the header. * - * @param out a stream to write to. + * @param output a stream to write to. */ public abstract void write(OutputStream output); } diff --git a/libjava/classpath/gnu/CORBA/GIOP/CodeSetServiceContext.java b/libjava/classpath/gnu/CORBA/GIOP/CodeSetServiceContext.java index ab565db3797..81412e0298e 100644 --- a/libjava/classpath/gnu/CORBA/GIOP/CodeSetServiceContext.java +++ b/libjava/classpath/gnu/CORBA/GIOP/CodeSetServiceContext.java @@ -41,8 +41,6 @@ package gnu.CORBA.GIOP; import gnu.CORBA.CDR.AbstractCdrInput; import gnu.CORBA.CDR.AbstractCdrOutput; import gnu.CORBA.IOR; -import gnu.CORBA.IOR.CodeSets_profile; - import java.io.IOException; /** diff --git a/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java b/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java index 0252838581d..cac2405fc77 100644 --- a/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java +++ b/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java @@ -398,7 +398,7 @@ public class MessageHeader if (service != null) service.setSoTimeout(to_read); - reading: while (n < r.length) + while (n < r.length) { n += source.read(r, n, r.length - n); } @@ -426,7 +426,7 @@ public class MessageHeader int dn; n = 0; - reading: while (n < h2.message_size) + while (n < h2.message_size) { dn = source.read(r, 0, h2.message_size - n); diff --git a/libjava/classpath/gnu/CORBA/GIOP/v1_0/CancelHeader.java b/libjava/classpath/gnu/CORBA/GIOP/v1_0/CancelHeader.java index 6e3650c4ba9..1158492235c 100644 --- a/libjava/classpath/gnu/CORBA/GIOP/v1_0/CancelHeader.java +++ b/libjava/classpath/gnu/CORBA/GIOP/v1_0/CancelHeader.java @@ -51,9 +51,9 @@ public class CancelHeader extends gnu.CORBA.GIOP.CancelHeader { /** - * Write the header. + * Read the header. * - * @param out a stream to write to. + * @param input a stream to read from. */ public void read(InputStream input) { @@ -63,7 +63,7 @@ public class CancelHeader /** * Write the header. * - * @param out a stream to write to. + * @param output a stream to write to. */ public void write(OutputStream output) { diff --git a/libjava/classpath/gnu/CORBA/IOR.java b/libjava/classpath/gnu/CORBA/IOR.java index 917e1983289..5e13aecabd3 100644 --- a/libjava/classpath/gnu/CORBA/IOR.java +++ b/libjava/classpath/gnu/CORBA/IOR.java @@ -385,7 +385,7 @@ public class IOR /** * Parse the provided stringifed reference. * - * @param stringified_reference, in the form of IOR:nnnnnn..... + * @param stringified_reference in the form of IOR:nnnnnn..... * * @return the parsed IOR * diff --git a/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java b/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java index 2b77de58e0e..d8dcabf120f 100644 --- a/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java +++ b/libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java @@ -42,7 +42,6 @@ import org.omg.CORBA.OBJ_ADAPTER; import org.omg.CORBA.OMGVMCID; import org.omg.PortableInterceptor.IORInfo; import org.omg.PortableInterceptor.IORInterceptor; -import org.omg.PortableInterceptor.IORInterceptorOperations; import org.omg.PortableInterceptor.IORInterceptor_3_0Operations; import org.omg.PortableInterceptor.ObjectReferenceTemplate; diff --git a/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java b/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java index 4bb895bb376..e0ce16a1496 100644 --- a/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java +++ b/libjava/classpath/gnu/CORBA/Interceptor/Registrator.java @@ -142,7 +142,7 @@ public class Registrator extends LocalObject implements ORBInitInfo * Create the interceptor collection from the given properties, using the * agreed naming convention. * - * @param orb the ORB being initialised. + * @param an_orb the ORB being initialised. * @param props the cumulated set of properties where the orb initializer * pattern is searched. * @param an_args the argument string array, passed to ORB.init. diff --git a/libjava/classpath/gnu/CORBA/IorDelegate.java b/libjava/classpath/gnu/CORBA/IorDelegate.java index 8eb43aa7d69..a2c5a0469be 100644 --- a/libjava/classpath/gnu/CORBA/IorDelegate.java +++ b/libjava/classpath/gnu/CORBA/IorDelegate.java @@ -58,8 +58,6 @@ import org.omg.PortableInterceptor.ForwardRequest; import java.io.IOException; -import java.net.Socket; - /** * The Classpath implementation of the {@link Delegate} functionality in the * case, when the object was constructed from an IOR object. The IOR can be @@ -87,8 +85,6 @@ public class IorDelegate extends SimpleDelegate * @param operation the method name * @param parameters the method parameters * @param returns the return value holder - * @param exceptions the exceptions that can be thrown by the method - * @param ctx_list the context list (null allowed) * * @return the created request. */ @@ -175,7 +171,7 @@ public class IorDelegate extends SimpleDelegate throws ApplicationException, RemarshalException { StreamBasedRequest request = (StreamBasedRequest) output; - Forwardings: while (true) + while (true) { try { diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java index aa922b96a54..205ad8bec84 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java +++ b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java @@ -62,7 +62,6 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; -import java.util.ArrayList; import java.util.StringTokenizer; /** diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java b/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java index d717b9d4011..7109fdb93e1 100644 --- a/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java +++ b/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java @@ -63,7 +63,7 @@ public class NameTransformer * representation. See {@link #toString(NameComponent)} for the * description of this format. * - * @param name the string form of the name. + * @param a_name the string form of the name. * * @return the array form of the name. * diff --git a/libjava/classpath/gnu/CORBA/ObjectCreator.java b/libjava/classpath/gnu/CORBA/ObjectCreator.java index 5937e76b31e..939d6923326 100644 --- a/libjava/classpath/gnu/CORBA/ObjectCreator.java +++ b/libjava/classpath/gnu/CORBA/ObjectCreator.java @@ -111,7 +111,7 @@ public class ObjectCreator * mapped to the local java class. The omg.org domain must be mapped into the * object in either org/omg or gnu/CORBA namespace. * - * @param IDL name + * @param idl name * @return instantiated object instance or null if no such available. */ public static java.lang.Object createObject(String idl, String suffix) diff --git a/libjava/classpath/gnu/CORBA/OrbFocused.java b/libjava/classpath/gnu/CORBA/OrbFocused.java index a0f9993c1a0..572acbc1131 100644 --- a/libjava/classpath/gnu/CORBA/OrbFocused.java +++ b/libjava/classpath/gnu/CORBA/OrbFocused.java @@ -185,7 +185,7 @@ public class OrbFocused p = (portServer) portServers.get(i); if (p.s_port == port) { - return (portServer) p; + return p; } } // The server is not yet instantiated. Instantiate. diff --git a/libjava/classpath/gnu/CORBA/OrbFunctional.java b/libjava/classpath/gnu/CORBA/OrbFunctional.java index bfb5e3d86c1..8fddc66270c 100644 --- a/libjava/classpath/gnu/CORBA/OrbFunctional.java +++ b/libjava/classpath/gnu/CORBA/OrbFunctional.java @@ -855,7 +855,7 @@ public class OrbFunctional extends OrbRestricted * internet address and port. With this information, the object can be found * by another ORB, possibly located on remote computer. * - * @param the CORBA object + * @param forObject CORBA object * @return the object IOR representation. * * @throws BAD_PARAM if the object has not been previously connected to this @@ -1040,7 +1040,7 @@ public class OrbFunctional extends OrbRestricted * computer, possibly running a different (not necessary java) CORBA * implementation. * - * @param ior the object IOR representation string. + * @param an_ior the object IOR representation string. * * @return the found CORBA object. * @see object_to_string(org.omg.CORBA.Object) diff --git a/libjava/classpath/gnu/CORBA/OrbRestricted.java b/libjava/classpath/gnu/CORBA/OrbRestricted.java index c34584995a6..4ae50b1a3a1 100644 --- a/libjava/classpath/gnu/CORBA/OrbRestricted.java +++ b/libjava/classpath/gnu/CORBA/OrbRestricted.java @@ -65,7 +65,6 @@ import org.omg.CORBA.UnionMember; import org.omg.CORBA.portable.OutputStream; import org.omg.CORBA.portable.ValueFactory; import org.omg.PortableInterceptor.ClientRequestInterceptorOperations; -import org.omg.PortableInterceptor.IORInterceptorOperations; import org.omg.PortableInterceptor.IORInterceptor_3_0Operations; import org.omg.PortableInterceptor.ServerRequestInterceptorOperations; diff --git a/libjava/classpath/gnu/CORBA/Poa/AOM.java b/libjava/classpath/gnu/CORBA/Poa/AOM.java index 70e787af151..f8820bff83b 100644 --- a/libjava/classpath/gnu/CORBA/Poa/AOM.java +++ b/libjava/classpath/gnu/CORBA/Poa/AOM.java @@ -163,7 +163,7 @@ public class AOM * Get the record of the stored object. If the object is mapped several times * under the different keys, one of the mappings is used. * - * @param object the stored object + * @param stored_object the stored object * * @return the record about the stored object, null if this object is not * stored here. diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java b/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java index 0dbca7cfbde..82e520904f1 100644 --- a/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java +++ b/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java @@ -421,7 +421,7 @@ public class gnuPOA * or adding the returned instance to any possible table. * * @param child_name the name of the poa being created. - * @param manager the poa manager (never null). + * @param a_manager the poa manager (never null). * @param policies the array of policies. * @param an_orb the ORB for this POA. * @@ -1239,7 +1239,7 @@ public class gnuPOA * @param x the aom entry, where the object is replaced by value, returned by * servant activator (if not null). * - * @param key the object key. + * @param object_key the object key. * * @param a_servant the servant that was passed as a parameter in the * activation method. @@ -1317,7 +1317,7 @@ public class gnuPOA /** * Set the adapter activator for this POA. * - * @param the activator being set. + * @param an_activator the activator being set. */ public void the_activator(AdapterActivator an_activator) { diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java b/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java index 7710306b748..28f4ecd281f 100644 --- a/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java +++ b/libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java @@ -41,7 +41,6 @@ package gnu.CORBA.Poa; import org.omg.CORBA.BAD_INV_ORDER; import org.omg.CORBA.LocalObject; import org.omg.PortableInterceptor.NON_EXISTENT; -import org.omg.PortableInterceptor.ObjectReferenceTemplate; import org.omg.PortableServer.POAManager; import org.omg.PortableServer.POAManagerPackage.AdapterInactive; import org.omg.PortableServer.POAManagerPackage.State; @@ -89,9 +88,9 @@ public class gnuPOAManager * Turns the associated POAs into active state, allowing them to receive * and process requests. * - * @throws if the POAs are in the inactive state. If once inactivated, - * the POA cannot be activated again. This method can only be called - * to leave the holding or discarding state. + * @throws AdapterInactive if the POAs are in the inactive state. + * If once inactivated, the POA cannot be activated again. This + * method can only be called to leave the holding or discarding state. */ public void activate() throws AdapterInactive diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java b/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java index 77b0ff46792..115f4f850fb 100644 --- a/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java +++ b/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java @@ -785,7 +785,7 @@ public class gnuServantObject extends ObjectImpl * assumed equal if they are connected to the same orb and poa under the same * Id, regardless of they delegates. * - * @param another instance to check. + * @param other instance to check. * @return */ public boolean _is_equivalent(org.omg.CORBA.Object other) diff --git a/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java b/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java index a6f7aa52b8d..c55405cedf6 100644 --- a/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java +++ b/libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java @@ -41,7 +41,6 @@ package gnu.CORBA; import gnu.CORBA.CDR.BufferedCdrOutput; import org.omg.CORBA.ARG_IN; -import org.omg.CORBA.ARG_INOUT; import org.omg.CORBA.ARG_OUT; import org.omg.CORBA.Any; import org.omg.CORBA.Bounds; diff --git a/libjava/classpath/gnu/CORBA/gnuContextList.java b/libjava/classpath/gnu/CORBA/gnuContextList.java index 68584c3891c..592eb2c2cac 100644 --- a/libjava/classpath/gnu/CORBA/gnuContextList.java +++ b/libjava/classpath/gnu/CORBA/gnuContextList.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.CORBA; -import java.util.ArrayList; - import org.omg.CORBA.Bounds; import org.omg.CORBA.ContextList; diff --git a/libjava/classpath/gnu/CORBA/gnuExceptionList.java b/libjava/classpath/gnu/CORBA/gnuExceptionList.java index 5f0c0c9f50d..06ddf8d717a 100644 --- a/libjava/classpath/gnu/CORBA/gnuExceptionList.java +++ b/libjava/classpath/gnu/CORBA/gnuExceptionList.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.CORBA; -import java.util.ArrayList; - import org.omg.CORBA.Bounds; import org.omg.CORBA.ExceptionList; import org.omg.CORBA.TypeCode; diff --git a/libjava/classpath/gnu/CORBA/gnuRequest.java b/libjava/classpath/gnu/CORBA/gnuRequest.java index 0b3338d3437..3ec2a797f0f 100644 --- a/libjava/classpath/gnu/CORBA/gnuRequest.java +++ b/libjava/classpath/gnu/CORBA/gnuRequest.java @@ -83,12 +83,10 @@ import org.omg.PortableInterceptor.ClientRequestInterceptorOperations; import org.omg.PortableInterceptor.ForwardRequest; import org.omg.PortableInterceptor.InvalidSlot; -import java.io.EOFException; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.BindException; import java.net.Socket; import java.util.ArrayList; diff --git a/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java b/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java index c5fae63bd28..af7f46ecfce 100644 --- a/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java +++ b/libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java @@ -109,7 +109,7 @@ public class FixedTypeCode /** * Get the number of digits in thid BigDecimal * - * @param x a BigDecimal to check. + * @param number a BigDecimal to check. */ public static int countDigits(BigDecimal number) { diff --git a/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java b/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java index 0e6ac375e50..8ec2f5474d0 100644 --- a/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java +++ b/libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java @@ -63,7 +63,7 @@ public class RecursiveTypeCode * Create a typecode that serves as a placeholder for * the typecode with the given id. * - * @param id the Id of the type for that this type serves as a + * @param an_id the Id of the type for that this type serves as a * placeholder. */ public RecursiveTypeCode(String an_id) diff --git a/libjava/classpath/gnu/classpath/ServiceFactory.java b/libjava/classpath/gnu/classpath/ServiceFactory.java index daf996c23ca..6c9728e0cbd 100644 --- a/libjava/classpath/gnu/classpath/ServiceFactory.java +++ b/libjava/classpath/gnu/classpath/ServiceFactory.java @@ -48,6 +48,7 @@ import java.security.PrivilegedActionException; import java.util.Collections; import java.util.Enumeration; import java.util.Iterator; +import java.util.List; import java.util.NoSuchElementException; import java.util.ServiceConfigurationError; import java.util.logging.Level; @@ -222,8 +223,8 @@ public final class ServiceFactory * @throws IllegalArgumentException if <code>spi</code> is * <code>null</code>. */ - public static Iterator lookupProviders(Class spi, - ClassLoader loader) + public static <P> Iterator<P> lookupProviders(Class<P> spi, + ClassLoader loader) { return lookupProviders(spi, loader, false); } @@ -266,12 +267,12 @@ public final class ServiceFactory * @throws IllegalArgumentException if <code>spi</code> is * <code>null</code>. */ - public static Iterator lookupProviders(Class spi, - ClassLoader loader, - boolean error) + public static <P> Iterator<P> lookupProviders(Class<P> spi, + ClassLoader loader, + boolean error) { String resourceName; - Enumeration urls; + Enumeration<URL> urls; if (spi == null) throw new IllegalArgumentException(); @@ -295,11 +296,14 @@ public final class ServiceFactory throw new ServiceConfigurationError("Failed to access + " + resourceName, ioex); else - return Collections.EMPTY_LIST.iterator(); + { + List<P> empty = Collections.emptyList(); + return empty.iterator(); + } } - return new ServiceIterator(spi, urls, loader, error, - AccessController.getContext()); + return new ServiceIterator<P>(spi, urls, loader, error, + AccessController.getContext()); } @@ -318,7 +322,7 @@ public final class ServiceFactory * * @see #lookupProviders(Class, ClassLoader) */ - public static Iterator lookupProviders(Class spi) + public static <P> Iterator<P> lookupProviders(Class<P> spi) { ClassLoader ctxLoader; @@ -335,14 +339,14 @@ public final class ServiceFactory * * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a> */ - private static final class ServiceIterator - implements Iterator + private static final class ServiceIterator<P> + implements Iterator<P> { /** * The service provider interface (usually an interface, sometimes * an abstract class) which the services must implement. */ - private final Class spi; + private final Class<P> spi; /** @@ -350,7 +354,7 @@ public final class ServiceFactory * <code>META-INF/services/<org.foo.SomeService></code>, * as returned by {@link ClassLoader#getResources(String)}. */ - private final Enumeration urls; + private final Enumeration<URL> urls; /** @@ -389,7 +393,7 @@ public final class ServiceFactory * {@link #next()}, or <code>null</code> if the iterator has * already returned all service providers. */ - private Object nextProvider; + private P nextProvider; /** * True if a {@link ServiceConfigurationError} should be thrown @@ -420,7 +424,7 @@ public final class ServiceFactory * @param securityContext the security context to use when loading * and initializing service providers. */ - ServiceIterator(Class spi, Enumeration urls, ClassLoader loader, + ServiceIterator(Class<P> spi, Enumeration<URL> urls, ClassLoader loader, boolean error, AccessControlContext securityContext) { this.spi = spi; @@ -436,9 +440,9 @@ public final class ServiceFactory * @throws NoSuchElementException if {@link #hasNext} returns * <code>false</code>. */ - public Object next() + public P next() { - Object result; + P result; if (!hasNext()) throw new NoSuchElementException(); @@ -461,7 +465,7 @@ public final class ServiceFactory } - private Object loadNextServiceProvider() + private P loadNextServiceProvider() { String line; @@ -523,7 +527,7 @@ public final class ServiceFactory * active when calling lookupProviders. */ return AccessController.doPrivileged( - new ServiceProviderLoadingAction(spi, line, loader), + new ServiceProviderLoadingAction<P>(spi, line, loader), securityContext); } catch (Exception ex) @@ -577,7 +581,7 @@ public final class ServiceFactory if (!urls.hasMoreElements()) return; - currentURL = (URL) urls.nextElement(); + currentURL = urls.nextElement(); try { reader = new BufferedReader(new InputStreamReader( diff --git a/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java b/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java index 9f9dc51cb68..51f5a2fa911 100644 --- a/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java +++ b/libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java @@ -54,15 +54,15 @@ import java.security.PrivilegedExceptionAction; * * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a> */ -final class ServiceProviderLoadingAction - implements PrivilegedExceptionAction +final class ServiceProviderLoadingAction<P> + implements PrivilegedExceptionAction<P> { /** * The interface to which the loaded service provider implementation * must conform. Usually, this is a Java interface type, but it * might also be an abstract class or even a concrete class. */ - private final Class spi; + private final Class<P> spi; /** @@ -97,7 +97,7 @@ final class ServiceProviderLoadingAction * <code>providerName</code> or <code>loader</code> is * <code>null</code>. */ - ServiceProviderLoadingAction(Class spi, String providerName, + ServiceProviderLoadingAction(Class<P> spi, String providerName, ClassLoader loader) { if (spi == null || providerName == null || loader == null) @@ -130,13 +130,13 @@ final class ServiceProviderLoadingAction * no-argument constructor; or if there some other problem with * creating a new instance of the service provider. */ - public Object run() + public P run() throws Exception { - Class loadedClass; - Object serviceProvider; + Class<P> loadedClass; + P serviceProvider; - loadedClass = loader.loadClass(providerName); + loadedClass = (Class<P>) loader.loadClass(providerName); serviceProvider = loadedClass.newInstance(); // Ensure that the loaded provider is actually implementing diff --git a/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java b/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java index 1303c09be76..1bb339969ec 100644 --- a/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java +++ b/libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java @@ -117,9 +117,9 @@ public class ExceptionEvent return _exception.getClass(); else if (type == EVENT_EXCEPTION_CAUGHT) if (_catchLocation.getMethod() != null) - return new Boolean(true); + return Boolean.TRUE; else - return new Boolean(false); + return Boolean.FALSE; return null; } diff --git a/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java b/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java index d18f6975ebf..fd412716c84 100644 --- a/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java +++ b/libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java @@ -39,7 +39,6 @@ exception statement from your version. */ package gnu.classpath.jdwp.event.filters; -import gnu.classpath.jdwp.JdwpConstants; import gnu.classpath.jdwp.event.Event; import gnu.classpath.jdwp.exception.InvalidThreadException; import gnu.classpath.jdwp.id.ThreadId; diff --git a/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java b/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java index 49b3f0d1b3f..1a70b9c091e 100644 --- a/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java +++ b/libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java @@ -56,7 +56,6 @@ import gnu.classpath.jdwp.value.ValueFactory; import java.io.DataOutputStream; import java.io.IOException; import java.lang.reflect.Field; -import java.lang.reflect.Method; import java.nio.ByteBuffer; /** diff --git a/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java b/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java index c9b329869d7..cde3fc24cac 100644 --- a/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java +++ b/libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java @@ -46,7 +46,6 @@ import gnu.classpath.jdwp.exception.InvalidFieldException; import gnu.classpath.jdwp.exception.JdwpException; import gnu.classpath.jdwp.exception.JdwpInternalErrorException; import gnu.classpath.jdwp.exception.NotImplementedException; -import gnu.classpath.jdwp.id.ClassReferenceTypeId; import gnu.classpath.jdwp.id.ObjectId; import gnu.classpath.jdwp.id.ReferenceTypeId; import gnu.classpath.jdwp.util.JdwpString; diff --git a/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java b/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java new file mode 100644 index 00000000000..cb56c7641ff --- /dev/null +++ b/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java @@ -0,0 +1,59 @@ +/* DefaultDaemonThreadFactory.java -- Factory for Deamon Threads. + + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.classpath.toolkit; + +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory;; + +/** + * Create a new thread using all the default settings as returned by + * <code>Executors.defaultThreadFactory()</code> plus calling + * <code>thread.setDaemon(true)</code> on the newly created thread. + * + * @author Mario Torre <neugens@limasoftware.net> + */ +public class DefaultDaemonThreadFactory implements ThreadFactory +{ + public Thread newThread(Runnable r) + { + Thread thread = Executors.defaultThreadFactory().newThread(r); + thread.setDaemon(true); + return thread; + } +} diff --git a/libjava/classpath/gnu/java/awt/AWTUtilities.java b/libjava/classpath/gnu/java/awt/AWTUtilities.java index 1b68703697f..dcebc67fa25 100644 --- a/libjava/classpath/gnu/java/awt/AWTUtilities.java +++ b/libjava/classpath/gnu/java/awt/AWTUtilities.java @@ -126,7 +126,7 @@ public class AWTUtilities * * @return the next visible <code>Component</code> in the List * - * @throws if there is no next element + * @throws NoSuchElementException if there is no next element */ public Object next() { diff --git a/libjava/classpath/gnu/java/awt/ClasspathToolkit.java b/libjava/classpath/gnu/java/awt/ClasspathToolkit.java index d78fbab4e1e..7bbc70ccb1f 100644 --- a/libjava/classpath/gnu/java/awt/ClasspathToolkit.java +++ b/libjava/classpath/gnu/java/awt/ClasspathToolkit.java @@ -51,7 +51,6 @@ import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.HeadlessException; import java.awt.Toolkit; -import java.awt.font.TextAttribute; import java.awt.peer.DesktopPeer; import java.awt.peer.RobotPeer; import java.io.IOException; diff --git a/libjava/classpath/gnu/java/awt/EmbeddedWindow.java b/libjava/classpath/gnu/java/awt/EmbeddedWindow.java index 99f90c9f85d..7c04e7daf77 100644 --- a/libjava/classpath/gnu/java/awt/EmbeddedWindow.java +++ b/libjava/classpath/gnu/java/awt/EmbeddedWindow.java @@ -43,7 +43,6 @@ import gnu.java.security.action.SetAccessibleAction; import java.awt.Component; import java.awt.Frame; -import java.awt.Toolkit; import java.lang.reflect.Field; import java.security.AccessController; diff --git a/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java b/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java index 2f73dce77b0..22f331e15d1 100644 --- a/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java +++ b/libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.java.awt.font; +import gnu.java.awt.java2d.ShapeWrapper; + import java.awt.Font; import java.awt.font.FontRenderContext; import java.awt.font.GlyphMetrics; @@ -82,6 +84,10 @@ public class GNUGlyphVector private AffineTransform[] transforms; private int layoutFlags; + /** + * The cached non-transformed outline of this glyph vector. + */ + private Shape cleanOutline; /** * Constructs a new GNUGlyphVector. @@ -257,7 +263,6 @@ public class GNUGlyphVector */ public Shape getOutline() { - validate(); return getOutline(0.0f, 0.0f); } @@ -273,16 +278,33 @@ public class GNUGlyphVector { validate(); - GeneralPath outline = new GeneralPath(); - int len = glyphs.length; - for (int i = 0; i < len; i++) + Shape outline; + if (cleanOutline == null) { - GeneralPath p = new GeneralPath(getGlyphOutline(i)); - outline.append(p, false); + GeneralPath path = new GeneralPath(); + int len = glyphs.length; + for (int i = 0; i < len; i++) + { + GeneralPath p = new GeneralPath(getGlyphOutline(i)); + path.append(p, false); + } + // Protect the cached instance from beeing modified by application + // code. + cleanOutline = new ShapeWrapper(path); + outline = cleanOutline; + } + else + { + outline = cleanOutline; + } + if (x != 0 || y != 0) + { + GeneralPath path = new GeneralPath(outline); + AffineTransform t = new AffineTransform(); + t.translate(x, y); + path.transform(t); + outline = path; } - AffineTransform t = new AffineTransform(); - t.translate(x, y); - outline.transform(t); return outline; } diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java b/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java index ab3861be1a9..2d898a44801 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java +++ b/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java @@ -35,7 +35,7 @@ this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -package gnu.java.awt.peer.x; +package gnu.java.awt.font; import java.awt.Font; import java.awt.FontMetrics; @@ -54,15 +54,16 @@ import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.text.CharacterIterator; import java.text.StringCharacterIterator; +import java.util.HashMap; +import java.util.HashSet; import java.util.Locale; import java.util.Map; import java.util.Properties; +import java.util.Set; -import gnu.java.awt.font.FontDelegate; -import gnu.java.awt.font.FontFactory; import gnu.java.awt.peer.ClasspathFontPeer; -public class XFontPeer2 +public class OpenTypeFontPeer extends ClasspathFontPeer { @@ -70,10 +71,21 @@ public class XFontPeer2 * The font mapping as specified in the file fonts.properties. */ private static Properties fontProperties; + + /** + * The available font family names. + */ + private static Set<String> availableFontNames; + + /** + * Font spec to file mapping. + */ + private static Map<String,Map<String,String>> fontToFileMap; + static { fontProperties = new Properties(); - InputStream in = XFontPeer2.class.getResourceAsStream("fonts.properties"); + InputStream in = OpenTypeFontPeer.class.getResourceAsStream("fonts.properties"); try { fontProperties.load(in); @@ -234,12 +246,14 @@ public class XFontPeer2 private FontDelegate fontDelegate; - XFontPeer2(String name, int style, int size) + public OpenTypeFontPeer(String name, int style, int size) { super(name, style, size); try { - File fontfile = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf"); + String fontSpec = encodeFont(name, style); + String filename = mapFontToFilename(fontSpec); + File fontfile = new File(filename); FileInputStream in = new FileInputStream(fontfile); FileChannel ch = in.getChannel(); ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, @@ -252,12 +266,14 @@ public class XFontPeer2 } } - XFontPeer2(String name, Map atts) + public OpenTypeFontPeer(String name, Map atts) { super(name, atts); try { - File fontfile = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf"); + String fontSpec = encodeFont(name, atts); + String filename = mapFontToFilename(fontSpec); + File fontfile = new File(filename); FileInputStream in = new FileInputStream(fontfile); FileChannel ch = in.getChannel(); ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0, @@ -371,7 +387,7 @@ public class XFontPeer2 * * @return the encoded font description */ - static String encodeFont(String name, Map atts) + public static String encodeFont(String name, Map atts) { String family = name; if (family == null || family.equals("")) @@ -379,11 +395,6 @@ public class XFontPeer2 if (family == null) family = "SansSerif"; - int size = 12; - Float sizeFl = (Float) atts.get(TextAttribute.SIZE); - if (sizeFl != null) - size = sizeFl.intValue(); - int style = 0; // Detect italic attribute. Float posture = (Float) atts.get(TextAttribute.POSTURE); @@ -395,49 +406,43 @@ public class XFontPeer2 if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0) style |= Font.BOLD; - return encodeFont(name, style, size); + return encodeFont(name, style); } /** - * Encodes a font name + style + size specification into a X logical font - * description (XLFD) as described here: - * - * http://www.meretrx.com/e93/docs/xlfd.html + * Encodes a font name + style into a combined string. * * This is implemented to look up the font description in the * fonts.properties of this package. * * @param name the font name * @param style the font style - * @param size the font size * * @return the encoded font description */ - static String encodeFont(String name, int style, int size) + static String encodeFont(String name, int style) { StringBuilder key = new StringBuilder(); key.append(validName(name)); - key.append('.'); + key.append('/'); switch (style) { case Font.BOLD: - key.append("bold"); + key.append("b"); break; case Font.ITALIC: - key.append("italic"); + key.append("i"); break; case (Font.BOLD | Font.ITALIC): - key.append("bolditalic"); + key.append("bi"); break; case Font.PLAIN: default: - key.append("plain"); + key.append("p"); } - String protoType = fontProperties.getProperty(key.toString()); - int s = size; - return protoType.replaceFirst("%d", String.valueOf(s * 10)); + return key.toString(); } /** @@ -451,18 +456,108 @@ public class XFontPeer2 static String validName(String name) { String retVal; - if (name.equalsIgnoreCase("sansserif") - || name.equalsIgnoreCase("serif") - || name.equalsIgnoreCase("monospaced") - || name.equalsIgnoreCase("dialog") - || name.equalsIgnoreCase("dialoginput")) + Set<String> fontNames = getFontNames(); + if (fontNames.contains(name)) { - retVal = name.toLowerCase(); + retVal = name; } else { - retVal = "sansserif"; + retVal = "SansSerif"; } return retVal; } + + public static String[] getAvailableFontFamilyNames(Locale l) + { + Set<String> fontNames = getFontNames(); + int numNames = fontNames.size(); + String[] ret = fontNames.toArray(new String[numNames]); + return ret; + } + + private static synchronized Set<String> getFontNames() + { + if (availableFontNames == null) + { + HashSet<String> familyNames = new HashSet<String>(); + for (Object o : fontProperties.keySet()) + { + if (o instanceof String) + { + String key = (String) o; + int slashIndex = key.indexOf('/'); + String name = key.substring(0, slashIndex); + familyNames.add(name); + } + } + availableFontNames = familyNames; + } + return availableFontNames; + } + + /** + * Takes a font spec as returned by {@link #encodeFont(String, int)}, + * and returns the corresponding font file, or <code>null</code> if no such + * font mapping exists. + * + * @param fontSpec font name and style as returned by + * {@link #encodeFont(String, int)} + * + * @return filename of the corresponding font file + */ + private synchronized String mapFontToFilename(String fontSpec) + { + if (fontToFileMap == null) + { + fontToFileMap = new HashMap<String,Map<String,String>>(); + + // Initialize font spec to file mapping according to the + // font.properties. + for (Object o : fontProperties.keySet()) + { + if (o instanceof String) + { + String key = (String) o; + int slashIndex = key.indexOf('/'); + String name = key.substring(0, slashIndex); + String spec = key.substring(slashIndex + 1); + // Handle aliases in the 2nd pass below. + if (! spec.equals("a")) + { + Map<String,String> specToFileMap = fontToFileMap.get(name); + if (specToFileMap == null) + { + specToFileMap = new HashMap<String,String>(); + fontToFileMap.put(name, specToFileMap); + } + specToFileMap.put(spec, fontProperties.getProperty(key)); + } + } + } + // 2nd pass for handling aliases. + for (Object o : fontProperties.keySet()) + { + if (o instanceof String) + { + String key = (String) o; + int slashIndex = key.indexOf('/'); + String name = key.substring(0, slashIndex); + String spec = key.substring(slashIndex + 1); + // Handle aliases in the 2nd pass below. + if (spec.equals("a")) + { + String alias = fontProperties.getProperty(key); + Map<String,String> specToFileMap = fontToFileMap.get(alias); + fontToFileMap.put(name, specToFileMap); + } + } + } + } + // Look up font file. + int slashIndex = fontSpec.indexOf('/'); + String name = fontSpec.substring(0, slashIndex); + String spec = fontSpec.substring(slashIndex + 1); + return fontToFileMap.get(name).get(spec); + } } diff --git a/libjava/classpath/gnu/java/awt/image/AsyncImage.java b/libjava/classpath/gnu/java/awt/image/AsyncImage.java new file mode 100644 index 00000000000..935601a8898 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/image/AsyncImage.java @@ -0,0 +1,300 @@ +/* AsyncImage.java -- Loads images asynchronously + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package gnu.java.awt.image; + + +import java.awt.Graphics; +import java.awt.Image; +import java.awt.image.ImageConsumer; +import java.awt.image.ImageObserver; +import java.awt.image.ImageProducer; +import java.util.HashSet; +import java.util.Iterator; + +/** + * Supports asynchronous loading of images. + */ +public class AsyncImage + extends Image +{ + + /** + * The image source for AsyncImages. + */ + private class AsyncImageSource + implements ImageProducer + { + /** + * The real image source, if already present, or <code>null</code> + * otherwise. + */ + private ImageProducer realSource; + + public void addConsumer(ImageConsumer ic) + { + startProduction(ic); + } + + public boolean isConsumer(ImageConsumer ic) + { + return false; + } + + public void removeConsumer(ImageConsumer ic) + { + // Nothing to do here. + } + + public void requestTopDownLeftRightResend(ImageConsumer ic) + { + startProduction(ic); + } + + public void startProduction(ImageConsumer ic) + { + ImageProducer ip = getRealSource(); + if (ip == null) + { + ic.setDimensions(1, 1); + ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE); + } + else + { + ip.startProduction(ic); + } + } + + /** + * Returns the real image source, if already present. Otherwise, this + * returns <code>null</code>. + * + * @return the real image source, or <code>null</code> if not present + */ + private ImageProducer getRealSource() + { + synchronized (AsyncImage.this) + { + ImageProducer source = realSource; + if (source == null) + { + Image ri = realImage; + if (ri != null) + { + realSource = source = ri.getSource(); + } + } + return source; + } + } + } + + /** + * The real image. This is null as long as the image is not complete. + */ + private volatile Image realImage; + + /** + * The image observers. + * + * This is package private to avoid accessor methods. + */ + HashSet<ImageObserver> observers; + + private volatile boolean complete = false; + + /** + * Creates a new AsyncImage. + */ + AsyncImage() + { + observers = new HashSet<ImageObserver>(); + } + + public void flush() + { + // Nothing to do here. + } + + public Graphics getGraphics() + { + Image r = realImage; + Graphics g = null; + if (r != null) + g = r.getGraphics(); // Should we return some dummy graphics instead? + return g; + } + + public boolean isComplete() { + return complete; + } + + public int getHeight(ImageObserver observer) + { + addObserver(observer); + int height = -1; + waitForImage(observer); + Image r = realImage; + if (r != null) + height = r.getHeight(observer); + return height; + } + + public Object getProperty(String name, ImageObserver observer) + { + addObserver(observer); + Image r = realImage; + Object prop = null; + if (r != null) + prop = r.getProperty(name, observer); + return prop; + } + + public ImageProducer getSource() + { + return new AsyncImageSource(); + } + + public int getWidth(ImageObserver observer) + { + addObserver(observer); + int width = -1; + waitForImage(observer); + Image r = realImage; + if (r != null) + width = r.getWidth(observer); + return width; + } + + public void addObserver(ImageObserver obs) + { + if (obs != null) + { + synchronized (this) + { + // This field gets null when image loading is complete and we don't + // need to store any more observers. + HashSet<ImageObserver> observs = observers; + if (observs != null) + { + observs.add(obs); + } + } + } + } + + public boolean prepareImage(int w, int h, ImageObserver obs) + { + addObserver(obs); + return realImage != null; + } + + public int checkImage(int w, int h, ImageObserver obs) + { + addObserver(obs); + int flags = 0; + if (realImage != null) + flags = ImageObserver.ALLBITS | ImageObserver.WIDTH + | ImageObserver.HEIGHT | ImageObserver.PROPERTIES; + return flags; + } + + public Image getRealImage() + { + return realImage; + } + + public void setRealImage(Image im) + { + realImage = im; + int status = ImageObserver.HEIGHT | ImageObserver.WIDTH; + notifyObservers(status, 0, 0, im.getWidth(null), im.getHeight(null)); + } + + public void notifyObservers(int status, int x, int y, int w, int h) + { + synchronized (this) + { + HashSet observs = observers; + if (observs != null) + { + Iterator i = observs.iterator(); + while (i.hasNext()) + { + ImageObserver obs = (ImageObserver) i.next(); + boolean complete = obs.imageUpdate(this, status, x, y, realImage.getWidth(obs), realImage.getHeight(obs)); + if (complete) // Remove completed observers. + i.remove(); + } + } + if ((status & ImageObserver.ALLBITS) != 0) + { + complete = true; + notifyAll(); + } + } + } + + /** + * Waits for the image to be loaded completely, if the image observer + * is <code>null</code>. Otherwise this is not necessary, because the + * image observer can be notified about later completion. + * + * @param observer the image observer + */ + public void waitForImage(ImageObserver observer) + { + if (!complete && observer == null) + { + synchronized (this) + { + while (! complete) + { + try + { + wait(); + } + catch (InterruptedException ex) + { + Thread.currentThread().interrupt(); + } + } + } + } + } +} diff --git a/libjava/classpath/gnu/java/awt/image/ImageConverter.java b/libjava/classpath/gnu/java/awt/image/ImageConverter.java new file mode 100644 index 00000000000..f607b349630 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/image/ImageConverter.java @@ -0,0 +1,528 @@ +/* ImageConverter.java -- Loads images asynchronously + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package gnu.java.awt.image; + +import gnu.java.awt.image.AsyncImage; + +import java.awt.GraphicsEnvironment; +import java.awt.Image; +import java.awt.Transparency; +import java.awt.image.BufferedImage; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.ImageConsumer; +import java.awt.image.IndexColorModel; +import java.awt.image.ImageObserver; +import java.awt.image.SinglePixelPackedSampleModel; +import java.awt.image.WritableRaster; +import java.util.Hashtable; + +/** + * Convert an Image to a BufferedImage. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class ImageConverter implements ImageConsumer +{ + + public static final String IMAGE_TRANSPARENCY_PROPERTY = + "gnu.awt.image.transparency"; + + public static final String IMAGE_PROPERTIES_PROPERTY = + "gnu.awt.image.properties"; + + private AsyncImage image; + private BufferedImage bImage; + private Hashtable imageProperties; + private int width, height; + private ColorModel colorModel; + private ColorModel targetColorModel; + + public ImageConverter() + { + width = 0; + height = 0; + image = new AsyncImage(); + } + + public void setDimensions(int w, int h) + { + width = w; + height = h; + } + + public void setProperties(Hashtable props) + { + // Ignore for now. + } + + public void setColorModel(ColorModel model) + { + colorModel = model; + } + + public void setHints(int flags) + { + // Ignore for now. + } + + public void setPixels(int x, int y, int w, int h, ColorModel model, + byte[] pixels, int offset, int scansize) + { + model = setupColorModel(model); + + if (bImage == null) + { + createImage(); + } + + Integer t = (Integer) imageProperties.get("gnu.awt.image.transparency"); + int transparency = t.intValue(); + + if(targetColorModel.equals(model)) + { + transparency = transferPixels(x, y, w, h, model, pixels, offset, + scansize, transparency); + } + else if (model instanceof IndexColorModel + && targetColorModel.equals(ColorModel.getRGBdefault())) + { + transparency = convertIndexColorModelToSRGB(x, y, w, h, + (IndexColorModel) model, + pixels, offset, scansize, + transparency); + } + else + { + transparency = convertPixels(x, y, w, h, model, pixels, offset, + scansize, transparency); + } + + imageProperties.put("gnu.awt.image.transparency", + Integer.valueOf(transparency)); + } + + public void setPixels(int x, int y, int w, int h, ColorModel model, + int[] pixels, int offset, int scansize) + { + model = setupColorModel(model); + if (bImage == null) + { + createImage(); + } + + Integer t = (Integer) imageProperties.get(IMAGE_TRANSPARENCY_PROPERTY); + int transparency= t.intValue(); + + if (targetColorModel.equals(model)) + { + transparency = transferPixels(x, y, w, h, model, pixels, offset, + scansize, transparency); + } + else if (model instanceof IndexColorModel + && targetColorModel.equals(ColorModel.getRGBdefault())) + { + transparency = convertIndexColorModelToSRGB(x, y, w, h, + (IndexColorModel) model, + pixels, offset, scansize, + transparency); + } + else + { + transparency = convertPixels(x, y, w, h, model, pixels, offset, + scansize, transparency); + } + + imageProperties.put(IMAGE_TRANSPARENCY_PROPERTY, + Integer.valueOf(transparency)); + + } + + /** + * Initialize the color model for this setPixels run: <br/> + * 1. if no color model was given use the hinted color model <br/> + * 2. if no color model was given and non was hinted use the default sRGB color model. <br/> + * Also:<br/> + * If no target color model was set use the color model of the given pixels. + * @param model + * @return + */ + private ColorModel setupColorModel(ColorModel model) + { + // If the given color model is null use the previously hinted color model. + if (model == null) + model = colorModel; + + // If no color model was given or hinted use default sRGB. + if (model == null) + model = ColorModel.getRGBdefault(); + + // If no specific color model was requested for the target use the current + // pixels model. + if (targetColorModel == null) + targetColorModel = model; + targetColorModel = ColorModel.getRGBdefault(); + return model; + } + + /** + * Creates the image instance into which the pixel data is converted. + */ + private void createImage() + { + if (imageProperties == null) + { + imageProperties = new Hashtable(); + } + + imageProperties.put(IMAGE_TRANSPARENCY_PROPERTY, + Integer.valueOf(Transparency.OPAQUE)); + imageProperties.put(IMAGE_PROPERTIES_PROPERTY, imageProperties); + + // For the sRGB case let the GraphicsEnvironment create an image for us. + if (ColorModel.getRGBdefault().equals(targetColorModel)) + { + bImage = GraphicsEnvironment.getLocalGraphicsEnvironment() + .getDefaultScreenDevice() + .getDefaultConfiguration() + .createCompatibleImage(width, height, Transparency.TRANSLUCENT); + } + else + { + WritableRaster raster = + targetColorModel.createCompatibleWritableRaster(width, height); + bImage = new BufferedImage(targetColorModel, raster, false, + imageProperties); + } + image.setRealImage(bImage); + return; + } + + /** + * Transfers pixels into a raster of the same color model. + * + * @param x the X coordinate of the source pixel rectangle + * @param y the Y coordinate of the source pixel rectangle + * @param w the width of the source pixel rectangle + * @param h the height of the source pixel rectangle + * @param model the color model of the source pixels + * @param pixels the pixel data + * @param offset the offset in the pixel array + * @param scansize the scanline size + * @param transparency the assumed transparency + * + * @return the determined transparency + */ + private int transferPixels(int x, int y, int w, int h, ColorModel model, + byte[] pixels, int offset, int scansize, + int transparency) + { + // If we have the same color model, then we can simply drop + // the pixel value into the target raster. + bImage.getRaster().setDataElements(x, y, w, h, pixels); + + for (int yy = 0; yy < h; yy++) + { + for (int xx = 0; xx < w; xx++) + { + int pixel = 0xFF & pixels[yy * scansize + xx + offset]; + int alpha = model.getAlpha(pixel); + transparency = updateTransparency(alpha, transparency); + } + } + return transparency; + } + + /** + * Transfers pixels into a raster of the same color model. + * + * @param x the X coordinate of the source pixel rectangle + * @param y the Y coordinate of the source pixel rectangle + * @param w the width of the source pixel rectangle + * @param h the height of the source pixel rectangle + * @param model the color model of the source pixels + * @param pixels the pixel data + * @param offset the offset in the pixel array + * @param scansize the scanline size + * @param transparency the assumed transparency + * + * @return the determined transparency + */ + private int transferPixels(int x, int y, int w, int h, ColorModel model, + int[] pixels, int offset, int scansize, + int transparency) + { + // If we have the same color model, then we can simply drop + // the pixel value into the target raster. + bImage.getRaster().setDataElements(x, y, w, h, pixels); + + for (int yy = 0; yy < h; yy++) + { + for (int xx = 0; xx < w; xx++) + { + int pixel = pixels[yy * scansize + xx + offset]; + int alpha = model.getAlpha(pixel); + transparency = updateTransparency(alpha, transparency); + } + } + return transparency; + } + + /** + * Converts pixel from one color model to another, and stores them in the + * target image. + * + * @param x the X coordinate of the source pixel rectangle + * @param y the Y coordinate of the source pixel rectangle + * @param w the width of the source pixel rectangle + * @param h the height of the source pixel rectangle + * @param model the color model of the source pixels + * @param pixels the pixel data + * @param offset the offset in the pixel array + * @param scansize the scanline size + * @param transparency the assumed transparency + * + * @return the determined transparency + */ + private int convertPixels(int x, int y, int w, int h, ColorModel model, + byte[] pixels, int offset, int scansize, + int transparency) + { + // If the color models are not the same, we must convert the + // pixel values from one model to the other. + Object dataEl = null; + // Convert pixels to the destination color model. + for (int yy = 0; yy < h; yy++) + { + for (int xx = 0; xx < w; xx++) + { + int pixel = 0xFF & pixels[yy * scansize + xx + offset]; + int rgb = model.getRGB(pixel); + int alpha = model.getAlpha(pixel); + transparency = updateTransparency(alpha, transparency); + dataEl = targetColorModel.getDataElements(rgb, dataEl); + bImage.getRaster().setDataElements(x + xx, y + yy, dataEl); + } + } + return transparency; + } + + /** + * Converts pixel from one color model to another, and stores them in the + * target image. + * + * @param x the X coordinate of the source pixel rectangle + * @param y the Y coordinate of the source pixel rectangle + * @param w the width of the source pixel rectangle + * @param h the height of the source pixel rectangle + * @param model the color model of the source pixels + * @param pixels the pixel data + * @param offset the offset in the pixel array + * @param scansize the scanline size + * @param transparency the assumed transparency + * + * @return the determined transparency + */ + private int convertPixels(int x, int y, int w, int h, ColorModel model, + int[] pixels, int offset, int scansize, + int transparency) + { + // If the color models are not the same, we must convert the + // pixel values from one model to the other. + Object dataEl = null; + // Convert pixels to the destination color model. + for (int yy = 0; yy < h; yy++) + { + for (int xx = 0; xx < w; xx++) + { + int pixel = pixels[yy * scansize + xx + offset]; + int rgb = model.getRGB(pixel); + int alpha = model.getAlpha(pixel); + transparency = updateTransparency(alpha, transparency); + dataEl = targetColorModel.getDataElements(rgb, dataEl); + bImage.getRaster().setDataElements(x + xx, y + yy, dataEl); + } + } + return transparency; + } + + /** + * Converts pixels from an index color model to the target image. + * + * @param x the X coordinate of the source pixel rectangle + * @param y the Y coordinate of the source pixel rectangle + * @param w the width of the source pixel rectangle + * @param h the height of the source pixel rectangle + * @param model the color model of the source pixels + * @param pixels the pixel data + * @param offset the offset in the pixel array + * @param scansize the scanline size + * @param transparency the assumed transparency + * + * @return the determined transparency + */ + private int convertIndexColorModelToSRGB(int x, int y, int w, int h, + IndexColorModel model, + byte[] pixels, int offset, + int scansize, int transparency) + { + + int mapSize = model.getMapSize(); + int[] colorMap = new int[mapSize]; + for(int i=0; i < mapSize; i++) + { + colorMap[i] = model.getRGB(i); + } + + WritableRaster raster = bImage.getRaster(); + SinglePixelPackedSampleModel sampleMode = + (SinglePixelPackedSampleModel) raster.getSampleModel(); + DataBuffer dataBuffer = (DataBuffer) raster.getDataBuffer(); + + int rasterOffset = sampleMode.getOffset(x,y)+dataBuffer.getOffset(); + int rasterScanline = sampleMode.getScanlineStride(); + + for (int yy = 0; yy < h; yy++) + { + int xoffset = offset; + for (int xx = 0; xx < w; xx++) + { + int argb = colorMap[(pixels[xoffset++] & 0xFF)]; + dataBuffer.setElem(rasterOffset+xx, argb); + int alpha = (argb >>> 24); + transparency = updateTransparency(alpha, transparency); + } + offset += scansize; + rasterOffset += rasterScanline; + } + + return transparency; + } + + /** + * Converts pixels from an index color model to the target image. + * + * @param x the X coordinate of the source pixel rectangle + * @param y the Y coordinate of the source pixel rectangle + * @param w the width of the source pixel rectangle + * @param h the height of the source pixel rectangle + * @param model the color model of the source pixels + * @param pixels the pixel data + * @param offset the offset in the pixel array + * @param scansize the scanline size + * @param transparency the assumed transparency + * + * @return the determined transparency + */ + private int convertIndexColorModelToSRGB(int x, int y, int w, int h, + IndexColorModel model, int[] pixels, + int offset, int scansize, + int transparency) + { + int mapSize = model.getMapSize(); + int[] colorMap = new int[mapSize]; + for(int i=0; i < mapSize; i++) + { + colorMap[i] = model.getRGB(i); + } + + WritableRaster raster = bImage.getRaster(); + SinglePixelPackedSampleModel sampleMode = + (SinglePixelPackedSampleModel) raster.getSampleModel(); + DataBuffer dataBuffer = (DataBuffer)raster.getDataBuffer(); + + int rasterOffset = sampleMode.getOffset(x, y) + dataBuffer.getOffset(); + int rasterScanline = sampleMode.getScanlineStride(); + + for (int yy = 0; yy < h; yy++) + { + int xoffset = offset; + for (int xx = 0; xx < w; xx++) + { + int argb = colorMap[pixels[xoffset++]]; + dataBuffer.setElem(rasterOffset + xx, argb); + int alpha = (argb >>> 24); + transparency = updateTransparency(alpha, transparency); + } + offset += scansize; + rasterOffset += rasterScanline; + } + + return transparency; + } + + /** + * Updates the transparency information according to the alpha pixel value. + * + * @param alpha the alpha pixel value + * @param transparency the old transparency + * + * @return the updated transparency + */ + private int updateTransparency(int alpha, int transparency) + { + if (alpha != 0xFF) + { + if (alpha == 0x00 && transparency <= Transparency.BITMASK) + { + transparency = Transparency.BITMASK; + } + else if (transparency < Transparency.TRANSLUCENT) + { + transparency = Transparency.TRANSLUCENT; + } + } + return transparency; + } + + public void imageComplete(int status) + { + image.notifyObservers(ImageObserver.ALLBITS, 0, 0, width, height); + } + + public void setTargetColorModel(ColorModel model) + { + targetColorModel = model; + } + + public Image getImage() + { + return image; + } +} diff --git a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java index 15ec90da1c0..36ba0f4304c 100644 --- a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java +++ b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.java.awt.java2d; +import gnu.java.util.LRUCache; + import java.awt.AWTError; import java.awt.AlphaComposite; import java.awt.AWTPermission; @@ -80,7 +82,9 @@ import java.awt.image.SampleModel; import java.awt.image.WritableRaster; import java.awt.image.renderable.RenderableImage; import java.text.AttributedCharacterIterator; +import java.util.Collections; import java.util.HashMap; +import java.util.LinkedList; import java.util.Map; /** @@ -152,22 +156,46 @@ public abstract class AbstractGraphics2D { /** + * Wether we use anti aliasing for rendering text by default or not. + */ + private static final boolean DEFAULT_TEXT_AA = + Boolean.getBoolean("gnu.java2d.default_text_aa"); + + /** * The default font to use on the graphics object. */ private static final Font FONT = new Font("SansSerif", Font.PLAIN, 12); /** + * The size of the LRU cache used for caching GlyphVectors. + */ + private static final int GV_CACHE_SIZE = 50; + + /** * Caches certain shapes to avoid massive creation of such Shapes in * the various draw* and fill* methods. */ - private static final ThreadLocal<ShapeCache> shapeCache = - new ThreadLocal<ShapeCache>(); + private static final ShapeCache shapeCache = new ShapeCache(); + + /** + * A pool of scanline converters. It is important to reuse scanline + * converters because they keep their datastructures in place. We pool them + * for use in multiple threads. + */ + private static final LinkedList<ScanlineConverter> scanlineConverters = + new LinkedList<ScanlineConverter>(); + + /** + * Caches glyph vectors for better drawing performance. + */ + private static final Map<TextCacheKey,GlyphVector> gvCache = + Collections.synchronizedMap(new LRUCache<TextCacheKey,GlyphVector>(GV_CACHE_SIZE)); /** - * The scanline converters by thread. + * This key is used to search in the gvCache without allocating a new + * key each time. */ - private static final ThreadLocal<ScanlineConverter> scanlineConverters = - new ThreadLocal<ScanlineConverter>(); + private static final TextCacheKey searchTextKey = new TextCacheKey(); /** * The transformation for this Graphics2D instance @@ -484,14 +512,25 @@ public abstract class AbstractGraphics2D */ public void drawString(String text, int x, int y) { - if (isOptimized) - rawDrawString(text, x, y); - else + GlyphVector gv; + synchronized (searchTextKey) { - FontRenderContext ctx = getFontRenderContext(); - GlyphVector gv = font.createGlyphVector(ctx, text.toCharArray()); - drawGlyphVector(gv, x, y); + TextCacheKey tck = searchTextKey; + FontRenderContext frc = getFontRenderContext(); + tck.setString(text); + tck.setFont(font); + tck.setFontRenderContext(frc); + if (gvCache.containsKey(tck)) + { + gv = gvCache.get(tck); + } + else + { + gv = font.createGlyphVector(frc, text.toCharArray()); + gvCache.put(new TextCacheKey(text, font, frc), gv); + } } + drawGlyphVector(gv, x, y); } /** @@ -949,7 +988,10 @@ public abstract class AbstractGraphics2D public FontRenderContext getFontRenderContext() { - return new FontRenderContext(transform, false, true); + // Protect our own transform from beeing modified. + AffineTransform tf = new AffineTransform(transform); + // TODO: Determine antialias and fractionalmetrics parameters correctly. + return new FontRenderContext(tf, false, true); } /** @@ -992,8 +1034,10 @@ public abstract class AbstractGraphics2D // Copy the clip. If it's a Rectangle, preserve that for optimization. if (clip instanceof Rectangle) copy.clip = new Rectangle((Rectangle) clip); - else + else if (clip != null) copy.clip = new GeneralPath(clip); + else + copy.clip = null; copy.renderingHints = new RenderingHints(null); copy.renderingHints.putAll(renderingHints); @@ -1163,7 +1207,7 @@ public abstract class AbstractGraphics2D } else { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.line == null) sc.line = new Line2D.Float(); sc.line.setLine(x1, y1, x2, y2); @@ -1175,11 +1219,13 @@ public abstract class AbstractGraphics2D { if (isOptimized) { - rawDrawRect(x, y, w, h); + int tx = (int) transform.getTranslateX(); + int ty = (int) transform.getTranslateY(); + rawDrawRect(x + tx, y + ty, w, h); } else { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.rect == null) sc.rect = new Rectangle(); sc.rect.setBounds(x, y, w, h); @@ -1204,7 +1250,7 @@ public abstract class AbstractGraphics2D } else { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.rect == null) sc.rect = new Rectangle(); sc.rect.setBounds(x, y, width, height); @@ -1249,7 +1295,7 @@ public abstract class AbstractGraphics2D public void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.roundRect == null) sc.roundRect = new RoundRectangle2D.Float(); sc.roundRect.setRoundRect(x, y, width, height, arcWidth, arcHeight); @@ -1269,7 +1315,7 @@ public abstract class AbstractGraphics2D public void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.roundRect == null) sc.roundRect = new RoundRectangle2D.Float(); sc.roundRect.setRoundRect(x, y, width, height, arcWidth, arcHeight); @@ -1286,7 +1332,7 @@ public abstract class AbstractGraphics2D */ public void drawOval(int x, int y, int width, int height) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.ellipse == null) sc.ellipse = new Ellipse2D.Float(); sc.ellipse.setFrame(x, y, width, height); @@ -1303,7 +1349,7 @@ public abstract class AbstractGraphics2D */ public void fillOval(int x, int y, int width, int height) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.ellipse == null) sc.ellipse = new Ellipse2D.Float(); sc.ellipse.setFrame(x, y, width, height); @@ -1316,7 +1362,7 @@ public abstract class AbstractGraphics2D public void drawArc(int x, int y, int width, int height, int arcStart, int arcAngle) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.arc == null) sc.arc = new Arc2D.Float(); sc.arc.setArc(x, y, width, height, arcStart, arcAngle, Arc2D.OPEN); @@ -1329,7 +1375,7 @@ public abstract class AbstractGraphics2D public void fillArc(int x, int y, int width, int height, int arcStart, int arcAngle) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.arc == null) sc.arc = new Arc2D.Float(); sc.arc.setArc(x, y, width, height, arcStart, arcAngle, Arc2D.PIE); @@ -1338,7 +1384,7 @@ public abstract class AbstractGraphics2D public void drawPolyline(int[] xPoints, int[] yPoints, int npoints) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.polyline == null) sc.polyline = new GeneralPath(); GeneralPath p = sc.polyline; @@ -1355,7 +1401,7 @@ public abstract class AbstractGraphics2D */ public void drawPolygon(int[] xPoints, int[] yPoints, int npoints) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.polygon == null) sc.polygon = new Polygon(); sc.polygon.reset(); @@ -1370,7 +1416,7 @@ public abstract class AbstractGraphics2D */ public void fillPolygon(int[] xPoints, int[] yPoints, int npoints) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.polygon == null) sc.polygon = new Polygon(); sc.polygon.reset(); @@ -1559,8 +1605,9 @@ public abstract class AbstractGraphics2D { Object v = renderingHints.get(RenderingHints.KEY_TEXT_ANTIALIASING); // We default to antialiasing for text rendering. - antialias = (v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON - || v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT); + antialias = v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON + || (v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT + && DEFAULT_TEXT_AA); } else { @@ -1569,12 +1616,15 @@ public abstract class AbstractGraphics2D } ScanlineConverter sc = getScanlineConverter(); int resolution = 0; + int yRes = 0; if (antialias) { // Adjust resolution according to rendering hints. resolution = 2; + yRes = 4; } - sc.renderShape(this, s, clip, transform, resolution, renderingHints); + sc.renderShape(this, s, clip, transform, resolution, yRes, renderingHints); + freeScanlineConverter(sc); } /** @@ -1606,7 +1656,7 @@ public abstract class AbstractGraphics2D */ protected void rawDrawLine(int x0, int y0, int x1, int y1) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.line == null) sc.line = new Line2D.Float(); sc.line.setLine(x0, y0, x1, y1); @@ -1615,7 +1665,7 @@ public abstract class AbstractGraphics2D protected void rawDrawRect(int x, int y, int w, int h) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.rect == null) sc.rect = new Rectangle(); sc.rect.setBounds(x, y, w, h); @@ -1623,22 +1673,6 @@ public abstract class AbstractGraphics2D } /** - * Draws a string in optimization mode. The implementation should respect the - * clip and translation. It can assume that the clip is a rectangle and that - * the transform is only a translating transform. - * - * @param text the string to be drawn - * @param x the start of the baseline, X coordinate - * @param y the start of the baseline, Y coordinate - */ - protected void rawDrawString(String text, int x, int y) - { - FontRenderContext ctx = getFontRenderContext(); - GlyphVector gv = font.createGlyphVector(ctx, text.toCharArray()); - drawGlyphVector(gv, x, y); - } - - /** * Clears a rectangle in optimization mode. The implementation should respect the * clip and translation. It can assume that the clip is a rectangle and that * the transform is only a translating transform. @@ -1667,7 +1701,7 @@ public abstract class AbstractGraphics2D */ protected void rawFillRect(int x, int y, int w, int h) { - ShapeCache sc = getShapeCache(); + ShapeCache sc = shapeCache; if (sc.rect == null) sc.rect = new Rectangle(); sc.rect.setBounds(x, y, w, h); @@ -1918,35 +1952,38 @@ public abstract class AbstractGraphics2D } /** - * Returns the ShapeCache for the calling thread. + * Returns a free scanline converter from the pool. * - * @return the ShapeCache for the calling thread + * @return a scanline converter */ - private ShapeCache getShapeCache() + private ScanlineConverter getScanlineConverter() { - ShapeCache sc = shapeCache.get(); - if (sc == null) + synchronized (scanlineConverters) { - sc = new ShapeCache(); - shapeCache.set(sc); + ScanlineConverter sc; + if (scanlineConverters.size() > 0) + { + sc = scanlineConverters.removeFirst(); + } + else + { + sc = new ScanlineConverter(); + } + return sc; } - return sc; } /** - * Returns the scanline converter for this thread. + * Puts a scanline converter back in the pool. * - * @return the scanline converter for this thread + * @param sc */ - private ScanlineConverter getScanlineConverter() + private void freeScanlineConverter(ScanlineConverter sc) { - ScanlineConverter sc = scanlineConverters.get(); - if (sc == null) + synchronized (scanlineConverters) { - sc = new ScanlineConverter(); - scanlineConverters.set(sc); + scanlineConverters.addLast(sc); } - return sc; } } diff --git a/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java b/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java new file mode 100644 index 00000000000..c83ad1fff8f --- /dev/null +++ b/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java @@ -0,0 +1,132 @@ +package gnu.java.awt.java2d; + +/** + * Stores and handles the pixel converage for a scanline. The pixel coverage + * is stored as sorted list of buckets, each of which holds information about + * the coverage for the X and Y axis. This is utilized to compute the actual + * coverage for each pixel on the scanline and finding chunks of pixels with + * equal coverage. + */ +final class PixelCoverage +{ + + /** + * One bucket in the list. + */ + private static final class Bucket + { + /** + * The X coordinate on the scanline to which this bucket belongs. + */ + int xPos; + + /** + * The X coverage. + */ + int xCov; + + /** + * The Y coverage. + */ + int yCov; + + /** + * Implements a linked list. This points to the next element of the list. + */ + Bucket next; + + /** + * Implements a linked list. This points to the previous element of the + * list. + */ + Bucket prev; + } + + /** + * The head of the sorted list of buckets. + */ + private Bucket head; + + /** + * The current bucket. We make use of the fact that the scanline converter + * always scans the scanline (and thus this list) from left to right to + * quickly find buckets or insertion points. + */ + private Bucket current; + + /** + * The bucket after the last valid bucket. Unused buckets are not thrown + * away and garbage collected. Instead, we keep them at the tail of the list + * and reuse them when necessary. + */ + private Bucket last; + + /** + * Indicates the the next scan of the scanline begins and that the next + * request will be at the beginning of this list. This makes searching and + * sorting of this list very quick. + */ + void rewind() + { + current = head; + } + + /** + * Clears the list. This does not throw away the old buckets but only + * resets the end-pointer of the list to the first element. All buckets are + * then unused and are reused when the list is filled again. + */ + void clear() + { + last = head; + } + + /** + * This adds the specified x and y coverage to the pixel at the specified + * X position. + * + * @param x the X position + * @param xc the x coverage + * @param yc the y coverage + */ + void add(int x, int xc, int yc) + { + Bucket bucket = findOrInsert(x); + bucket.xCov += xc; + bucket.yCov += yc; + } + + /** + * Finds the bucket in the list with the specified X coordinate. + * If no such bucket is found, then a new one is fetched (either a cached + * bucket from the end of the list or a newly allocated one) inserted at the + * correct position and returned. + * + * @param x the X coordinate + * + * @return a bucket to hold the coverage data + */ + private Bucket findOrInsert(int x) + { + // First search for a matching bucket. + if (head == null) + { + // Special case: the list is still empty. + head = new Bucket(); + current = head; + return head; + } + + // This performs a linear search, starting from the current bucket. + // This is reasonably efficient because access to this list is always done + // in a linear fashion and we are not more then 1 or 2 buckets away from + // the one we're looking for. + Bucket match = current; + while (match != null && match.xPos != x) + { + + } + + return match; + } +} diff --git a/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java b/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java index 2693a0b70c7..cc4bbef28c0 100644 --- a/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java +++ b/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java @@ -62,11 +62,6 @@ public final class ScanlineConverter private static int ONE = Fixed.fixedValue(FIXED_DIGITS, 1); /** - * The number of significant bits for the Y resolution. - */ - private static int Y_RESOLUTION = 4; - - /** * The actual number of scanlines. */ private int numScanlines; @@ -94,6 +89,11 @@ public final class ScanlineConverter private int resolution; /** + * The number of significant bits for the 'Y' resolution. + */ + private int yResolution; + + /** * One half step according to the resolution. This is stored to avoid * unnecessary operations during rendering. */ @@ -145,14 +145,15 @@ public final class ScanlineConverter * @param trans the transform */ public void renderShape(Pixelizer p, Shape shape, Shape clip, - AffineTransform trans, int res, RenderingHints hints) + AffineTransform trans, int res, int yRes, + RenderingHints hints) { // TODO: Do something useful with the rendering hints. Like, adjusting // the resolution. // Prepare resolution and upper bounds. clear(); - setResolution(res); + setResolution(res, yRes); boolean haveClip = clip != null; @@ -278,10 +279,10 @@ public final class ScanlineConverter int frac0 = ONE - Fixed.trunc(FIXED_DIGITS, x0); int frac1 = ONE - Fixed.trunc(FIXED_DIGITS, x1); // Only keep the first 4 digits after the point. - frac0 = frac0 >> (FIXED_DIGITS - Y_RESOLUTION); - frac1 = frac1 >> (FIXED_DIGITS - Y_RESOLUTION); - scanlineCoverage.add(pix0, 1 * (1 << Y_RESOLUTION), frac0); - scanlineCoverage.add(pix1, -1 * (1 << Y_RESOLUTION), -frac1); + frac0 = frac0 >> (FIXED_DIGITS - yResolution); + frac1 = frac1 >> (FIXED_DIGITS - yResolution); + scanlineCoverage.add(pix0, 1 * (1 << yResolution), frac0); + scanlineCoverage.add(pix1, -1 * (1 << yResolution), -frac1); } if (edge.isClip) inClip = ! inClip; @@ -306,14 +307,16 @@ public final class ScanlineConverter * * @param res the resolution */ - private void setResolution(int res) + private void setResolution(int res, int yRes) { int scanlinesPerPixel = 1 << res; int one = Fixed.fixedValue(FIXED_DIGITS, 1); resolution = one / (scanlinesPerPixel); halfStep = resolution / 2; - scanlineCoverage.setMaxCoverage(scanlinesPerPixel << Y_RESOLUTION); + scanlineCoverage.setMaxCoverage(scanlinesPerPixel << yResolution); + + yResolution = yRes; } /** diff --git a/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java b/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java index 6db7fb01988..deb603bcb51 100644 --- a/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java +++ b/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java @@ -157,7 +157,7 @@ public final class ScanlineCoverage * A data object that carries information about pixel coverage on a scanline. * The data consists of a starting X position on the scanline, the * length of the range in pixels and the actual coverage value. -´ */ + **/ public static final class Range { /** diff --git a/libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java b/libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java new file mode 100644 index 00000000000..f4e77f450d0 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java @@ -0,0 +1,119 @@ +/* ShapeWrapper.java -- Protects shapes by wrapping them + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.java.awt.java2d; + +import java.awt.Rectangle; +import java.awt.Shape; +import java.awt.geom.AffineTransform; +import java.awt.geom.PathIterator; +import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; + +/** + * Protects any other shape from beeing modified by wrapping it. + */ +public class ShapeWrapper + implements Shape +{ + + /** + * The shape to be protected. + */ + private Shape shape; + + /** + * Creates a new ShapeWrapper. + * + * @param other the shape to be protected + */ + public ShapeWrapper(Shape other) + { + shape = other; + } + + public boolean contains(double x, double y) + { + return shape.contains(x, y); + } + + public boolean contains(Point2D p) + { + return shape.contains(p); + } + + public boolean contains(double x, double y, double w, double h) + { + return shape.contains(x, y, w, h); + } + + public boolean contains(Rectangle2D r) + { + return shape.contains(r); + } + + public Rectangle getBounds() + { + return shape.getBounds(); + } + + public Rectangle2D getBounds2D() + { + return shape.getBounds2D(); + } + + public PathIterator getPathIterator(AffineTransform transform) + { + return shape.getPathIterator(transform); + } + + public PathIterator getPathIterator(AffineTransform transform, double flatness) + { + return shape.getPathIterator(transform, flatness); + } + + public boolean intersects(double x, double y, double w, double h) + { + return shape.intersects(x, y, w, h); + } + + public boolean intersects(Rectangle2D r) + { + return shape.intersects(r); + } + +} diff --git a/libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java b/libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java new file mode 100644 index 00000000000..0a60c622676 --- /dev/null +++ b/libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java @@ -0,0 +1,153 @@ +/* TextCacheKey.java -- Key to use for caching texts with their rendered layout + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.java.awt.java2d; + +import java.awt.Font; +import java.awt.font.FontRenderContext; + +/** + * A key object to be used when caching pre-rendered text. + */ +public class TextCacheKey +{ + + /** + * The actual string. + */ + private String string; + + /** + * The font render context. + */ + private FontRenderContext fontRenderContext; + + /** + * The font. + */ + private Font font; + + /** + * Creates a new TextCacheKey. + * + * This is intended to be used as search key. It is important to initialize + * the values using the setter methods before using this key, otherwise + * it will throw NPEs. + */ + public TextCacheKey() + { + // No-arg constructor. + } + + /** + * Creates a new TextCacheKey with initial values. + * + * @param s the string + * @param f the font + * @param frc the font render context + */ + public TextCacheKey(String s, Font f, FontRenderContext frc) + { + string = s; + font = f; + fontRenderContext = frc; + } + + /** + * Re-sets the string. This is intented to be used in search keys only. + * + * @param s the string to set + */ + public void setString(String s) + { + string = s; + } + + /** + * Sets the font render context. + * This is intented to be used in search keys only. + * + * @param frc the new font render context + */ + public void setFontRenderContext(FontRenderContext frc) + { + fontRenderContext = frc; + } + + /** + * Sets the font. + * This is intented to be used in search keys only. + * + * @param f the font to set + */ + public void setFont(Font f) + { + font = f; + } + + /** + * Determines if two objects are equal. + * + * @see Object#equals(Object) + */ + public boolean equals(Object o) + { + boolean eq; + if (o instanceof TextCacheKey) + { + TextCacheKey other = (TextCacheKey) o; + eq = other.string.equals(string) + && other.font.equals(font) + && other.fontRenderContext.equals(fontRenderContext); + } + else + { + eq = false; + } + return eq; + } + + /** + * Computes a hashcode for this key. + * + * @see Object#hashCode() + */ + public int hashCode() + { + return string.hashCode() ^ font.hashCode() ^ fontRenderContext.hashCode(); + } +} diff --git a/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java b/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java index 676bd891758..30dd89ba7b2 100644 --- a/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java @@ -37,10 +37,8 @@ package gnu.java.awt.peer; -import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.net.URI; /** * @author Mario Torre <neugens@limasoftware.net> diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java b/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java index db8acd1cda0..fcd3f6acd92 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java @@ -38,6 +38,8 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.classpath.Configuration; + import gnu.java.awt.ClasspathToolkit; import java.awt.AWTPermission; @@ -120,7 +122,10 @@ public abstract class CairoGraphics2D extends Graphics2D { static { - System.loadLibrary("gtkpeer"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("gtkpeer"); + } } /** @@ -222,7 +227,7 @@ public abstract class CairoGraphics2D extends Graphics2D /** * Sets up the default values and allocates the native cairographics2d structure - * @param cairo_t_pointer, a native pointer to a cairo_t of the context. + * @param cairo_t_pointer a native pointer to a cairo_t of the context. */ public void setup(long cairo_t_pointer) { @@ -341,7 +346,8 @@ public abstract class CairoGraphics2D extends Graphics2D /** * Draw pixels as an RGBA int matrix - * @param w, h - width and height + * @param w - width + * @param h - height * @param stride - stride of the array width * @param i2u - affine transform array */ @@ -2113,10 +2119,10 @@ public abstract class CairoGraphics2D extends Graphics2D private static Rectangle computeIntersection(int x, int y, int w, int h, Rectangle rect) { - int x2 = (int) rect.x; - int y2 = (int) rect.y; - int w2 = (int) rect.width; - int h2 = (int) rect.height; + int x2 = rect.x; + int y2 = rect.y; + int w2 = rect.width; + int h2 = rect.height; int dx = (x > x2) ? x : x2; int dy = (y > y2) ? y : y2; diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java b/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java index b45a79fd6e7..6c8a30d1143 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java @@ -43,9 +43,7 @@ import gnu.java.awt.Buffers; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; -import java.awt.Shape; import java.awt.color.ColorSpace; -import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DataBuffer; @@ -102,7 +100,8 @@ public class CairoSurface extends WritableRaster 0x000000FF); /** * Allocates and clears the buffer and creates the cairo surface. - * @param width, height - the image size + * @param width - the image size + * @param height - the image size * @param stride - the buffer row stride. (in ints) */ private native void create(int width, int height, int stride, int[] buf); diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java index 4ce20a30d32..bfa3bc96ac3 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java @@ -153,7 +153,7 @@ public class ComponentGraphics extends CairoGraphics2D /** * Creates a cairo_t for a volatile image */ - protected native long initFromVolatile( long pixmapPtr, int width, int height); + protected native long initFromVolatile( long pixmapPtr); /** * Grab lock @@ -938,4 +938,4 @@ public class ComponentGraphics extends CairoGraphics2D unlock(); } } -}
\ No newline at end of file +} diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java index 95a806ac7ee..403671cc63e 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.classpath.Configuration; import gnu.classpath.Pointer; import gnu.java.awt.ClasspathToolkit; @@ -166,7 +167,10 @@ public class GdkFontPeer extends ClasspathFontPeer static { - System.loadLibrary("gtkpeer"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("gtkpeer"); + } initStaticState (); diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java index d06af84433f..980866c4b67 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.classpath.Configuration; import gnu.java.awt.ClasspathGraphicsEnvironment; import java.awt.Font; @@ -72,7 +73,10 @@ public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment static { - System.loadLibrary("gtkpeer"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("gtkpeer"); + } GtkToolkit.initializeGlobalIDs(); initIDs(); diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java index e52bf050c09..dbf4a2018c1 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java @@ -68,13 +68,17 @@ import javax.imageio.spi.ImageWriterSpi; import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.ImageOutputStream; +import gnu.classpath.Configuration; import gnu.classpath.Pointer; public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder { static { - System.loadLibrary("gtkpeer"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("gtkpeer"); + } initStaticState (); } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java index 7ef4645a257..9ce0b96dac3 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java @@ -46,6 +46,7 @@ import java.awt.Rectangle; import java.awt.Window; import java.util.ArrayList; +import gnu.classpath.Configuration; import gnu.classpath.Pointer; class GdkScreenGraphicsDevice extends GraphicsDevice @@ -98,7 +99,11 @@ class GdkScreenGraphicsDevice extends GraphicsDevice static { - System.loadLibrary("gtkpeer"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("gtkpeer"); + } + GtkToolkit.initializeGlobalIDs(); initIDs(); } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java index f658c17afbb..4b8fc128cb7 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java @@ -105,7 +105,9 @@ public class GtkComponentPeer extends GtkGenericPeer native void gtkWidgetGetDimensions (int[] dim); native void gtkWidgetGetPreferredDimensions (int[] dim); native void gtkWindowGetLocationOnScreen (int[] point); + native void gtkWindowGetLocationOnScreenUnlocked (int[] point); native void gtkWidgetGetLocationOnScreen (int[] point); + native void gtkWidgetGetLocationOnScreenUnlocked (int[] point); native void gtkWidgetSetCursor (int type, GtkImage image, int x, int y); native void gtkWidgetSetCursorUnlocked (int type, GtkImage image, int x, int y); @@ -250,7 +252,10 @@ public class GtkComponentPeer extends GtkGenericPeer public Point getLocationOnScreen () { int point[] = new int[2]; - gtkWidgetGetLocationOnScreen (point); + if (Thread.currentThread() == GtkMainThread.mainThread) + gtkWidgetGetLocationOnScreenUnlocked (point); + else + gtkWidgetGetLocationOnScreen (point); return new Point (point[0], point[1]); } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java index 4278a4579e4..87dbd5e0f56 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java @@ -87,7 +87,7 @@ public class GtkFramePeer extends GtkWindowPeer { // We're adding a menubar where there was no menubar before. gtkFixedSetVisible (false); - menuBar = (MenuBarPeer) ((MenuBar) bar).getPeer(); + menuBar = (MenuBarPeer) bar.getPeer(); setMenuBarPeer (menuBar); int menuBarWidth = awtComponent.getWidth () - insets.left - insets.right; @@ -109,7 +109,7 @@ public class GtkFramePeer extends GtkWindowPeer int oldHeight = menuBarHeight; int menuBarWidth = awtComponent.getWidth () - insets.left - insets.right; - menuBar = (MenuBarPeer) ((MenuBar) bar).getPeer (); + menuBar = (MenuBarPeer) bar.getPeer (); setMenuBarPeer (menuBar); if (menuBarWidth > 0) setMenuBarWidth (menuBar, menuBarWidth); diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java index e40a04eed92..0ee61df84b7 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java @@ -134,7 +134,7 @@ public class GtkMainThread extends Thread } } GtkGenericPeer.q() - .postEvent(new NativeEventLoopRunningEvent(new Boolean(true))); + .postEvent(new NativeEventLoopRunningEvent(Boolean.TRUE)); } } } @@ -161,7 +161,7 @@ public class GtkMainThread extends Thread } } GtkGenericPeer.q() - .postEvent(new NativeEventLoopRunningEvent(new Boolean(false))); + .postEvent(new NativeEventLoopRunningEvent(Boolean.FALSE)); } } } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java index dc9c7155e6e..486304ef010 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java @@ -39,6 +39,8 @@ exception statement from your version. */ package gnu.java.awt.peer.gtk; +import gnu.classpath.Configuration; + import gnu.java.awt.AWTUtilities; import gnu.java.awt.EmbeddedWindow; import gnu.java.awt.dnd.GtkMouseDragGestureRecognizer; @@ -170,7 +172,10 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit static { - System.loadLibrary("gtkpeer"); + if (Configuration.INIT_LOAD_LIBRARY) + { + System.loadLibrary("gtkpeer"); + } /** * Gotta do that first. diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java index 5dc4b2e5b37..9744c3a532e 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java @@ -396,7 +396,10 @@ public class GtkWindowPeer extends GtkContainerPeer public Point getLocationOnScreen() { int point[] = new int[2]; - gtkWindowGetLocationOnScreen(point); + if (Thread.currentThread() == GtkMainThread.mainThread) + gtkWindowGetLocationOnScreenUnlocked(point); + else + gtkWindowGetLocationOnScreen(point); return new Point(point[0], point[1]); } diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java index ad5cd5ecdf2..b5858f90595 100644 --- a/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java +++ b/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java @@ -68,14 +68,14 @@ public class VolatileImageGraphics extends ComponentGraphics public VolatileImageGraphics(GtkVolatileImage img) { this.owner = img; - cairo_t = initFromVolatile( owner.nativePointer, img.width, img.height ); + cairo_t = initFromVolatile( owner.nativePointer ); setup( cairo_t ); } private VolatileImageGraphics(VolatileImageGraphics copy) { this.owner = copy.owner; - cairo_t = initFromVolatile(owner.nativePointer, owner.width, owner.height); + cairo_t = initFromVolatile(owner.nativePointer); copy( copy, cairo_t ); } diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java b/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java index 7457c38d2ff..87324c71043 100644 --- a/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java @@ -74,7 +74,7 @@ public class QtMenuPeer extends QtMenuComponentPeer implements MenuPeer Menu o = (Menu)owner; for( int i=0; i < o.getItemCount(); i++ ) { - MenuItem ci = (MenuItem)o.getItem(i); + MenuItem ci = o.getItem(i); if (ci instanceof Menu && ci.getPeer() != null) ((QtMenuPeer)ci.getPeer()).addItems(); addItem( ci ); diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java index a8e3cb01bab..03d6388e9f2 100755 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java @@ -37,16 +37,12 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; -import java.awt.Button; import java.awt.Checkbox; import java.awt.CheckboxGroup; import java.awt.Container; import java.awt.Graphics; import java.awt.Image; -import java.awt.Label; import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; @@ -56,7 +52,6 @@ import java.awt.peer.CheckboxPeer; import javax.swing.JCheckBox; import javax.swing.JComponent; -import javax.swing.JLabel; import javax.swing.JToggleButton; /** diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java index bd9dcd77aaa..0033efb025f 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java @@ -174,7 +174,7 @@ public class SwingMenuBarPeer /** * Adds a help menu to the menu bar. * - * @param m the menu to add + * @param menu the menu to add */ public void addHelpMenu(Menu menu) { diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java index 2c438a1ccb1..5be82f69593 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java @@ -37,7 +37,6 @@ exception statement from your version. */ package gnu.java.awt.peer.swing; -import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java index 29a689da42a..28dc5f339bf 100644 --- a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java @@ -36,7 +36,6 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ package gnu.java.awt.peer.swing; -import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; @@ -328,7 +327,7 @@ public class SwingTextFieldPeer * @param startPos the start index of the selection * @param endPos the start index of the selection */ - public void select(int start_pos, int endPos) + public void select(int startPos, int endPos) { // TODO: Must be implemented. } diff --git a/libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java b/libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java deleted file mode 100644 index 6d32448eece..00000000000 --- a/libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java +++ /dev/null @@ -1,113 +0,0 @@ -/* ImageConverter.java -- Convert arbitrary Image impl to XImage - Copyright (C) 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package gnu.java.awt.peer.x; - -import java.awt.Color; -import java.awt.Graphics; -import java.awt.image.ColorModel; -import java.awt.image.ImageConsumer; -import java.util.Hashtable; - -/** - * Convert a non-XImage to an XImage. - * - * @author Roman Kennke (kennke@aicas.com) - */ -public class ImageConverter implements ImageConsumer -{ - - private XImage image; - private Graphics imageGraphics; - - public void setDimensions(int width, int height) - { - image = new XImage(width, height); - } - - public void setProperties(Hashtable props) - { - // Ignore for now. - } - - public void setColorModel(ColorModel model) - { - // Ignore for now. - } - - public void setHints(int flags) - { - // Ignore for now. - } - - public void setPixels(int x, int y, int w, int h, ColorModel model, - byte[] pixels, int offset, int scansize) - { - // FIXME: Implement this. - throw new UnsupportedOperationException("Not yet implemented"); - } - - public void setPixels(int x, int y, int w, int h, ColorModel model, - int[] pixels, int offset, int scansize) - { - System.err.println("transferType: " + model.getTransferType()); - System.err.println("colorModel: " + model); - if (imageGraphics == null) - imageGraphics = image.getGraphics(); - int xend = x + w; - int yend = y + h; - for (int yy = y; yy < yend; yy++) - { - for (int xx = x; xx < xend; xx++) - { - int pixel = pixels[yy * scansize + xx + offset]; - imageGraphics.setColor(new Color(model.getRGB(pixel))); - imageGraphics.fillRect(xx, yy, 1, 1); - } - } - } - - public void imageComplete(int status) - { - // Nothing to do here. - } - - XImage getXImage() - { - return image; - } -} diff --git a/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java b/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java index d376619c595..7f984353316 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java @@ -39,6 +39,7 @@ exception statement from your version. */ package gnu.java.awt.peer.x; import java.awt.Graphics; +import java.awt.Insets; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.Window; @@ -223,16 +224,21 @@ public class XEventPump System.err.println("resize request for window id: " + key); // Detect and report size changes. - if (c.width() != awtWindow.getWidth() - || c.height() != awtWindow.getHeight()) + XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer(); + Insets i = xwindow.insets(); + if (c.width() != awtWindow.getWidth() - i.left - i.right + || c.height() != awtWindow.getHeight() - i.top - i.bottom) { if (XToolkit.DEBUG) System.err.println("Setting size on AWT window: " + c.width() + ", " + c.height() + ", " + awtWindow.getWidth() + ", " + awtWindow.getHeight()); - ((XWindowPeer) awtWindow.getPeer()).callback = true; - awtWindow.setSize(c.width(), c.height()); - ((XWindowPeer) awtWindow.getPeer()).callback = false; + xwindow.callback = true; + xwindow.xwindow.width = c.width(); + xwindow.xwindow.height = c.height(); + awtWindow.setSize(c.width() + i.left + i.right, + c.height() + i.top + i.bottom); + xwindow.callback = false; } break; case Expose.CODE: @@ -245,6 +251,7 @@ public class XEventPump exp.height()); //System.err.println("expose paint: " + r); // We need to clear the background of the exposed rectangle. + assert awtWindow != null : "awtWindow == null for window ID: " + key; Graphics g = awtWindow.getGraphics(); g.clearRect(r.x, r.y, r.width, r.height); g.dispose(); diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java new file mode 100644 index 00000000000..0a96a613b4e --- /dev/null +++ b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java @@ -0,0 +1,768 @@ +/* XFontPeer.java -- The font peer for X + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package gnu.java.awt.peer.x; + +import java.awt.AWTError; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.GraphicsDevice; +import java.awt.GraphicsEnvironment; +import java.awt.font.FontRenderContext; +import java.awt.font.GlyphVector; +import java.awt.font.LineMetrics; +import java.awt.font.TextAttribute; +import java.awt.geom.Rectangle2D; +import java.io.IOException; +import java.io.InputStream; +import java.text.CharacterIterator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Locale; +import java.util.Map; +import java.util.Properties; + +import gnu.java.awt.peer.ClasspathFontPeer; +import gnu.x11.Display; +import gnu.x11.Fontable; + +/** + * The bridge from AWT to X fonts. + * + * @author Roman Kennke (kennke@aicas.com) + */ +public class XFontPeer + extends ClasspathFontPeer +{ + + /** + * The font mapping as specified in the file fonts.properties. + */ + private static Properties fontProperties; + static + { + fontProperties = new Properties(); + InputStream in = XFontPeer.class.getResourceAsStream("xfonts.properties"); + try + { + fontProperties.load(in); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + /** + * The FontMetrics implementation for XFontPeer. + */ + private class XFontMetrics + extends FontMetrics + { + /** + * The ascent of the font. + */ + int ascent; + + /** + * The descent of the font. + */ + int descent; + + /** + * The maximum of the character advances. + */ + private int maxAdvance; + + /** + * The internal leading. + */ + int leading; + + /** + * Cached string metrics. This caches string metrics locally so that the + * server doesn't have to be asked each time. + */ + private HashMap metricsCache; + + /** + * The widths of the characters indexed by the characters themselves. + */ + private int[] charWidths; + + /** + * Creates a new XFontMetrics for the specified font. + * + * @param font the font + */ + protected XFontMetrics(Font font) + { + super(font); + metricsCache = new HashMap(); + Fontable.FontInfo info = getXFont().info(); + ascent = info.font_ascent(); + descent = info.font_descent(); + maxAdvance = info.max_bounds().character_width(); + leading = 0; // TODO: Not provided by X. Possible not needed. + + if (info.min_byte1() == 0 && info.max_byte1() == 0) + readCharWidthsLinear(info); + else + readCharWidthsNonLinear(info); + } + + /** + * Reads the character widths when specified in a linear fashion. That is + * when the min-byte1 and max-byte2 fields are both zero in the X protocol. + * + * @param info the font info reply + */ + private void readCharWidthsLinear(Fontable.FontInfo info) + { + int startIndex = info.min_char_or_byte2(); + int endIndex = info.max_char_or_byte2(); + charWidths = new int[endIndex + 1]; + // All the characters before startIndex are zero width. + for (int i = 0; i < startIndex; i++) + { + charWidths[i] = 0; + } + // All the other character info is fetched from the font info. + int index = startIndex; + Fontable.FontInfo.CharInfo[] charInfos = info.char_infos(); + for (Fontable.FontInfo.CharInfo charInfo : charInfos) + { + charWidths[index] = charInfo.character_width(); + index++; + } + } + + private void readCharWidthsNonLinear(Fontable.FontInfo info) + { + // TODO: Implement. + throw new UnsupportedOperationException("Not yet implemented"); + } + + /** + * Returns the ascent of the font. + * + * @return the ascent of the font + */ + public int getAscent() + { + return ascent; + } + + /** + * Returns the descent of the font. + * + * @return the descent of the font + */ + public int getDescent() + { + return descent; + } + + /** + * Returns the overall height of the font. This is the distance from + * baseline to baseline (usually ascent + descent + leading). + * + * @return the overall height of the font + */ + public int getHeight() + { + return ascent + descent; + } + + /** + * Returns the leading of the font. + * + * @return the leading of the font + */ + public int getLeading() + { + return leading; + } + + /** + * Returns the maximum advance for this font. + * + * @return the maximum advance for this font + */ + public int getMaxAdvance() + { + return maxAdvance; + } + + /** + * Determines the width of the specified character <code>c</code>. + * + * @param c the character + * + * @return the width of the character + */ + public int charWidth(char c) + { + int width; + if (c > charWidths.length) + width = charWidths['?']; + else + width = charWidths[c]; + return width; + } + + /** + * Determines the overall width of the specified string. + * + * @param c the char buffer holding the string + * @param offset the starting offset of the string in the buffer + * @param length the number of characters in the string buffer + * + * @return the overall width of the specified string + */ + public int charsWidth(char[] c, int offset, int length) + { + int width = 0; + if (c.length > 0 && length > 0) + { + String s = new String(c, offset, length); + width = stringWidth(s); + } + return width; + } + + /** + * Determines the overall width of the specified string. + * + * @param s the string + * + * @return the overall width of the specified string + */ + public int stringWidth(String s) + { + int width = 0; + if (s.length() > 0) + { + if (metricsCache.containsKey(s)) + { + width = ((Integer) metricsCache.get(s)).intValue(); + } + else + { + Fontable.TextExtentInfo extents = getXFont().text_extent(s); + /* + System.err.println("string: '" + s + "' : "); + System.err.println("ascent: " + extents.getAscent()); + System.err.println("descent: " + extents.getDescent()); + System.err.println("overall ascent: " + extents.getOverallAscent()); + System.err.println("overall descent: " + extents.getOverallDescent()); + System.err.println("overall width: " + extents.getOverallWidth()); + System.err.println("overall left: " + extents.getOverallLeft()); + System.err.println("overall right: " + extents.getOverallRight()); + */ + width = extents.overall_width(); // + extents.overall_left(); + //System.err.println("String: " + s + ", width: " + width); + metricsCache.put(s, new Integer(width)); + } + } + //System.err.print("stringWidth: '" + s + "': "); + //System.err.println(width); + return width; + } + } + + /** + * The LineMetrics implementation for the XFontPeer. + */ + private class XLineMetrics + extends LineMetrics + { + + /** + * Returns the ascent of the font. + * + * @return the ascent of the font + */ + public float getAscent() + { + return fontMetrics.ascent; + } + + public int getBaselineIndex() + { + // FIXME: Implement this. + throw new UnsupportedOperationException(); + } + + public float[] getBaselineOffsets() + { + // FIXME: Implement this. + throw new UnsupportedOperationException(); + } + + /** + * Returns the descent of the font. + * + * @return the descent of the font + */ + public float getDescent() + { + return fontMetrics.descent; + } + + /** + * Returns the overall height of the font. This is the distance from + * baseline to baseline (usually ascent + descent + leading). + * + * @return the overall height of the font + */ + public float getHeight() + { + return fontMetrics.ascent + fontMetrics.descent; + } + + /** + * Returns the leading of the font. + * + * @return the leading of the font + */ + public float getLeading() + { + return fontMetrics.leading; + } + + public int getNumChars() + { + // FIXME: Implement this. + throw new UnsupportedOperationException(); + } + + public float getStrikethroughOffset() + { + return 0.F; // TODO: Provided by X?? + } + + public float getStrikethroughThickness() + { + return 1.F; // TODO: Provided by X?? + } + + public float getUnderlineOffset() + { + return 0.F; // TODO: Provided by X?? + } + + public float getUnderlineThickness() + { + return 1.F; // TODO: Provided by X?? + } + + } + + /** + * The X font. + */ + private gnu.x11.Font xfont; + + private String name; + + private int style; + + private int size; + + /** + * The font metrics for this font. + */ + XFontMetrics fontMetrics; + + /** + * Creates a new XFontPeer for the specified font name, style and size. + * + * @param name the font name + * @param style the font style (bold / italic / normal) + * @param size the size of the font + */ + public XFontPeer(String name, int style, int size) + { + super(name, style, size); + this.name = name; + this.style = style; + this.size = size; + } + + /** + * Creates a new XFontPeer for the specified font name and style + * attributes. + * + * @param name the font name + * @param atts the font attributes + */ + public XFontPeer(String name, Map atts) + { + super(name, atts); + String family = name; + if (family == null || family.equals("")) + family = (String) atts.get(TextAttribute.FAMILY); + if (family == null) + family = "SansSerif"; + + int size = 12; + Float sizeFl = (Float) atts.get(TextAttribute.SIZE); + if (sizeFl != null) + size = sizeFl.intValue(); + + int style = 0; + // Detect italic attribute. + Float posture = (Float) atts.get(TextAttribute.POSTURE); + if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR)) + style |= Font.ITALIC; + + // Detect bold attribute. + Float weight = (Float) atts.get(TextAttribute.WEIGHT); + if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0) + style |= Font.BOLD; + + this.name = name; + this.style = style; + this.size = size; + } + + /** + * Initializes the font peer with the specified attributes. This method is + * called from both constructors. + * + * @param name the font name + * @param style the font style + * @param size the font size + */ + private void init(String name, int style, int size) + { + if (name == null) + { + name = "SansSerif"; + } + GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice dev = env.getDefaultScreenDevice(); + if (dev instanceof XGraphicsDevice) + { + Display display = ((XGraphicsDevice) dev).getDisplay(); + String fontDescr = encodeFont(name, style, size); + if (XToolkit.DEBUG) + System.err.println("XLFD font description: " + fontDescr); + xfont = new gnu.x11.Font(display, fontDescr); + } + else + { + throw new AWTError("Local GraphicsEnvironment is not XWindowGraphicsEnvironment"); + } + } + + public boolean canDisplay(Font font, int c) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public int canDisplayUpTo(Font font, CharacterIterator i, int start, int limit) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public String getSubFamilyName(Font font, Locale locale) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public String getPostScriptName(Font font) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public int getNumGlyphs(Font font) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public int getMissingGlyphCode(Font font) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public byte getBaselineFor(Font font, char c) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public String getGlyphName(Font font, int glyphIndex) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public GlyphVector createGlyphVector(Font font, FontRenderContext frc, + CharacterIterator ci) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public GlyphVector createGlyphVector(Font font, FontRenderContext ctx, + int[] glyphCodes) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public GlyphVector layoutGlyphVector(Font font, FontRenderContext frc, + char[] chars, int start, int limit, + int flags) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + /** + * Returns the font metrics for the specified font. + * + * @param font the font for which to fetch the font metrics + * + * @return the font metrics for the specified font + */ + public FontMetrics getFontMetrics(Font font) + { + if (font.getPeer() != this) + throw new AWTError("The specified font has a different peer than this"); + + if (fontMetrics == null) + fontMetrics = new XFontMetrics(font); + return fontMetrics; + } + + /** + * Frees the font in the X server. + */ + protected void finalize() + { + if (xfont != null) + xfont.close(); + } + + public boolean hasUniformLineMetrics(Font font) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + /** + * Returns the line metrics for this font and the specified string and + * font render context. + */ + public LineMetrics getLineMetrics(Font font, CharacterIterator ci, int begin, + int limit, FontRenderContext rc) + { + return new XLineMetrics(); + } + + public Rectangle2D getMaxCharBounds(Font font, FontRenderContext rc) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + public Rectangle2D getStringBounds(Font font, CharacterIterator ci, + int begin, int limit, FontRenderContext frc) + { + // TODO: Implement this. + throw new UnsupportedOperationException("Not yet implemented."); + } + + /** + * Encodes a font name + style + size specification into a X logical font + * description (XLFD) as described here: + * + * http://www.meretrx.com/e93/docs/xlfd.html + * + * This is implemented to look up the font description in the + * fonts.properties of this package. + * + * @param name the font name + * @param atts the text attributes + * + * @return the encoded font description + */ + static String encodeFont(String name, Map atts) + { + String family = name; + if (family == null || family.equals("")) + family = (String) atts.get(TextAttribute.FAMILY); + if (family == null) + family = "SansSerif"; + + int size = 12; + Float sizeFl = (Float) atts.get(TextAttribute.SIZE); + if (sizeFl != null) + size = sizeFl.intValue(); + + int style = 0; + // Detect italic attribute. + Float posture = (Float) atts.get(TextAttribute.POSTURE); + if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR)) + style |= Font.ITALIC; + + // Detect bold attribute. + Float weight = (Float) atts.get(TextAttribute.WEIGHT); + if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0) + style |= Font.BOLD; + + return encodeFont(family, style, size); + } + + /** + * Encodes a font name + style + size specification into a X logical font + * description (XLFD) as described here: + * + * http://www.meretrx.com/e93/docs/xlfd.html + * + * This is implemented to look up the font description in the + * fonts.properties of this package. + * + * @param name the font name + * @param style the font style + * @param size the font size + * + * @return the encoded font description + */ + static String encodeFont(String name, int style, int size) + { + StringBuilder key = new StringBuilder(); + key.append(validName(name)); + key.append('.'); + switch (style) + { + case Font.BOLD: + key.append("bold"); + break; + case Font.ITALIC: + key.append("italic"); + break; + case (Font.BOLD | Font.ITALIC): + key.append("bolditalic"); + break; + case Font.PLAIN: + default: + key.append("plain"); + + } + + String protoType = fontProperties.getProperty(key.toString()); + int s = validSize(size); + return protoType.replaceFirst("%d", String.valueOf(s)); + } + + /** + * Checks the specified font name for a valid font name. If the font name + * is not known, then this returns 'sansserif' as fallback. + * + * @param name the font name to check + * + * @return a valid font name + */ + static String validName(String name) + { + String retVal; + if (name.equalsIgnoreCase("sansserif") + || name.equalsIgnoreCase("serif") + || name.equalsIgnoreCase("monospaced") + || name.equalsIgnoreCase("dialog") + || name.equalsIgnoreCase("dialoginput")) + { + retVal = name.toLowerCase(); + } + else + { + retVal = "sansserif"; + } + return retVal; + } + + /** + * Translates an arbitrary point size to a size that is typically available + * on an X server. These are the sizes 8, 10, 12, 14, 18 and 24. + * + * @param size the queried size + * @return the real available size + */ + private static final int validSize(int size) + { + int val; + if (size <= 9) + val = 8; + else if (size <= 11) + val = 10; + else if (size <= 13) + val = 12; + else if (size <= 17) + val = 14; + else if (size <= 23) + val = 18; + else + val = 24; + return val; + } + + /** + * Returns the X Font reference. This lazily loads the font when first + * requested. + * + * @return the X Font reference + */ + gnu.x11.Font getXFont() + { + if (xfont == null) + { + init(name, style, size); + } + return xfont; + } +} diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java index 74e47bc2842..7424dc671ed 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java @@ -65,6 +65,7 @@ public class XFramePeer XFramePeer(Frame f) { super(f); + setTitle(f.getTitle()); } public void setIconImage(Image image) @@ -87,8 +88,7 @@ public class XFramePeer public void setTitle(String title) { - // TODO: Implement this. - throw new UnsupportedOperationException("Not yet implemented."); + xwindow.set_wm_name (title); } public int getState() diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java index 73e780cc5a2..95129666a05 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.x; import java.awt.Color; +import java.awt.Font; import java.awt.Graphics; import java.awt.GraphicsConfiguration; import java.awt.Image; @@ -45,12 +46,18 @@ import java.awt.Paint; import java.awt.Rectangle; import java.awt.Shape; import java.awt.Toolkit; +import java.awt.Transparency; import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; import java.awt.image.ImageObserver; import java.awt.image.Raster; +import java.awt.peer.FontPeer; import java.util.HashMap; +import java.util.WeakHashMap; +import gnu.java.awt.image.AsyncImage; import gnu.java.awt.java2d.AbstractGraphics2D; import gnu.java.awt.java2d.ScanlineCoverage; import gnu.x11.Colormap; @@ -63,6 +70,14 @@ public class XGraphics2D { /** + * When this property is set to true, then images are always rendered as + * opaque images, ignoring their translucence. This is intended for + * debugging and demonstration purposes. + */ + private static final boolean RENDER_OPAQUE = + Boolean.getBoolean("escherpeer.renderopaque"); + + /** * The X Drawable to draw on. */ private Drawable xdrawable; @@ -92,11 +107,19 @@ public class XGraphics2D //setClip(new Rectangle(0, 0, xdrawable.width, xdrawable.height)); } + @Override protected void rawDrawLine(int x0, int y0, int x1, int y1) { xdrawable.segment(xgc, x0, y0, x1, y1); } + @Override + protected void rawDrawRect(int x, int y, int w, int h) + { + xdrawable.rectangle(xgc, x, y, w, h, false); + } + + @Override protected void rawFillRect(int x, int y, int w, int h) { xdrawable.rectangle(xgc, x, y, w, h, true); @@ -217,55 +240,65 @@ public class XGraphics2D } } + @Override public void renderScanline(int y, ScanlineCoverage c) { + if (y >= xdrawable.height) + return; + + // TODO: Handle Composite and Paint. ScanlineCoverage.Iterator iter = c.iterate(); - float coverageAlpha = 0; + int coverageAlpha = 0; int maxCoverage = c.getMaxCoverage(); - Color old = getColor(); - Color col = getColor(); - if (col == null) - col = Color.BLACK; while (iter.hasNext()) { ScanlineCoverage.Range range = iter.next(); - // TODO: Dumb implementation for testing. + coverageAlpha = range.getCoverage(); - if (coverageAlpha > 0) + int x0 = range.getXPos(); + int l = range.getLength(); + if (coverageAlpha == c.getMaxCoverage()) + { + // Simply paint the current color over the existing pixels. + xdrawable.fill_rectangle(xgc, x0, y, l, 1); + } + else if (coverageAlpha > 0) { - int red = col.getRed(); - int green = col.getGreen(); - int blue = col.getBlue(); - if (coverageAlpha < c.getMaxCoverage()) + // Composite the current color with the existing pixels. + int x1 = x0 + l; + x0 = Math.min(Math.max(0, x0), xdrawable.width - 1); + x1 = Math.min(Math.max(0, x1), xdrawable.width - 1); + if ((x1 - x0) < 1) + continue; + l = x1 - x0; + gnu.x11.image.ZPixmap existing = (ZPixmap) + xdrawable.image(x0, y, l, 1, 0xFFFFFFFF, + gnu.x11.image.Image.Format.ZPIXMAP); + for (int x = 0; x < l; x++) { - float alpha = coverageAlpha / maxCoverage; - red = 255 - (int) ((255 - red) * alpha); - green = 255 - (int) ((255 - green) * alpha); - blue = 255 - (int) ((255 - blue) * alpha); + Color col = getColor(); + if (col == null) + { + col = Color.BLACK; + } + int red = col.getRed(); + int green = col.getGreen(); + int blue = col.getBlue(); + int redOut = existing.get_red(x, 0); + int greenOut = existing.get_green(x, 0); + int blueOut = existing.get_blue(x, 0); + int outAlpha = maxCoverage - coverageAlpha; + redOut = redOut * outAlpha + red * coverageAlpha; + redOut = redOut / maxCoverage; + greenOut = greenOut * outAlpha + green * coverageAlpha; + greenOut = greenOut / maxCoverage; + blueOut = blueOut * outAlpha + blue * coverageAlpha; + blueOut = blueOut / maxCoverage; + existing.set(x, 0, redOut, greenOut, blueOut); } - xgc.set_foreground(red << 16 | green << 8 | blue); - int x0 = range.getXPos(); - int l = range.getLength(); - xdrawable.fill_rectangle(xgc, x0, y, l, 1); + xdrawable.put_image(xgc, existing, x0, y); } } - if (old != null) - xgc.set_foreground(old.getRGB()); - } - - protected void fillScanline(int x0, int x1, int y) - { - xdrawable.segment(xgc, x0, y, x1, y); - } - - protected void fillScanlineAA(int x0, int x1, int y, int alpha) - { - //System.err.println("fillScanlineAA: " + x0 + ", " + x1 + ", " + y + ", " + alpha); - // FIXME: This is for testing only. - Color c = getColor(); - setColor(new Color(255-alpha, 255-alpha, 255-alpha)); - xdrawable.segment(xgc, x0, y, x1, y); - setColor(c); } protected void init() @@ -278,6 +311,7 @@ public class XGraphics2D super.setPaint(p); if (p instanceof Color) { + // TODO: Optimize for different standard bit-depths. Color c = (Color) p; XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit(); HashMap colorMap = tk.colorMap; @@ -302,8 +336,11 @@ public class XGraphics2D } } + private static WeakHashMap<Image,ZPixmap> imageCache = new WeakHashMap<Image,ZPixmap>(); + protected boolean rawDrawImage(Image image, int x, int y, ImageObserver obs) { + image = unwrap(image); boolean ret; if (image instanceof XImage) { @@ -319,6 +356,87 @@ public class XGraphics2D pvi.getHeight(obs), x, y); ret = true; } + else if (image instanceof BufferedImage) + { + BufferedImage bi = (BufferedImage) image; + DataBuffer db = bi.getRaster().getDataBuffer(); + if (db instanceof ZPixmapDataBuffer) + { + ZPixmapDataBuffer zpmdb = (ZPixmapDataBuffer) db; + ZPixmap zpixmap = zpmdb.getZPixmap(); + xdrawable.put_image(xgc, zpixmap, x, y); + ret = true; + } + else + { + int transparency = bi.getTransparency(); + int w = bi.getWidth(); + int h = bi.getHeight(); + if (imageCache.containsKey(image)) + { + ZPixmap zpixmap = imageCache.get(image); + xdrawable.put_image(xgc, zpixmap, x, y); + } + else if (transparency == Transparency.OPAQUE || RENDER_OPAQUE) + { + XGraphicsDevice gd = XToolkit.getDefaultDevice(); + ZPixmap zpixmap = new ZPixmap(gd.getDisplay(), w, h); + for (int yy = 0; yy < h; yy++) + { + for (int xx = 0; xx < w; xx++) + { + int rgb = bi.getRGB(xx, yy); + zpixmap.set(xx, yy, rgb); + } + } + xdrawable.put_image(xgc, zpixmap, x, y); + imageCache.put(image, zpixmap); + } else { + ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h, + 0xffffffff, + gnu.x11.image.Image.Format.ZPIXMAP); + for (int yy = 0; yy < h; yy++) + { + for (int xx = 0; xx < w; xx++) + { + int rgb = bi.getRGB(xx, yy); + int alpha = 0xff & (rgb >> 24); + if (alpha == 0) + { + // Completely translucent. + rgb = zpixmap.get_red(xx, yy) << 16 + | zpixmap.get_green(xx, yy) << 8 + | zpixmap.get_blue(xx, yy); + } + else if (alpha < 255) + { + // Composite pixels. + int red = 0xff & (rgb >> 16); + red = red * alpha + + (255 - alpha) * zpixmap.get_red(xx, yy); + red = red / 255; + int green = 0xff & (rgb >> 8); + green = green * alpha + + (255 - alpha) * zpixmap.get_green(xx, yy); + green = green / 255; + int blue = 0xff & rgb; + blue = blue * alpha + + (255 - alpha) * zpixmap.get_blue(xx, yy); + blue = blue / 255; + rgb = red << 16 | green << 8 | blue; + } + // else keep rgb value from source image. + + zpixmap.set(xx, yy, rgb); + } + } + xdrawable.put_image(xgc, zpixmap, x, y); + // We can't cache prerendered translucent images, because + // we never know how the background changes. + } + ret = true; + } + } else { ret = super.rawDrawImage(image, x, y, obs); @@ -326,6 +444,50 @@ public class XGraphics2D return ret; } + public void setFont(Font f) + { + super.setFont(f); + FontPeer p = getFont().getPeer(); + if (p instanceof XFontPeer) + { + XFontPeer xFontPeer = (XFontPeer) p; + xgc.set_font(xFontPeer.getXFont()); + } + } + + public void drawString(String s, int x, int y) + { + FontPeer p = getFont().getPeer(); + if (p instanceof XFontPeer) + { + int tx = (int) transform.getTranslateX(); + int ty = (int) transform.getTranslateY(); + xdrawable.text(xgc, x + tx, y + ty, s); + } + else + { + super.drawString(s, x, y); + } + } + + /** + * Extracts an image instance out of an AsyncImage. If the image isn't + * an AsyncImage, then the original instance is returned. + * + * @param im the image + * + * @return the image to render + */ + private Image unwrap(Image im) + { + Image image = im; + if (image instanceof AsyncImage) + { + AsyncImage aIm = (AsyncImage) image; + image = aIm.getRealImage(); + } + return image; + } } diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java index 11a9c9694f1..85f72a4eff4 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java @@ -37,6 +37,10 @@ exception statement from your version. */ package gnu.java.awt.peer.x; +import gnu.x11.Display; +import gnu.x11.Screen; + +import java.awt.Dimension; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.Point; @@ -158,4 +162,38 @@ public class XGraphicsConfiguration throw new UnsupportedOperationException("Not yet implemented."); } + /** + * Determines the size of the primary screen. + * + * @return the size of the primary screen + */ + Dimension getSize() + { + // TODO: A GraphicsConfiguration should correspond to a Screen instance. + Display d = device.getDisplay(); + Screen screen = d.default_screen; + int w = screen.width; + int h = screen.height; + return new Dimension(w, h); + } + + /** + * Determines the resolution of the primary screen in pixel-per-inch. + * + * @returnthe resolution of the primary screen in pixel-per-inch + */ + int getResolution() + { + Display d = device.getDisplay(); + Screen screen = d.default_screen; + int w = screen.width * 254; + int h = screen.height * 254; + int wmm = screen.width_in_mm * 10; + int hmm = screen.height_in_mm * 10; + int xdpi = w / wmm; + int ydpi = h / hmm; + int dpi = (xdpi + ydpi) / 2; + return dpi; + } + } diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java index 65383a6cb0f..8ec8d57bb90 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.java.awt.peer.x; +import gnu.java.awt.font.OpenTypeFontPeer; import gnu.java.awt.java2d.RasterGraphics; import gnu.x11.Display; @@ -189,14 +190,14 @@ public class XGraphicsEnvironment public String[] getAvailableFontFamilyNames() { - // TODO: Implement this. - throw new UnsupportedOperationException("Not yet implemented."); + return getAvailableFontFamilyNames(Locale.getDefault()); } public String[] getAvailableFontFamilyNames(Locale l) { - // TODO: Implement this. - throw new UnsupportedOperationException("Not yet implemented."); + // TODO: This doesn't work when we are using X fonts. + // Fix this. + return OpenTypeFontPeer.getAvailableFontFamilyNames(l); } } diff --git a/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java b/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java index 08186326ffa..c1724aad55d 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java @@ -51,6 +51,7 @@ import java.awt.FileDialog; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Frame; +import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Image; @@ -117,6 +118,8 @@ import javax.imageio.ImageIO; import gnu.classpath.SystemProperties; import gnu.java.awt.ClasspathToolkit; import gnu.java.awt.EmbeddedWindow; +import gnu.java.awt.font.OpenTypeFontPeer; +import gnu.java.awt.image.ImageConverter; import gnu.java.awt.peer.ClasspathFontPeer; import gnu.java.awt.peer.EmbeddedWindowPeer; import gnu.java.awt.peer.swing.SwingCanvasPeer; @@ -155,7 +158,8 @@ public class XToolkit /** * The cached fonts. */ - private WeakHashMap fontCache = new WeakHashMap(); + private WeakHashMap<String,ClasspathFontPeer> fontCache = + new WeakHashMap<String,ClasspathFontPeer>(); public XToolkit() { @@ -179,21 +183,32 @@ public class XToolkit */ public ClasspathFontPeer getClasspathFontPeer(String name, Map attrs) { - String canonical = XFontPeer2.encodeFont(name, attrs); ClasspathFontPeer font; - if (!fontCache.containsKey(canonical)) + if ("true".equals(System.getProperty("escherpeer.usexfonts"))) { - String graphics2d = - SystemProperties.getProperty("gnu.xawt.graphics2d"); - //if (graphics2d != null && graphics2d.equals("gl")) - font = new XFontPeer2(name, attrs); -// else -// font = new XFontPeer(name, attrs); - fontCache.put(canonical, font); + String canonical = XFontPeer.encodeFont(name, attrs); + if (!fontCache.containsKey(canonical)) + { + font = new XFontPeer(name, attrs); + fontCache.put(canonical, font); + } + else + { + font = fontCache.get(canonical); + } } else { - font = (ClasspathFontPeer) fontCache.get(canonical); + String canonical = OpenTypeFontPeer.encodeFont(name, attrs); + if (!fontCache.containsKey(canonical)) + { + font = new OpenTypeFontPeer(name, attrs); + fontCache.put(canonical, font); + } + else + { + font = fontCache.get(canonical); + } } return font; } @@ -338,14 +353,22 @@ public class XToolkit public Dimension getScreenSize() { - // FIXME: This is only a hack to get some apps working. - return new Dimension(1024, 768); + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + XGraphicsConfiguration xgc = (XGraphicsConfiguration) gc; + + return xgc.getSize(); } public int getScreenResolution() { - // TODO: Implement this. - throw new UnsupportedOperationException("Not yet implemented."); + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + GraphicsDevice gd = ge.getDefaultScreenDevice(); + GraphicsConfiguration gc = gd.getDefaultConfiguration(); + XGraphicsConfiguration xgc = (XGraphicsConfiguration) gc; + + return xgc.getResolution(); } /** @@ -363,8 +386,8 @@ public class XToolkit public String[] getFontList() { - // TODO: Implement this. - throw new UnsupportedOperationException("Not yet implemented."); + GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); + return ge.getAvailableFontFamilyNames(); } public FontMetrics getFontMetrics(Font name) @@ -505,7 +528,7 @@ public class XToolkit { ImageConverter conv = new ImageConverter(); producer.startProduction(conv); - Image image = conv.getXImage(); + Image image = conv.getImage(); return image; } @@ -602,19 +625,17 @@ public class XToolkit } @Override - public boolean isModalExclusionTypeSupported - (Dialog.ModalExclusionType modalExclusionType) + public boolean isModalExclusionTypeSupported(ModalExclusionType modalExclusionType) { - // TODO: Implement properly. + // TODO Auto-generated method stub return false; } @Override - public boolean isModalityTypeSupported(Dialog.ModalityType modalityType) + public boolean isModalityTypeSupported(ModalityType modalityType) { - // TODO: Implement properly. + // TODO Auto-generated method stub return false; } - } diff --git a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java index 10d1e96858a..f9184ed1cde 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java +++ b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java @@ -39,9 +39,11 @@ exception statement from your version. */ package gnu.java.awt.peer.x; import java.awt.Component; +import java.awt.Dialog; import java.awt.EventQueue; import java.awt.Font; import java.awt.FontMetrics; +import java.awt.Frame; import java.awt.Graphics; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; @@ -54,9 +56,12 @@ import java.awt.event.PaintEvent; import java.awt.event.WindowEvent; import java.awt.image.VolatileImage; +import gnu.x11.Atom; import gnu.x11.Window; import gnu.x11.event.Event; +import gnu.java.awt.font.OpenTypeFontPeer; +import gnu.java.awt.peer.ClasspathFontPeer; import gnu.java.awt.peer.swing.SwingWindowPeer; public class XWindowPeer @@ -84,7 +89,12 @@ public class XWindowPeer /** * The X window. */ - private Window xwindow; + protected Window xwindow; + + /** + * The frame insets. These get updated in {@link #show()}. + */ + private Insets insets; XWindowPeer(java.awt.Window window) { @@ -92,15 +102,47 @@ public class XWindowPeer XGraphicsDevice dev = XToolkit.getDefaultDevice(); // TODO: Maybe initialize lazily in show(). + Window.Attributes atts = new Window.Attributes(); // FIXME: Howto generate a Window without decorations? int x = Math.max(window.getX(), 0); int y = Math.max(window.getY(), 0); int w = Math.max(window.getWidth(), 1); int h = Math.max(window.getHeight(), 1); - xwindow = new Window(dev.getDisplay().default_root, x, y, w, h); - xwindow.create(); + xwindow = new Window(dev.getDisplay().default_root, x, y, w, h, 0, atts); xwindow.select_input(standardSelect); dev.getEventPump().registerWindow(xwindow, window); + + boolean undecorated; + if (awtComponent instanceof Frame) + { + Frame f = (Frame) awtComponent; + undecorated = f.isUndecorated(); + } + else if (awtComponent instanceof Dialog) + { + Dialog d = (Dialog) awtComponent; + undecorated = d.isUndecorated(); + } + else + { + undecorated = true; + } + if (undecorated) + { + // First try the Motif implementation of undecorated frames. This + // is semantically closest and supported by all major window + // managers. + // TODO: At the time of writing this, there's no freedesktop.org + // standard extension that matches the required semantic. Maybe + // undecorated frames are added in the future, if so, then use these. + Atom at = Atom.intern(dev.getDisplay(), "_MOTIF_WM_HINTS"); + if (at != null) + { + xwindow.change_property(Window.REPLACE, at, at, 32, + new int[]{1 << 1, 0, 0, 0, 0}, 0, 5); + } + } + insets = new Insets(0, 0, 0, 0); } public void toBack() @@ -139,7 +181,11 @@ public class XWindowPeer */ public Graphics getGraphics() { - return new XGraphics2D(xwindow); + XGraphics2D xg2d = new XGraphics2D(xwindow); + xg2d.setColor(awtComponent.getForeground()); + xg2d.setBackground(awtComponent.getBackground()); + xg2d.setFont(awtComponent.getFont()); + return xg2d; } public Image createImage(int w, int h) @@ -164,16 +210,11 @@ public class XWindowPeer */ public void show() { -// // Prevent ResizeRedirect events. -// //xwindow.select_input(noResizeRedirectSelect); -// Window.Attributes atts = new Window.Attributes(); -// atts.set_override_redirect(true); -// xwindow.change_attributes(atts); - // Prevent ResizeRedirect events. //xwindow.select_input(Event.NO_EVENT_MASK); //xwindow.select_input(noResizeRedirectSelect); + XGraphicsDevice dev = XToolkit.getDefaultDevice(); xwindow.map(); EventQueue eq = XToolkit.getDefaultToolkit().getSystemEventQueue(); java.awt.Window w = (java.awt.Window) super.awtComponent; @@ -188,6 +229,20 @@ public class XWindowPeer // // Reset input selection. // atts.set_override_redirect(false); // xwindow.change_attributes(atts); + + // Determine the frame insets. + Atom atom = (Atom) Atom.intern(dev.getDisplay(), "_NET_FRAME_EXTENTS"); + Window.Property p = xwindow.get_property(false, atom, Atom.CARDINAL, 0, + Window.MAX_WM_LENGTH); + if (p.format() != 0) + { + insets = new Insets(p.value(0), p.value(1), p.value(2), p.value(3)); + Window.Changes ch = new Window.Changes(); + ch.width(awtComponent.getWidth() - insets.left - insets.top); + ch.height(awtComponent.getHeight() - insets.top - insets.bottom); + xwindow.configure(ch); + } + } /** @@ -214,40 +269,19 @@ public class XWindowPeer */ public void reshape(int x, int y, int width, int height) { - // Prevent ResizeRedirect events. -// //xwindow.select_input(noResizeRedirectSelect); -// Window.Attributes atts = new Window.Attributes(); -// atts.set_override_redirect(true); -// xwindow.change_attributes(atts); - // Need to substract insets because AWT size is including insets, - // and X size is excuding insets. - Insets i = insets(); - xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right, - height - i.top - i.bottom); - - // Reset input selection. -// atts = new Window.Attributes(); -// atts.set_override_redirect(false); -// xwindow.change_attributes(atts); + // and X size is excluding insets. + if (! callback) + { + Insets i = insets; + xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right, + height - i.top - i.bottom); + } } public Insets insets() { - Insets i = new Insets(0, 0, 0, 0); -// Window.GeometryReply g = xwindow.geometry(); -// int b = g.border_width(); -// Insets i = new Insets(b, b, b, b); -// Window.WMSizeHints wmSize = xwindow.wm_normal_hints(); -// if (wmSize != null) -// { -// i.left = wmSize.x() - g.x(); -// i.right = wmSize.width() - g.width() - i.left ; -// i.top = wmSize.y() - g.y(); -// i.bottom = wmSize.height() - g.height() - i.top; -// } -// System.err.println("insets: " + i); - return i; + return (Insets) insets.clone(); } /** @@ -257,7 +291,7 @@ public class XWindowPeer */ public FontMetrics getFontMetrics(Font font) { - XFontPeer2 fontPeer = (XFontPeer2) font.getPeer(); + ClasspathFontPeer fontPeer = (ClasspathFontPeer) font.getPeer(); return fontPeer.getFontMetrics(font); } diff --git a/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java b/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java index 8043c5b8f46..cf40f4d6977 100644 --- a/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java +++ b/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java @@ -59,4 +59,9 @@ class ZPixmapDataBuffer zpixmap.set_data_element(i, (byte) val); } + ZPixmap getZPixmap() + { + return zpixmap; + } + } diff --git a/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java b/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java index 4e052a1d3f4..01894e5a43e 100644 --- a/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java +++ b/libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java @@ -74,7 +74,6 @@ import java.awt.print.Pageable; import java.awt.print.Paper; import java.awt.print.Printable; import java.awt.print.PrinterException; -import java.awt.print.PrinterGraphics; import java.awt.print.PrinterJob; import java.io.BufferedWriter; import java.io.File; diff --git a/libjava/classpath/gnu/java/awt/print/SpooledDocument.java b/libjava/classpath/gnu/java/awt/print/SpooledDocument.java index b606a2ef63e..812906b189d 100644 --- a/libjava/classpath/gnu/java/awt/print/SpooledDocument.java +++ b/libjava/classpath/gnu/java/awt/print/SpooledDocument.java @@ -41,7 +41,6 @@ import javax.print.Doc; import javax.print.DocFlavor; import javax.print.attribute.DocAttributeSet; import java.io.File; -import java.io.IOException; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Reader; diff --git a/libjava/classpath/gnu/java/io/PlatformHelper.java b/libjava/classpath/gnu/java/io/PlatformHelper.java index e54c56da935..96231e1be5b 100644 --- a/libjava/classpath/gnu/java/io/PlatformHelper.java +++ b/libjava/classpath/gnu/java/io/PlatformHelper.java @@ -37,8 +37,6 @@ exception statement from your version. */ package gnu.java.io; -import java.util.StringTokenizer; - /** * We had many changes in File.java, URLStreamHandler.java etc. to handle * path representations on different platforms (Windows/Unix-family). diff --git a/libjava/classpath/gnu/java/lang/MainThread.java b/libjava/classpath/gnu/java/lang/MainThread.java index ab529efd1a3..7ad70cd7c61 100644 --- a/libjava/classpath/gnu/java/lang/MainThread.java +++ b/libjava/classpath/gnu/java/lang/MainThread.java @@ -69,7 +69,7 @@ public class MainThread { try { - mainMethod.invoke(null,args); + mainMethod.invoke(null,(Object) args); } catch(IllegalAccessException e) { diff --git a/libjava/classpath/gnu/java/lang/management/BeanImpl.java b/libjava/classpath/gnu/java/lang/management/BeanImpl.java index 59e79a550d3..a651e3548b4 100644 --- a/libjava/classpath/gnu/java/lang/management/BeanImpl.java +++ b/libjava/classpath/gnu/java/lang/management/BeanImpl.java @@ -44,8 +44,6 @@ import java.lang.management.ManagementPermission; import java.lang.reflect.Array; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.TypeVariable; - import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -59,13 +57,11 @@ import javax.management.MBeanException; import javax.management.MBeanInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanParameterInfo; -import javax.management.MBeanInfo; import javax.management.NotCompliantMBeanException; import javax.management.ReflectionException; import javax.management.StandardMBean; import javax.management.openmbean.ArrayType; -import javax.management.openmbean.CompositeData; import javax.management.openmbean.CompositeDataSupport; import javax.management.openmbean.CompositeType; import javax.management.openmbean.OpenDataException; @@ -80,7 +76,6 @@ import javax.management.openmbean.OpenMBeanOperationInfoSupport; import javax.management.openmbean.OpenMBeanParameterInfo; import javax.management.openmbean.OpenMBeanParameterInfoSupport; import javax.management.openmbean.OpenType; -import javax.management.openmbean.SimpleType; import javax.management.openmbean.TabularData; import javax.management.openmbean.TabularDataSupport; import javax.management.openmbean.TabularType; @@ -277,7 +272,7 @@ public class BeanImpl Method getter = null; try { - getter = vClass.getMethod("get" + field, null); + getter = vClass.getMethod("get" + field); } catch (NoSuchMethodException e) { @@ -285,7 +280,7 @@ public class BeanImpl } try { - values.add(getter.invoke(value, null)); + values.add(getter.invoke(value)); } catch (IllegalAccessException e) { @@ -323,6 +318,90 @@ public class BeanImpl return (MBeanInfo) openInfo; } + /** + * Override this method so as to prevent the description of a constructor's + * parameter being @code{null}. Open MBeans can not have @code{null} descriptions, + * but one will occur as the names of parameters aren't stored for reflection. + * + * @param constructor the constructor whose parameter needs describing. + * @param parameter the parameter to be described. + * @param sequenceNo the number of the parameter to describe. + * @return a description of the constructor's parameter. + */ + protected String getDescription(MBeanConstructorInfo constructor, + MBeanParameterInfo parameter, + int sequenceNo) + { + String desc = parameter.getDescription(); + if (desc == null) + return "param" + sequenceNo; + else + return desc; + } + + /** + * Override this method so as to prevent the description of an operation's + * parameter being @code{null}. Open MBeans can not have @code{null} descriptions, + * but one will occur as the names of parameters aren't stored for reflection. + * + * @param operation the operation whose parameter needs describing. + * @param parameter the parameter to be described. + * @param sequenceNo the number of the parameter to describe. + * @return a description of the operation's parameter. + */ + protected String getDescription(MBeanOperationInfo operation, + MBeanParameterInfo parameter, + int sequenceNo) + { + String desc = parameter.getDescription(); + if (desc == null) + return "param" + sequenceNo; + else + return desc; + } + + /** + * Override this method so as to prevent the name of a constructor's + * parameter being @code{null}. Open MBeans can not have @code{null} names, + * but one will occur as the names of parameters aren't stored for reflection. + * + * @param constructor the constructor whose parameter needs a name. + * @param parameter the parameter to be named. + * @param sequenceNo the number of the parameter to name. + * @return a description of the constructor's parameter. + */ + protected String getParameterName(MBeanConstructorInfo constructor, + MBeanParameterInfo parameter, + int sequenceNo) + { + String name = parameter.getName(); + if (name == null) + return "param" + sequenceNo; + else + return name; + } + + /** + * Override this method so as to prevent the name of an operation's + * parameter being @code{null}. Open MBeans can not have @code{null} names, + * but one will occur as the names of parameters aren't stored for reflection. + * + * @param operation the operation whose parameter needs a name. + * @param parameter the parameter to be named. + * @param sequenceNo the number of the parameter to name. + * @return a description of the operation's parameter. + */ + protected String getParameterName(MBeanOperationInfo operation, + MBeanParameterInfo parameter, + int sequenceNo) + { + String name = parameter.getName(); + if (name == null) + return "param" + sequenceNo; + else + return name; + } + public MBeanInfo getMBeanInfo() { super.getMBeanInfo(); diff --git a/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java b/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java index 842e5bdf0f0..78c17183792 100644 --- a/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java +++ b/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java @@ -239,7 +239,7 @@ public class TypeSignature public static String getEncodingOfMethod(Method m) { Class[] paramTypes = m.getParameterTypes(); - StringBuffer buf = new StringBuffer().append('('); + StringBuilder buf = new StringBuilder("("); for (int i = 0; i < paramTypes.length; i++) buf.append(getEncodingOfClass(paramTypes[i].getName(), true)); buf.append(')').append(getEncodingOfClass(m.getReturnType().getName(), @@ -261,7 +261,7 @@ public class TypeSignature public static String getEncodingOfConstructor(Constructor c) { Class[] paramTypes = c.getParameterTypes(); - StringBuffer buf = new StringBuffer().append('('); + StringBuilder buf = new StringBuilder("("); for (int i = 0; i < paramTypes.length; i++) buf.append(getEncodingOfClass(paramTypes[i].getName(), true)); buf.append(")V"); diff --git a/libjava/classpath/gnu/java/locale/LocaleHelper.java b/libjava/classpath/gnu/java/locale/LocaleHelper.java index 4fefd163979..f3aabbdd939 100644 --- a/libjava/classpath/gnu/java/locale/LocaleHelper.java +++ b/libjava/classpath/gnu/java/locale/LocaleHelper.java @@ -40,8 +40,6 @@ package gnu.java.locale; import java.text.Collator; import java.util.Locale; -import java.util.MissingResourceException; -import java.util.ResourceBundle; /** * This class provides common helper methods diff --git a/libjava/classpath/gnu/java/net/protocol/http/Request.java b/libjava/classpath/gnu/java/net/protocol/http/Request.java index 06a779f3311..90e3b7a0d64 100644 --- a/libjava/classpath/gnu/java/net/protocol/http/Request.java +++ b/libjava/classpath/gnu/java/net/protocol/http/Request.java @@ -52,7 +52,6 @@ import java.text.ParseException; import java.util.Calendar; import java.util.Date; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.zip.GZIPInputStream; diff --git a/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java b/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java index 268ee0a8aa7..ea8c863e30e 100644 --- a/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/DatagramChannelImpl.java @@ -40,11 +40,9 @@ package gnu.java.nio; import gnu.java.net.PlainDatagramSocketImpl; import java.io.IOException; -import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketAddress; -import java.net.SocketTimeoutException; import java.nio.ByteBuffer; import java.nio.channels.ClosedChannelException; import java.nio.channels.DatagramChannel; diff --git a/libjava/classpath/gnu/java/nio/FileChannelImpl.java b/libjava/classpath/gnu/java/nio/FileChannelImpl.java index 41912405078..d4a374b4ac7 100644 --- a/libjava/classpath/gnu/java/nio/FileChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/FileChannelImpl.java @@ -412,7 +412,7 @@ public final class FileChannelImpl extends FileChannel if (buffer == null) { - buffer = ByteBuffer.allocate ((int) count); + buffer = ByteBuffer.allocate (count); src.read (buffer); buffer.flip(); } diff --git a/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java b/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java index 2f93c50cc19..11b37cadbe5 100644 --- a/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java +++ b/libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java @@ -39,8 +39,6 @@ exception statement from your version. */ package gnu.java.nio; -import java.io.IOException; -import java.nio.ByteBuffer; import java.nio.channels.SelectableChannel; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; diff --git a/libjava/classpath/gnu/java/nio/NIOSocket.java b/libjava/classpath/gnu/java/nio/NIOSocket.java index 060a3a89c1c..87574e49110 100644 --- a/libjava/classpath/gnu/java/nio/NIOSocket.java +++ b/libjava/classpath/gnu/java/nio/NIOSocket.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.java.nio; -import gnu.java.net.PlainSocketImpl; import java.io.IOException; import java.net.Socket; import java.nio.channels.SocketChannel; diff --git a/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java b/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java index 1e8e0901d7c..0128661e5b8 100644 --- a/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java @@ -40,7 +40,6 @@ package gnu.java.nio; import java.io.IOException; import java.net.ServerSocket; -import java.net.SocketTimeoutException; import java.nio.channels.ClosedChannelException; import java.nio.channels.NotYetBoundException; import java.nio.channels.ServerSocketChannel; diff --git a/libjava/classpath/gnu/java/nio/SocketChannelImpl.java b/libjava/classpath/gnu/java/nio/SocketChannelImpl.java index 1c563ac097c..9564592e0cf 100644 --- a/libjava/classpath/gnu/java/nio/SocketChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/SocketChannelImpl.java @@ -38,28 +38,16 @@ exception statement from your version. */ package gnu.java.nio; -import gnu.java.net.PlainSocketImpl; -import gnu.java.net.VMPlainSocketImpl; - import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.net.InetSocketAddress; import java.net.Socket; import java.net.SocketAddress; -import java.net.SocketException; -import java.net.SocketTimeoutException; import java.nio.ByteBuffer; -import java.nio.ReadOnlyBufferException; import java.nio.channels.AlreadyConnectedException; import java.nio.channels.ClosedChannelException; import java.nio.channels.ConnectionPendingException; import java.nio.channels.NoConnectionPendingException; import java.nio.channels.NotYetConnectedException; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; import java.nio.channels.SocketChannel; import java.nio.channels.UnresolvedAddressException; import java.nio.channels.UnsupportedAddressTypeException; diff --git a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java b/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java index 31a96ed7d88..7557e28c444 100644 --- a/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java +++ b/libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java @@ -57,7 +57,7 @@ public class SocketChannelSelectionKeyImpl extends SelectionKeyImpl public SocketChannelSelectionKeyImpl(SocketChannelImpl ch, SelectorImpl impl) { super(ch, impl); - this.ch = (SocketChannelImpl) ch; + this.ch = ch; } /** diff --git a/libjava/classpath/gnu/java/nio/charset/ByteCharset.java b/libjava/classpath/gnu/java/nio/charset/ByteCharset.java index e2025482956..043c804b7e4 100644 --- a/libjava/classpath/gnu/java/nio/charset/ByteCharset.java +++ b/libjava/classpath/gnu/java/nio/charset/ByteCharset.java @@ -45,32 +45,34 @@ import java.nio.charset.CharsetEncoder; import java.nio.charset.CoderResult; /** - * A generic encoding framework for single-byte encodings, - * utilizing a look-up table. + * A generic encoding framework for single-byte encodings, utilizing a look-up + * table. + * + * This replaces the gnu.java.io.EncoderEightBitLookup class, created by Aron + * Renn. * - * This replaces the gnu.java.io.EncoderEightBitLookup class, - * created by Aron Renn. - * * @author Sven de Marothy + * @modified Ian Rogers */ abstract class ByteCharset extends Charset { - protected char[] lookupTable; - /** - * Char to signify the character in the table is undefined - */ - protected static final char NONE = (char)0xFFFD; + protected final char[] lookupTable; + /** + * Char to signify the character in the table is undefined + */ + protected static final char NONE = (char) 0xFFFD; - ByteCharset (String canonicalName, String[] aliases) + ByteCharset(String canonicalName, String[] aliases, char[] lookup) { - super (canonicalName, aliases); + super(canonicalName, aliases); + lookupTable = lookup; } /** - * Most western charsets include ASCII, but this should - * be overloaded for others. + * Most western charsets include ASCII, but this should be overloaded for + * others. */ - public boolean contains (Charset cs) + public boolean contains(Charset cs) { return cs instanceof US_ASCII || (cs.getClass() == getClass()); } @@ -80,83 +82,91 @@ abstract class ByteCharset extends Charset return lookupTable; } - public CharsetDecoder newDecoder () + public CharsetDecoder newDecoder() { - return new Decoder (this); + return new Decoder(this); } - public CharsetEncoder newEncoder () + public CharsetEncoder newEncoder() { - return new Encoder (this); + return new Encoder(this); } private static final class Decoder extends CharsetDecoder { - private char[] lookup; - + /** Lookup of byte to char mappings */ + private final char[] lookup; + + /** Helper to decode loops */ + private final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper() + { + protected boolean isMappable(byte b) + { + return lookup[(int) (b & 0xFF)] != NONE; + } + protected char mapToChar(byte b) + { + return lookup[(int) (b & 0xFF)]; + } + }; + // Package-private to avoid a trampoline constructor. - Decoder (ByteCharset cs) + Decoder(ByteCharset cs) { - super (cs, 1.0f, 1.0f); + super(cs, 1.0f, 1.0f); lookup = cs.getLookupTable(); } - protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out) + protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out) { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - byte b = in.get (); - char c; - - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - if((c = lookup[(int) (b & 0xFF)]) == NONE) - { - in.position (in.position () - 1); - return CoderResult.unmappableForLength (1); - } - out.put (c); - } - - return CoderResult.UNDERFLOW; + return helper.decodeLoop(in, out); } } private static final class Encoder extends CharsetEncoder { - private byte[] lookup; - + /** Lookup of char to byte mappings */ + private final byte[] lookup; + + /** Helper to encode loops */ + private final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper() + { + protected boolean isMappable(char c) + { + return canEncode(c); + } + protected byte mapToByte(char c) + { + return lookup[c]; + } + }; + // Package-private to avoid a trampoline constructor. - Encoder (ByteCharset cs) + Encoder(ByteCharset cs) { - super (cs, 1.0f, 1.0f); + super(cs, 1.0f, 1.0f); char[] lookup_table = cs.getLookupTable(); // Create the inverse look-up table. - // determine required size of encoding_table: - int max = 0; + // determine required size of encoding_table: + int max = 0; for (int i = 0; i < lookup_table.length; i++) - { - int c = (int)lookup_table[i]; - max = (c > max && c < NONE) ? c : max; - } + { + int c = (int) lookup_table[i]; + max = (c > max && c < NONE) ? c : max; + } + + lookup = new byte[max + 1]; - lookup = new byte[max+1]; - for (int i = 0; i < lookup_table.length; i++) - { - int c = (int)lookup_table[i]; - if (c != 0 && c < NONE) - { - lookup[c] = (byte)i; - } - } + { + int c = (int) lookup_table[i]; + if (c != 0 && c < NONE) + { + lookup[c] = (byte) i; + } + } } public boolean canEncode(char c) @@ -169,38 +179,15 @@ abstract class ByteCharset extends Charset { for (int i = 0; i < cs.length(); ++i) { - if (! canEncode(cs.charAt(i))) + if (!canEncode(cs.charAt(i))) return false; } return true; } - protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out) + protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out) { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - int c = (int)in.get (); - - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - // lookup byte encoding - byte b = (c < lookup.length) ? lookup[c] : (byte)0; - - if ((int)b != 0 || (int)c == 0) - { - out.put (b); - } else { - in.position (in.position () - 1); - return CoderResult.unmappableForLength (1); - } - } - - return CoderResult.UNDERFLOW; + return helper.encodeLoop(in, out); } } } diff --git a/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java b/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java new file mode 100644 index 00000000000..33dfa0263c7 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java @@ -0,0 +1,162 @@ +/* ByteCharset.java -- Abstract class for generic 1-byte encodings. + Copyright (C) 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.java.nio.charset; + +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.CoderResult; + +/** + * Helper class to deal with decoding loops that read a byte at a time + * + * @author Ian Rogers + */ +public abstract class ByteDecodeLoopHelper +{ + /** + * @return can the given byte be encoded + */ + protected abstract boolean isMappable(byte b); + + /** + * Map the given byte to a char, the given byte is guaranteed to be mappable + */ + protected abstract char mapToChar(byte b); + + /** + * Encodes one or more characters into one or more bytes, mapping each + * character to only one byte + * + * @param in character buffer to read from + * @param out byte buffer to write to + * @return the result state of the encoder + */ + CoderResult decodeLoop(ByteBuffer in, CharBuffer out) + { + if (in.hasArray() && out.hasArray()) + { + return arrayDecodeLoop(in, out); + } else + { + return normalDecodeLoop(in, out); + } + } + + /** + * Encode loop using get and put operations + */ + private CoderResult normalDecodeLoop(ByteBuffer in, CharBuffer out) + { + int outRemaining = out.remaining(); + int inRemaining = in.remaining(); + while (inRemaining > 0 && outRemaining > 0) + { + byte b = in.get(); + inRemaining--; + + if (!isMappable(b)) + { + in.position(in.position() - 1); + return CoderResult.unmappableForLength(1); + } + char c = mapToChar(b); + out.put(c); + outRemaining--; + } + if (inRemaining > 0) + { + return CoderResult.OVERFLOW; + } else + { + return CoderResult.UNDERFLOW; + } + } + + /** + * Encode loop using array read and write operations + */ + private CoderResult arrayDecodeLoop(ByteBuffer in, CharBuffer out) + { + byte[] inArray = in.array(); + char[] outArray = out.array(); + int inPos = in.arrayOffset() + in.position(); + int outPos = out.arrayOffset() + out.position(); + int inRemaining = in.remaining(); + int outRemaining = out.remaining(); + CoderResult result; + if (inRemaining <= outRemaining) + { + for (int i = 0; i < inRemaining; i++) + { + byte b = inArray[inPos]; + inPos++; + if (!isMappable(b)) + { + inPos--; + result = CoderResult.unmappableForLength(1); + break; + } + char c = mapToChar(b); + outArray[outPos] = c; + outPos++; + } + result = CoderResult.UNDERFLOW; + } + else + { + for (int i = 0; i < outRemaining; i++) + { + byte b = inArray[inPos]; + inPos++; + if (!isMappable(b)) + { + inPos--; + result = CoderResult.unmappableForLength(1); + break; + } + char c = mapToChar(b); + outArray[outPos] = c; + outPos++; + } + result = CoderResult.OVERFLOW; + } + in.position(inPos - in.arrayOffset()); + out.position(outPos - out.arrayOffset()); + return result; + } +} diff --git a/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java b/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java new file mode 100644 index 00000000000..5f703b195f2 --- /dev/null +++ b/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java @@ -0,0 +1,163 @@ +/* ByteCharset.java -- Abstract class for generic 1-byte encodings. + Copyright (C) 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.java.nio.charset; + +import java.nio.ByteBuffer; +import java.nio.CharBuffer; +import java.nio.charset.CoderResult; + +/** + * Helper class to deal with encoding loops that write a byte at a time + * + * @author Ian Rogers + */ +public abstract class ByteEncodeLoopHelper +{ + /** + * @return can the given character be encoded + */ + protected abstract boolean isMappable(char c); + + /** + * Map the given character to a byte, the given character is guaranteed to be + * mappable + */ + protected abstract byte mapToByte(char c); + + /** + * Encodes one or more characters into one or more bytes, mapping each + * character to only one byte + * + * @param in character buffer to read from + * @param out byte buffer to write to + * @return the result state of the encoder + */ + CoderResult encodeLoop(CharBuffer in, ByteBuffer out) + { + if (in.hasArray() && out.hasArray()) + { + return arrayEncodeLoop(in, out); + } else + { + return normalEncodeLoop(in, out); + } + } + + /** + * Encode loop using get and put operations + */ + private CoderResult normalEncodeLoop(CharBuffer in, ByteBuffer out) + { + int outRemaining = out.remaining(); + int inRemaining = in.remaining(); + while (inRemaining > 0 && outRemaining > 0) + { + char c = in.get(); + inRemaining--; + + if (!isMappable(c)) + { + in.position(in.position() - 1); + return CoderResult.unmappableForLength(1); + } + byte b = mapToByte(c); + out.put(b); + outRemaining--; + } + if (inRemaining > 0) + { + return CoderResult.OVERFLOW; + } else + { + return CoderResult.UNDERFLOW; + } + } + + /** + * Encode loop using array read and write operations + */ + private CoderResult arrayEncodeLoop(CharBuffer in, ByteBuffer out) + { + char[] inArray = in.array(); + byte[] outArray = out.array(); + int inPos = in.arrayOffset() + in.position(); + int outPos = out.arrayOffset() + out.position(); + int inRemaining = in.remaining(); + int outRemaining = out.remaining(); + CoderResult result; + if (inRemaining <= outRemaining) + { + for (int i = 0; i < inRemaining; i++) + { + char inChar = inArray[inPos]; + inPos++; + if (!isMappable(inChar)) + { + inPos--; + result = CoderResult.unmappableForLength(1); + break; + } + byte b = mapToByte(inChar); + outArray[outPos] = b; + outPos++; + } + result = CoderResult.UNDERFLOW; + } + else + { + for (int i = 0; i < outRemaining; i++) + { + char inChar = inArray[inPos]; + inPos++; + if (!isMappable(inChar)) + { + inPos--; + result = CoderResult.unmappableForLength(1); + break; + } + byte b = mapToByte(inChar); + outArray[outPos] = b; + outPos++; + } + result = CoderResult.OVERFLOW; + } + in.position(inPos - in.arrayOffset()); + out.position(outPos - out.arrayOffset()); + return result; + } +} diff --git a/libjava/classpath/gnu/java/nio/charset/Cp424.java b/libjava/classpath/gnu/java/nio/charset/Cp424.java index 9733a76a4c5..44e1eba4f6a 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp424.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp424.java @@ -37,53 +37,50 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp424 extends ByteCharset +public final class Cp424 extends ByteCharset { /** * This is the lookup table for this encoding */ - private static final char[] lookup = + private static final char[] lookup = { - 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, - 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, - 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, - 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, - 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, - 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, - 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, - 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, - 0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, - 0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, - 0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, - 0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, - 0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, - 0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, - NONE, 0x05EA, NONE, NONE, 0x00A0, NONE, NONE, NONE, - 0x2017, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, - NONE, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, - 0x0068, 0x0069, 0x00AB, 0x00BB, NONE, NONE, NONE, 0x00B1, - 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, - 0x0071, 0x0072, NONE, NONE, NONE, 0x00B8, NONE, 0x00A4, - 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, - 0x0079, 0x007A, NONE, NONE, NONE, NONE, NONE, 0x00AE, - 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, - 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, - 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, - 0x0048, 0x0049, 0x00AD, NONE, NONE, NONE, NONE, NONE, - 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, - 0x0051, 0x0052, 0x00B9, NONE, NONE, NONE, NONE, NONE, - 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, - 0x0059, 0x005A, 0x00B2, NONE, NONE, NONE, NONE, NONE, - 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, + 0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, + 0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, + 0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, + 0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, + 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, + 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, + 0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, + 0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, + 0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, + 0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, + 0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, + 0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, + 0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, + 0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, + NONE, 0x05EA, NONE, NONE, 0x00A0, NONE, NONE, NONE, + 0x2017, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, + NONE, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, + 0x0068, 0x0069, 0x00AB, 0x00BB, NONE, NONE, NONE, 0x00B1, + 0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, + 0x0071, 0x0072, NONE, NONE, NONE, 0x00B8, NONE, 0x00A4, + 0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, + 0x0079, 0x007A, NONE, NONE, NONE, NONE, NONE, 0x00AE, + 0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, + 0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, + 0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, + 0x0048, 0x0049, 0x00AD, NONE, NONE, NONE, NONE, NONE, + 0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, + 0x0051, 0x0052, 0x00B9, NONE, NONE, NONE, NONE, NONE, + 0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, + 0x0059, 0x005A, 0x00B2, NONE, NONE, NONE, NONE, NONE, + 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x00B3, NONE, NONE, NONE, NONE, 0x009F }; - public Cp424() - { - super("Cp424", new String[] { - }); - lookupTable = lookup; + public Cp424() { + super("Cp424", new String[] {}, lookup); } } // class Cp424 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp437.java b/libjava/classpath/gnu/java/nio/charset/Cp437.java index d6083579d11..e38a482573a 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp437.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp437.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp437 extends ByteCharset +public final class Cp437 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class Cp437 extends ByteCharset public Cp437() { - super("Cp437", new String[] { - }); - lookupTable = lookup; + super("Cp437", new String[]{}, lookup); } } // class Cp437 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp737.java b/libjava/classpath/gnu/java/nio/charset/Cp737.java index 548da21912b..2187987ead7 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp737.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp737.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp737 extends ByteCharset +public final class Cp737 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class Cp737 extends ByteCharset public Cp737() { - super("Cp737", new String[] { - }); - lookupTable = lookup; + super("Cp737", new String[] {}, lookup); } } // class Cp737 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp775.java b/libjava/classpath/gnu/java/nio/charset/Cp775.java index 4d3f1c36c8d..f2fba4356e3 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp775.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp775.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp775 extends ByteCharset +public final class Cp775 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class Cp775 extends ByteCharset public Cp775() { - super("Cp775", new String[] { - }); - lookupTable = lookup; + super("Cp775", new String[] {}, lookup); } } // class Cp775 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp850.java b/libjava/classpath/gnu/java/nio/charset/Cp850.java index 9122105ad08..48d4fb3448a 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp850.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp850.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp850 extends ByteCharset +public final class Cp850 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class Cp850 extends ByteCharset public Cp850() { - super("Cp850", new String[] { - }); - lookupTable = lookup; + super("Cp850", new String[] {}, lookup); } } // class Cp850 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp852.java b/libjava/classpath/gnu/java/nio/charset/Cp852.java index a859530a8ef..c550944b526 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp852.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp852.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp852 extends ByteCharset +public final class Cp852 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class Cp852 extends ByteCharset public Cp852() { - super("Cp852", new String[] { - }); - lookupTable = lookup; + super("Cp852", new String[] {}, lookup); } } // class Cp852 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp855.java b/libjava/classpath/gnu/java/nio/charset/Cp855.java index fbec999c794..141e891b67c 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp855.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp855.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp855 extends ByteCharset +public final class Cp855 extends ByteCharset { /** @@ -81,10 +81,7 @@ public class Cp855 extends ByteCharset public Cp855() { - super("Cp855", new String[] { - "cp-855", - }); - lookupTable = lookup; + super("Cp855", new String[] {"cp-855",}, lookup); } } // class Cp855 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp857.java b/libjava/classpath/gnu/java/nio/charset/Cp857.java index 78f8dbd2d15..b517b0393c6 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp857.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp857.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp857 extends ByteCharset +public final class Cp857 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp857 extends ByteCharset public Cp857() { - super("Cp857", new String[] { - "cp-857" - }); - lookupTable = lookup; + super("Cp857", new String[] {"cp-857"}, lookup); } } // class Cp857 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp860.java b/libjava/classpath/gnu/java/nio/charset/Cp860.java index e3c7f46b8f5..58a396446ad 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp860.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp860.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp860 extends ByteCharset +public final class Cp860 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp860 extends ByteCharset public Cp860() { - super("Cp860", new String[] { - "cp-860" - }); - lookupTable = lookup; + super("Cp860", new String[] {"cp-860"}, lookup); } } // class Cp860 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp861.java b/libjava/classpath/gnu/java/nio/charset/Cp861.java index 6e17ea2e842..cf5210d0a2a 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp861.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp861.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp861 extends ByteCharset +public final class Cp861 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp861 extends ByteCharset public Cp861() { - super("Cp861", new String[] { - "cp-861" - }); - lookupTable = lookup; + super("Cp861", new String[] {"cp-861"}, lookup); } } // class Cp861 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp862.java b/libjava/classpath/gnu/java/nio/charset/Cp862.java index ccd74fa9ddb..f66118021a3 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp862.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp862.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp862 extends ByteCharset +public final class Cp862 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp862 extends ByteCharset public Cp862() { - super("Cp862", new String[] { - "Cp-862" - }); - lookupTable = lookup; + super("Cp862", new String[] {"Cp-862"}, lookup); } } // class Cp862 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp863.java b/libjava/classpath/gnu/java/nio/charset/Cp863.java index 97812a6f66c..03850234ef6 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp863.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp863.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp863 extends ByteCharset +public final class Cp863 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp863 extends ByteCharset public Cp863() { - super("Cp863", new String[] { - "Cp-863" - }); - lookupTable = lookup; + super("Cp863", new String[] {"Cp-863"}, lookup); } } // class Cp863 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp864.java b/libjava/classpath/gnu/java/nio/charset/Cp864.java index f136f43eccc..028235dd30c 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp864.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp864.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp864 extends ByteCharset +public final class Cp864 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp864 extends ByteCharset public Cp864() { - super("Cp864", new String[] { - "Cp-864" - }); - lookupTable = lookup; + super("Cp864", new String[] {"Cp-864"}, lookup); } } // class Cp864 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp865.java b/libjava/classpath/gnu/java/nio/charset/Cp865.java index a1332a74f95..c723e80c995 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp865.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp865.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp865 extends ByteCharset +public final class Cp865 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp865 extends ByteCharset public Cp865() { - super("Cp865", new String[] { - "Cp-865" - }); - lookupTable = lookup; + super("Cp865", new String[] {"Cp-865"}, lookup); } } // class Cp865 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp866.java b/libjava/classpath/gnu/java/nio/charset/Cp866.java index ca6958949f6..103bca7c30a 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp866.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp866.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp866 extends ByteCharset +public final class Cp866 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp866 extends ByteCharset public Cp866() { - super("Cp866", new String[] { - "cp-866" - }); - lookupTable = lookup; + super("Cp866", new String[] {"cp-866"}, lookup); } } // class Cp866 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp869.java b/libjava/classpath/gnu/java/nio/charset/Cp869.java index f5e05298473..0632b37418c 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp869.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp869.java @@ -38,7 +38,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp869 extends ByteCharset +public final class Cp869 extends ByteCharset { /** @@ -82,10 +82,7 @@ public class Cp869 extends ByteCharset public Cp869() { - super("Cp869", new String[] { - "Cp-869" - }); - lookupTable = lookup; + super("Cp869", new String[] {"Cp-869"}, lookup); } } // class Cp869 diff --git a/libjava/classpath/gnu/java/nio/charset/Cp874.java b/libjava/classpath/gnu/java/nio/charset/Cp874.java index d81755c1e0e..f6e52c485ea 100644 --- a/libjava/classpath/gnu/java/nio/charset/Cp874.java +++ b/libjava/classpath/gnu/java/nio/charset/Cp874.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class Cp874 extends ByteCharset +public final class Cp874 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class Cp874 extends ByteCharset public Cp874() { - super("Cp874", new String[] { - }); - lookupTable = lookup; + super("Cp874", new String[] {}, lookup); } } // class Cp874 diff --git a/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java b/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java index be7b4afe05d..479b6e53434 100644 --- a/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java +++ b/libjava/classpath/gnu/java/nio/charset/EncodingHelper.java @@ -57,10 +57,10 @@ public class EncodingHelper * Contains the mapping from java.io canonical names * to java.nio canonical names. */ - private static HashMap canonicalNames; + private static final HashMap<String,String> canonicalNames; static { - canonicalNames = new HashMap(); + canonicalNames = new HashMap<String,String>(); canonicalNames.put("US-ASCII", "ASCII"); canonicalNames.put("windows-1250", "Cp1250"); canonicalNames.put("windows-1251", "Cp1251"); @@ -94,7 +94,6 @@ public class EncodingHelper */ public static String getDefaultEncoding() { - String encoding; try { return System.getProperty("file.encoding"); diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java index 558289583dd..19a538d9fe4 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java @@ -48,6 +48,7 @@ import java.nio.charset.CoderResult; * ISO-8859-1 charset. * * @author Jesse Rosenstock + * @modified Ian Rogers */ final class ISO_8859_1 extends Charset { @@ -98,6 +99,19 @@ final class ISO_8859_1 extends Charset private static final class Decoder extends CharsetDecoder { + /** Helper to decode loops */ + private static final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper() + { + protected boolean isMappable(byte b) + { + return true; + } + protected char mapToChar(byte b) + { + return (char)(b & 0xFF); + } + }; + // Package-private to avoid a trampoline constructor. Decoder (Charset cs) { @@ -106,26 +120,24 @@ final class ISO_8859_1 extends Charset protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out) { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - byte b = in.get (); - - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - out.put ((char) (b & 0xFF)); - } - - return CoderResult.UNDERFLOW; + return helper.decodeLoop(in, out); } } private static final class Encoder extends CharsetEncoder { + /** Helper to encode loops */ + private static final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper() + { + protected boolean isMappable(char c) + { + return c <= 0xff; + } + protected byte mapToByte(char c) + { + return (byte)c; + } + }; // Package-private to avoid a trampoline constructor. Encoder (Charset cs) { @@ -147,26 +159,7 @@ final class ISO_8859_1 extends Charset protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out) { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - char c = in.get (); - - if (c > 0xFF) - { - in.position (in.position () - 1); - return CoderResult.unmappableForLength (1); - } - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - out.put ((byte) c); - } - - return CoderResult.UNDERFLOW; + return helper.encodeLoop(in, out); } } } diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java index c10eef305c3..3bbd42f3b49 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-13, ISO Latin-7 char set. */ -public class ISO_8859_13 extends ByteCharset +public final class ISO_8859_13 extends ByteCharset { /** @@ -96,8 +96,7 @@ public class ISO_8859_13 extends ByteCharset "8859_13", "cp921", "921" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_13 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java index 973fe1c947d..df2265ac549 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-15, ISO Latin-9 char set. */ -public class ISO_8859_15 extends ByteCharset +public final class ISO_8859_15 extends ByteCharset { /** @@ -103,8 +103,7 @@ public class ISO_8859_15 extends ByteCharset "cp923", "923", "windows-28605" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_15 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java index 2de96df9b68..dbe2b4dbf96 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-2, ISO Latin-2 char set. */ -public class ISO_8859_2 extends ByteCharset +public final class ISO_8859_2 extends ByteCharset { /** @@ -102,8 +102,7 @@ public class ISO_8859_2 extends ByteCharset "cp912", "912", "windows-28592" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_2 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java index 6e718719a2d..567379e7de4 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-3, ISO Latin-3 char set. */ -public class ISO_8859_3 extends ByteCharset +public final class ISO_8859_3 extends ByteCharset { /** @@ -101,8 +101,7 @@ public class ISO_8859_3 extends ByteCharset "cp913", "913", "windows-28593" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_3 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java index 96dc4675476..ca062278a7a 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-4, ISO Latin-4 char set. */ -public class ISO_8859_4 extends ByteCharset +public final class ISO_8859_4 extends ByteCharset { /** @@ -102,8 +102,7 @@ public class ISO_8859_4 extends ByteCharset "cp914", "914", "windows-28594" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_4 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java index ad208729c85..70496ce4931 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-5, ISO cyrillic char set. */ -public class ISO_8859_5 extends ByteCharset +public final class ISO_8859_5 extends ByteCharset { /** @@ -100,8 +100,7 @@ public class ISO_8859_5 extends ByteCharset "cp915", "915", "windows-28595" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_5 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java index 5600e792386..dc7a9bef8ca 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-6, ISO Arabic char set. */ -public class ISO_8859_6 extends ByteCharset +public final class ISO_8859_6 extends ByteCharset { /** @@ -104,8 +104,7 @@ public class ISO_8859_6 extends ByteCharset "windows-28596", "ISO-8859-6-I", "ISO-8859-6-E" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_6 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java index 9262a607723..195f1609458 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-7, ISO Latin/Greek char set. */ -public class ISO_8859_7 extends ByteCharset +public final class ISO_8859_7 extends ByteCharset { /** @@ -103,8 +103,7 @@ public class ISO_8859_7 extends ByteCharset "cp813", "813", "windows-28597" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_7 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java index 96fb0f48b82..b58030f174b 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-8, ISO Latin/Hebrew char set. */ -public class ISO_8859_8 extends ByteCharset +public final class ISO_8859_8 extends ByteCharset { /** @@ -102,8 +102,7 @@ public class ISO_8859_8 extends ByteCharset "cp916", "916", "windows-28598" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_8 diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java index 28be34cf877..83fb5a222d7 100644 --- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java +++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for ISO-8859-9, ISO Latin-5 char set. */ -public class ISO_8859_9 extends ByteCharset +public final class ISO_8859_9 extends ByteCharset { /** @@ -102,8 +102,7 @@ public class ISO_8859_9 extends ByteCharset "920", "windows-28599", "ECMA-128" - }); - lookupTable = lookup; + }, lookup); } } // class ISO_8859_9 diff --git a/libjava/classpath/gnu/java/nio/charset/KOI_8.java b/libjava/classpath/gnu/java/nio/charset/KOI_8.java index c6706560702..20eb8b198ad 100644 --- a/libjava/classpath/gnu/java/nio/charset/KOI_8.java +++ b/libjava/classpath/gnu/java/nio/charset/KOI_8.java @@ -41,7 +41,7 @@ package gnu.java.nio.charset; /** * Encoding table for the KOI8 cyrillic char set. */ -public class KOI_8 extends ByteCharset +public final class KOI_8 extends ByteCharset { /** @@ -94,8 +94,7 @@ public class KOI_8 extends ByteCharset "koi8r", "koi-8-r", "koi" - }); - lookupTable = lookup; + }, lookup); } } // class KOI_8 diff --git a/libjava/classpath/gnu/java/nio/charset/MS874.java b/libjava/classpath/gnu/java/nio/charset/MS874.java index b16e53f4243..f7cf81a2509 100644 --- a/libjava/classpath/gnu/java/nio/charset/MS874.java +++ b/libjava/classpath/gnu/java/nio/charset/MS874.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MS874 extends ByteCharset +public final class MS874 extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MS874 extends ByteCharset public MS874() { - super("MS874", new String[] { - }); - lookupTable = lookup; + super("MS874", new String[] {}, lookup); } } // class MS874 diff --git a/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java b/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java index 5496db2b5ea..ce085436530 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java +++ b/libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacCentralEurope extends ByteCharset +public final class MacCentralEurope extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacCentralEurope extends ByteCharset public MacCentralEurope() { - super("MacCentralEurope", new String[] { - }); - lookupTable = lookup; + super("MacCentralEurope", new String[] {}, lookup); } } // class MacCentralEurope diff --git a/libjava/classpath/gnu/java/nio/charset/MacCroatian.java b/libjava/classpath/gnu/java/nio/charset/MacCroatian.java index f71ac5199b7..3bb19f5e2ed 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacCroatian.java +++ b/libjava/classpath/gnu/java/nio/charset/MacCroatian.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacCroatian extends ByteCharset +public final class MacCroatian extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacCroatian extends ByteCharset public MacCroatian() { - super("MacCroatian", new String[] { - }); - lookupTable = lookup; + super("MacCroatian", new String[] {}, lookup); } } // class MacCroatian diff --git a/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java b/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java index f152f6b1c1b..b1984e57ab1 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java +++ b/libjava/classpath/gnu/java/nio/charset/MacCyrillic.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacCyrillic extends ByteCharset +public final class MacCyrillic extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacCyrillic extends ByteCharset public MacCyrillic() { - super("MacCyrillic", new String[] { - }); - lookupTable = lookup; + super("MacCyrillic", new String[] {}, lookup); } } // class MacCyrillic diff --git a/libjava/classpath/gnu/java/nio/charset/MacDingbat.java b/libjava/classpath/gnu/java/nio/charset/MacDingbat.java index 84102d56f67..ad2f1c851c4 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacDingbat.java +++ b/libjava/classpath/gnu/java/nio/charset/MacDingbat.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacDingbat extends ByteCharset +public final class MacDingbat extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacDingbat extends ByteCharset public MacDingbat() { - super("MacDingbat", new String[] { - }); - lookupTable = lookup; + super("MacDingbat", new String[] {}, lookup); } } // class MacDingbat diff --git a/libjava/classpath/gnu/java/nio/charset/MacGreek.java b/libjava/classpath/gnu/java/nio/charset/MacGreek.java index 07624d59eff..6d152287408 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacGreek.java +++ b/libjava/classpath/gnu/java/nio/charset/MacGreek.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacGreek extends ByteCharset +public final class MacGreek extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacGreek extends ByteCharset public MacGreek() { - super("MacGreek", new String[] { - }); - lookupTable = lookup; + super("MacGreek", new String[] {}, lookup); } } // class MacGreek diff --git a/libjava/classpath/gnu/java/nio/charset/MacIceland.java b/libjava/classpath/gnu/java/nio/charset/MacIceland.java index 7918e026622..a8eb7036c17 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacIceland.java +++ b/libjava/classpath/gnu/java/nio/charset/MacIceland.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacIceland extends ByteCharset +public final class MacIceland extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacIceland extends ByteCharset public MacIceland() { - super("MacIceland", new String[] { - }); - lookupTable = lookup; + super("MacIceland", new String[] {}, lookup); } } // class MacIceland diff --git a/libjava/classpath/gnu/java/nio/charset/MacRoman.java b/libjava/classpath/gnu/java/nio/charset/MacRoman.java index b413caf2be7..72738a2aa23 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacRoman.java +++ b/libjava/classpath/gnu/java/nio/charset/MacRoman.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacRoman extends ByteCharset +public final class MacRoman extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacRoman extends ByteCharset public MacRoman() { - super("MacRoman", new String[] { - }); - lookupTable = lookup; + super("MacRoman", new String[] {}, lookup); } } // class MacRoman diff --git a/libjava/classpath/gnu/java/nio/charset/MacRomania.java b/libjava/classpath/gnu/java/nio/charset/MacRomania.java index d1779a40eb8..e05e94025e6 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacRomania.java +++ b/libjava/classpath/gnu/java/nio/charset/MacRomania.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacRomania extends ByteCharset +public final class MacRomania extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacRomania extends ByteCharset public MacRomania() { - super("MacRomania", new String[] { - }); - lookupTable = lookup; + super("MacRomania", new String[] {}, lookup); } } // class MacRomania diff --git a/libjava/classpath/gnu/java/nio/charset/MacSymbol.java b/libjava/classpath/gnu/java/nio/charset/MacSymbol.java index 869de194736..9878efd89d3 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacSymbol.java +++ b/libjava/classpath/gnu/java/nio/charset/MacSymbol.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacSymbol extends ByteCharset +public final class MacSymbol extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacSymbol extends ByteCharset public MacSymbol() { - super("MacSymbol", new String[] { - }); - lookupTable = lookup; + super("MacSymbol", new String[] {}, lookup); } } // class MacSymbol diff --git a/libjava/classpath/gnu/java/nio/charset/MacThai.java b/libjava/classpath/gnu/java/nio/charset/MacThai.java index 498b9e6bb4c..daed7563033 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacThai.java +++ b/libjava/classpath/gnu/java/nio/charset/MacThai.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacThai extends ByteCharset +public final class MacThai extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacThai extends ByteCharset public MacThai() { - super("MacThai", new String[] { - }); - lookupTable = lookup; + super("MacThai", new String[] {}, lookup); } } // class MacThai diff --git a/libjava/classpath/gnu/java/nio/charset/MacTurkish.java b/libjava/classpath/gnu/java/nio/charset/MacTurkish.java index 68ea27b8cee..b623ee39a82 100644 --- a/libjava/classpath/gnu/java/nio/charset/MacTurkish.java +++ b/libjava/classpath/gnu/java/nio/charset/MacTurkish.java @@ -37,7 +37,7 @@ exception statement from your version. */ package gnu.java.nio.charset; -public class MacTurkish extends ByteCharset +public final class MacTurkish extends ByteCharset { /** @@ -81,9 +81,7 @@ public class MacTurkish extends ByteCharset public MacTurkish() { - super("MacTurkish", new String[] { - }); - lookupTable = lookup; + super("MacTurkish", new String[] {}, lookup); } } // class MacTurkish diff --git a/libjava/classpath/gnu/java/nio/charset/Provider.java b/libjava/classpath/gnu/java/nio/charset/Provider.java index b56e5a90e72..d3b71a61265 100644 --- a/libjava/classpath/gnu/java/nio/charset/Provider.java +++ b/libjava/classpath/gnu/java/nio/charset/Provider.java @@ -67,14 +67,14 @@ public final class Provider extends CharsetProvider * are all lower-case to allow case-insensitive retrieval of * Charset instances. */ - private final HashMap canonicalNames; + private final HashMap<String, String> canonicalNames; /** * Map from lower-case canonical name to Charset. * TODO: We may want to use soft references. We would then need to keep * track of the class name to regenerate the object. */ - private final HashMap charsets; + private final HashMap<String, Charset> charsets; /** * We don't load all available charsets at the start @@ -85,8 +85,8 @@ public final class Provider extends CharsetProvider Provider () { extendedLoaded = false; - canonicalNames = new HashMap (); - charsets = new HashMap (); + canonicalNames = new HashMap<String,String> (); + charsets = new HashMap<String,Charset> (); // US-ASCII aka ISO646-US addCharset (new US_ASCII ()); @@ -203,7 +203,7 @@ public final class Provider extends CharsetProvider extendedLoaded = true; } - public Iterator charsets () + public Iterator<Charset> charsets () { loadExtended(); return Collections.unmodifiableCollection (charsets.values ()) @@ -250,7 +250,7 @@ public final class Provider extends CharsetProvider */ canonicalNames.put(canonicalName, canonicalName); - for (Iterator i = cs.aliases ().iterator (); i.hasNext (); ) + for (Iterator<String> i = cs.aliases ().iterator (); i.hasNext (); ) canonicalNames.put (((String) i.next()).toLowerCase(), canonicalName); } @@ -258,10 +258,10 @@ public final class Provider extends CharsetProvider { // The default provider is safe to instantiate. if (singleton == null) - singleton = (Provider) AccessController.doPrivileged - (new PrivilegedAction() + singleton = AccessController.doPrivileged + (new PrivilegedAction<Provider>() { - public Object run() + public Provider run() { return new Provider(); } diff --git a/libjava/classpath/gnu/java/nio/charset/US_ASCII.java b/libjava/classpath/gnu/java/nio/charset/US_ASCII.java index 8888416bebf..b09c43e61c1 100644 --- a/libjava/classpath/gnu/java/nio/charset/US_ASCII.java +++ b/libjava/classpath/gnu/java/nio/charset/US_ASCII.java @@ -48,6 +48,7 @@ import java.nio.charset.CoderResult; * US-ASCII charset. * * @author Jesse Rosenstock + * @modified Ian Rogers */ final class US_ASCII extends Charset { @@ -95,6 +96,19 @@ final class US_ASCII extends Charset private static final class Decoder extends CharsetDecoder { + /** Helper to decode loops */ + private static final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper() + { + protected boolean isMappable(byte b) + { + return b >= 0; + } + protected char mapToChar(byte b) + { + return (char)b; + } + }; + // Package-private to avoid a trampoline constructor. Decoder (Charset cs) { @@ -103,31 +117,24 @@ final class US_ASCII extends Charset protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out) { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - byte b = in.get (); - - if (b < 0) - { - in.position (in.position () - 1); - return CoderResult.malformedForLength (1); - } - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - out.put ((char) b); - } - - return CoderResult.UNDERFLOW; + return helper.decodeLoop(in, out); } } private static final class Encoder extends CharsetEncoder { + /** Helper to encode loops */ + private static final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper() + { + protected boolean isMappable(char c) + { + return c <= 0x7f; + } + protected byte mapToByte(char c) + { + return (byte)c; + } + }; // Package-private to avoid a trampoline constructor. Encoder (Charset cs) { @@ -149,26 +156,7 @@ final class US_ASCII extends Charset protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out) { - // TODO: Optimize this in the case in.hasArray() / out.hasArray() - while (in.hasRemaining ()) - { - char c = in.get (); - - if (c > 0x7f) - { - in.position (in.position () - 1); - return CoderResult.unmappableForLength (1); - } - if (!out.hasRemaining ()) - { - in.position (in.position () - 1); - return CoderResult.OVERFLOW; - } - - out.put ((byte) c); - } - - return CoderResult.UNDERFLOW; + return helper.encodeLoop(in, out); } } } diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1250.java b/libjava/classpath/gnu/java/nio/charset/Windows1250.java index 9d7ab8edd8c..f8fc90ae281 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1250.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1250.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1250-Latin-1, * aka cp1250 or Windows-1250 or whatever. */ -public class Windows1250 extends ByteCharset +public final class Windows1250 extends ByteCharset { /** @@ -95,8 +95,7 @@ public class Windows1250 extends ByteCharset "cp_1250", "windows1250", "windows_1250" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1250 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1251.java b/libjava/classpath/gnu/java/nio/charset/Windows1251.java index bf3227e87f2..51f289e2aa9 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1251.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1251.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1251 Cyrillic char set. * aka cp1251 or Windows-1251 or whatever. */ -public class Windows1251 extends ByteCharset +public final class Windows1251 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1251 extends ByteCharset "cp_1251", "windows1251", "windows_1251" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1251 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1252.java b/libjava/classpath/gnu/java/nio/charset/Windows1252.java index 9391c87d48a..03d15802c8a 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1252.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1252.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1252-Latin-1, * aka cp1252 or Windows-1252 or whatever. */ -public class Windows1252 extends ByteCharset +public final class Windows1252 extends ByteCharset { /** @@ -92,8 +92,7 @@ public class Windows1252 extends ByteCharset "windows-1252", "cp1252", "cp-1252" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1252 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1253.java b/libjava/classpath/gnu/java/nio/charset/Windows1253.java index 02150b4afb9..9e5b1f769dc 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1253.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1253.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1253 Greek char set. * aka cp1253 or Windows-1253 or whatever. */ -public class Windows1253 extends ByteCharset +public final class Windows1253 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1253 extends ByteCharset "cp_1253", "windows1253", "windows_1253" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1253 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1254.java b/libjava/classpath/gnu/java/nio/charset/Windows1254.java index 7cdad3c4693..9025421b33e 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1254.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1254.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1254 Turkish char set. * aka cp1254 or Windows-1254 or whatever. */ -public class Windows1254 extends ByteCharset +public final class Windows1254 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1254 extends ByteCharset "cp_1254", "windows1254", "windows_1254" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1254 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1255.java b/libjava/classpath/gnu/java/nio/charset/Windows1255.java index b706d193006..61787d184d0 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1255.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1255.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1255 Hebrew char set. * aka cp1255 or Windows-1255 or whatever. */ -public class Windows1255 extends ByteCharset +public final class Windows1255 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1255 extends ByteCharset "cp_1255", "windows1255", "windows_1255" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1255 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1256.java b/libjava/classpath/gnu/java/nio/charset/Windows1256.java index 6924420e1bc..cf88c21b47d 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1256.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1256.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1256 Arabic char set. * aka cp1256 or Windows-1256 or whatever. */ -public class Windows1256 extends ByteCharset +public final class Windows1256 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1256 extends ByteCharset "cp_1256", "windows1256", "windows_1256" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1256 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1257.java b/libjava/classpath/gnu/java/nio/charset/Windows1257.java index 2f95d64ac74..2d281d9cd26 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1257.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1257.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1257 Baltic char set. * aka cp1257 or Windows-1257 or whatever. */ -public class Windows1257 extends ByteCharset +public final class Windows1257 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1257 extends ByteCharset "cp_1257", "windows1257", "windows_1257" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1257 diff --git a/libjava/classpath/gnu/java/nio/charset/Windows1258.java b/libjava/classpath/gnu/java/nio/charset/Windows1258.java index 7d653b49780..63ef37f1a31 100644 --- a/libjava/classpath/gnu/java/nio/charset/Windows1258.java +++ b/libjava/classpath/gnu/java/nio/charset/Windows1258.java @@ -42,7 +42,7 @@ package gnu.java.nio.charset; * Encoding table for Windows-1258 Arabic char set. * aka cp1258 or Windows-1258 or whatever. */ -public class Windows1258 extends ByteCharset +public final class Windows1258 extends ByteCharset { /** @@ -93,8 +93,7 @@ public class Windows1258 extends ByteCharset "cp_1258", "windows1258", "windows_1258" - }); - lookupTable = lookup; + }, lookup); } } // class Windows1258 diff --git a/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java b/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java index 9cc57b2289f..9f2b3706e86 100644 --- a/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java +++ b/libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java @@ -103,7 +103,7 @@ class ConnectionRunnerPool static { ConnectionRunner[] pools = new ConnectionRunner[size]; for(int i = 0; i < pools.length; i++){ - pools[i] = new ConnectionRunner(group, new Integer(i).toString()); + pools[i] = new ConnectionRunner(group, Integer.toString(i)); pools[i].setContextClassLoader(Thread.currentThread().getContextClassLoader()); pools[i].start(); } @@ -123,7 +123,7 @@ class ConnectionRunnerPool if(freelist.size() == 0){ if(size < max_size){ ++size; - ConnectionRunner a = new ConnectionRunner(group, new Integer(size).toString()); + ConnectionRunner a = new ConnectionRunner(group, Integer.toString(size)); a.start(); freelist.add(a); }else diff --git a/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java b/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java index 82f0ff69e4e..4d5e1b0269e 100644 --- a/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java +++ b/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java @@ -64,12 +64,6 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi this.annotation = annotation; } - private MyClassLoader (URL[] urls, ClassLoader parent) - { - super (urls, parent); - this.annotation = urlToAnnotation (urls); - } - public static String urlToAnnotation (URL[] urls) { if (urls.length == 0) diff --git a/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java b/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java index 75f4f120236..65a13f991b3 100644 --- a/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java +++ b/libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java @@ -46,7 +46,6 @@ import java.io.ObjectInputStream; import java.io.ObjectStreamClass; import java.net.MalformedURLException; import java.rmi.server.RMIClassLoader; -import java.util.ArrayList; public class RMIObjectInputStream extends ObjectInputStream { diff --git a/libjava/classpath/gnu/java/security/Engine.java b/libjava/classpath/gnu/java/security/Engine.java index 85491922f30..2cb21832152 100644 --- a/libjava/classpath/gnu/java/security/Engine.java +++ b/libjava/classpath/gnu/java/security/Engine.java @@ -163,7 +163,7 @@ public final class Engine } else if (key.equalsIgnoreCase(ALG_ALIAS + service + "." + algorithm)) { - alias = (String) provider.getProperty(key); + alias = provider.getProperty(key); if (! algorithm.equalsIgnoreCase(alias)) // does not refer to itself { algorithm = alias; diff --git a/libjava/classpath/gnu/java/security/key/dss/FIPS186.java b/libjava/classpath/gnu/java/security/key/dss/FIPS186.java index 7277599bd54..65dc5800c77 100644 --- a/libjava/classpath/gnu/java/security/key/dss/FIPS186.java +++ b/libjava/classpath/gnu/java/security/key/dss/FIPS186.java @@ -173,7 +173,7 @@ public class FIPS186 // 6. Let counter = 0 and offset = 2. counter = 0; offset = 2; - step7: while (true) + while (true) { OFFSET = BigInteger.valueOf(offset & 0xFFFFFFFFL); SEED_PLUS_OFFSET = SEED.add(OFFSET); diff --git a/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java b/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java index 8cfc8f56ddb..ae3e6ef706c 100644 --- a/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java +++ b/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java @@ -91,7 +91,7 @@ public class AttributedFormatBuffer implements FormatBuffer * comprised between the last entry in 'ranges' and the specified new range. * * @param new_range A new range to insert in the list. - * @param new_attribute A new attribute to insert in the list. + * @param attr A new attribute to insert in the list. */ private final void addAttribute(int new_range, AttributedCharacterIterator.Attribute attr) { diff --git a/libjava/classpath/gnu/java/util/LRUCache.java b/libjava/classpath/gnu/java/util/LRUCache.java new file mode 100644 index 00000000000..784a442ab2d --- /dev/null +++ b/libjava/classpath/gnu/java/util/LRUCache.java @@ -0,0 +1,77 @@ +/* LRUCache.java -- A LRU Cache implementation + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.java.util; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * A least recently used cache, based on LinkedHashMap. + */ +public class LRUCache<K,V> + extends LinkedHashMap<K,V> +{ + + /** + * The capacity of the cache. + */ + private int capacity; + + /** + * Creates a new LRUCache instance with the specified capacity. + * + * @param cap the capacity of the new cache + */ + public LRUCache(int cap) + { + super(); + capacity = cap; + } + + /** + * Returns <code>true</code> when the oldest entry should be removed. + * + * @param eldest the entry about to be removed + * + * @return <code>true</code> when the oldest entry should be removed + */ + protected boolean removeEldestEntry(Map.Entry<K, V> eldest) + { + return size() > capacity; + } +} diff --git a/libjava/classpath/gnu/java/util/regex/RE.java b/libjava/classpath/gnu/java/util/regex/RE.java index 09ff74b908f..421640ff293 100644 --- a/libjava/classpath/gnu/java/util/regex/RE.java +++ b/libjava/classpath/gnu/java/util/regex/RE.java @@ -41,7 +41,6 @@ import java.io.Serializable; import java.util.Locale; import java.util.PropertyResourceBundle; import java.util.ResourceBundle; -import java.util.Stack; import java.util.Vector; /** diff --git a/libjava/classpath/gnu/java/util/regex/REException.java b/libjava/classpath/gnu/java/util/regex/REException.java index 4104fbcd8a7..7a277ca3ae3 100644 --- a/libjava/classpath/gnu/java/util/regex/REException.java +++ b/libjava/classpath/gnu/java/util/regex/REException.java @@ -147,6 +147,12 @@ public class REException extends Exception { this.pos = position; } + REException(String msg, Throwable cause, int type, int position) { + super(msg, cause); + this.type = type; + this.pos = position; + } + /** * Returns the type of the exception, one of the constants listed above. */ diff --git a/libjava/classpath/gnu/java/util/regex/REToken.java b/libjava/classpath/gnu/java/util/regex/REToken.java index 9affd4ee3c9..addc62225eb 100644 --- a/libjava/classpath/gnu/java/util/regex/REToken.java +++ b/libjava/classpath/gnu/java/util/regex/REToken.java @@ -128,7 +128,7 @@ abstract class REToken implements Serializable, Cloneable { * of the REmatch found this time so that another possible match * may be found when backtrack is called. * By default, nothing is added to the backtrackStack. - * @param CharIndexed input Input character sequence. + * @param input Input character sequence. * @param mymatch Position at which a match should be found * @return REMatch object if a match was found, null otherwise. */ diff --git a/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java b/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java index aec27583a58..0051f164364 100644 --- a/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java +++ b/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java @@ -38,6 +38,9 @@ exception statement from your version. */ package gnu.java.util.regex; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + final class RETokenNamedProperty extends REToken { String name; boolean insens; @@ -268,6 +271,20 @@ final class RETokenNamedProperty extends REToken { return true; } }; + if (name.startsWith("java")) + { + try + { + Method m = Character.class.getMethod("is" + name.substring(4), + Character.TYPE); + return new JavaCategoryHandler(m); + } + catch (NoSuchMethodException e) + { + throw new REException("Unsupported Java handler: " + name, e, + REException.REG_ESCAPE, 0); + } + } throw new REException("unsupported name " + name, REException.REG_ESCAPE, 0); } @@ -320,4 +337,37 @@ final class RETokenNamedProperty extends REToken { } } + /** + * Handle the Java-specific extensions \p{javaX} where X + * is a method from Character of the form isX + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + */ + private static class JavaCategoryHandler + extends Handler + { + private Method method; + + public JavaCategoryHandler(Method m) + { + this.method = m; + } + + public boolean includes(char c) + { + try + { + return (Boolean) method.invoke(null, c); + } + catch (IllegalAccessException e) + { + throw new InternalError("Unable to access method " + method); + } + catch (InvocationTargetException e) + { + throw new InternalError("Error invoking " + method); + } + } + } + } diff --git a/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java b/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java index 4f4d5e47908..6a65437d644 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java +++ b/libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java @@ -94,8 +94,7 @@ public final class DiffieHellmanImpl DHPublicKey pub = (DHPublicKey) incoming; DHParameterSpec s1 = key.getParams(); DHParameterSpec s2 = pub.getParams(); - if (! s1.getG().equals(s2.getG()) || ! s1.getP().equals(s2.getP()) - || s1.getL() != s2.getL()) + if (! s1.getG().equals(s2.getG()) || ! s1.getP().equals(s2.getP())) throw new InvalidKeyException("Incompatible key"); if (! lastPhase) throw new IllegalArgumentException( diff --git a/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java b/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java index 673e44864b5..a814d2c0bbf 100644 --- a/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java +++ b/libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java @@ -136,7 +136,7 @@ public class RFC2631 } // 8. Let counter = 0 counter = 0; - step9: while (true) + while (true) { // 9. Set R = seed + 2*m' + (L' * counter) R = SEED diff --git a/libjava/classpath/gnu/javax/imageio/bmp/DecodeBF16.java b/libjava/classpath/gnu/javax/imageio/bmp/DecodeBF16.java index 702c93ab3ca..397b857aa37 100644 --- a/libjava/classpath/gnu/javax/imageio/bmp/DecodeBF16.java +++ b/libjava/classpath/gnu/javax/imageio/bmp/DecodeBF16.java @@ -39,8 +39,6 @@ package gnu.javax.imageio.bmp; import java.io.IOException; import javax.imageio.stream.ImageInputStream; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DirectColorModel; diff --git a/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java b/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java index d653bbf9ffd..4aa1cd5d2fb 100644 --- a/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java +++ b/libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.javax.imageio.bmp; -import java.awt.Dimension; import java.awt.image.BufferedImage; import java.awt.image.PixelGrabber; import java.io.IOException; diff --git a/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java b/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java index a11a8c0c6f5..ec0a3103d30 100644 --- a/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java +++ b/libjava/classpath/gnu/javax/imageio/gif/GIFFile.java @@ -276,7 +276,7 @@ public class GIFFile * * @param in - the stream (reads 6 bytes, does not close or reset). * @return true if the signature is a valid GIF signature. - * @throws an IOException if the signature could not be read. + * @throws IOException if the signature could not be read. */ public static boolean readSignature( InputStream in ) throws IOException { diff --git a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java index d5799fd412b..d07bb34e939 100644 --- a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java +++ b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java @@ -336,7 +336,7 @@ public class JPEGComponent { k += r; r = (int) JPEGStream.readBits(s); - s = (int) HuffmanTable.extend(r, s); + s = HuffmanTable.extend(r, s); zz[k] = s; } else diff --git a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java index 3610ebe874f..0f2a3f2b949 100644 --- a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java +++ b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java @@ -40,16 +40,12 @@ package gnu.javax.imageio.jpeg; import java.io.IOException; import java.nio.ByteOrder; -import javax.imageio.*; import javax.imageio.plugins.jpeg.JPEGHuffmanTable; import javax.imageio.plugins.jpeg.JPEGQTable; -import javax.imageio.spi.*; -import javax.imageio.metadata.*; import javax.imageio.stream.ImageInputStream; import java.util.ArrayList; import java.util.Hashtable; -import java.util.Iterator; import java.awt.Point; import java.awt.Transparency; import java.awt.color.ColorSpace; @@ -391,7 +387,7 @@ public class JPEGDecoder // read in how much they need for (int compIndex = 0; compIndex < numberOfComponents; compIndex++) { - JPEGComponent comp = (JPEGComponent) frame.components.getComponentByID(componentSelector[compIndex]); + JPEGComponent comp = frame.components.getComponentByID(componentSelector[compIndex]); comp.readComponentMCU(jpegStream); } mcuIndex++; @@ -420,7 +416,7 @@ public class JPEGDecoder { for (int compIndex = 0; compIndex < numberOfComponents; compIndex++) { - JPEGComponent comp = (JPEGComponent) frame.components.getComponentByID(componentSelector[compIndex]); + JPEGComponent comp = frame.components.getComponentByID(componentSelector[compIndex]); if (compIndex > 1) comp.padMCU(mcuTotalIndex, resetInterval - mcuIndex); comp.resetInterval(); @@ -485,8 +481,7 @@ public class JPEGDecoder // Unencode the data. for (int i = 0; i < frame.getComponentCount(); i++) { - JPEGComponent comp = - (JPEGComponent) frame.components.get(i); + JPEGComponent comp = frame.components.get(i); comp.setQuantizationTable(qTables[comp.quant_id].getTable()); comp.quantitizeData(); comp.idctData(myDCT); @@ -494,7 +489,7 @@ public class JPEGDecoder // Scale the image and write the data to the raster. for (int i = 0; i < frame.getComponentCount(); i++) { - JPEGComponent comp = (JPEGComponent) frame.components.get(i); + JPEGComponent comp = frame.components.get(i); comp.scaleByFactors(); comp.writeData(raster, i); // Ensure garbage collection. diff --git a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGException.java b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGException.java index b684069ccb6..a2c06e27e04 100644 --- a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGException.java +++ b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGException.java @@ -37,14 +37,7 @@ exception statement from your version. */ package gnu.javax.imageio.jpeg; -// FIXME: change to IIOException -import java.io.IOException; import javax.imageio.*; -import javax.imageio.spi.*; -import javax.imageio.metadata.*; -import javax.imageio.stream.ImageInputStream; -import java.util.Iterator; -import java.awt.image.BufferedImage; public class JPEGException extends IIOException { diff --git a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGFrame.java b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGFrame.java index 9b958f98f2c..35aed728a4d 100644 --- a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGFrame.java +++ b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGFrame.java @@ -101,7 +101,7 @@ public class JPEGFrame public void setHuffmanTables(byte componentID, JPEGHuffmanTable ACTable, JPEGHuffmanTable DCTable) { - JPEGComponent comp = (JPEGComponent)components.getComponentByID(componentID); + JPEGComponent comp = components.getComponentByID(componentID); comp.setACTable(ACTable); comp.setDCTable(DCTable); } diff --git a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java index 4ae909baf15..29a12f346cf 100644 --- a/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java +++ b/libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java @@ -37,17 +37,10 @@ exception statement from your version. */ package gnu.javax.imageio.jpeg; -import java.io.EOFException; import java.io.IOException; -import javax.imageio.*; -import javax.imageio.spi.*; -import javax.imageio.metadata.*; import javax.imageio.stream.ImageInputStream; import javax.imageio.stream.ImageInputStreamImpl; -import java.util.Iterator; -import java.awt.image.BufferedImage; - public class JPEGImageInputStream extends ImageInputStreamImpl { diff --git a/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java b/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java index 6b53810c89d..8efbeea7259 100644 --- a/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java +++ b/libjava/classpath/gnu/javax/imageio/png/PNGChunk.java @@ -40,7 +40,6 @@ package gnu.javax.imageio.png; import java.io.InputStream; import java.io.OutputStream; import java.io.IOException; -import java.io.UnsupportedEncodingException; /** * Class to load and validate a generic PNG chunk. diff --git a/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java b/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java index 20fc32ce371..652f59d35b5 100644 --- a/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java +++ b/libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java @@ -140,7 +140,7 @@ public class PNGDecoder /** * Parse the appropriate color type and create an AWT raster for it. - * @param raster - the file header. + * @param header - the file header. */ public WritableRaster getRaster( PNGHeader header ) { diff --git a/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java b/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java index c0a30a7baef..b8441c4e3f0 100644 --- a/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java +++ b/libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java @@ -40,7 +40,6 @@ package gnu.javax.imageio.png; import java.util.Vector; import java.util.zip.Deflater; import java.awt.color.ColorSpace; -import java.awt.color.ICC_Profile; import java.awt.color.ICC_ColorSpace; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; @@ -48,7 +47,6 @@ import java.awt.image.DataBuffer; import java.awt.image.DataBufferByte; import java.awt.image.DataBufferUShort; import java.awt.image.IndexColorModel; -import java.awt.image.Raster; import java.awt.image.WritableRaster; public class PNGEncoder diff --git a/libjava/classpath/gnu/javax/imageio/png/PNGFile.java b/libjava/classpath/gnu/javax/imageio/png/PNGFile.java index cc0ca297fcb..96e8f9ce78f 100644 --- a/libjava/classpath/gnu/javax/imageio/png/PNGFile.java +++ b/libjava/classpath/gnu/javax/imageio/png/PNGFile.java @@ -44,7 +44,6 @@ import java.util.Vector; import java.awt.image.BufferedImage; import java.awt.image.WritableRaster; import java.awt.image.ColorModel; -import java.awt.image.IndexColorModel; import java.awt.color.ColorSpace; public class PNGFile diff --git a/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java b/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java index af777d9b4f6..d9cacea4609 100644 --- a/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java +++ b/libjava/classpath/gnu/javax/imageio/png/PNGGamma.java @@ -37,10 +37,6 @@ exception statement from your version. */ package gnu.javax.imageio.png; -import java.awt.color.ICC_ProfileGray; -import java.awt.color.ICC_ProfileRGB; -import java.awt.color.ICC_Profile; -import java.awt.color.ICC_ColorSpace; import java.awt.color.ColorSpace; /** diff --git a/libjava/classpath/gnu/javax/management/Server.java b/libjava/classpath/gnu/javax/management/Server.java index 616854e95bd..8e8d826c00f 100644 --- a/libjava/classpath/gnu/javax/management/Server.java +++ b/libjava/classpath/gnu/javax/management/Server.java @@ -169,7 +169,7 @@ public class Server * Constructs a new management server using the specified * default domain, delegate bean and outer server. * - * @param domain the default domain to use for beans constructed + * @param defaultDomain the default domain to use for beans constructed * with no specified domain. * @param outer an {@link javax.management.MBeanServer} to pass * to beans implementing the {@link MBeanRegistration} @@ -229,8 +229,8 @@ public class Server if (name != null) { Object bean = getBean(name); - Method method = bean.getClass().getMethod("getMBeanInfo", null); - info = (MBeanInfo) method.invoke(bean, null); + Method method = bean.getClass().getMethod("getMBeanInfo"); + info = (MBeanInfo) method.invoke(bean); } sm.checkPermission(new MBeanPermission((info == null) ? null : info.getClassName(), @@ -1031,13 +1031,20 @@ public class Server checkSecurity(name, null, "getMBeanInfo"); try { - Method method = bean.getClass().getMethod("getMBeanInfo", null); - return (MBeanInfo) method.invoke(bean, null); + Method method = bean.getClass().getMethod("getMBeanInfo"); + return (MBeanInfo) method.invoke(bean); } catch (NoSuchMethodException e) { - throw new IntrospectionException("The getMBeanInfo method " + - "could not be found."); + try + { + return new StandardMBean(bean, null).getMBeanInfo(); + } + catch (NotCompliantMBeanException ex) + { + throw new IntrospectionException("An error occurred in executing " + + "getMBeanInfo on the bean: " + ex + "."); + } } catch (IllegalAccessException e) { diff --git a/libjava/classpath/gnu/javax/management/Translator.java b/libjava/classpath/gnu/javax/management/Translator.java index 69191d43f86..4ede3743088 100644 --- a/libjava/classpath/gnu/javax/management/Translator.java +++ b/libjava/classpath/gnu/javax/management/Translator.java @@ -39,11 +39,15 @@ package gnu.javax.management; import java.lang.reflect.Array; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; import java.lang.reflect.Proxy; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -92,7 +96,7 @@ public final class Translator Type[] gtypes = method.getGenericParameterTypes(); Object[] otypes = new Object[jtypes.length]; for (int a = 0; a < jtypes.length; ++a) - otypes[a] = fromJava(jtypes[a], (Class<?>) gtypes[a]); + otypes[a] = fromJava(jtypes[a], gtypes[a]); return otypes; } @@ -131,11 +135,10 @@ public final class Translator if (jtype instanceof List || jtype instanceof Set || jtype instanceof SortedSet) { - String elemType = tName.substring(tName.indexOf("<") + 1, - tName.indexOf(">")).trim(); if (jtype instanceof SortedSet) { - Class<?> elemClass = Class.forName(elemType); + ParameterizedType ptype = (ParameterizedType) type; + Class<?> elemClass = (Class<?>) ptype.getActualTypeArguments()[0]; if (!Comparable.class.isAssignableFrom(elemClass)) throw new IllegalArgumentException(jtype + " has a " + "non-comparable element " + @@ -144,11 +147,13 @@ public final class Translator throw new IllegalArgumentException(jtype + " does not " + "use natural ordering."); } - List elems = (List) jtype; - Object[] celems = new Object[elems.size()]; - for (int a = 0; a < elems.size(); ++a) + Collection<Object> elems = (Collection<Object>) jtype; + int numElems = elems.size(); + Object[] celems = new Object[numElems]; + Iterator<Object> i = elems.iterator(); + for (int a = 0; a < numElems; ++a) { - Object elem = elems.get(a); + Object elem = i.next(); celems[a] = fromJava(elem, elem.getClass()); } return makeArraySpecific(celems); @@ -440,33 +445,6 @@ public final class Translator SimpleType.STRING, null, names); } - try - { - c.getMethod("from", new Class[] { CompositeData.class }); - Method[] methods = c.getDeclaredMethods(); - List<String> names = new ArrayList<String>(); - List<OpenType> types = new ArrayList<OpenType>(); - for (int a = 0; a < methods.length; ++a) - { - String name = methods[a].getName(); - if (name.startsWith("get")) - { - names.add(name.substring(3)); - types.add(getTypeFromClass(methods[a].getReturnType())); - } - } - String[] fields = names.toArray(new String[names.size()]); - CompositeType ctype = new CompositeType(c.getName(), c.getName(), - fields, fields, - types.toArray(new OpenType[types.size()])); - return new OpenMBeanParameterInfoSupport("TransParam", - "Translated parameter", - ctype); - } - catch (NoSuchMethodException e) - { - /* Ignored; we expect this if this isn't a from(CompositeData) class */ - } if (c.isArray()) { int depth; @@ -478,7 +456,35 @@ public final class Translator new ArrayType(depth, ot) ); } - throw new InternalError("The type used does not have an open type translation."); + Method[] methods = c.getDeclaredMethods(); + List<String> names = new ArrayList<String>(); + List<OpenType> types = new ArrayList<OpenType>(); + for (int a = 0; a < methods.length; ++a) + { + String name = methods[a].getName(); + if (Modifier.isPublic(methods[a].getModifiers())) + { + if (name.startsWith("get")) + { + names.add(name.substring(3)); + types.add(getTypeFromClass(methods[a].getReturnType())); + } + else if (name.startsWith("is")) + { + names.add(name.substring(2)); + types.add(getTypeFromClass(methods[a].getReturnType())); + } + } + } + if (names.isEmpty()) + throw new OpenDataException("The type used does not have an open type translation."); + String[] fields = names.toArray(new String[names.size()]); + CompositeType ctype = new CompositeType(c.getName(), c.getName(), + fields, fields, + types.toArray(new OpenType[types.size()])); + return new OpenMBeanParameterInfoSupport("TransParam", + "Translated parameter", + ctype); } /** diff --git a/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java b/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java index 7d7a785fd2f..05023840ba3 100644 --- a/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java +++ b/libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java @@ -129,14 +129,14 @@ public class ContextContinuation implements Context * Creates a new naming context that uses naming service, represented by the * given CORBA object. * - * @param namingService + * @param nsObject * the naming service object. It must be possible to narrow it into * the NamingContextExt. * @param props * the environment table. - * @param orb + * @param anOrb * the associated ORB. This reference is used during cleanup. - * @param the + * @param aFactory * parent factory. This reference is used during cleanup. */ public ContextContinuation(org.omg.CORBA.Object nsObject, @@ -293,7 +293,7 @@ public class ContextContinuation implements Context * context. The returned object will wrap around the newly created CORBA * subcontext * - * @param name + * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on * that the method has been called @@ -336,7 +336,7 @@ public class ContextContinuation implements Context * context. The returned object will wrap around the newly created CORBA * subcontext * - * @param name + * @param subContext * the name of the new context being created * @return the newly created context, bound to the instance of the context on * that the method has been called @@ -380,7 +380,7 @@ public class ContextContinuation implements Context * action if such subcontext does not exist. The context being destroyed must * be empty. * - * @param name + * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException * if the named context is not empty. @@ -396,7 +396,7 @@ public class ContextContinuation implements Context * action if such subcontext does not exist. The context being destroyed must * be empty. * - * @param name + * @param subContext * the name of the subcontext beig removed. * @throws ContextNotEmptyException * if the named context is not empty. @@ -868,9 +868,9 @@ public class ContextContinuation implements Context * and value of the new property must not be null. If the property is already * defined, is current value is replaced by the propVal. * - * @param propName + * @param key * the name of the new property - * @param propVal + * @param value * the value of the new property * @return the previous value of this property or null if the property has not * been previously defined diff --git a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java index de79b93c3dc..ee8c7791419 100644 --- a/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java +++ b/libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java @@ -97,9 +97,9 @@ public class ContextContinuation implements Context * the registry. The new registry will be lazily instantiated on the first * call. * - * @param propName + * @param key * the name of the new property - * @param propVal + * @param value * the value of the new property * @return the previous value of this property or null if the property has not * been previously defined @@ -426,7 +426,7 @@ public class ContextContinuation implements Context * @param name * the object name (.toString()) is used to convert into string * representation. - * @param the + * @param obj * object (must be an instance of Remote). */ public void rebind(Name name, Object obj) throws NamingException @@ -439,7 +439,7 @@ public class ContextContinuation implements Context * * @param name * the object name. - * @param the + * @param obj * object (must be an instance of Remote). */ public void rebind(String name, Object obj) throws NamingException diff --git a/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java b/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java index 3147415fe36..3ce56eab5fe 100644 --- a/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java +++ b/libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java @@ -39,7 +39,6 @@ exception statement from your version. */ package gnu.javax.net.ssl; import java.nio.ByteBuffer; -import javax.net.ssl.SSLEngineResult; import javax.net.ssl.SSLException; public abstract class SSLRecordHandler diff --git a/libjava/classpath/gnu/javax/net/ssl/StaticTrustAnchors.java b/libjava/classpath/gnu/javax/net/ssl/StaticTrustAnchors.java index 0c2c3cca8a8..480f1c754b1 100644 --- a/libjava/classpath/gnu/javax/net/ssl/StaticTrustAnchors.java +++ b/libjava/classpath/gnu/javax/net/ssl/StaticTrustAnchors.java @@ -39,8 +39,6 @@ exception statement from your version. */ package gnu.javax.net.ssl; import java.io.ByteArrayInputStream; -import java.io.InputStream; - import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java index 9beab473ca6..8c059854e4a 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import static gnu.javax.net.ssl.provider.CertificateRequest.ClientCertificateType; - import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.ByteBuffer; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java index a8780084508..fdbf262122b 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java @@ -56,7 +56,6 @@ import java.nio.ByteBuffer; import java.security.AccessController; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; -import java.security.KeyManagementException; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.MessageDigest; @@ -65,7 +64,6 @@ import java.security.PrivateKey; import java.security.SignatureException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; -import java.security.interfaces.RSAPublicKey; import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; @@ -77,7 +75,6 @@ import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; -import javax.crypto.SecretKey; import javax.crypto.interfaces.DHPrivateKey; import javax.crypto.interfaces.DHPublicKey; import javax.crypto.spec.DHParameterSpec; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java index 676a872f925..f08ec7f9062 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java @@ -38,13 +38,9 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - import java.io.PrintWriter; import java.io.StringWriter; import java.nio.ByteBuffer; -import java.nio.ByteOrder; import java.nio.CharBuffer; import java.nio.charset.Charset; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java index f7483a94c30..860cc731f7a 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java @@ -38,13 +38,9 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - import java.io.PrintWriter; import java.io.StringWriter; import java.nio.ByteBuffer; -import java.nio.ByteOrder; import java.nio.charset.Charset; /** diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java b/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java index f7165a2d769..eaebebf4b67 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java @@ -38,10 +38,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; - /** * The content type enumeration, which marks packets in the record layer. * diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java b/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java index ea7439bd2c6..85769cffcf2 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java @@ -38,9 +38,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - import java.io.PrintWriter; import java.io.StringWriter; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java index 52f61424e4c..dd36f2b3fc5 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java @@ -38,26 +38,11 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.EOFException; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; -import java.io.StringReader; import java.io.StringWriter; import java.nio.ByteBuffer; -import java.security.PublicKey; - -import java.util.ArrayList; -import java.util.Collections; - -import javax.net.ssl.SSLProtocolException; - /** * An SSL handshake message. SSL handshake messages have the following * form: diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java index 13a3ef814de..cf5ca6099ff 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java @@ -47,11 +47,9 @@ import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.util.Arrays; -import java.util.logging.Level; import java.util.zip.DataFormatException; import java.util.zip.Inflater; -import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.Mac; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java index 6da0d066741..228071a393d 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java @@ -40,16 +40,13 @@ package gnu.javax.net.ssl.provider; import gnu.classpath.debug.Component; import gnu.classpath.debug.SystemLogger; -import gnu.java.security.util.ByteArray; import gnu.java.security.util.ByteBufferOutputStream; import java.nio.ByteBuffer; -import java.util.logging.Level; import java.util.zip.DataFormatException; import java.util.zip.Deflater; -import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.Mac; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java b/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java index ca62054a89c..3c3f29a21e6 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java @@ -40,7 +40,6 @@ package gnu.javax.net.ssl.provider; import java.io.InputStream; import java.io.IOException; -import java.io.OutputStream; public final class ProtocolVersion implements Comparable<ProtocolVersion>, Constructed diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Random.java b/libjava/classpath/gnu/javax/net/ssl/provider/Random.java index e6815930934..f89acc1f8f5 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Random.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Random.java @@ -38,10 +38,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java b/libjava/classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java index 5822afe0596..c5422871df5 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java @@ -44,8 +44,6 @@ import java.math.BigInteger; import java.security.InvalidAlgorithmParameterException; import java.security.KeyPair; import java.security.KeyStore; -import java.security.Security; - import java.util.HashMap; import javax.net.ssl.ManagerFactoryParameters; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java index edc3ac259cb..2d21d9d4554 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java @@ -38,9 +38,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import gnu.classpath.debug.Component; -import gnu.classpath.debug.SystemLogger; - import java.io.PrintWriter; import java.io.StringWriter; import java.nio.ByteBuffer; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java index 300012a4b30..e30f04241a0 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java @@ -775,7 +775,7 @@ class ServerHandshake extends AbstractHandshake // outgoing buffer. This isn't that great because we'd need to // store and copy things unnecessarily. // - // 2. Build outgoing handshake objects “virtually,†that is, store them + // 2. Build outgoing handshake objects 'virtually', that is, store them // as collections of objects, then compute the length, and then write // them to a buffer, instead of making the objects views on // ByteBuffers for both input and output. This would complicate the @@ -784,7 +784,7 @@ class ServerHandshake extends AbstractHandshake // pretty OK), and we still need to figure out how exactly to chunk // those objects across record boundaries. // - // 3. Try to build these objects on the buffer we’re given, but detect + // 3. Try to build these objects on the buffer we're given, but detect // when we run out of space in the output buffer, and split the // overflow message. This sounds like the best, but also probably // the hardest to code. @@ -1374,4 +1374,4 @@ output_loop: setupSecurityParameters(keys, false, engine, compression); } } -}
\ No newline at end of file +} diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java index 86dcb4915cd..6a4020117ec 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java @@ -40,22 +40,16 @@ package gnu.javax.net.ssl.provider; import gnu.javax.crypto.key.GnuPBEKey; import gnu.javax.net.ssl.Session; -import gnu.javax.net.ssl.Session.ID; - import java.io.IOException; import java.io.Serializable; -import java.security.Certificate; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; -import java.security.cert.X509Certificate; - import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.SealedObject; -import javax.crypto.spec.PBEKeySpec; import javax.net.ssl.SSLException; public class SessionImpl extends Session diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java b/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java index 8c6cfadc734..d95e181370e 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Signature.java @@ -38,26 +38,11 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.DataInputStream; -import java.io.InputStream; -import java.io.IOException; -import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; -import java.math.BigInteger; - import java.nio.ByteBuffer; -import java.security.PublicKey; -import java.security.interfaces.RSAKey; - -import java.util.Arrays; - -import gnu.java.security.der.*; - /** * The signature structure. * diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java b/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java index b9d0f95519d..20503d3cabe 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java @@ -41,8 +41,6 @@ package gnu.javax.net.ssl.provider; import gnu.javax.net.ssl.AbstractSessionContext; import gnu.javax.net.ssl.Session; import gnu.javax.net.ssl.SessionStoreException; -import gnu.javax.net.ssl.Session.ID; - import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/TLSHMac.java b/libjava/classpath/gnu/javax/net/ssl/provider/TLSHMac.java index 18aa8f5f4c7..8bdda930b3c 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/TLSHMac.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/TLSHMac.java @@ -39,7 +39,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; import java.security.InvalidKeyException; -import java.util.HashMap; import java.util.Map; import gnu.java.security.hash.IMessageDigest; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java b/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java index 1e4b173595d..85e359675a7 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import gnu.java.security.x509.X500DistinguishedName; import gnu.javax.net.ssl.provider.Extension.Value; import java.io.PrintWriter; diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java b/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java index 2094daf9098..f54dda5bc6d 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java @@ -40,8 +40,6 @@ package gnu.javax.net.ssl.provider; import gnu.javax.net.ssl.provider.Extension.Value; -import java.io.PrintWriter; -import java.io.StringWriter; import java.nio.ByteBuffer; public class UnresolvedExtensionValue extends Value diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java b/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java index dc772886697..c3b7e5f4b8f 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java @@ -64,8 +64,6 @@ import java.security.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import java.util.List; @@ -77,8 +75,6 @@ import javax.net.ssl.KeyManagerFactorySpi; import javax.net.ssl.ManagerFactoryParameters; import javax.net.ssl.SSLEngine; import javax.net.ssl.X509ExtendedKeyManager; -import javax.net.ssl.X509KeyManager; - import gnu.javax.net.ssl.NullManagerParameters; import gnu.javax.net.ssl.PrivateCredentials; diff --git a/libjava/classpath/gnu/javax/print/PrinterDialog.java b/libjava/classpath/gnu/javax/print/PrinterDialog.java index d7598be3e5b..54d6b87b47c 100644 --- a/libjava/classpath/gnu/javax/print/PrinterDialog.java +++ b/libjava/classpath/gnu/javax/print/PrinterDialog.java @@ -479,17 +479,17 @@ public final class PrinterDialog extends JDialog implements ActionListener */ void updateForSelectedService() { - PrinterMakeAndModel att1 = (PrinterMakeAndModel) + PrinterMakeAndModel att1 = getSelectedPrintService().getAttribute(PrinterMakeAndModel.class); typValue.setText(att1 == null ? "" : att1.getValue()); - PrinterInfo att2 = (PrinterInfo) + PrinterInfo att2 = getSelectedPrintService().getAttribute(PrinterInfo.class); infoValue.setText(att2 == null ? "" : att2.getValue()); - PrinterIsAcceptingJobs att3 = (PrinterIsAcceptingJobs) + PrinterIsAcceptingJobs att3 = getSelectedPrintService().getAttribute(PrinterIsAcceptingJobs.class); - PrinterState att4 = (PrinterState) + PrinterState att4 = getSelectedPrintService().getAttribute(PrinterState.class); String status = att4.toString(); diff --git a/libjava/classpath/gnu/javax/security/auth/Password.java b/libjava/classpath/gnu/javax/security/auth/Password.java index 7284b7d6823..8fb07ee6b86 100644 --- a/libjava/classpath/gnu/javax/security/auth/Password.java +++ b/libjava/classpath/gnu/javax/security/auth/Password.java @@ -40,8 +40,6 @@ package gnu.javax.security.auth; import gnu.java.security.util.ExpirableObject; -import javax.security.auth.DestroyFailedException; - /** * Immutible, though destroyable, password class. * @@ -145,7 +143,7 @@ public final class Password extends ExpirableObject for(i = 0, j = offset; i < length; i++, j++) { - this.password[i] = (char) password[j]; + this.password[i] = password[j]; // XXX this should use character encodings, other than ASCII. bPassword[i] = (byte) (password[j] & 0x7F); } diff --git a/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java b/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java index cd10e510665..a6dce60b394 100644 --- a/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java +++ b/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java @@ -1,19 +1,90 @@ +/* AudioSecurityManager.java -- Manages Security requests for Sound classes. + + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + package gnu.javax.sound; import javax.sound.sampled.AudioPermission; +/** + * This class handles security requests for classes in the Sound API. + * + * A class that needs to check against a particular permission type may use this + * class to query the <code>SecurityManager</code>. + * + * For example, to check for a read permission, a class can simply pass the + * <code>Permission.READ</code> constant to + * {@link #checkPermissions(gnu.javax.sound.AudioSecurityManager.Permission))}, + * like the following code demonstrates: + * + * <pre> + * AudioSecurityManager.checkPermissions(Permission.PLAY); + * </pre> + * + * If there is need to query for all the defined permissions type, the constant + * <code>Permission.ALL</code> can be used. In alternative, the + * {@link #checkPermissions()} is presented as a shorthand. + * + * @author Mario Torre <neugens@limasoftware.net> + */ public class AudioSecurityManager { + /** + * Defines a common set of permission allowed by the specification. + */ public static enum Permission { PLAY, RECORD, ALL } + /** + * Shorthand to <code>checkPermissions(Permission.ALL)</code>. + */ public static final void checkPermissions() { checkPermissions(Permission.ALL); } + /** + * Query the <code>SecurityManager</code> agains the given + * <code>Permission</code>. + * + * @param permission + */ public static final void checkPermissions(Permission permission) { SecurityManager sm = System.getSecurityManager(); diff --git a/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java b/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java index baf61732d18..740b124eb65 100644 --- a/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java +++ b/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java @@ -44,8 +44,6 @@ import java.io.File; import java.io.FilenameFilter; import gnu.classpath.Configuration; -import gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice; - import javax.sound.midi.MidiDevice; import javax.sound.midi.MidiDevice.Info; import javax.sound.midi.spi.MidiDeviceProvider; diff --git a/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java b/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java index 71970d5ba6e..b9b6fe87a10 100644 --- a/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java +++ b/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java @@ -38,10 +38,8 @@ exception statement from your version. */ package gnu.javax.sound.midi.file; import java.io.File; -import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; import java.io.OutputStream; import javax.sound.midi.MetaMessage; diff --git a/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java b/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java index c9035df7338..ed5852e6c9a 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java +++ b/libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java @@ -47,7 +47,6 @@ import java.io.File; import java.io.IOException; import java.io.BufferedInputStream; import java.io.InputStream; -import java.io.DataInputStream; import java.io.FileInputStream; import java.net.URL; import java.nio.ByteBuffer; diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java index b32db0f353c..aa42a4c3da8 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java @@ -37,13 +37,9 @@ exception statement from your version. */ package gnu.javax.sound.sampled.gstreamer; -import java.awt.AWTPermission; - import gnu.javax.sound.sampled.gstreamer.lines.GstSourceDataLine; import javax.sound.sampled.AudioFormat; -import javax.sound.sampled.AudioPermission; -import javax.sound.sampled.AudioSystem; import javax.sound.sampled.Control; import javax.sound.sampled.DataLine; import javax.sound.sampled.Line; @@ -52,7 +48,6 @@ import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.Mixer; import javax.sound.sampled.SourceDataLine; import javax.sound.sampled.Control.Type; -import javax.sound.sampled.Line.Info; /** * @author Mario Torre <neugens@limasoftware.net> @@ -81,32 +76,15 @@ public class GStreamerMixer super(name, vendor, desc, vers); } } - + public static final String GST_BACKEND = GstInfo.name; public static final String GST_DECODER = "decoder"; - - private static AudioFormat[] BASIC_FORMATS = - { - new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - true), - - new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - AudioSystem.NOT_SPECIFIED, - false), - }; + public static final String GST_TYPE_NAME = "type"; + public static final String GST_FILE_EXTENSION = "ext"; /** Mixer Info */ private static final Mixer.Info INFO = new GStreamerMixer.GstInfo(); - + public Line getLine(Line.Info info) throws LineUnavailableException { diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java index 53b2155d8ec..b90caef24b5 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java @@ -37,13 +37,14 @@ exception statement from your version. */ package gnu.javax.sound.sampled.gstreamer.io; +import gnu.javax.sound.sampled.gstreamer.GStreamerMixer; + import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; - import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; @@ -59,21 +60,61 @@ import javax.sound.sampled.spi.AudioFileReader; */ public class GstAudioFileReader extends AudioFileReader -{ +{ @Override public AudioFileFormat getAudioFileFormat(File file) throws UnsupportedAudioFileException, IOException { - throw new UnsupportedAudioFileException("Unsupported encoding."); + StringBuffer name = new StringBuffer(file.getName()); + String _name = name.substring(name.lastIndexOf(".") + 1); + + return getAudioFileFormat( + new BufferedInputStream(new FileInputStream(file)), _name); } @Override public AudioFileFormat getAudioFileFormat(InputStream is) throws UnsupportedAudioFileException, IOException { - throw new UnsupportedAudioFileException("Unsupported encoding."); + return getAudioFileFormat(is, null); } + private AudioFileFormat getAudioFileFormat(InputStream is, String extension) + throws UnsupportedAudioFileException + { + AudioFormat format = null; + try + { + format = GstAudioFileReaderNativePeer.getAudioFormat(is); + } + catch (Exception e) + { + UnsupportedAudioFileException ex = + new UnsupportedAudioFileException("Unsupported encoding."); + + ex.initCause(ex.getCause()); + throw ex; + } + + if (format == null) + throw new UnsupportedAudioFileException("Unsupported encoding."); + + String name = format.getProperty(GStreamerMixer.GST_DECODER).toString(); + + if (extension == null) + { + extension = + format.getProperty(GStreamerMixer.GST_FILE_EXTENSION).toString(); + } + + AudioFileFormat.Type type = + new AudioFileFormat.Type(name, extension); + + // TODO: we should calculate this in some way. We don't need it, but + // application may want to use this data. + return new AudioFileFormat(type, format, AudioSystem.NOT_SPECIFIED); + } + @Override public AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException @@ -96,8 +137,11 @@ public class GstAudioFileReader } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); + UnsupportedAudioFileException ex = + new UnsupportedAudioFileException("Unsupported encoding."); + + ex.initCause(ex.getCause()); + throw ex; } // get the header size diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java index 45ae4ff8588..761720fee5d 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.javax.sound.sampled.gstreamer.io; +import gnu.classpath.Pointer; import gnu.javax.sound.sampled.gstreamer.GStreamerMixer; import java.io.BufferedInputStream; @@ -90,8 +91,11 @@ final class GstAudioFileReaderNativePeer public String isSigned = null; public String layer = null; + public String bitrate = null; + public String framed = null; + public String type = null; } @@ -108,18 +112,7 @@ final class GstAudioFileReaderNativePeer public static AudioFormat getAudioFormat(InputStream is) throws Exception { - GstHeader header = new GstHeader(); - - BufferedInputStream stream = new BufferedInputStream(is); - if(!stream.markSupported()) - throw new IOException("Stream must support marking."); - - stream.mark(0); - - if (!gstreamer_get_audio_format_stream(header, stream)) - return null; - - return getAudioFormat(header); + return getAudioFormat(is, new GstHeader()); } public static AudioFormat getAudioFormat(URL url) throws Exception @@ -127,13 +120,20 @@ final class GstAudioFileReaderNativePeer GstHeader header = new GstHeader(); header.file = url.toExternalForm(); - BufferedInputStream stream = new BufferedInputStream(url.openStream()); + return getAudioFormat(url.openStream(), header); + } + + private static AudioFormat getAudioFormat(InputStream is, GstHeader header) + throws Exception + { + BufferedInputStream stream = new BufferedInputStream(is); if(!stream.markSupported()) throw new IOException("Stream must support marking."); stream.mark(0); - if (!gstreamer_get_audio_format_stream(header, stream)) + if (!gstreamer_get_audio_format_stream(header, new GstInputStream(stream). + getNativeClass())) return null; return getAudioFormat(header); @@ -200,27 +200,31 @@ final class GstAudioFileReaderNativePeer bigEndian = true; } + String ext = null; + int frameSize = na; float frameRate = na; String lowerCase = header.name.toLowerCase(); // FIXME: frameRate = sampleRate in these cases under all the tests so far // but I'm not sure if this is always correct... - if (lowerCase.contains("law") || lowerCase.contains("au") || - lowerCase.contains("x-au")) + if (lowerCase.contains("law") || lowerCase.contains("au")) { frameSize = (sampleSizeInBits >> 3) * channels; frameRate = sampleRate; + ext = "au"; } else if (lowerCase.contains("wav")) { frameSize = ((sampleSizeInBits + 7) / 8) * channels; frameRate = sampleRate; + ext = "wav"; } else if (lowerCase.contains("iff")) { frameSize = (sampleSizeInBits * channels) / 8; frameRate = sampleRate; + ext = "aiff"; } // write all the additional properties we got to identify @@ -228,6 +232,9 @@ final class GstAudioFileReaderNativePeer Map<String, Object> properties = new HashMap<String, Object>(); properties.put(GStreamerMixer.GST_BACKEND, true); properties.put(GStreamerMixer.GST_DECODER, header.name); + properties.put(GStreamerMixer.GST_TYPE_NAME, encoding.toString()); + if (ext != null) + properties.put(GStreamerMixer.GST_FILE_EXTENSION, ext); /* now we put in some of the additional properties if we have them */ if (header.type != null) properties.put("type", header.type); @@ -251,26 +258,27 @@ final class GstAudioFileReaderNativePeer /* ***** native methods ***** */ /** - * Retrieve header information about the file being played. - * - * @param info - * @return + * Retrieve header information about the stream being played. */ native static final protected boolean gstreamer_get_audio_format_stream(GstHeader info, - BufferedInputStream istream); + Pointer pointer); /** * Retrieve header information about the file being played. - * - * @param info - * @return */ native static final protected boolean gstreamer_get_audio_format_file(GstHeader info); + /** + * Initialize the native peer and enables the object cache. + * It is meant to be used by the static initializer. + */ + native private static final void init_id_cache(); + static { System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ + init_id_cache(); } } diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java new file mode 100644 index 00000000000..0702eded7e8 --- /dev/null +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java @@ -0,0 +1,119 @@ +/* GstInputStream.java -- Trampoline class for an InputStream, mean to be used + by native code. + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package gnu.javax.sound.sampled.gstreamer.io; + +import gnu.classpath.Pointer; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Encapsulates the functionality of an InputStream Object. + * + * This class is only meant to be used by the native code, to allow reading + * of the given InputStream as part of a the GStreamer InputStream Source + * Plugin. + * + * <strong>Note:</strong> this class will be not garbage collected as the + * native code contains strong references to internal fields. + * The native layer provides a method that can be called by the C code to + * free the resources and to let the garbage collected to handle this class + * when not needed anymore. + * + * @author Mario Torre <neugens@limasoftware.net> + */ +public class GstInputStream +{ + /** The real InputStream on which to perform reading operations. */ + private InputStream istream; + + /** + * Initialized in the native code, don't change without changes + * in the native layer. + */ + private Pointer gstInputStream = null; + + public GstInputStream(InputStream istream) + { + this.istream = istream; + init_instance(); + } + + public int read(byte[] buf, int off, int len) throws IOException + { + return this.istream.read(buf, off, len); + } + + public int available() throws IOException + { + return this.istream.available(); + } + + /** + * Return a reference to the GstInputStream native class as a Pointer object. + * This method is intended as an helper accessor and the returned pointer + * needs to be casted and used in the native code only. + * + * @return Pointer to the native GstInputStream class. + */ + public Pointer getNativeClass() + { + return this.gstInputStream; + } + + /* native methods */ + + /** + * Initialize the native peer and enables the object cache. + * It is meant to be used by the class constructor. + */ + native private final void init_instance(); + + /** + * Initialize the native peer and enables the object cache. + * It is meant to be used by the static initializer. + */ + native private static final void init_id_cache(); + + static + { + System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ + init_id_cache(); + } +} diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java index 0467c955905..33be15c58b8 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java @@ -41,22 +41,13 @@ import javax.sound.sampled.AudioFormat; import javax.sound.sampled.Control; import javax.sound.sampled.DataLine; import javax.sound.sampled.LineListener; -import javax.sound.sampled.LineUnavailableException; import javax.sound.sampled.Control.Type; public abstract class GstDataLine implements DataLine { - public static enum State - { - PLAY, PAUSE, STOP - } - public static final int DEFAULT_BUFFER_SIZE = 1024; - /** Represents the playing state of this Line. */ - protected State state = State.STOP; - /** Represents if this Line is opened or not. */ protected Boolean open = false; @@ -90,12 +81,7 @@ public abstract class GstDataLine // TODO Auto-generated method stub return 0; } - - public boolean isRunning() - { - return (state == State.PLAY || state == State.PAUSE); - } - + public void addLineListener(LineListener listener) { // TODO Auto-generated method stub @@ -131,15 +117,35 @@ public abstract class GstDataLine return false; } - public void open() throws LineUnavailableException + public void removeLineListener(LineListener listener) { // TODO Auto-generated method stub } - public void removeLineListener(LineListener listener) + /* protected methods for subclasses */ + + /** + * @param open the open to set + */ + protected void setOpen(Boolean open) { - // TODO Auto-generated method stub + this.open = open; + } + + /** + * @param bufferSize the bufferSize to set + */ + protected void setBufferSize(int bufferSize) + { + this.bufferSize = bufferSize; + } + /** + * @param format the format to set + */ + protected void setFormat(AudioFormat format) + { + this.format = format; } } diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java index 2b41a118672..84007ac97e7 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java @@ -37,12 +37,41 @@ exception statement from your version. */ package gnu.javax.sound.sampled.gstreamer.lines; +import gnu.classpath.Pointer; + +import javax.sound.sampled.LineUnavailableException; + public class GstNativeDataLine -{ +{ + public static final GstPipeline createSourcePipeline(int bufferSize) + throws LineUnavailableException + { + GstPipeline pipeline = new GstPipeline(bufferSize); + + pipeline.createForWrite(); + + if (!setup_sink_pipeline(pipeline.getNativeClass())) + throw new LineUnavailableException("Line unavailable"); + + return pipeline; + } + /* native methods */ + /** + * Initialize the native peer and enables the object cache. + * It is meant to be used by the static initializer. + */ + native static final private void init_id_cache(); + + /** + * Setup a new GStreamer Pipeline + */ + native static final private boolean setup_sink_pipeline(Pointer pipeline); + static { System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ + init_id_cache(); } } diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java index d1460e5090f..f561f71c2fa 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java @@ -34,24 +34,382 @@ or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ + package gnu.javax.sound.sampled.gstreamer.lines; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.prefs.Preferences; + +import javax.sound.sampled.LineUnavailableException; + import gnu.classpath.Pointer; /** + * This class represent a GStreamer pipeline and is resposible to handle the + * flow of data to and from the GStreamer native backend. * * @author Mario Torre <neugens@limasoftware.net> */ public class GstPipeline { + /* + * Implementation note: + * This class is at first a bit confusing as it serves as a gateway + * to a real filesystem named pipe. + * The pipelines is shared by the gstreamer backend and by the java code. + * If the operation we are performing is to play a given stream of bytes, + * we need to open the java side of the pipeline for writing, which is done + * in the prepareWrite method. At the same time, the native side of the code + * need to open the pipeline in read mode, to get access to the data, + * and hence, act as a source element. This is why you will see terms + * like "read" or "source" in methods that are used to write in the pipeline, + * in other words, each the native operation is the opposite of the java + * side operation. + * Opening the pipe to record audio data from the sound card works the same + * except that all the operation are inverted. + */ + + // These enums are used in the native code also, changes here must reflect + // changes in the native code. + public static enum State + { + PLAY, PAUSE, STOP, CLOSE + } + + private static final int READ = 0; + private static final int WRITE = 1; + private static final int QUEUED = 1; + + private static final String CAPACITY_KEY = "Capacity"; + + private static final Object [] lock = new Object[0]; + + /* + * Preference subsystem. We use this to store some system specific settings. + */ + protected Preferences prefs = + Preferences.userNodeForPackage(GstPipeline.class).node("GStreamer"); + + // used by the native code, stores the size of the named pipeline + // created by the operating system. + private long capacity = -1; + + /** Represents the playing state of this Line. */ + private State state = State.STOP; + + /** The name of the named pipe. */ + // Will be setup and filled in the native code. See the native library + // for details. + private String name = null; + + /** This is the named pipe that will be read by the gstreamer backend. */ + private FileOutputStream output = null; + + /** + * Defines if we are getting data from a sink pipe + * or writing to a source pipe. + */ + private boolean source = true; + + /** Indicate that we are ready to process audio data to/from the pipe. */ + private boolean ready = false; + /** * This is the native GStreamer Pipeline. + */ + // This field is used by the native code, so any change to it must be + // followed by similar changes in the native peer. + private Pointer pipeline = null; + + /** + * Creates a new GstPipeline with a capacity of + * {@link GstDataLine#DEFAULT_BUFFER_SIZE}. * - * This field is used by the native code, so any change to it must be - * followed by similar changes in the native peer. + * @see GstDataLine#DEFAULT_BUFFER_SIZE + */ + public GstPipeline() + { + this(GstDataLine.DEFAULT_BUFFER_SIZE); + } + + /** + * Creates a new GstPipeline with a capacity of bufferSize. + * @see GstDataLine#DEFAULT_BUFFER_SIZE + */ + public GstPipeline(int bufferSize) + { + // see if we need to detect the size of the named pipe or we can use + // an already computet default for this system. + // Note that this is very different from the bufferSize parameter, + // see below. + capacity = prefs.getLong(CAPACITY_KEY, -1); + if (capacity == -1) + { + synchronized (lock) + { + capacity = detect_pipe_size(); + } + + prefs.putLong(CAPACITY_KEY, capacity); + } + + // FIXME: bufferSize actually not used nor needed by the backend. + // Applications that expects a buffer of different size will be a + // bit disappointed by that.. + init_instance(); + + // need to remove the named pipe in case of abnormal termination + Runtime.getRuntime().addShutdownHook(new CleanPipeline()); + } + + /** + * Creates a source pipeline. A source pipeline is a pipe you send data for + * processing using the write method. + */ + public void createForWrite() throws LineUnavailableException + { + // create the named pipe + if (!create_named_pipe(this.pipeline)) + throw new LineUnavailableException("Unable to create filesystem pipe"); + + open_native_pipe(this.pipeline, READ); + prepareWrite(); + + this.source = true; + } + + /** + * @return the state + */ + public State getState() + { + return this.state; + } + + /** + * Closes this pipeline. + * Short hand for #setState(State.STOP). + */ + public void close() + { + setState(State.STOP); + } + + /** + * @param state the state to set */ - private Pointer pipeline; + public void setState(final State state) + { + int _state = -1; + switch (state) + { + case PLAY: + _state = 0; + break; + + case PAUSE: + _state = 1; + break; + + case STOP: case CLOSE: + _state = 2; + closePipe(); + break; + } - native private void setState(); + if (set_state(pipeline, _state)) + GstPipeline.this.state = state; + } + + /** + * Return a reference to the GstPipeline native class as a Pointer object. + * This method is intended as an helper accessor and the returned pointer + * needs to be casted and used in the native code only. + * + * @return Pointer to the native GstPipeline class. + */ + public Pointer getNativeClass() + { + return this.pipeline; + } + + /** + * Write length bytes from the given buffer into this pipeline, + * starting at offset. + * This method block if the pipeline can't accept more data. + * + * @param buffer + * @param offset + * @param length + * @return + */ + public int write(byte[] buffer, int offset, int length) + { + if (this.state == State.STOP) + return -1; + else if (this.state == State.PAUSE) + return 0; + else if (!ready) + return -1; + + try + { + if (output != null) + { + output.write(buffer, offset, length); + return length; + } + return 0; + } + catch (Exception e) + { + /* nothing to do */ + } + + return -1; + } + + public int read(byte[] buffer, int offset, int length) + { + return 0; + } + + public int available() + { + if (this.source) + return available(this.pipeline, READ); + else + return available(this.pipeline, WRITE); + } + + /** + * Wait for remaining data to be enqueued in the pipeline. + */ + public void drain() + { + if (this.state == State.STOP) + return; + + try + { + // wait untill there is anymore data in the pipe + while (available(this.pipeline, QUEUED) > 0) + Thread.sleep(3000); + + // plus a bit to allow data to be processed + Thread.sleep(1000); + } + catch (InterruptedException e) + { + /* nothing to do*/ + } + } + + /** + * Flush all the data currently waiting to be processed. + */ + public void flush() + { + try + { + if (source) + this.output.flush(); + } + catch (IOException e) + { + /* nothing */ + } + } + + private void closePipe() + { + try + { + GstPipeline.this.flush(); + if (source) + GstPipeline.this.output.close(); + } + catch (IOException e) + { + /* nothing to do */ + } + } + + private void prepareWrite() + { + try + { + // if this is not completed for some reason, we will catch + // in the write method. As this call can block, we assume we will + // succeed and that the dataline can get data. + GstPipeline.this.ready = true; + GstPipeline.this.output = new FileOutputStream(name); + } + catch (Exception e) + { + GstPipeline.this.ready = false; + } + } + + /* ***** native ***** */ + + /** + * Initialize the native peer and enables the object cache. + * It is meant to be used by the static initializer. + */ + native private static final void init_id_cache(); + + /** + * Set the playing state of this pipeline. + */ + native private static final boolean set_state(Pointer pipeline, int state); + + /** + * Get the number of bytes currently available for reading or writing + * from the pipeline. + */ + native private static final int available(Pointer pipeline, int mode); + + /** + * Open the native pipeline with the given mode. + */ + native private static final void open_native_pipe(Pointer jpipeline, + int mode); + + /** + * Close the native pipeline. + */ + native private static final void close_native_pipe(Pointer jpipeline); + + /** + * Initialize the native peer and enables the object cache. + * It is meant to be used by the class constructor. + */ + native private final void init_instance(); + + /** + * Crates the named pipe used to pass data between the application code + * and gstreamer. + */ + native private final boolean create_named_pipe(Pointer jpipeline); + + /** + * Detect and return the size of the filesystem named pipe. + */ + native private final long detect_pipe_size(); + + private class CleanPipeline extends Thread + { + public void run() + { + GstPipeline.close_native_pipe(GstPipeline.this.pipeline); + } + } + static + { + System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$ + init_id_cache(); + } } diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java index d1a0262e5b5..f149ab39df2 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java @@ -38,6 +38,7 @@ exception statement from your version. */ package gnu.javax.sound.sampled.gstreamer.lines; import gnu.javax.sound.AudioSecurityManager; +import gnu.javax.sound.sampled.gstreamer.lines.GstPipeline.State; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.LineUnavailableException; @@ -48,87 +49,105 @@ import static gnu.javax.sound.AudioSecurityManager.Permission; public class GstSourceDataLine extends GstDataLine implements SourceDataLine { + private GstPipeline pipeline = null; + private boolean open = false; + public GstSourceDataLine(AudioFormat format) { super(format); } + public void open() throws LineUnavailableException + { + AudioSecurityManager.checkPermissions(Permission.PLAY); + + if (open) + throw new IllegalStateException("Line already opened"); + + // create the pipeline + pipeline = GstNativeDataLine.createSourcePipeline(getBufferSize()); + + this.open = true; + } + public void open(AudioFormat fmt) throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); - throw new LineUnavailableException("Line unavailable"); + + setFormat(fmt); + this.open(); } public void open(AudioFormat fmt, int size) throws LineUnavailableException { AudioSecurityManager.checkPermissions(Permission.PLAY); - throw new LineUnavailableException("Line unavailable"); + + setBufferSize(size); + this.open(fmt); } public int write(byte[] buf, int offset, int length) - { - // TODO Auto-generated method stub - return 0; + { + return this.pipeline.write(buf, offset, length); } public int available() { - // TODO Auto-generated method stub - return 0; + return this.pipeline.available(); } public void drain() { - // TODO Auto-generated method stub - + this.pipeline.drain(); } public void flush() { - // TODO Auto-generated method stub - + this.pipeline.flush(); } public int getFramePosition() { - // TODO Auto-generated method stub + System.out.println("getFramePosition -: IMPLEMENT ME!!"); return 0; } public long getLongFramePosition() { - // TODO Auto-generated method stub + System.out.println("getLongFramePosition -: IMPLEMENT ME!!"); return 0; } public long getMicrosecondPosition() { - // TODO Auto-generated method stub + System.out.println("getMicrosecondPosition -: IMPLEMENT ME!!"); return 0; } public boolean isActive() { - // TODO Auto-generated method stub - return false; + State state = pipeline.getState(); + return (state == State.PLAY || state == State.PAUSE); } public void start() { - // TODO Auto-generated method stub - + pipeline.setState(State.PLAY); } public void stop() { - // TODO Auto-generated method stub - + pipeline.setState(State.PAUSE); } public void close() { - // TODO Auto-generated method stub - + pipeline.close(); + this.open = false; + } + + public boolean isRunning() + { + return (pipeline.getState() == State.PLAY); } - } diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java b/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java index 2795b678401..203eadc4073 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java +++ b/libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java @@ -143,7 +143,7 @@ public class FontSize { int end = value.indexOf("pt"); String number = value.substring(0, end); - int intVal = Integer.parseInt(number); + int intVal = (int) Double.parseDouble(number); return intVal; } @@ -160,7 +160,7 @@ public class FontSize String number = value.substring(0, end); try { - int intVal = Integer.parseInt(number); + int intVal = (int) Double.parseDouble(number); return intVal; } catch (NumberFormatException ex) @@ -177,7 +177,7 @@ public class FontSize String number = value.substring(0, end); try { - int intVal = Integer.parseInt(number); + int intVal = (int) Double.parseDouble(number); return intVal * par / 100; } catch (NumberFormatException ex) diff --git a/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java b/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java index 210df3a7b65..6e182a53623 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java +++ b/libjava/classpath/gnu/javax/swing/text/html/css/Selector.java @@ -93,8 +93,6 @@ public class Selector * instance, the html tag). * * @param tags - * @param classes - * @param ids * * @return <code>true</code> when this selector matches the element path, * <code>false</code> otherwise diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java b/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java index c615ddff350..54469b34995 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java @@ -177,7 +177,7 @@ public class node /** * Do the match operation with the given token. This sets various * flags. - * @param token The token to match. + * @param a_token The token to match. * @return true if the the token matches node, false if it does not match * or if the node is closed. */ diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java index c0d1e636e92..e99be3238e9 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java @@ -216,7 +216,7 @@ public class Parser * The tag validator closes all unclosed elements that are required * to have the end (closing) tag. * - * @param element The tag being fictionally (forcibly) closed. + * @param tElement The tag being fictionally (forcibly) closed. */ protected void handleSupposedEndTag(Element tElement) { @@ -234,7 +234,7 @@ public class Parser * assigned to the empty one, the previous value is * restored before return. * - * @param element The tag being fictionally (forcibly) closed. + * @param tElement The tag being fictionally (forcibly) closed. */ protected void handleSupposedStartTag(Element tElement) { @@ -523,8 +523,7 @@ public class Parser restOfTag(false, name, start); buffer.setLength(0); - - script: + while (!SCRIPT_CLOSE.matches(this)) { append(getNextToken()); @@ -606,8 +605,7 @@ public class Parser restOfTag(false, name, start); buffer.setLength(0); - - style: + while (!STYLE_CLOSE.matches(this)) { append(getNextToken()); @@ -742,7 +740,7 @@ public class Parser * Handle the tag with no content, like <br>. The method is * called for the elements that, in accordance with the current DTD, * has an empty content. - * @param The tag being handled. + * @param tag The tag being handled. * @throws javax.swing.text.ChangedCharSetException */ protected void handleEmptyTag(TagElement tag) @@ -754,7 +752,7 @@ public class Parser * The method is called when the HTML closing tag ((like </table>) * is found or if the parser concludes that the one should be present * in the current position. - * @param The tag + * @param tag The tag */ protected void handleEndTag(TagElement tag) { @@ -769,7 +767,7 @@ public class Parser * The method is called when the HTML opening tag ((like <table>) * is found or if the parser concludes that the one should be present * in the current position. - * @param The tag + * @param tag The tag */ protected void handleStartTag(TagElement tag) { @@ -798,7 +796,7 @@ public class Parser * both title starting and closing tags are already behind. * The passed argument contains the concatenation of all * title text sections. - * @param The title text. + * @param title The title text. */ protected void handleTitle(char[] title) { @@ -868,7 +866,7 @@ public class Parser { Object value = HTML.NULL_ATTRIBUTE_VALUE; - Element e = (Element) dtd.elementHash.get(element.toLowerCase()); + Element e = dtd.elementHash.get(element.toLowerCase()); if (e != null) { AttributeList attr = e.getAttribute(attribute); @@ -1146,7 +1144,7 @@ public class Parser * is found or if the parser concludes that the one should be present * in the current position. The method is called immediately before * calling the handleStartTag. - * @param The tag + * @param tag The tag */ protected void startTag(TagElement tag) throws ChangedCharSetException @@ -1182,7 +1180,7 @@ public class Parser * A hooks for operations, preceeding call to handleEmptyTag(). * Handle the tag with no content, like <br>. As no any * nested tags are expected, the tag validator is not involved. - * @param The tag being handled. + * @param tag The tag being handled. */ private void _handleEmptyTag(TagElement tag) { @@ -1208,7 +1206,7 @@ public class Parser * A hooks for operations, preceeding call to handleEndTag(). * The method is called when the HTML closing tag * is found. Calls handleTitle after closing the 'title' tag. - * @param The tag + * @param tag The tag */ private void _handleEndTag(TagElement tag) { @@ -1254,7 +1252,7 @@ public class Parser * The method is called when the HTML opening tag ((like <table>) * is found. * Package-private to avoid an accessor method. - * @param The tag + * @param tag The tag */ void _handleStartTag(TagElement tag) { @@ -1328,7 +1326,7 @@ public class Parser private TagElement makeTagElement(String name, boolean isSupposed) { - Element e = (Element) dtd.elementHash.get(name.toLowerCase()); + Element e = dtd.elementHash.get(name.toLowerCase()); if (e == null) { error("Unknown tag <" + name + ">"); diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java index 0ffc6c8b754..80bb333a528 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java @@ -240,15 +240,14 @@ public class ReaderTokenizer /** * Read the given number of the tokens. Add the needed number of EOF * tokens if there are no more data in the stream. - * @param amount The number of additional tokens to read. + * @param numberOfTokens The number of additional tokens to read. */ void read(int numberOfTokens) throws IOException { if (numberOfTokens <= 0) return; - - reading: + for (int i = 0; i < numberOfTokens; i++) readToken(); } diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java index 654acbbb58c..43c07572a14 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java @@ -80,7 +80,7 @@ public class parameterDefaulter if (atts == null) { htmlAttributeSet set = new htmlAttributeSet(); - Element e = (Element) dtd.elementHash.get(element.toLowerCase()); + Element e = dtd.elementHash.get(element.toLowerCase()); if (e != null) { diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java index 6fd79e2589e..0cb6d7a59f3 100644 --- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java +++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java @@ -109,7 +109,7 @@ public class textPreProcessor * \r or \r\n mutate into \n. Tabs are * preserved. * The content of the passed buffer is destroyed. - * @param text + * @param a_text * @return */ public char[] preprocessPreformatted(StringBuffer a_text) diff --git a/libjava/classpath/gnu/xml/aelfred2/XmlParser.java b/libjava/classpath/gnu/xml/aelfred2/XmlParser.java index 37466ca1c05..c0fd8027c21 100644 --- a/libjava/classpath/gnu/xml/aelfred2/XmlParser.java +++ b/libjava/classpath/gnu/xml/aelfred2/XmlParser.java @@ -542,7 +542,7 @@ final class XmlParser private void error(String message, char textFound, String textExpected) throws SAXException { - error(message, new Character(textFound).toString(), textExpected); + error(message, Character.toString(textFound), textExpected); } /** @@ -2281,7 +2281,7 @@ loop2: { // too big for surrogate error("character reference " + value + " is too large for UTF-16", - new Integer(value).toString(), null); + Integer.toString(value), null); } } @@ -2375,7 +2375,7 @@ loop2: { // too big for surrogate error("character reference " + value + " is too large for UTF-16", - new Integer(value).toString(), null); + Integer.toString(value), null); } if (doFlush) { @@ -3095,7 +3095,6 @@ loop: nameBufferPos = 0; // Read the first character. -loop: while (true) { c = readCh(); @@ -3295,7 +3294,7 @@ loop: catch (EOFException e) { error("end of input while looking for delimiter (started on line " - + startLine + ')', null, new Character(delim).toString()); + + startLine + ')', null, Character.toString(delim)); } inLiteral = false; expandPE = saved; @@ -3599,7 +3598,7 @@ loop: if (c != delim) { - error("required character", c, new Character(delim).toString()); + error("required character", c, Character.toString(delim)); } } @@ -4299,7 +4298,7 @@ loop: } else { - pushString(null, new Character(c).toString()); + pushString(null, Character.toString(c)); } } diff --git a/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java b/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java index 5aff5f8c1a9..3bca44c0992 100644 --- a/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java +++ b/libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java @@ -37,7 +37,6 @@ exception statement from your version. */ package gnu.xml.dom.html2; -import org.w3c.dom.Node; import org.w3c.dom.html2.HTMLButtonElement; import org.w3c.dom.html2.HTMLFormElement; diff --git a/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java b/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java index 577337a3c3a..c63620087e3 100644 --- a/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java +++ b/libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.xml.dom.html2; import gnu.xml.dom.DomDOMException; -import gnu.xml.dom.DomElement; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedList; diff --git a/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java b/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java index 2d329fd4cdb..c6d8c4c5ca6 100644 --- a/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java +++ b/libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.xml.dom.html2; -import gnu.javax.swing.text.html.parser.support.Parser; - import java.io.IOException; import java.io.Reader; diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java index b384e4ac87b..d0e1a4f20de 100644 --- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java +++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java @@ -101,7 +101,7 @@ implements XPathResult case STRING_TYPE: return getStringValue (); case NUMBER_TYPE: - return new Double (getNumberValue ()).toString (); + return Double.toString (getNumberValue ()); case BOOLEAN_TYPE: return Boolean.valueOf (getBooleanValue ()).toString (); case UNORDERED_NODE_SNAPSHOT_TYPE: diff --git a/libjava/classpath/gnu/xml/pipeline/DomConsumer.java b/libjava/classpath/gnu/xml/pipeline/DomConsumer.java index da527b96587..53f7f24a29f 100644 --- a/libjava/classpath/gnu/xml/pipeline/DomConsumer.java +++ b/libjava/classpath/gnu/xml/pipeline/DomConsumer.java @@ -743,7 +743,7 @@ public class DomConsumer implements EventConsumer // ELSE ... search up the tree we've been building for (Node n = top; n != null && n.getNodeType () != Node.DOCUMENT_NODE; - n = (Node) n.getParentNode ()) { + n = n.getParentNode ()) { if (n.getNodeType () == Node.ENTITY_REFERENCE_NODE) continue; Element e = (Element) n; diff --git a/libjava/classpath/gnu/xml/pipeline/EventFilter.java b/libjava/classpath/gnu/xml/pipeline/EventFilter.java index a14fb340f12..af2113f97ce 100644 --- a/libjava/classpath/gnu/xml/pipeline/EventFilter.java +++ b/libjava/classpath/gnu/xml/pipeline/EventFilter.java @@ -187,14 +187,14 @@ public class EventFilter Method m = null; try { - m = Thread.class.getMethod("getContextClassLoader", null); + m = Thread.class.getMethod("getContextClassLoader"); } catch (NoSuchMethodException e) { // Assume that we are running JDK 1.1, use the current ClassLoader return EventFilter.class.getClassLoader(); } try { - return (ClassLoader) m.invoke(Thread.currentThread(), null); + return (ClassLoader) m.invoke(Thread.currentThread()); } catch (IllegalAccessException e) { // assert(false) throw new UnknownError(e.getMessage()); diff --git a/libjava/classpath/gnu/xml/stream/AttributeImpl.java b/libjava/classpath/gnu/xml/stream/AttributeImpl.java index 501575e56d8..f74aebd3526 100644 --- a/libjava/classpath/gnu/xml/stream/AttributeImpl.java +++ b/libjava/classpath/gnu/xml/stream/AttributeImpl.java @@ -56,11 +56,11 @@ public class AttributeImpl protected final QName name; protected final String value; - protected final QName type; + protected final String type; protected final boolean specified; protected AttributeImpl(Location location, - QName name, String value, QName type, + QName name, String value, String type, boolean specified) { super(location); @@ -85,7 +85,7 @@ public class AttributeImpl return value; } - public QName getDTDType() + public String getDTDType() { return type; } diff --git a/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java b/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java index 7a5e2049e10..0e3ed9630ad 100644 --- a/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java +++ b/libjava/classpath/gnu/xml/stream/EndDocumentImpl.java @@ -37,7 +37,6 @@ exception statement from your version. */ package gnu.xml.stream; -import java.io.IOException; import java.io.Writer; import javax.xml.stream.Location; import javax.xml.stream.XMLStreamException; diff --git a/libjava/classpath/gnu/xml/stream/SAXParser.java b/libjava/classpath/gnu/xml/stream/SAXParser.java index af4a6af4217..ab1f86e49ed 100644 --- a/libjava/classpath/gnu/xml/stream/SAXParser.java +++ b/libjava/classpath/gnu/xml/stream/SAXParser.java @@ -66,7 +66,6 @@ import org.xml.sax.SAXParseException; import org.xml.sax.XMLReader; import org.xml.sax.ext.Attributes2; import org.xml.sax.ext.DeclHandler; -import org.xml.sax.ext.EntityResolver2; import org.xml.sax.ext.LexicalHandler; import org.xml.sax.ext.Locator2; @@ -234,7 +233,7 @@ public class SAXParser return baseAware ? Boolean.TRUE : Boolean.FALSE; if ((GNU_PROPERTIES + "document-xml-encoding").equals(name)) return xmlEncoding; - throw new SAXNotSupportedException(name); + throw new SAXNotRecognizedException(name); } public boolean isXIncludeAware() diff --git a/libjava/classpath/gnu/xml/stream/XIncludeFilter.java b/libjava/classpath/gnu/xml/stream/XIncludeFilter.java index 86961faea91..d5c4af12c5e 100644 --- a/libjava/classpath/gnu/xml/stream/XIncludeFilter.java +++ b/libjava/classpath/gnu/xml/stream/XIncludeFilter.java @@ -51,7 +51,6 @@ import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; @@ -500,7 +499,7 @@ class XIncludeFilter return event; case XPathResult.NUMBER_TYPE: double nval = result.getNumberValue(); - String ntext = new Double(nval).toString(); + String ntext = Double.toString(nval); buf = ntext.toCharArray(); len = buf.length; result = null; diff --git a/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java b/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java index 666bffabe23..fb1e4c28c58 100644 --- a/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java +++ b/libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java @@ -165,7 +165,7 @@ public class XMLEventAllocatorImpl attributes.add(new AttributeImpl(location, reader.getAttributeName(i), reader.getAttributeValue(i), - QName.valueOf(reader.getAttributeType(i)), + reader.getAttributeType(i), reader.isAttributeSpecified(i))); return new StartElementImpl(location, reader.getName(), diff --git a/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java b/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java index e1d7d6ab82f..f694753c4b4 100644 --- a/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java +++ b/libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java @@ -79,20 +79,20 @@ public class XMLEventFactoryImpl { return new AttributeImpl(location, new QName(namespaceURI, localName, prefix), - value, QName.valueOf("CDATA"), true); + value, "CDATA", true); } public Attribute createAttribute(String localName, String value) { return new AttributeImpl(location, new QName(localName), - value, QName.valueOf("CDATA"), true); + value, "CDATA", true); } public Attribute createAttribute(QName name, String value) { return new AttributeImpl(location, name, value, - QName.valueOf("CDATA"), true); + "CDATA", true); } public Namespace createNamespace(String namespaceURI) diff --git a/libjava/classpath/gnu/xml/stream/XMLEventImpl.java b/libjava/classpath/gnu/xml/stream/XMLEventImpl.java index 9f57d89d828..de2fccb7a1e 100644 --- a/libjava/classpath/gnu/xml/stream/XMLEventImpl.java +++ b/libjava/classpath/gnu/xml/stream/XMLEventImpl.java @@ -40,7 +40,6 @@ package gnu.xml.stream; import java.io.Writer; import javax.xml.namespace.QName; import javax.xml.stream.Location; -import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; import javax.xml.stream.events.Characters; import javax.xml.stream.events.EndElement; diff --git a/libjava/classpath/gnu/xml/stream/XMLParser.java b/libjava/classpath/gnu/xml/stream/XMLParser.java index c1eee946e69..049575ac707 100644 --- a/libjava/classpath/gnu/xml/stream/XMLParser.java +++ b/libjava/classpath/gnu/xml/stream/XMLParser.java @@ -178,11 +178,6 @@ public class XMLParser private int event; /** - * Whether we are looking ahead. Used by hasNext. - */ - private boolean lookahead; - - /** * The element name stack. The first element in this stack will be the * root element. */ @@ -1013,24 +1008,12 @@ public class XMLParser public boolean hasNext() throws XMLStreamException { - if (event == XMLStreamConstants.END_DOCUMENT) - return false; - if (!lookahead) - { - next(); - lookahead = true; - } - return event != -1; + return (event != XMLStreamConstants.END_DOCUMENT && event != -1); } public int next() throws XMLStreamException { - if (lookahead) - { - lookahead = false; - return event; - } if (event == XMLStreamConstants.END_ELEMENT) { // Pop namespace context diff --git a/libjava/classpath/gnu/xml/transform/StreamSerializer.java b/libjava/classpath/gnu/xml/transform/StreamSerializer.java index 26bdda8b325..35323e7353d 100644 --- a/libjava/classpath/gnu/xml/transform/StreamSerializer.java +++ b/libjava/classpath/gnu/xml/transform/StreamSerializer.java @@ -40,7 +40,6 @@ package gnu.xml.transform; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; diff --git a/libjava/classpath/gnu/xml/transform/Stylesheet.java b/libjava/classpath/gnu/xml/transform/Stylesheet.java index 73b22969114..41562c3c60a 100644 --- a/libjava/classpath/gnu/xml/transform/Stylesheet.java +++ b/libjava/classpath/gnu/xml/transform/Stylesheet.java @@ -51,7 +51,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; -import java.util.TreeSet; import javax.xml.XMLConstants; import javax.xml.namespace.NamespaceContext; import javax.xml.namespace.QName; diff --git a/libjava/classpath/gnu/xml/util/Resolver.java b/libjava/classpath/gnu/xml/util/Resolver.java index e84b5ade106..02c4693ae2f 100644 --- a/libjava/classpath/gnu/xml/util/Resolver.java +++ b/libjava/classpath/gnu/xml/util/Resolver.java @@ -170,7 +170,7 @@ public class Resolver implements EntityResolver, Cloneable * Constructs a resolver which understands how to map PUBLIC identifiers * to other URIs, typically for local copies of standard DTD components. * - * @param dictionary maps PUBLIC identifiers to URIs. This is not + * @param dict maps PUBLIC identifiers to URIs. This is not * copied; subsequent modifications will be reported through the * resolution operations. */ diff --git a/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java b/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java index 5a72a280d7b..2fc4c33b91e 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java @@ -37,8 +37,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; -import java.util.Collections; -import java.util.Set; import javax.xml.XMLConstants; import javax.xml.namespace.QName; import org.relaxng.datatype.DatatypeException; diff --git a/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java b/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java index 5a2d9ecfa2d..25e488a05fd 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/BooleanType.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; import java.util.Arrays; -import java.util.Collections; import java.util.Set; import java.util.TreeSet; import javax.xml.XMLConstants; diff --git a/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java b/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java index 08fe3304c5f..b895c44b213 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/DecimalType.java @@ -38,8 +38,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; import java.math.BigDecimal; -import java.util.Collections; -import java.util.Set; import javax.xml.XMLConstants; import javax.xml.namespace.QName; import org.relaxng.datatype.DatatypeException; diff --git a/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java b/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java index e25d060fa5f..5d2d8662d56 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/DoubleType.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; import java.util.Arrays; -import java.util.Collections; import java.util.Set; import java.util.TreeSet; import javax.xml.XMLConstants; diff --git a/libjava/classpath/gnu/xml/validation/datatype/FloatType.java b/libjava/classpath/gnu/xml/validation/datatype/FloatType.java index a81a56c1a68..372e38871ae 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/FloatType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/FloatType.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; import java.util.Arrays; -import java.util.Collections; import java.util.Set; import java.util.TreeSet; import javax.xml.XMLConstants; diff --git a/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java b/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java index 686e09d9801..8a92b15f634 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java @@ -37,8 +37,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; -import java.util.Collections; -import java.util.Set; import javax.xml.XMLConstants; import javax.xml.namespace.QName; import org.relaxng.datatype.DatatypeException; diff --git a/libjava/classpath/gnu/xml/validation/datatype/NotationType.java b/libjava/classpath/gnu/xml/validation/datatype/NotationType.java index 59c7f25e538..e9d7c9fda20 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/NotationType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/NotationType.java @@ -37,8 +37,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; -import java.util.Collections; -import java.util.Set; import javax.xml.XMLConstants; import javax.xml.namespace.QName; import org.relaxng.datatype.DatatypeException; diff --git a/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java b/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java index 6554f2fe066..1b8479922b8 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/SimpleType.java @@ -40,7 +40,6 @@ package gnu.xml.validation.datatype; import java.util.Iterator; import java.util.Set; import java.util.regex.Matcher; -import javax.xml.XMLConstants; import javax.xml.namespace.QName; import org.relaxng.datatype.Datatype; import org.relaxng.datatype.DatatypeException; diff --git a/libjava/classpath/gnu/xml/validation/datatype/StringType.java b/libjava/classpath/gnu/xml/validation/datatype/StringType.java index a2235f2df66..593c265dc59 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/StringType.java +++ b/libjava/classpath/gnu/xml/validation/datatype/StringType.java @@ -37,12 +37,8 @@ exception statement from your version. */ package gnu.xml.validation.datatype; -import java.util.Collections; -import java.util.Set; import javax.xml.XMLConstants; import javax.xml.namespace.QName; -import org.relaxng.datatype.DatatypeException; -import org.relaxng.datatype.ValidationContext; /** * The XML Schema string type. diff --git a/libjava/classpath/gnu/xml/validation/datatype/Type.java b/libjava/classpath/gnu/xml/validation/datatype/Type.java index e0662761f37..be6f0a0b447 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/Type.java +++ b/libjava/classpath/gnu/xml/validation/datatype/Type.java @@ -37,8 +37,6 @@ exception statement from your version. */ package gnu.xml.validation.datatype; -import java.util.HashMap; -import java.util.Map; import javax.xml.namespace.QName; /** * Abstract base class for XML Schema datatypes. diff --git a/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java b/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java index 606fd0e62fb..054eb8a55de 100644 --- a/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java +++ b/libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java @@ -39,7 +39,6 @@ package gnu.xml.validation.datatype; import java.util.LinkedHashSet; import java.util.regex.Pattern; -import javax.xml.namespace.QName; import org.relaxng.datatype.Datatype; import org.relaxng.datatype.DatatypeBuilder; import org.relaxng.datatype.DatatypeException; diff --git a/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java b/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java index 2a6833737bb..78e9f853327 100644 --- a/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java +++ b/libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java @@ -51,7 +51,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import javax.xml.XMLConstants; -import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; diff --git a/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java b/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java index 758bc94cd95..45064075a96 100644 --- a/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java +++ b/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java @@ -37,7 +37,6 @@ exception statement from your version. */ package gnu.xml.validation.xmlschema; -import org.w3c.dom.TypeInfo; import gnu.xml.validation.datatype.SimpleType; /** diff --git a/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java b/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java index ddf91409d2b..ecf3ad3b89f 100644 --- a/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java +++ b/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java @@ -38,7 +38,6 @@ exception statement from your version. */ package gnu.xml.validation.xmlschema; import java.util.LinkedHashSet; -import java.util.List; import java.util.Set; import java.util.StringTokenizer; import javax.xml.XMLConstants; @@ -49,11 +48,8 @@ import org.relaxng.datatype.helpers.DatatypeLibraryLoader; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import gnu.xml.validation.datatype.Annotation; -import gnu.xml.validation.datatype.AtomicSimpleType; -import gnu.xml.validation.datatype.ListSimpleType; import gnu.xml.validation.datatype.SimpleType; import gnu.xml.validation.datatype.Type; -import gnu.xml.validation.datatype.UnionSimpleType; /** * Parses an XML Schema DOM tree, constructing a compiled internal diff --git a/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java b/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java index 98a5fb75983..a65133c20e4 100644 --- a/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java +++ b/libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java @@ -37,7 +37,6 @@ exception statement from your version. */ package gnu.xml.validation.xmlschema; -import org.w3c.dom.TypeInfo; import gnu.xml.validation.datatype.SimpleType; import gnu.xml.validation.datatype.Type; diff --git a/libjava/classpath/gnu/xml/xpath/XPathParser.java b/libjava/classpath/gnu/xml/xpath/XPathParser.java index 03066fbfc36..9b7540a4a40 100644 --- a/libjava/classpath/gnu/xml/xpath/XPathParser.java +++ b/libjava/classpath/gnu/xml/xpath/XPathParser.java @@ -44,7 +44,6 @@ package gnu.xml.xpath; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Map; import javax.xml.namespace.NamespaceContext; import javax.xml.namespace.QName; import javax.xml.xpath.XPathFunctionResolver; diff --git a/libjava/classpath/include/Makefile.am b/libjava/classpath/include/Makefile.am index 8f53940490a..4920ca08c48 100644 --- a/libjava/classpath/include/Makefile.am +++ b/libjava/classpath/include/Makefile.am @@ -1,123 +1,130 @@ ## GCJ LOCAL: headers are installed specially. ##include_HEADERS = jni.h jni_md.h jawt.h jawt_md.h +if CREATE_JNI_HEADERS +DISTCLEANFILES = jni_md.h config-int.h $(H_FILES) +else DISTCLEANFILES = jni_md.h config-int.h +endif ARG_JNI_JAVAH = -jni ARG_CLASSPATH_JAVAH = -bootclasspath -JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB) +JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(PATH_TO_GLIBJ_ZIP) CLASSDIR = lib SOUND_H_FILES = \ -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h +gnu_javax_sound_midi_alsa_AlsaPortDevice.h \ +gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \ +gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \ +gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \ +gnu_javax_sound_midi_dssi_DSSISynthesizer.h GST_PEER_H_FILES = \ -$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h +gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h \ +gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h \ +gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h \ +gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h XMLJ_H_FILES = \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h +gnu_xml_libxmlj_dom_GnomeDocument.h \ +gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \ +gnu_xml_libxmlj_dom_GnomeDocumentType.h \ +gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \ +gnu_xml_libxmlj_dom_GnomeTypeInfo.h \ +gnu_xml_libxmlj_dom_GnomeNodeList.h \ +gnu_xml_libxmlj_dom_GnomeNotation.h \ +gnu_xml_libxmlj_dom_GnomeXPathResult.h \ +gnu_xml_libxmlj_dom_GnomeElement.h \ +gnu_xml_libxmlj_dom_GnomeEntity.h \ +gnu_xml_libxmlj_dom_GnomeNode.h \ +gnu_xml_libxmlj_dom_GnomeXPathExpression.h \ +gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \ +gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \ +gnu_xml_libxmlj_dom_GnomeAttr.h \ +gnu_xml_libxmlj_sax_GnomeLocator.h \ +gnu_xml_libxmlj_sax_GnomeXMLReader.h \ +gnu_xml_libxmlj_transform_GnomeTransformer.h \ +gnu_xml_libxmlj_transform_GnomeTransformerFactory.h GTKPEER_H_FILES = \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h \ -$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h +gnu_java_awt_peer_gtk_CairoSurface.h \ +gnu_java_awt_peer_gtk_CairoGraphics2D.h \ +gnu_java_awt_peer_gtk_ComponentGraphics.h \ +gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \ +gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \ +gnu_java_awt_peer_gtk_GdkFontPeer.h \ +gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \ +gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \ +gnu_java_awt_peer_gtk_GdkRobotPeer.h \ +gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \ +gnu_java_awt_peer_gtk_GtkButtonPeer.h \ +gnu_java_awt_peer_gtk_GtkCanvasPeer.h \ +gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \ +gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \ +gnu_java_awt_peer_gtk_GtkChoicePeer.h \ +gnu_java_awt_peer_gtk_GtkClipboard.h \ +gnu_java_awt_peer_gtk_GtkComponentPeer.h \ +gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \ +gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \ +gnu_java_awt_peer_gtk_GtkFramePeer.h \ +gnu_java_awt_peer_gtk_GtkGenericPeer.h \ +gnu_java_awt_peer_gtk_GtkImage.h \ +gnu_java_awt_peer_gtk_GtkLabelPeer.h \ +gnu_java_awt_peer_gtk_GtkListPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuPeer.h \ +gnu_java_awt_peer_gtk_GtkPanelPeer.h \ +gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \ +gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \ +gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \ +gnu_java_awt_peer_gtk_GtkSelection.h \ +gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \ +gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \ +gnu_java_awt_peer_gtk_GtkToolkit.h \ +gnu_java_awt_peer_gtk_GtkWindowPeer.h \ +gnu_java_awt_peer_gtk_GtkVolatileImage.h \ +gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h QTPEER_H_FILES = \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h +gnu_java_awt_peer_qt_QtCheckboxPeer.h \ +gnu_java_awt_peer_qt_QtToolkit.h \ +gnu_java_awt_peer_qt_QtAudioClip.h \ +gnu_java_awt_peer_qt_QtScreenDevice.h \ +gnu_java_awt_peer_qt_QtTextFieldPeer.h \ +gnu_java_awt_peer_qt_QtMenuItemPeer.h \ +gnu_java_awt_peer_qt_QtButtonPeer.h \ +gnu_java_awt_peer_qt_QtWindowPeer.h \ +gnu_java_awt_peer_qt_QtDialogPeer.h \ +gnu_java_awt_peer_qt_QtImage.h \ +gnu_java_awt_peer_qt_QtMenuBarPeer.h \ +gnu_java_awt_peer_qt_QtVolatileImage.h \ +gnu_java_awt_peer_qt_QtFontPeer.h \ +gnu_java_awt_peer_qt_QtChoicePeer.h \ +gnu_java_awt_peer_qt_QtGraphics.h \ +gnu_java_awt_peer_qt_QtComponentPeer.h \ +gnu_java_awt_peer_qt_QtMenuPeer.h \ +gnu_java_awt_peer_qt_QtTextAreaPeer.h \ +gnu_java_awt_peer_qt_QPen.h \ +gnu_java_awt_peer_qt_QtPanelPeer.h \ +gnu_java_awt_peer_qt_QPainterPath.h \ +gnu_java_awt_peer_qt_QtFontMetrics.h \ +gnu_java_awt_peer_qt_QtScrollPanePeer.h \ +gnu_java_awt_peer_qt_QMatrix.h \ +gnu_java_awt_peer_qt_QtLabelPeer.h \ +gnu_java_awt_peer_qt_QtPopupMenuPeer.h \ +gnu_java_awt_peer_qt_QtFramePeer.h \ +gnu_java_awt_peer_qt_QtListPeer.h \ +gnu_java_awt_peer_qt_QtScrollbarPeer.h \ +gnu_java_awt_peer_qt_QtCanvasPeer.h \ +gnu_java_awt_peer_qt_QtMenuComponentPeer.h \ +gnu_java_awt_peer_qt_MainQtThread.h \ +gnu_java_awt_peer_qt_QtFileDialogPeer.h \ +gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h GCONF_PREFS_FILES = \ -$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h +gnu_java_util_prefs_gconf_GConfNativePeer.h H_FILES = \ $(SOUND_H_FILES) \ @@ -126,291 +133,299 @@ $(XMLJ_H_FILES) \ $(GTKPEER_H_FILES) \ $(QTPEER_H_FILES) \ $(GCONF_PREFS_FILES) \ -$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h \ -$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h \ -$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h \ -$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \ -$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h \ -$(top_srcdir)/include/gnu_java_nio_VMChannel.h \ -$(top_srcdir)/include/gnu_java_nio_VMPipe.h \ -$(top_srcdir)/include/gnu_java_nio_VMSelector.h \ -$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h \ -$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h \ -$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \ -$(top_srcdir)/include/java_io_VMFile.h \ -$(top_srcdir)/include/java_io_VMObjectInputStream.h \ -$(top_srcdir)/include/java_io_VMObjectStreamClass.h \ -$(top_srcdir)/include/java_lang_VMDouble.h \ -$(top_srcdir)/include/java_lang_VMFloat.h \ -$(top_srcdir)/include/java_lang_VMMath.h \ -$(top_srcdir)/include/java_lang_VMProcess.h \ -$(top_srcdir)/include/java_lang_VMSystem.h \ -$(top_srcdir)/include/java_lang_reflect_VMArray.h \ -$(top_srcdir)/include/java_net_VMInetAddress.h \ -$(top_srcdir)/include/java_net_VMNetworkInterface.h \ -$(top_srcdir)/include/java_net_VMURLConnection.h \ -$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h \ -$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h \ -$(top_srcdir)/include/java_util_VMTimeZone.h +gnu_java_net_VMPlainSocketImpl.h \ +gnu_java_net_local_LocalSocketImpl.h \ +gnu_java_nio_EpollSelectorImpl.h \ +gnu_java_nio_FileChannelImpl.h \ +gnu_java_nio_KqueueSelectorImpl.h \ +gnu_java_nio_VMChannel.h \ +gnu_java_nio_VMPipe.h \ +gnu_java_nio_VMSelector.h \ +gnu_java_nio_charset_iconv_IconvEncoder.h \ +gnu_java_nio_charset_iconv_IconvDecoder.h \ +gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \ +java_io_VMFile.h \ +java_io_VMObjectInputStream.h \ +java_io_VMObjectStreamClass.h \ +java_lang_VMDouble.h \ +java_lang_VMFloat.h \ +java_lang_VMMath.h \ +java_lang_VMProcess.h \ +java_lang_VMSystem.h \ +java_lang_reflect_VMArray.h \ +java_net_VMInetAddress.h \ +java_net_VMNetworkInterface.h \ +java_net_VMURLConnection.h \ +java_nio_VMDirectByteBuffer.h \ +java_nio_MappedByteBufferImpl.h \ +java_util_VMTimeZone.h if CREATE_JNI_HEADERS +EXTRA_DIST=$(H_FILES) + all-local: $(H_FILES) -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java +gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocument -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java +gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java +gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentType -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java +gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java +gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeTypeInfo -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java +gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java +gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNotation -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java +gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java +gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeElement -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java +gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java +gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNode -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java +gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java +gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNamedNodeMap -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java +gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java +gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeAttr -$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java +gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator -$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java +gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeXMLReader -$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java +gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer -$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java +gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformerFactory -$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java +gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoSurface -$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java +gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoGraphics2D -$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java +gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphics -$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java +gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphicsCopy -$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java +gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.FreetypeGlyphVector -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java +gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphicsEnvironment -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java +gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkPixbufDecoder -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java +gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkRobotPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java +gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkScreenGraphicsDevice -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java +gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java +gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java +gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java +gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java +gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java +gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java +gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java +gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkEmbeddedWindowPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java +gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java +gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java +gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java +gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImage -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java +gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java +gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java +gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java +gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuComponentPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java +gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java +gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java +gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java +gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java +gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java +gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java +gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkSelection -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java +gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java +gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java +gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java +gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java +gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkVolatileImage -$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java +gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java $(JAVAH) -o $@ gnu.java.awt.dnd.peer.gtk.GtkDragSourceContextPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java +gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCheckboxPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java +gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtToolkit -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java +gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtAudioClip -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java +gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScreenDevice -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java +gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextFieldPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java +gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuItemPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java +gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtButtonPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java +gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtWindowPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java +gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtDialogPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java +gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtImage -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java +gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuBarPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java +gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtVolatileImage -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java +gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java +gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtChoicePeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java +gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtGraphics -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java +gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtComponentPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java +gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java +gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextAreaPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java +gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPen -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java +gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPanelPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java +gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPainterPath -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java +gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontMetrics -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java +gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollPanePeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java +gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QMatrix -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java +gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtLabelPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java +gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPopupMenuPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java +gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFramePeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java +gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtListPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java +gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollbarPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java +gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCanvasPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java +gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuComponentPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java +gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.MainQtThread -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java +gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFileDialogPeer -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java +gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtEmbeddedWindowPeer -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java +gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaPortDevice -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java +gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java +gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiDeviceProvider -$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java +gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSIMidiDeviceProvider -$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java +gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSISynthesizer -$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java +gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java $(JAVAH) -o $@ gnu.java.util.prefs.gconf.GConfNativePeer -$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java +gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReaderNativePeer -$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java +gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java + $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstInputStream +gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java + $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine +gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java + $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline +gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl -$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java +gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java $(JAVAH) -o $@ gnu.java.net.local.LocalSocketImpl -$(top_srcdir)/include/gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java +gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java $(JAVAH) -o $@ gnu.java.nio.VMChannel -$(top_srcdir)/include/gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java +gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java $(JAVAH) -o $@ gnu.java.nio.VMPipe -$(top_srcdir)/include/gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java +gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java $(JAVAH) -o $@ gnu.java.nio.VMSelector -$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java +gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java $(JAVAH) -o $@ gnu.java.lang.management.VMOperatingSystemMXBeanImpl -$(top_srcdir)/include/java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java +java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java $(JAVAH) -o $@ java.io.VMFile -$(top_srcdir)/include/java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java +java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java $(JAVAH) -o $@ java.io.VMObjectInputStream -$(top_srcdir)/include/java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java +java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java $(JAVAH) -o $@ java.io.VMObjectStreamClass -$(top_srcdir)/include/java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java +java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java $(JAVAH) -o $@ java.lang.VMMath -$(top_srcdir)/include/java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java +java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java $(JAVAH) -o $@ java.lang.VMDouble -$(top_srcdir)/include/java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java +java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java $(JAVAH) -o $@ java.lang.VMFloat -$(top_srcdir)/include/java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java +java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java $(JAVAH) -o $@ java.lang.VMProcess -$(top_srcdir)/include/java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java +java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java $(JAVAH) -o $@ java.lang.VMSystem -$(top_srcdir)/include/java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java +java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java $(JAVAH) -o $@ java.lang.reflect.VMArray -$(top_srcdir)/include/java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java +java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java $(JAVAH) -o $@ java.net.VMInetAddress -$(top_srcdir)/include/java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java +java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java $(JAVAH) -o $@ java.net.VMNetworkInterface -$(top_srcdir)/include/java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java +java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java $(JAVAH) -o $@ java.net.VMURLConnection -$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java +java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java $(JAVAH) -o $@ java.nio.VMDirectByteBuffer -$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java +java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java $(JAVAH) -o $@ java.nio.MappedByteBufferImpl -$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java +gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl -$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java +gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java $(JAVAH) -o $@ gnu.java.nio.KqueueSelectorImpl -$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java +gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java $(JAVAH) -o $@ gnu.java.nio.EpollSelectorImpl -$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java +gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvDecoder -$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java +gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvEncoder -$(top_srcdir)/include/java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java +java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java $(JAVAH) -o $@ java.util.VMTimeZone endif # CREATE_JNI_HEADERS diff --git a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in index 516898f62a6..515d35ae754 100644 --- a/libjava/classpath/include/Makefile.in +++ b/libjava/classpath/include/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -130,7 +132,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -142,19 +143,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -186,15 +176,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -242,10 +229,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -317,121 +302,125 @@ target_os = @target_os@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -DISTCLEANFILES = jni_md.h config-int.h +@CREATE_JNI_HEADERS_FALSE@DISTCLEANFILES = jni_md.h config-int.h +@CREATE_JNI_HEADERS_TRUE@DISTCLEANFILES = jni_md.h config-int.h $(H_FILES) ARG_JNI_JAVAH = -jni ARG_CLASSPATH_JAVAH = -bootclasspath -JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB) +JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(PATH_TO_GLIBJ_ZIP) CLASSDIR = lib SOUND_H_FILES = \ -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \ -$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h +gnu_javax_sound_midi_alsa_AlsaPortDevice.h \ +gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \ +gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \ +gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \ +gnu_javax_sound_midi_dssi_DSSISynthesizer.h GST_PEER_H_FILES = \ -$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h +gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h \ +gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h \ +gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h \ +gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h XMLJ_H_FILES = \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h \ -$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h +gnu_xml_libxmlj_dom_GnomeDocument.h \ +gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \ +gnu_xml_libxmlj_dom_GnomeDocumentType.h \ +gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \ +gnu_xml_libxmlj_dom_GnomeTypeInfo.h \ +gnu_xml_libxmlj_dom_GnomeNodeList.h \ +gnu_xml_libxmlj_dom_GnomeNotation.h \ +gnu_xml_libxmlj_dom_GnomeXPathResult.h \ +gnu_xml_libxmlj_dom_GnomeElement.h \ +gnu_xml_libxmlj_dom_GnomeEntity.h \ +gnu_xml_libxmlj_dom_GnomeNode.h \ +gnu_xml_libxmlj_dom_GnomeXPathExpression.h \ +gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \ +gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \ +gnu_xml_libxmlj_dom_GnomeAttr.h \ +gnu_xml_libxmlj_sax_GnomeLocator.h \ +gnu_xml_libxmlj_sax_GnomeXMLReader.h \ +gnu_xml_libxmlj_transform_GnomeTransformer.h \ +gnu_xml_libxmlj_transform_GnomeTransformerFactory.h GTKPEER_H_FILES = \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h \ -$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h +gnu_java_awt_peer_gtk_CairoSurface.h \ +gnu_java_awt_peer_gtk_CairoGraphics2D.h \ +gnu_java_awt_peer_gtk_ComponentGraphics.h \ +gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \ +gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \ +gnu_java_awt_peer_gtk_GdkFontPeer.h \ +gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \ +gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \ +gnu_java_awt_peer_gtk_GdkRobotPeer.h \ +gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \ +gnu_java_awt_peer_gtk_GtkButtonPeer.h \ +gnu_java_awt_peer_gtk_GtkCanvasPeer.h \ +gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \ +gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \ +gnu_java_awt_peer_gtk_GtkChoicePeer.h \ +gnu_java_awt_peer_gtk_GtkClipboard.h \ +gnu_java_awt_peer_gtk_GtkComponentPeer.h \ +gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \ +gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \ +gnu_java_awt_peer_gtk_GtkFramePeer.h \ +gnu_java_awt_peer_gtk_GtkGenericPeer.h \ +gnu_java_awt_peer_gtk_GtkImage.h \ +gnu_java_awt_peer_gtk_GtkLabelPeer.h \ +gnu_java_awt_peer_gtk_GtkListPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \ +gnu_java_awt_peer_gtk_GtkMenuPeer.h \ +gnu_java_awt_peer_gtk_GtkPanelPeer.h \ +gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \ +gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \ +gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \ +gnu_java_awt_peer_gtk_GtkSelection.h \ +gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \ +gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \ +gnu_java_awt_peer_gtk_GtkToolkit.h \ +gnu_java_awt_peer_gtk_GtkWindowPeer.h \ +gnu_java_awt_peer_gtk_GtkVolatileImage.h \ +gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h QTPEER_H_FILES = \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h \ -$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h +gnu_java_awt_peer_qt_QtCheckboxPeer.h \ +gnu_java_awt_peer_qt_QtToolkit.h \ +gnu_java_awt_peer_qt_QtAudioClip.h \ +gnu_java_awt_peer_qt_QtScreenDevice.h \ +gnu_java_awt_peer_qt_QtTextFieldPeer.h \ +gnu_java_awt_peer_qt_QtMenuItemPeer.h \ +gnu_java_awt_peer_qt_QtButtonPeer.h \ +gnu_java_awt_peer_qt_QtWindowPeer.h \ +gnu_java_awt_peer_qt_QtDialogPeer.h \ +gnu_java_awt_peer_qt_QtImage.h \ +gnu_java_awt_peer_qt_QtMenuBarPeer.h \ +gnu_java_awt_peer_qt_QtVolatileImage.h \ +gnu_java_awt_peer_qt_QtFontPeer.h \ +gnu_java_awt_peer_qt_QtChoicePeer.h \ +gnu_java_awt_peer_qt_QtGraphics.h \ +gnu_java_awt_peer_qt_QtComponentPeer.h \ +gnu_java_awt_peer_qt_QtMenuPeer.h \ +gnu_java_awt_peer_qt_QtTextAreaPeer.h \ +gnu_java_awt_peer_qt_QPen.h \ +gnu_java_awt_peer_qt_QtPanelPeer.h \ +gnu_java_awt_peer_qt_QPainterPath.h \ +gnu_java_awt_peer_qt_QtFontMetrics.h \ +gnu_java_awt_peer_qt_QtScrollPanePeer.h \ +gnu_java_awt_peer_qt_QMatrix.h \ +gnu_java_awt_peer_qt_QtLabelPeer.h \ +gnu_java_awt_peer_qt_QtPopupMenuPeer.h \ +gnu_java_awt_peer_qt_QtFramePeer.h \ +gnu_java_awt_peer_qt_QtListPeer.h \ +gnu_java_awt_peer_qt_QtScrollbarPeer.h \ +gnu_java_awt_peer_qt_QtCanvasPeer.h \ +gnu_java_awt_peer_qt_QtMenuComponentPeer.h \ +gnu_java_awt_peer_qt_MainQtThread.h \ +gnu_java_awt_peer_qt_QtFileDialogPeer.h \ +gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h GCONF_PREFS_FILES = \ -$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h +gnu_java_util_prefs_gconf_GConfNativePeer.h H_FILES = \ $(SOUND_H_FILES) \ @@ -440,33 +429,34 @@ $(XMLJ_H_FILES) \ $(GTKPEER_H_FILES) \ $(QTPEER_H_FILES) \ $(GCONF_PREFS_FILES) \ -$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h \ -$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h \ -$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h \ -$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \ -$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h \ -$(top_srcdir)/include/gnu_java_nio_VMChannel.h \ -$(top_srcdir)/include/gnu_java_nio_VMPipe.h \ -$(top_srcdir)/include/gnu_java_nio_VMSelector.h \ -$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h \ -$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h \ -$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \ -$(top_srcdir)/include/java_io_VMFile.h \ -$(top_srcdir)/include/java_io_VMObjectInputStream.h \ -$(top_srcdir)/include/java_io_VMObjectStreamClass.h \ -$(top_srcdir)/include/java_lang_VMDouble.h \ -$(top_srcdir)/include/java_lang_VMFloat.h \ -$(top_srcdir)/include/java_lang_VMMath.h \ -$(top_srcdir)/include/java_lang_VMProcess.h \ -$(top_srcdir)/include/java_lang_VMSystem.h \ -$(top_srcdir)/include/java_lang_reflect_VMArray.h \ -$(top_srcdir)/include/java_net_VMInetAddress.h \ -$(top_srcdir)/include/java_net_VMNetworkInterface.h \ -$(top_srcdir)/include/java_net_VMURLConnection.h \ -$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h \ -$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h \ -$(top_srcdir)/include/java_util_VMTimeZone.h - +gnu_java_net_VMPlainSocketImpl.h \ +gnu_java_net_local_LocalSocketImpl.h \ +gnu_java_nio_EpollSelectorImpl.h \ +gnu_java_nio_FileChannelImpl.h \ +gnu_java_nio_KqueueSelectorImpl.h \ +gnu_java_nio_VMChannel.h \ +gnu_java_nio_VMPipe.h \ +gnu_java_nio_VMSelector.h \ +gnu_java_nio_charset_iconv_IconvEncoder.h \ +gnu_java_nio_charset_iconv_IconvDecoder.h \ +gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \ +java_io_VMFile.h \ +java_io_VMObjectInputStream.h \ +java_io_VMObjectStreamClass.h \ +java_lang_VMDouble.h \ +java_lang_VMFloat.h \ +java_lang_VMMath.h \ +java_lang_VMProcess.h \ +java_lang_VMSystem.h \ +java_lang_reflect_VMArray.h \ +java_net_VMInetAddress.h \ +java_net_VMNetworkInterface.h \ +java_net_VMURLConnection.h \ +java_nio_VMDirectByteBuffer.h \ +java_nio_MappedByteBufferImpl.h \ +java_util_VMTimeZone.h + +@CREATE_JNI_HEADERS_TRUE@EXTRA_DIST = $(H_FILES) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am @@ -651,260 +641,266 @@ uninstall-am: uninstall-info-am @CREATE_JNI_HEADERS_TRUE@all-local: $(H_FILES) -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocument -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentType -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeTypeInfo -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNotation -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeElement -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNode -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNamedNodeMap -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeAttr -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeXMLReader -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java +@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformerFactory -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoSurface -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoGraphics2D -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphics -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphicsCopy -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.FreetypeGlyphVector -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphicsEnvironment -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkPixbufDecoder -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkRobotPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkScreenGraphicsDevice -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkEmbeddedWindowPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImage -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuComponentPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkSelection -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkVolatileImage -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.dnd.peer.gtk.GtkDragSourceContextPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCheckboxPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtToolkit -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtAudioClip -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScreenDevice -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextFieldPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuItemPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtButtonPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtWindowPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtDialogPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtImage -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuBarPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtVolatileImage -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtChoicePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtGraphics -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtComponentPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextAreaPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPen -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPanelPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPainterPath -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontMetrics -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollPanePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QMatrix -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtLabelPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPopupMenuPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFramePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtListPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollbarPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCanvasPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuComponentPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.MainQtThread -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFileDialogPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtEmbeddedWindowPeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaPortDevice -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiDeviceProvider -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSIMidiDeviceProvider -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSISynthesizer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.util.prefs.gconf.GConfNativePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReaderNativePeer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstInputStream +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine +@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline +@CREATE_JNI_HEADERS_TRUE@gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.net.local.LocalSocketImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.VMChannel -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.VMPipe -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.VMSelector -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.lang.management.VMOperatingSystemMXBeanImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java +@CREATE_JNI_HEADERS_TRUE@java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.io.VMFile -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java +@CREATE_JNI_HEADERS_TRUE@java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.io.VMObjectInputStream -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java +@CREATE_JNI_HEADERS_TRUE@java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.io.VMObjectStreamClass -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java +@CREATE_JNI_HEADERS_TRUE@java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.lang.VMMath -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java +@CREATE_JNI_HEADERS_TRUE@java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.lang.VMDouble -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java +@CREATE_JNI_HEADERS_TRUE@java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.lang.VMFloat -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java +@CREATE_JNI_HEADERS_TRUE@java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.lang.VMProcess -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java +@CREATE_JNI_HEADERS_TRUE@java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.lang.VMSystem -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java +@CREATE_JNI_HEADERS_TRUE@java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.lang.reflect.VMArray -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java +@CREATE_JNI_HEADERS_TRUE@java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.net.VMInetAddress -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java +@CREATE_JNI_HEADERS_TRUE@java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.net.VMNetworkInterface -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java +@CREATE_JNI_HEADERS_TRUE@java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.net.VMURLConnection -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java +@CREATE_JNI_HEADERS_TRUE@java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.nio.VMDirectByteBuffer -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java +@CREATE_JNI_HEADERS_TRUE@java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.nio.MappedByteBufferImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.KqueueSelectorImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.EpollSelectorImpl -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvDecoder -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java +@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvEncoder -@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java +@CREATE_JNI_HEADERS_TRUE@java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.util.VMTimeZone # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/include/config.h.in b/libjava/classpath/include/config.h.in index e52b7eff732..4330a30da8e 100644 --- a/libjava/classpath/include/config.h.in +++ b/libjava/classpath/include/config.h.in @@ -192,6 +192,15 @@ /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP +/* Define to 1 if you have the <netinet/in_systm.h> header file. */ +#undef HAVE_NETINET_IN_SYSTM_H + +/* Define to 1 if you have the <netinet/ip.h> header file. */ +#undef HAVE_NETINET_IP_H + +/* Define to 1 if you have the <net/if.h> header file. */ +#undef HAVE_NET_IF_H + /* Define to 1 if you have the `open' function. */ #undef HAVE_OPEN @@ -201,9 +210,6 @@ /* Define to 1 if you have the `read' function. */ #undef HAVE_READ -/* Define to 1 if you have the `readdir_r' function. */ -#undef HAVE_READDIR_R - /* Define to 1 if you have the `readlink' function. */ #undef HAVE_READLINK @@ -234,6 +240,9 @@ /* Define this symbol if you have SO_NOSIGPIPE */ #undef HAVE_SO_NOSIGPIPE +/* Define to 1 if you have the `statvfs' function. */ +#undef HAVE_STATVFS + /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H @@ -273,6 +282,9 @@ /* Define to 1 if you have the <sys/ioctl.h> header file. */ #undef HAVE_SYS_IOCTL_H +/* Define to 1 if you have the <sys/loadavg.h> header file. */ +#undef HAVE_SYS_LOADAVG_H + /* Define to 1 if you have the <sys/mman.h> header file. */ #undef HAVE_SYS_MMAN_H @@ -326,6 +338,12 @@ /* Define to 1 if you have libXrender. */ #undef HAVE_XRENDER +/* Define to 1 if you have libXtst. */ +#undef HAVE_XTEST + +/* Define to 1 if you have the `\' function. */ +#undef HAVE__ + /* Define if the host machine stores words of multi-word integers in big-endian order. */ #undef HOST_WORDS_BIG_ENDIAN diff --git a/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h b/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h index f9fca115883..d2ef88dfdb1 100644 --- a/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h +++ b/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ #define __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h index a24f92d196b..3ae95a283e5 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_CairoGraphics2D__ #define __gnu_java_awt_peer_gtk_CairoGraphics2D__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -38,6 +38,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFill (JNI JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetAntialias (JNIEnv *env, jobject, jlong, jboolean); + #undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST #define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST 0L #undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h index ba7a1f57337..8ef86c027dd 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_CairoSurface__ #define __gnu_java_awt_peer_gtk_CairoSurface__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h index 2df12469b42..160cb394f8f 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h @@ -1,17 +1,17 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_ComponentGraphics__ #define __gnu_java_awt_peer_gtk_ComponentGraphics__ -#include <jni.h> - #ifdef __cplusplus extern "C" { #endif JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState (JNIEnv *env, jobject, jobject); -JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env, jobject, jlong, jint, jint); +JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing (JNIEnv *env, jobject); JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender (JNIEnv *env, jclass); diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h index 8e4b2cdb3cb..8b1c26c290a 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__ #define __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h index 95463229347..ac3cda32fdb 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h @@ -1,21 +1,21 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_FreetypeGlyphVector__ #define __gnu_java_awt_peer_gtk_FreetypeGlyphVector__ -#include <jni.h> - #ifdef __cplusplus extern "C" { #endif +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose (JNIEnv *env, jobject, jlongArray); +JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer (JNIEnv *env, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs (JNIEnv *env, jobject, jintArray, jintArray, jlongArray); JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning (JNIEnv *env, jobject, jint, jint, jlong); JNIEXPORT jdoubleArray JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative (JNIEnv *env, jobject, jint, jlong); JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative (JNIEnv *env, jobject, jint, jlong); -JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose (JNIEnv *env, jobject, jlongArray); -JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer (JNIEnv *env, jobject, jint); #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h index c23980ca55c..468fbb0ab19 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GdkFontPeer__ #define __gnu_java_awt_peer_gtk_GdkFontPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -18,6 +18,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics (JN JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics (JNIEnv *env, jobject, jstring, jdoubleArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource (JNIEnv *env, jobject); JNIEXPORT jbyteArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable (JNIEnv *env, jobject, jbyte, jbyte, jbyte, jbyte); + #undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_ASCENT #define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_ASCENT 0L #undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_ASCENT diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h index 6f30a3c5bef..1664b1d3010 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder__ #define __gnu_java_awt_peer_gtk_GdkPixbufDecoder__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h index dc1ae7d64e4..0a3b4dd11d7 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GdkRobotPeer__ #define __gnu_java_awt_peer_gtk_GdkRobotPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h index 37654e4f48d..61999337b0b 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__ #define __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h index 9601e83ae3f..4aea5d6d356 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkButtonPeer__ #define __gnu_java_awt_peer_gtk_GtkButtonPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h index e774713a766..1052aa571fa 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkCanvasPeer__ #define __gnu_java_awt_peer_gtk_GtkCanvasPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h index 87a161b114f..41423e8ccc5 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__ #define __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h index b54412be6eb..974c0d67aaa 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkCheckboxPeer__ #define __gnu_java_awt_peer_gtk_GtkCheckboxPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h index fc6a72a5955..05ffcde5eaa 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkChoicePeer__ #define __gnu_java_awt_peer_gtk_GtkChoicePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkClipboard.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkClipboard.h index d1b691e04fa..40b84e90c51 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkClipboard.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkClipboard.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkClipboard__ #define __gnu_java_awt_peer_gtk_GtkClipboard__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h index f2b9ffe773e..8103a067b10 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkComponentPeer__ #define __gnu_java_awt_peer_gtk_GtkComponentPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -17,7 +17,9 @@ JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidge JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions (JNIEnv *env, jobject, jintArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions (JNIEnv *env, jobject, jintArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen (JNIEnv *env, jobject, jintArray); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked (JNIEnv *env, jobject, jintArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen (JNIEnv *env, jobject, jintArray); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked (JNIEnv *env, jobject, jintArray); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor (JNIEnv *env, jobject, jint, jobject, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked (JNIEnv *env, jobject, jint, jobject, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground (JNIEnv *env, jobject, jint, jint, jint); diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h index 6d6e4b350f5..55891c86fd3 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__ #define __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h index 340fcc3231c..f9e134168a6 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkFileDialogPeer__ #define __gnu_java_awt_peer_gtk_GtkFileDialogPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h index 63b881d2f78..f100d3d5581 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkFramePeer__ #define __gnu_java_awt_peer_gtk_GtkFramePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h index 1a95d70d339..243f508c915 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkGenericPeer__ #define __gnu_java_awt_peer_gtk_GtkGenericPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h index 0ea798bc264..3e65ea9b2fb 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkImage__ #define __gnu_java_awt_peer_gtk_GtkImage__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h index 3a0d35c7374..805cfb528e3 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkLabelPeer__ #define __gnu_java_awt_peer_gtk_GtkLabelPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkListPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkListPeer.h index 8c9272c7f71..bc620336a45 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkListPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkListPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkListPeer__ #define __gnu_java_awt_peer_gtk_GtkListPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h index 61a4641e600..4a053a19c8e 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkMenuBarPeer__ #define __gnu_java_awt_peer_gtk_GtkMenuBarPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h index 3b71dde384a..bc01ffcbf99 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__ #define __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h index e96544a3b22..2aee51e46d3 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkMenuItemPeer__ #define __gnu_java_awt_peer_gtk_GtkMenuItemPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h index 641e87e4623..6b0569bf0df 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkMenuPeer__ #define __gnu_java_awt_peer_gtk_GtkMenuPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h index 7498a97d96b..929e28321cc 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkPanelPeer__ #define __gnu_java_awt_peer_gtk_GtkPanelPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h index aae817fe413..3b1c68ab297 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__ #define __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h index a8d2d2589e8..f52469a3ee9 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkScrollPanePeer__ #define __gnu_java_awt_peer_gtk_GtkScrollPanePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h index 397035010d6..a96f0f41f72 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkScrollbarPeer__ #define __gnu_java_awt_peer_gtk_GtkScrollbarPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkSelection.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkSelection.h index 6a29a433c15..5c3de333c6b 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkSelection.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkSelection.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkSelection__ #define __gnu_java_awt_peer_gtk_GtkSelection__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h index d5f30053851..b3b754afce7 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkTextAreaPeer__ #define __gnu_java_awt_peer_gtk_GtkTextAreaPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h index 260c2d75aaf..faa6fbea2e9 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkTextFieldPeer__ #define __gnu_java_awt_peer_gtk_GtkTextFieldPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h index ad6eb394453..c8d409dd635 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkToolkit__ #define __gnu_java_awt_peer_gtk_GtkToolkit__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h index 43b55e828d3..57bac0d9f48 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkVolatileImage__ #define __gnu_java_awt_peer_gtk_GtkVolatileImage__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h index c9a629a8241..195121278c9 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_gtk_GtkWindowPeer__ #define __gnu_java_awt_peer_gtk_GtkWindowPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -27,6 +27,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsU JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation (JNIEnv *env, jobject, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked (JNIEnv *env, jobject, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize (JNIEnv *env, jobject, jint, jint); + #undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL #define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL 0L #undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h b/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h index eaf863ac5fe..73959ac626f 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_MainQtThread__ #define __gnu_java_awt_peer_qt_MainQtThread__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QMatrix.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QMatrix.h index 536a1d7c3e3..c9fb4a18a94 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QMatrix.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QMatrix.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QMatrix__ #define __gnu_java_awt_peer_qt_QMatrix__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QPainterPath.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QPainterPath.h index eaea6309cf8..0ba0cd0f877 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QPainterPath.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QPainterPath.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QPainterPath__ #define __gnu_java_awt_peer_qt_QPainterPath__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QPen.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QPen.h index 7ac3320ce11..f7fc7395a0a 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QPen.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QPen.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QPen__ #define __gnu_java_awt_peer_qt_QPen__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtAudioClip.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtAudioClip.h index d696a411c6f..04e7cfbde29 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtAudioClip.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtAudioClip.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtAudioClip__ #define __gnu_java_awt_peer_qt_QtAudioClip__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h index b7506497114..b5a3c7437ae 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtButtonPeer__ #define __gnu_java_awt_peer_qt_QtButtonPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h index df12c03b3db..74c86a89458 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtCanvasPeer__ #define __gnu_java_awt_peer_qt_QtCanvasPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h index 2d8958e9ec4..aaee33d4284 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtCheckboxPeer__ #define __gnu_java_awt_peer_qt_QtCheckboxPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h index ad67de4a9a5..ef639faee2c 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtChoicePeer__ #define __gnu_java_awt_peer_qt_QtChoicePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtComponentPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtComponentPeer.h index 79b3a8b7179..2d92f4ce5dd 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtComponentPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtComponentPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtComponentPeer__ #define __gnu_java_awt_peer_qt_QtComponentPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -30,6 +30,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_requestFocus (J JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_setEnabled (JNIEnv *env, jobject, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_setVisible (JNIEnv *env, jobject, jboolean); JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_getBounds (JNIEnv *env, jobject); + #undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER #define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h index 631b85e5e99..0fd19f2aedd 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtDialogPeer__ #define __gnu_java_awt_peer_qt_QtDialogPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h index db9e40cd21e..8913a3b38be 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__ #define __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h index 515013b72f0..f1e47368b1f 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtFileDialogPeer__ #define __gnu_java_awt_peer_qt_QtFileDialogPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h index ebc607ed34e..b07bc9cae70 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtFontMetrics__ #define __gnu_java_awt_peer_qt_QtFontMetrics__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontPeer.h index 79ab66cb2f4..3e87d6d2073 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtFontPeer__ #define __gnu_java_awt_peer_qt_QtFontPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h index 019c6cdae53..06f1824a85e 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtFramePeer__ #define __gnu_java_awt_peer_qt_QtFramePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphics.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphics.h index 13a9e818a57..f35a182d98e 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphics.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphics.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtGraphics__ #define __gnu_java_awt_peer_qt_QtGraphics__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h index 238415229e4..cc399b7abad 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtImage__ #define __gnu_java_awt_peer_qt_QtImage__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h index ece10bc2fd4..67071424077 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtLabelPeer__ #define __gnu_java_awt_peer_qt_QtLabelPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h index 07477e3e32e..b08ebf9f18f 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtListPeer__ #define __gnu_java_awt_peer_qt_QtListPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h index f4ed76fee26..e70fc1a4cf8 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtMenuBarPeer__ #define __gnu_java_awt_peer_qt_QtMenuBarPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h index 91c9b2686bf..1447e9d1717 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtMenuComponentPeer__ #define __gnu_java_awt_peer_qt_QtMenuComponentPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h index 9f8d20ed4aa..68305654bfa 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtMenuItemPeer__ #define __gnu_java_awt_peer_qt_QtMenuItemPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuPeer.h index 2cb185e46c2..f37cb3bb1a0 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtMenuPeer__ #define __gnu_java_awt_peer_qt_QtMenuPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h index 00e97082ba6..0b95a62b5fd 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtPanelPeer__ #define __gnu_java_awt_peer_qt_QtPanelPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h index 79ee4619df7..70d01b6e20b 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtPopupMenuPeer__ #define __gnu_java_awt_peer_qt_QtPopupMenuPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h index 8fb5c273700..a35627a6874 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtScreenDevice__ #define __gnu_java_awt_peer_qt_QtScreenDevice__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h index d831dae94bd..af9412eaf55 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtScrollPanePeer__ #define __gnu_java_awt_peer_qt_QtScrollPanePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h index 2ff22db50f9..8f3d08e8a97 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtScrollbarPeer__ #define __gnu_java_awt_peer_qt_QtScrollbarPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h index 17c2def5c9c..3c8334922c2 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtTextAreaPeer__ #define __gnu_java_awt_peer_qt_QtTextAreaPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h index d86e1c7fa0e..621c7980777 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtTextFieldPeer__ #define __gnu_java_awt_peer_qt_QtTextFieldPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtToolkit.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtToolkit.h index af882b6cf70..dd0fa58854a 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtToolkit.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtToolkit.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtToolkit__ #define __gnu_java_awt_peer_qt_QtToolkit__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h index 9fcbc6e38b3..94a3b5dab1d 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtVolatileImage__ #define __gnu_java_awt_peer_qt_QtVolatileImage__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h index fc29642a2cd..64eb5a51eff 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_awt_peer_qt_QtWindowPeer__ #define __gnu_java_awt_peer_qt_QtWindowPeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h b/libjava/classpath/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h index 3f35dad2182..747b5e05d35 100644 --- a/libjava/classpath/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h +++ b/libjava/classpath/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__ #define __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h b/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h index ef3c3a46784..a88320bd689 100644 --- a/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h +++ b/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_net_VMPlainSocketImpl__ #define __gnu_java_net_VMPlainSocketImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -29,6 +29,7 @@ JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv * JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv *env, jclass, jint); JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv *env, jclass, jint); JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_sendUrgentData (JNIEnv *env, jclass, jint, jint); + #undef gnu_java_net_VMPlainSocketImpl_CP_IP_TTL #define gnu_java_net_VMPlainSocketImpl_CP_IP_TTL 7777L diff --git a/libjava/classpath/include/gnu_java_net_local_LocalSocketImpl.h b/libjava/classpath/include/gnu_java_net_local_LocalSocketImpl.h index b1f1fcd84cb..6e350952142 100644 --- a/libjava/classpath/include/gnu_java_net_local_LocalSocketImpl.h +++ b/libjava/classpath/include/gnu_java_net_local_LocalSocketImpl.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_net_local_LocalSocketImpl__ #define __gnu_java_net_local_LocalSocketImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h b/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h index 0e43d1ce9fc..71747a96025 100644 --- a/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h +++ b/libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_EpollSelectorImpl__ #define __gnu_java_nio_EpollSelectorImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -19,6 +19,7 @@ JNIEXPORT void JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete (JNIEnv JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1wait (JNIEnv *env, jclass, jint, jobject, jint, jint); JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_selected_1fd (JNIEnv *env, jclass, jobject); JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_selected_1ops (JNIEnv *env, jclass, jobject); + #undef gnu_java_nio_EpollSelectorImpl_DEFAULT_EPOLL_SIZE #define gnu_java_nio_EpollSelectorImpl_DEFAULT_EPOLL_SIZE 128L #undef gnu_java_nio_EpollSelectorImpl_OP_ACCEPT diff --git a/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h b/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h index 43000114cc4..4bcc222d3ab 100644 --- a/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h +++ b/libjava/classpath/include/gnu_java_nio_FileChannelImpl.h @@ -1,15 +1,16 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_FileChannelImpl__ #define __gnu_java_nio_FileChannelImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { #endif + #undef gnu_java_nio_FileChannelImpl_READ #define gnu_java_nio_FileChannelImpl_READ 1L #undef gnu_java_nio_FileChannelImpl_WRITE diff --git a/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h b/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h index acfdeaae7f7..1504d35e24e 100644 --- a/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h +++ b/libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_KqueueSelectorImpl__ #define __gnu_java_nio_KqueueSelectorImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -19,6 +19,7 @@ JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kevent (JNIEnv *env, JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_fetch_1key (JNIEnv *env, jclass, jobject); JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_ready_1ops (JNIEnv *env, jclass, jobject, jint); JNIEXPORT jboolean JNICALL Java_gnu_java_nio_KqueueSelectorImpl_check_1eof (JNIEnv *env, jclass, jobject); + #undef gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY #define gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY 16384L #undef gnu_java_nio_KqueueSelectorImpl_CAP_INCREMENT diff --git a/libjava/classpath/include/gnu_java_nio_VMChannel.h b/libjava/classpath/include/gnu_java_nio_VMChannel.h index dd023816c39..149de8811d3 100644 --- a/libjava/classpath/include/gnu_java_nio_VMChannel.h +++ b/libjava/classpath/include/gnu_java_nio_VMChannel.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_VMChannel__ #define __gnu_java_nio_VMChannel__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_nio_VMPipe.h b/libjava/classpath/include/gnu_java_nio_VMPipe.h index 2088e55dcd2..bcb51317e75 100644 --- a/libjava/classpath/include/gnu_java_nio_VMPipe.h +++ b/libjava/classpath/include/gnu_java_nio_VMPipe.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_VMPipe__ #define __gnu_java_nio_VMPipe__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_nio_VMSelector.h b/libjava/classpath/include/gnu_java_nio_VMSelector.h index 495f0108c5a..b570b282252 100644 --- a/libjava/classpath/include/gnu_java_nio_VMSelector.h +++ b/libjava/classpath/include/gnu_java_nio_VMSelector.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_VMSelector__ #define __gnu_java_nio_VMSelector__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h index 2544188ca2d..c708d75b731 100644 --- a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h +++ b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_charset_iconv_IconvDecoder__ #define __gnu_java_nio_charset_iconv_IconvDecoder__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h index 06dd74dfd3d..f460d0109a9 100644 --- a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h +++ b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_nio_charset_iconv_IconvEncoder__ #define __gnu_java_nio_charset_iconv_IconvEncoder__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h b/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h index cc71b4097be..d63f049c901 100644 --- a/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h +++ b/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_java_util_prefs_gconf_GConfNativePeer__ #define __gnu_java_util_prefs_gconf_GConfNativePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h b/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h index 8e3ed710450..e16d8f6505d 100644 --- a/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h +++ b/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__ #define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h b/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h index e6205394c6b..33e84ee5d47 100644 --- a/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h +++ b/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__ #define __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h b/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h index 30fae5ff78a..7b1a122478a 100644 --- a/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h +++ b/libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_javax_sound_midi_alsa_AlsaPortDevice__ #define __gnu_javax_sound_midi_alsa_AlsaPortDevice__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h b/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h index 6306a3e7a64..6615efc9549 100644 --- a/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h +++ b/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__ #define __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h b/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h index 3cb0b77e6c2..5ae71c8aeb8 100644 --- a/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h +++ b/libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer__ #define __gnu_javax_sound_midi_dssi_DSSISynthesizer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h index 509a43cd946..2bb4122e3f6 100644 --- a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h +++ b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__ #define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -12,6 +12,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream (JNIEnv *env, jclass, jobject, jobject); JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_init_1id_1cache (JNIEnv *env, jclass); #ifdef __cplusplus } diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h new file mode 100644 index 00000000000..15fd9436375 --- /dev/null +++ b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h @@ -0,0 +1,20 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include <jni.h> + +#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ +#define __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1instance (JNIEnv *env, jobject); +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1id_1cache (JNIEnv *env, jclass); + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ */ diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h new file mode 100644 index 00000000000..93910a3f17e --- /dev/null +++ b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h @@ -0,0 +1,20 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include <jni.h> + +#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__ +#define __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_init_1id_1cache (JNIEnv *env, jclass); +JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_setup_1sink_1pipeline (JNIEnv *env, jclass, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__ */ diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h new file mode 100644 index 00000000000..dbf13b0fd12 --- /dev/null +++ b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h @@ -0,0 +1,33 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include <jni.h> + +#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__ +#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1id_1cache (JNIEnv *env, jclass); +JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_set_1state (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT jint JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_available (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_open_1native_1pipe (JNIEnv *env, jclass, jobject, jint); +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_close_1native_1pipe (JNIEnv *env, jclass, jobject); +JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance (JNIEnv *env, jobject); +JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_create_1named_1pipe (JNIEnv *env, jobject, jobject); +JNIEXPORT jlong JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_detect_1pipe_1size (JNIEnv *env, jobject); + +#undef gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_READ +#define gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_READ 0L +#undef gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_WRITE +#define gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_WRITE 1L +#undef gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_QUEUED +#define gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_QUEUED 1L + +#ifdef __cplusplus +} +#endif + +#endif /* __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__ */ diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeAttr.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeAttr.h index 6cd2288edb7..be6bc75fa99 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeAttr.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeAttr.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeAttr__ #define __gnu_xml_libxmlj_dom_GnomeAttr__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocument.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocument.h index 7b8b61f15c2..80332ab477e 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocument.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocument.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeDocument__ #define __gnu_xml_libxmlj_dom_GnomeDocument__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h index 1dc34a8c1a4..433d860669a 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__ #define __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h index 7b7e278bba5..75d14b94faa 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeDocumentType__ #define __gnu_xml_libxmlj_dom_GnomeDocumentType__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeElement.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeElement.h index 47ad152de1c..66cffb55755 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeElement.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeElement.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeElement__ #define __gnu_xml_libxmlj_dom_GnomeElement__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeEntity.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeEntity.h index 245e556d597..3ad5c715d15 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeEntity.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeEntity.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeEntity__ #define __gnu_xml_libxmlj_dom_GnomeEntity__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h index d55edbaf7fd..b8a0159a2b0 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__ #define __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNode.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNode.h index 860a2e9b403..319dac9d71f 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNode.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNode.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeNode__ #define __gnu_xml_libxmlj_dom_GnomeNode__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNodeList.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNodeList.h index 941a1487a12..3a4d743b124 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNodeList.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNodeList.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeNodeList__ #define __gnu_xml_libxmlj_dom_GnomeNodeList__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNotation.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNotation.h index 600a055cf3c..88fb95d4623 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNotation.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNotation.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeNotation__ #define __gnu_xml_libxmlj_dom_GnomeNotation__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h index 4682cc253b7..86184ad349d 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__ #define __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h index 2dc16cd9e61..98034032892 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeTypeInfo__ #define __gnu_xml_libxmlj_dom_GnomeTypeInfo__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h index c4b17ff8e64..5ae7969c519 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeXPathExpression__ #define __gnu_xml_libxmlj_dom_GnomeXPathExpression__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h index ec9b85c6f8e..7827bca8db8 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeXPathNodeList__ #define __gnu_xml_libxmlj_dom_GnomeXPathNodeList__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h index a58922fa8e5..c8ce1bb6f89 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_dom_GnomeXPathResult__ #define __gnu_xml_libxmlj_dom_GnomeXPathResult__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeLocator.h b/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeLocator.h index da49cb70aa5..393ea5d0d93 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeLocator.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeLocator.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_sax_GnomeLocator__ #define __gnu_xml_libxmlj_sax_GnomeLocator__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h b/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h index 17215c07a2d..7caef7b8f0d 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_sax_GnomeXMLReader__ #define __gnu_xml_libxmlj_sax_GnomeXMLReader__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformer.h b/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformer.h index f47338e3a7e..c375211e1aa 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformer.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_transform_GnomeTransformer__ #define __gnu_xml_libxmlj_transform_GnomeTransformer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h b/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h index 616e552eab8..9abb1ff0bc1 100644 --- a/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h +++ b/libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __gnu_xml_libxmlj_transform_GnomeTransformerFactory__ #define __gnu_xml_libxmlj_transform_GnomeTransformerFactory__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_io_VMFile.h b/libjava/classpath/include/java_io_VMFile.h index 4b0273d1144..2702176744c 100644 --- a/libjava/classpath/include/java_io_VMFile.h +++ b/libjava/classpath/include/java_io_VMFile.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_io_VMFile__ #define __java_io_VMFile__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -20,6 +20,9 @@ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_exists (JNIEnv *env, jclass, jstr JNIEXPORT jboolean JNICALL Java_java_io_VMFile_delete (JNIEnv *env, jclass, jstring); JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setLastModified (JNIEnv *env, jclass, jstring, jlong); JNIEXPORT jboolean JNICALL Java_java_io_VMFile_mkdir (JNIEnv *env, jclass, jstring); +JNIEXPORT jlong JNICALL Java_java_io_VMFile_getTotalSpace (JNIEnv *env, jclass, jstring); +JNIEXPORT jlong JNICALL Java_java_io_VMFile_getFreeSpace (JNIEnv *env, jclass, jstring); +JNIEXPORT jlong JNICALL Java_java_io_VMFile_getUsableSpace (JNIEnv *env, jclass, jstring); JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setReadable (JNIEnv *env, jclass, jstring, jboolean, jboolean); JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setWritable (JNIEnv *env, jclass, jstring, jboolean, jboolean); JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setExecutable (JNIEnv *env, jclass, jstring, jboolean, jboolean); @@ -29,6 +32,7 @@ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canRead (JNIEnv *env, jclass, jst JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canExecute (JNIEnv *env, jclass, jstring); JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isDirectory (JNIEnv *env, jclass, jstring); JNIEXPORT jstring JNICALL Java_java_io_VMFile_toCanonicalForm (JNIEnv *env, jclass, jstring); + #undef java_io_VMFile_IS_CASE_SENSITIVE #define java_io_VMFile_IS_CASE_SENSITIVE 1L #undef java_io_VMFile_IS_DOS_8_3 diff --git a/libjava/classpath/include/java_io_VMObjectInputStream.h b/libjava/classpath/include/java_io_VMObjectInputStream.h index 42dce228638..a17ee05f360 100644 --- a/libjava/classpath/include/java_io_VMObjectInputStream.h +++ b/libjava/classpath/include/java_io_VMObjectInputStream.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_io_VMObjectInputStream__ #define __java_io_VMObjectInputStream__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_io_VMObjectStreamClass.h b/libjava/classpath/include/java_io_VMObjectStreamClass.h index d131056baed..78fdd99f5c3 100644 --- a/libjava/classpath/include/java_io_VMObjectStreamClass.h +++ b/libjava/classpath/include/java_io_VMObjectStreamClass.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_io_VMObjectStreamClass__ #define __java_io_VMObjectStreamClass__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_lang_VMDouble.h b/libjava/classpath/include/java_lang_VMDouble.h index 8f04dcae50e..bafcbec04bc 100644 --- a/libjava/classpath/include/java_lang_VMDouble.h +++ b/libjava/classpath/include/java_lang_VMDouble.h @@ -1,16 +1,15 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_lang_VMDouble__ #define __java_lang_VMDouble__ -#include <jni.h> - #ifdef __cplusplus extern "C" { #endif -JNIEXPORT jlong JNICALL Java_java_lang_VMDouble_doubleToLongBits (JNIEnv *env, jclass, jdouble); JNIEXPORT jlong JNICALL Java_java_lang_VMDouble_doubleToRawLongBits (JNIEnv *env, jclass, jdouble); JNIEXPORT jdouble JNICALL Java_java_lang_VMDouble_longBitsToDouble (JNIEnv *env, jclass, jlong); JNIEXPORT jstring JNICALL Java_java_lang_VMDouble_toString (JNIEnv *env, jclass, jdouble, jboolean); diff --git a/libjava/classpath/include/java_lang_VMFloat.h b/libjava/classpath/include/java_lang_VMFloat.h index ed5df7f96eb..79016bebdf2 100644 --- a/libjava/classpath/include/java_lang_VMFloat.h +++ b/libjava/classpath/include/java_lang_VMFloat.h @@ -1,16 +1,15 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_lang_VMFloat__ #define __java_lang_VMFloat__ -#include <jni.h> - #ifdef __cplusplus extern "C" { #endif -JNIEXPORT jint JNICALL Java_java_lang_VMFloat_floatToIntBits (JNIEnv *env, jclass, jfloat); JNIEXPORT jint JNICALL Java_java_lang_VMFloat_floatToRawIntBits (JNIEnv *env, jclass, jfloat); JNIEXPORT jfloat JNICALL Java_java_lang_VMFloat_intBitsToFloat (JNIEnv *env, jclass, jint); diff --git a/libjava/classpath/include/java_lang_VMMath.h b/libjava/classpath/include/java_lang_VMMath.h index b2a2c3b4687..7f381fc9ac7 100644 --- a/libjava/classpath/include/java_lang_VMMath.h +++ b/libjava/classpath/include/java_lang_VMMath.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_lang_VMMath__ #define __java_lang_VMMath__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_lang_VMProcess.h b/libjava/classpath/include/java_lang_VMProcess.h index 22617816d28..67614243f26 100644 --- a/libjava/classpath/include/java_lang_VMProcess.h +++ b/libjava/classpath/include/java_lang_VMProcess.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_lang_VMProcess__ #define __java_lang_VMProcess__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -13,6 +13,7 @@ extern "C" JNIEXPORT void JNICALL Java_java_lang_VMProcess_nativeSpawn (JNIEnv *env, jobject, jobjectArray, jobjectArray, jobject, jboolean); JNIEXPORT jboolean JNICALL Java_java_lang_VMProcess_nativeReap (JNIEnv *env, jclass); JNIEXPORT void JNICALL Java_java_lang_VMProcess_nativeKill (JNIEnv *env, jclass, jlong); + #undef java_lang_VMProcess_INITIAL #define java_lang_VMProcess_INITIAL 0L #undef java_lang_VMProcess_RUNNING diff --git a/libjava/classpath/include/java_lang_VMSystem.h b/libjava/classpath/include/java_lang_VMSystem.h index 1bc55cf9d5a..020cc30d452 100644 --- a/libjava/classpath/include/java_lang_VMSystem.h +++ b/libjava/classpath/include/java_lang_VMSystem.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_lang_VMSystem__ #define __java_lang_VMSystem__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_lang_reflect_VMArray.h b/libjava/classpath/include/java_lang_reflect_VMArray.h index a92b6854cb1..abf32a59b75 100644 --- a/libjava/classpath/include/java_lang_reflect_VMArray.h +++ b/libjava/classpath/include/java_lang_reflect_VMArray.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_lang_reflect_VMArray__ #define __java_lang_reflect_VMArray__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_net_VMInetAddress.h b/libjava/classpath/include/java_net_VMInetAddress.h index 66f4735772a..21fc912d451 100644 --- a/libjava/classpath/include/java_net_VMInetAddress.h +++ b/libjava/classpath/include/java_net_VMInetAddress.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_net_VMInetAddress__ #define __java_net_VMInetAddress__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_net_VMNetworkInterface.h b/libjava/classpath/include/java_net_VMNetworkInterface.h index b53bda565e7..ff95094a223 100644 --- a/libjava/classpath/include/java_net_VMNetworkInterface.h +++ b/libjava/classpath/include/java_net_VMNetworkInterface.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_net_VMNetworkInterface__ #define __java_net_VMNetworkInterface__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_net_VMURLConnection.h b/libjava/classpath/include/java_net_VMURLConnection.h index 270a14a75f6..73699f8d28a 100644 --- a/libjava/classpath/include/java_net_VMURLConnection.h +++ b/libjava/classpath/include/java_net_VMURLConnection.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_net_VMURLConnection__ #define __java_net_VMURLConnection__ -#include <jni.h> - #ifdef __cplusplus extern "C" { @@ -12,6 +12,7 @@ extern "C" JNIEXPORT void JNICALL Java_java_net_VMURLConnection_init (JNIEnv *env, jclass); JNIEXPORT jstring JNICALL Java_java_net_VMURLConnection_guessContentTypeFromBuffer (JNIEnv *env, jclass, jbyteArray, jint); + #undef java_net_VMURLConnection_LENGTH #define java_net_VMURLConnection_LENGTH 1024L diff --git a/libjava/classpath/include/java_nio_MappedByteBufferImpl.h b/libjava/classpath/include/java_nio_MappedByteBufferImpl.h index 0ce8b908242..00810dbc1dc 100644 --- a/libjava/classpath/include/java_nio_MappedByteBufferImpl.h +++ b/libjava/classpath/include/java_nio_MappedByteBufferImpl.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_nio_MappedByteBufferImpl__ #define __java_nio_MappedByteBufferImpl__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_nio_VMDirectByteBuffer.h b/libjava/classpath/include/java_nio_VMDirectByteBuffer.h index 3214d38e3c0..abeaad1a8bb 100644 --- a/libjava/classpath/include/java_nio_VMDirectByteBuffer.h +++ b/libjava/classpath/include/java_nio_VMDirectByteBuffer.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_nio_VMDirectByteBuffer__ #define __java_nio_VMDirectByteBuffer__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/java_util_VMTimeZone.h b/libjava/classpath/include/java_util_VMTimeZone.h index 8431e67b441..e1fc2fd0200 100644 --- a/libjava/classpath/include/java_util_VMTimeZone.h +++ b/libjava/classpath/include/java_util_VMTimeZone.h @@ -1,10 +1,10 @@ /* DO NOT EDIT THIS FILE - it is machine generated */ +#include <jni.h> + #ifndef __java_util_VMTimeZone__ #define __java_util_VMTimeZone__ -#include <jni.h> - #ifdef __cplusplus extern "C" { diff --git a/libjava/classpath/include/jni.h b/libjava/classpath/include/jni.h index 1c9be9584c0..707edd61263 100644 --- a/libjava/classpath/include/jni.h +++ b/libjava/classpath/include/jni.h @@ -136,12 +136,23 @@ struct _jfieldID; struct _jmethodID; typedef struct _jfieldID *jfieldID; typedef struct _jmethodID *jmethodID; + +enum _jobjectRefType +{ + JNIInvalidRefType = 0, + JNILocalRefType = 1, + JNIGlobalRefType = 2, + JNIWeakGlobalRefType = 3 +}; + +typedef enum _jobjectRefType jobjectRefType; #endif /* Version numbers. */ #define JNI_VERSION_1_1 0x00010001 #define JNI_VERSION_1_2 0x00010002 #define JNI_VERSION_1_4 0x00010004 +#define JNI_VERSION_1_6 0x00010006 /* Used when releasing array elements. */ #define JNI_COMMIT 1 @@ -612,6 +623,7 @@ struct JNINativeInterface_ jint (JNICALL *GetJavaVM) (JNIEnv *, JavaVM **); /* ---- JNI 1.2 functions ---- */ + void (JNICALL *GetStringRegion) (JNIEnv *, jstring, jsize, jsize, jchar *); void (JNICALL *GetStringUTFRegion) (JNIEnv *, jstring, jsize, @@ -633,9 +645,14 @@ struct JNINativeInterface_ jboolean (JNICALL *ExceptionCheck) (JNIEnv *); /* ---- JNI 1.4 functions ---- */ + jobject (JNICALL *NewDirectByteBuffer) (JNIEnv *, void *, jlong); void * (JNICALL *GetDirectBufferAddress) (JNIEnv *, jobject); jlong (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject); + + /* ---- JNI 1.6 functions ---- */ + + jobjectRefType (JNICALL *GetObjectRefType) (JNIEnv *, jobject); }; #ifdef __cplusplus @@ -1488,6 +1505,8 @@ public: jint GetJavaVM (JavaVM ** val0) { return p->GetJavaVM (this, val0); } + /* ---- JNI 1.2 functions ---- */ + void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3) { p->GetStringRegion (this, val0, val1, val2, val3); } @@ -1515,6 +1534,8 @@ public: jboolean ExceptionCheck () { return p->ExceptionCheck (this); } + /* ---- JNI 1.4 functions ---- */ + jobject NewDirectByteBuffer (void *addr, jlong capacity) { return p->NewDirectByteBuffer (this, addr, capacity); } @@ -1523,6 +1544,11 @@ public: jlong GetDirectBufferCapacity (jobject buf) { return p->GetDirectBufferCapacity (this, buf); } + + /* ---- JNI 1.6 functions ---- */ + + jobjectRefType GetObjectRefType (jobject obj) + { return p->GetObjectRefType (this, obj); } }; #endif /* __cplusplus */ diff --git a/libjava/classpath/install-sh b/libjava/classpath/install-sh index 4d4a9519eaf..a5897de6ea7 100755 --- a/libjava/classpath/install-sh +++ b/libjava/classpath/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2005-05-14.22 +scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -39,38 +39,68 @@ scriptversion=2005-05-14.22 # when there is no Makefile. # # This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. +# from scratch. + +nl=' +' +IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi -# put in absolute paths if you don't have them in your path; or use env. vars. +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" +posix_mkdir= + +# Desired mode of installed file. +mode=0755 -chmodcmd="$chmodprog 0755" -chowncmd= chgrpcmd= -stripcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog rmcmd="$rmprog -f" -mvcmd="$mvprog" +stripcmd= + src= dst= dir_arg= -dstarg= +dst_arg= + +copy_on_change=false no_target_directory= -usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... @@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --c (ignored) --d create directories instead of installing files. --g GROUP $chgrpprog installed files to GROUP. --m MODE $chmodprog installed files to MODE. --o USER $chownprog installed files to USER. --s $stripprog installed files. --t DIRECTORY install into DIRECTORY. --T report an error if DSTFILE is a directory. ---help display this help and exit. ---version display version info and exit. + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG " -while test -n "$1"; do +while test $# -ne 0; do case $1 in - -c) shift - continue;; + -c) ;; + + -C) copy_on_change=true;; - -d) dir_arg=true - shift - continue;; + -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; + shift;; --help) echo "$usage"; exit $?;; - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; -o) chowncmd="$chownprog $2" - shift - shift - continue;; + shift;; - -s) stripcmd=$stripprog - shift - continue;; + -s) stripcmd=$stripprog;; - -t) dstarg=$2 - shift - shift - continue;; + -t) dst_arg=$2 + shift;; - -T) no_target_directory=true - shift - continue;; + -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; - *) # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - test -n "$dir_arg$dstarg" && break - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dstarg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dstarg" - shift # fnord - fi - shift # arg - dstarg=$arg - done + --) shift break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; esac + shift done -if test -z "$1"; then +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + done +fi + +if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 @@ -164,24 +199,47 @@ if test -z "$1"; then exit 0 fi +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + for src do # Protect names starting with `-'. case $src in - -*) src=./$src ;; + -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src - src= - - if test -d "$dst"; then - mkdircmd=: - chmodcmd= - else - mkdircmd=$mkdirprog - fi + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? else + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. @@ -190,71 +248,199 @@ do exit 1 fi - if test -z "$dstarg"; then + if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi - dst=$dstarg + dst=$dst_arg # Protect names starting with `-'. case $dst in - -*) dst=./$dst ;; + -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then - echo "$0: $dstarg: Is a directory" >&2 + echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi - dst=$dst/`basename "$src"` + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? fi fi - # This sed command emulates the dirname command. - dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac - # Make sure that the destination directory exists. + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else - # Skip lots of stat calls in the usual case. - if test ! -d "$dstdir"; then - defaultIFS=' - ' - IFS="${IFS-$defaultIFS}" + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. - oIFS=$IFS - # Some sh's can't handle IFS=/ for some reason. - IFS='%' - set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` - shift - IFS=$oIFS + case $dstdir in + /*) prefix='/';; + -*) prefix='./';; + *) prefix='';; + esac - pathcomp= + eval "$initialize_posix_glob" - while test $# -ne 0 ; do - pathcomp=$pathcomp$1 + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir shift - if test ! -d "$pathcomp"; then - $mkdirprog "$pathcomp" - # mkdir can fail with a `File exist' error in case several - # install-sh are creating the directory concurrently. This - # is OK. - test -d "$pathcomp" || exit + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi - pathcomp=$pathcomp/ - done + fi fi if test -n "$dir_arg"; then - $doit $mkdircmd "$dst" \ - && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } - + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else - dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ @@ -262,10 +448,9 @@ do # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. - $doit $cpprog "$src" "$dsttmp" && + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -273,48 +458,59 @@ do # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && - - # Now rename the file to the real destination. - { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ - || { - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - if test -f "$dstdir/$dstfile"; then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ - || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ - || { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 - (exit 1); exit 1 - } - else - : - fi - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" - } - } - fi || { (exit 1); exit 1; } + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi done -# The final little trick to "correctly" pass the exit status to the exit trap. -{ - (exit 0); exit 0 -} - # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" diff --git a/libjava/classpath/java/awt/AWTKeyStroke.java b/libjava/classpath/java/awt/AWTKeyStroke.java index 0fc44287a16..378e4eb159a 100644 --- a/libjava/classpath/java/awt/AWTKeyStroke.java +++ b/libjava/classpath/java/awt/AWTKeyStroke.java @@ -260,7 +260,7 @@ public class AWTKeyStroke implements Serializable c.setAccessible(true); // Create a new instance, to make sure that we can, and // to cause any ClassCastException. - AWTKeyStroke dummy = (AWTKeyStroke) c.newInstance(null); + AWTKeyStroke dummy = (AWTKeyStroke) c.newInstance(); return c; } }); @@ -632,7 +632,7 @@ public class AWTKeyStroke implements Serializable else try { - stroke = (AWTKeyStroke) c.newInstance(null); + stroke = (AWTKeyStroke) c.newInstance(); stroke.keyChar = keyChar; stroke.keyCode = keyCode; stroke.modifiers = modifiers; @@ -643,7 +643,7 @@ public class AWTKeyStroke implements Serializable throw (Error) new InternalError().initCause(e); } // Check level 1 cache. - AWTKeyStroke cached = (AWTKeyStroke) cache.get(stroke); + AWTKeyStroke cached = cache.get(stroke); if (cached == null) cache.put(stroke, stroke); else diff --git a/libjava/classpath/java/awt/Container.java b/libjava/classpath/java/awt/Container.java index e7622f2e839..1e5004048a7 100644 --- a/libjava/classpath/java/awt/Container.java +++ b/libjava/classpath/java/awt/Container.java @@ -1322,10 +1322,10 @@ public class Container extends Component while (true) { if (comp == null) - return false; - if (comp == this) - return true; + return false; comp = comp.getParent(); + if (comp == this) + return true; } } } diff --git a/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java b/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java index 9fea99b7839..325e3ac8d1a 100644 --- a/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java +++ b/libjava/classpath/java/awt/DefaultKeyboardFocusManager.java @@ -350,7 +350,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager while (i.hasNext ()) { KeyEventPostProcessor processor = (KeyEventPostProcessor) i.next (); - if (processor.postProcessKeyEvent ((KeyEvent) e)) + if (processor.postProcessKeyEvent (e)) return true; } diff --git a/libjava/classpath/java/awt/Desktop.java b/libjava/classpath/java/awt/Desktop.java index 8010464c00d..227b8b192bb 100644 --- a/libjava/classpath/java/awt/Desktop.java +++ b/libjava/classpath/java/awt/Desktop.java @@ -120,7 +120,7 @@ public class Desktop } /** - * Returns an istance of the Desktop Class. + * Returns an instance of the Desktop Class. * * If this implementation does not support Desktop, an * UnsupportedOperationException will be thrown. @@ -155,7 +155,7 @@ public class Desktop * @return true if this class is supported on the current platform; * false otherwise */ - private static boolean isDesktopSupported() + public static boolean isDesktopSupported() { if (GraphicsEnvironment.isHeadless()) return false; diff --git a/libjava/classpath/java/awt/Font.java b/libjava/classpath/java/awt/Font.java index d6892a626dc..4e6e6bd3476 100644 --- a/libjava/classpath/java/awt/Font.java +++ b/libjava/classpath/java/awt/Font.java @@ -229,6 +229,11 @@ public class Font implements Serializable // The ClasspathToolkit-provided peer which implements this font private transient ClasspathFontPeer peer; + /** + * The cached hashcode. A value of 0 (default initialized) means that the + * hashcode is not computed yet. + */ + private transient int hashCode; /** * Creates a <code>Font</code> object from the specified string, which @@ -1318,7 +1323,21 @@ public class Font implements Serializable */ public int hashCode() { - return this.toString().hashCode(); + // We cache the hashcode. This makes sense, because the font wouldn't + // change the relevant properties. + if (hashCode == 0) + { + hashCode = getName().hashCode() ^ getTransform().hashCode() ^ getSize() + ^ getStyle(); + // In the rare case when the above yields 0, we set this to some other + // value to avoid recomputing over and over again. This is still + // conform to the specification of hashCode(). + if (hashCode == 0) + { + hashCode = -1; + } + } + return hashCode; } diff --git a/libjava/classpath/java/awt/GridBagLayout.java b/libjava/classpath/java/awt/GridBagLayout.java index 0415c7bd3bb..d016fd31acd 100644 --- a/libjava/classpath/java/awt/GridBagLayout.java +++ b/libjava/classpath/java/awt/GridBagLayout.java @@ -211,12 +211,12 @@ public class GridBagLayout protected GridBagConstraints lookupConstraints (Component component) { - GridBagConstraints result = (GridBagConstraints) comptable.get (component); + GridBagConstraints result = comptable.get (component); if (result == null) { setConstraints (component, defaultConstraints); - result = (GridBagConstraints) comptable.get (component); + result = comptable.get (component); } return result; @@ -224,8 +224,7 @@ public class GridBagLayout private GridBagConstraints lookupInternalConstraints (Component component) { - GridBagConstraints result = - (GridBagConstraints) internalcomptable.get (component); + GridBagConstraints result = internalcomptable.get (component); if (result == null) { @@ -562,7 +561,7 @@ public class GridBagLayout x = 0; else { - Component lastComponent = (Component) lastInRow.get(new Integer(constraints.gridy)); + Component lastComponent = lastInRow.get(new Integer(constraints.gridy)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); x = lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth); } @@ -573,7 +572,7 @@ public class GridBagLayout { if (lastInRow.containsKey(new Integer(y))) { - Component lastComponent = (Component) lastInRow.get(new Integer(y)); + Component lastComponent = lastInRow.get(new Integer(y)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); x = Math.max (x, lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth)); @@ -595,7 +594,7 @@ public class GridBagLayout } else { - Component lastComponent = (Component)lastInCol.get(new Integer(constraints.gridx)); + Component lastComponent = lastInCol.get(new Integer(constraints.gridx)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); y = lastConstraints.gridy + Math.max(1, lastConstraints.gridheight); } @@ -606,7 +605,7 @@ public class GridBagLayout { if (lastInCol.containsKey(new Integer(x))) { - Component lastComponent = (Component) lastInCol.get(new Integer(x)); + Component lastComponent = lastInCol.get(new Integer(x)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); y = Math.max (y, lastConstraints.gridy + Math.max(1, lastConstraints.gridheight)); @@ -636,7 +635,7 @@ public class GridBagLayout { if(lastInRow.containsKey(new Integer(y))) { - Component lastComponent = (Component) lastInRow.get(new Integer(y)); + Component lastComponent = lastInRow.get(new Integer(y)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); if (constraints.gridx > lastConstraints.gridx) { @@ -653,7 +652,7 @@ public class GridBagLayout { if(lastInCol.containsKey(new Integer(x))) { - Component lastComponent = (Component) lastInCol.get(new Integer(x)); + Component lastComponent = lastInCol.get(new Integer(x)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); if (constraints.gridy > lastConstraints.gridy) { @@ -707,7 +706,7 @@ public class GridBagLayout { if (lastInRow.containsKey(new Integer(y))) { - Component lastComponent = (Component) lastInRow.get(new Integer(y)); + Component lastComponent = lastInRow.get(new Integer(y)); GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); if (lastConstraints.gridwidth == GridBagConstraints.RELATIVE) @@ -742,7 +741,7 @@ public class GridBagLayout { if (lastInCol.containsKey(new Integer(x))) { - Component lastComponent = (Component) lastInRow.get(new Integer(x)); + Component lastComponent = lastInRow.get(new Integer(x)); if (lastComponent != null) { GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent); @@ -804,7 +803,7 @@ public class GridBagLayout // STEP 4: Determine sizes and weights for rows. for (int i = 0; i < sortedByHeight.size(); i++) { - Component component = (Component) sortedByHeight.get(i); + Component component = sortedByHeight.get(i); // If component is not visible we dont have to care about it. if (!component.isVisible()) @@ -904,7 +903,7 @@ public class GridBagLayout int i = 0; if (list.size() > 0) { - GridBagConstraints gbc = lookupInternalConstraints((Component) list.get(i)); + GridBagConstraints gbc = lookupInternalConstraints(list.get(i)); int otherspan = sortByWidth ? gbc.gridwidth : gbc.gridheight; @@ -915,7 +914,7 @@ public class GridBagLayout i++; if (i < list.size()) { - gbc = lookupInternalConstraints((Component) list.get(i)); + gbc = lookupInternalConstraints(list.get(i)); otherspan = sortByWidth ? gbc.gridwidth : gbc.gridheight; diff --git a/libjava/classpath/java/awt/LightweightDispatcher.java b/libjava/classpath/java/awt/LightweightDispatcher.java index 04196bd7796..39bdb887dc8 100644 --- a/libjava/classpath/java/awt/LightweightDispatcher.java +++ b/libjava/classpath/java/awt/LightweightDispatcher.java @@ -286,7 +286,8 @@ final class LightweightDispatcher private void redispatch(MouseEvent ev, Component target, int id) { Component source = ev.getComponent(); - if (target != null) + assert target != null; + if (target.isShowing()) { // Translate coordinates. int x = ev.getX(); diff --git a/libjava/classpath/java/awt/MenuShortcut.java b/libjava/classpath/java/awt/MenuShortcut.java index 259cbf1ae98..5216d3474ae 100644 --- a/libjava/classpath/java/awt/MenuShortcut.java +++ b/libjava/classpath/java/awt/MenuShortcut.java @@ -38,8 +38,6 @@ exception statement from your version. */ package java.awt; -import java.awt.event.KeyEvent; - /** * This class implements a keyboard accelerator for a menu item. * diff --git a/libjava/classpath/java/awt/color/ICC_Profile.java b/libjava/classpath/java/awt/color/ICC_Profile.java index 1072cd694db..e2efb3a8946 100644 --- a/libjava/classpath/java/awt/color/ICC_Profile.java +++ b/libjava/classpath/java/awt/color/ICC_Profile.java @@ -426,10 +426,15 @@ public class ICC_Profile implements Serializable System.arraycopy(headerData, 0, data, 0, ProfileHeader.HEADERSIZE); // read the rest - if (in.read(data, ProfileHeader.HEADERSIZE, - header.getSize() - ProfileHeader.HEADERSIZE) != header.getSize() - - ProfileHeader.HEADERSIZE) - throw new IOException("Incorrect profile size"); + int totalBytes = header.getSize() - ProfileHeader.HEADERSIZE; + int bytesLeft = totalBytes; + while (bytesLeft > 0) + { + int read = in.read(data, + ProfileHeader.HEADERSIZE + (totalBytes - bytesLeft), + bytesLeft); + bytesLeft -= read; + } return getInstance(data); } diff --git a/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java b/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java index 3973e528481..fb37b4fc733 100644 --- a/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java +++ b/libjava/classpath/java/awt/dnd/DragGestureRecognizer.java @@ -124,7 +124,7 @@ public abstract class DragGestureRecognizer implements Serializable public InputEvent getTriggerEvent() { - return events.size() > 0 ? (InputEvent) events.get(0) : null; + return events.size() > 0 ? events.get(0) : null; } /** diff --git a/libjava/classpath/java/awt/event/MouseEvent.java b/libjava/classpath/java/awt/event/MouseEvent.java index ad777e8f433..0ca833604a6 100644 --- a/libjava/classpath/java/awt/event/MouseEvent.java +++ b/libjava/classpath/java/awt/event/MouseEvent.java @@ -221,37 +221,8 @@ public class MouseEvent extends InputEvent int x, int y, int clickCount, boolean popupTrigger, int button) { - super(source, id, when, modifiers); - - this.x = x; - this.y = y; - this.clickCount = clickCount; - this.popupTrigger = popupTrigger; - this.button = button; - if (button < NOBUTTON || button > BUTTON3) - throw new IllegalArgumentException(); - if ((modifiers & EventModifier.OLD_MASK) != 0) - { - if ((modifiers & BUTTON1_MASK) != 0) - this.button = BUTTON1; - else if ((modifiers & BUTTON2_MASK) != 0) - this.button = BUTTON2; - else if ((modifiers & BUTTON3_MASK) != 0) - this.button = BUTTON3; - } - // clear the mouse button modifier masks if this is a button - // release event. - if (id == MOUSE_RELEASED) - this.modifiersEx &= ~(BUTTON1_DOWN_MASK - | BUTTON2_DOWN_MASK - | BUTTON3_DOWN_MASK); - - if (source != null) - { - Point screenLoc = source.getLocationOnScreen(); - absX = screenLoc.x + x; - absY = screenLoc.y + y; - } + this(source, id, when, modifiers, x, y, 0, 0, clickCount, popupTrigger, + button); } /** diff --git a/libjava/classpath/java/awt/font/LineBreakMeasurer.java b/libjava/classpath/java/awt/font/LineBreakMeasurer.java index 816c7745c2b..278bc847632 100644 --- a/libjava/classpath/java/awt/font/LineBreakMeasurer.java +++ b/libjava/classpath/java/awt/font/LineBreakMeasurer.java @@ -39,9 +39,7 @@ exception statement from your version. */ package java.awt.font; import java.text.AttributedCharacterIterator; -import java.text.AttributedString; import java.text.BreakIterator; -import java.awt.Shape; public final class LineBreakMeasurer { diff --git a/libjava/classpath/java/awt/font/TextMeasurer.java b/libjava/classpath/java/awt/font/TextMeasurer.java index 00cab8a878d..f4430bf6dfa 100644 --- a/libjava/classpath/java/awt/font/TextMeasurer.java +++ b/libjava/classpath/java/awt/font/TextMeasurer.java @@ -39,7 +39,6 @@ exception statement from your version. */ package java.awt.font; import java.text.AttributedCharacterIterator; -import java.text.AttributedString; import java.awt.Shape; /** diff --git a/libjava/classpath/java/awt/geom/Arc2D.java b/libjava/classpath/java/awt/geom/Arc2D.java index 8d5b01cd5bb..eb9a160932a 100644 --- a/libjava/classpath/java/awt/geom/Arc2D.java +++ b/libjava/classpath/java/awt/geom/Arc2D.java @@ -1279,7 +1279,7 @@ public abstract class Arc2D extends RectangularShape width = (float) r.getWidth(); height = (float) r.getHeight(); this.start = start; - this.extent = (float) extent; + this.extent = extent; } /** diff --git a/libjava/classpath/java/awt/geom/CubicCurve2D.java b/libjava/classpath/java/awt/geom/CubicCurve2D.java index 50c381194bb..d0d55984fd8 100644 --- a/libjava/classpath/java/awt/geom/CubicCurve2D.java +++ b/libjava/classpath/java/awt/geom/CubicCurve2D.java @@ -1714,10 +1714,10 @@ public abstract class CubicCurve2D implements Shape, Cloneable */ public Rectangle2D getBounds2D() { - float nx1 = (float) Math.min(Math.min(x1, ctrlx1), Math.min(ctrlx2, x2)); - float ny1 = (float) Math.min(Math.min(y1, ctrly1), Math.min(ctrly2, y2)); - float nx2 = (float) Math.max(Math.max(x1, ctrlx1), Math.max(ctrlx2, x2)); - float ny2 = (float) Math.max(Math.max(y1, ctrly1), Math.max(ctrly2, y2)); + float nx1 = Math.min(Math.min(x1, ctrlx1), Math.min(ctrlx2, x2)); + float ny1 = Math.min(Math.min(y1, ctrly1), Math.min(ctrly2, y2)); + float nx2 = Math.max(Math.max(x1, ctrlx1), Math.max(ctrlx2, x2)); + float ny2 = Math.max(Math.max(y1, ctrly1), Math.max(ctrly2, y2)); return new Rectangle2D.Float(nx1, ny1, nx2 - nx1, ny2 - ny1); } } diff --git a/libjava/classpath/java/awt/geom/QuadCurve2D.java b/libjava/classpath/java/awt/geom/QuadCurve2D.java index 41021dbc683..d247c79a5d5 100644 --- a/libjava/classpath/java/awt/geom/QuadCurve2D.java +++ b/libjava/classpath/java/awt/geom/QuadCurve2D.java @@ -1457,10 +1457,10 @@ public abstract class QuadCurve2D implements Shape, Cloneable */ public Rectangle2D getBounds2D() { - float nx1 = (float) Math.min(Math.min(x1, ctrlx), x2); - float ny1 = (float) Math.min(Math.min(y1, ctrly), y2); - float nx2 = (float) Math.max(Math.max(x1, ctrlx), x2); - float ny2 = (float) Math.max(Math.max(y1, ctrly), y2); + float nx1 = Math.min(Math.min(x1, ctrlx), x2); + float ny1 = Math.min(Math.min(y1, ctrly), y2); + float nx2 = Math.max(Math.max(x1, ctrlx), x2); + float ny2 = Math.max(Math.max(y1, ctrly), y2); return new Rectangle2D.Float(nx1, ny1, nx2 - nx1, ny2 - ny1); } } diff --git a/libjava/classpath/java/awt/im/InputContext.java b/libjava/classpath/java/awt/im/InputContext.java index c81993215e8..c2e09b6d112 100644 --- a/libjava/classpath/java/awt/im/InputContext.java +++ b/libjava/classpath/java/awt/im/InputContext.java @@ -216,12 +216,11 @@ public class InputContext recent.put(locale, im); return true; } - InputMethod next = (InputMethod) recent.get(locale); - outer: + InputMethod next = recent.get(locale); if (next != null) for (int i = 0, limit = descriptors.size(); i < limit; i++) { - InputMethodDescriptor d = (InputMethodDescriptor) descriptors.get(i); + InputMethodDescriptor d = descriptors.get(i); Locale[] list; try { diff --git a/libjava/classpath/java/awt/image/AffineTransformOp.java b/libjava/classpath/java/awt/image/AffineTransformOp.java index 849c5b05048..df9db7d9636 100644 --- a/libjava/classpath/java/awt/image/AffineTransformOp.java +++ b/libjava/classpath/java/awt/image/AffineTransformOp.java @@ -188,7 +188,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp if (dst == null) dst = createCompatibleDestImage(src, null); - Graphics2D gr = (Graphics2D) dst.createGraphics(); + Graphics2D gr = dst.createGraphics(); gr.setRenderingHints(hints); gr.drawImage(src, transform, null); return dst; diff --git a/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java b/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java index 44d5cec9d5f..491a2f51903 100644 --- a/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java +++ b/libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java @@ -158,7 +158,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter * @param srcOffset - Starting offset into the source pixel data array. * @param srcScansize - Source array scanline size. * @param rx,ry - Scaling factor. - * @param dstScansize - Destination array scanline size. + * @param destScansize - Destination array scanline size. */ private byte[] averagePixels(int srcx, int srcy, int srcw, int srch, ColorModel model, byte[] srcPixels, @@ -218,7 +218,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter * @param srcOffset - Starting offset into the source pixel data array. * @param srcScansize - Source array scanline size. * @param rx,ry - Scaling factor. - * @param dstScansize - Destination array scanline size. + * @param destScansize - Destination array scanline size. */ private int[] averagePixels(int srcx, int srcy, int srcw, int srch, ColorModel model, int[] srcPixels, diff --git a/libjava/classpath/java/awt/image/BufferedImage.java b/libjava/classpath/java/awt/image/BufferedImage.java index c9879461ce2..78623ccd928 100644 --- a/libjava/classpath/java/awt/image/BufferedImage.java +++ b/libjava/classpath/java/awt/image/BufferedImage.java @@ -41,8 +41,6 @@ package java.awt.image; import gnu.java.awt.Buffers; import gnu.java.awt.ClasspathGraphicsEnvironment; import gnu.java.awt.ComponentDataBlitOp; -import gnu.java.awt.peer.gtk.CairoSurface; - import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GraphicsEnvironment; diff --git a/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java b/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java index 4c5c436edfc..3a0d4152c7d 100644 --- a/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java +++ b/libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java @@ -69,9 +69,34 @@ public class PixelInterleavedSampleModel */ public SampleModel createCompatibleSampleModel(int width, int height) { + // Find minimum band offset. + int minBandoff = bandOffsets[0]; + int numBands = bandOffsets.length; + for (int i = 1; i < numBands; i++) + { + if (bandOffsets[i] < minBandoff) + { + minBandoff = bandOffsets[i]; + } + } + // Adjust band offsets so that minimum offset is at 0. + int[] bandOff; + if (minBandoff > 0) + { + bandOff = new int[numBands]; + for (int i = 0; i < numBands; i++) + { + bandOff[i] = bandOffsets[i] - minBandoff; + } + } + else + { + bandOff = bandOffsets; + } + // Adjust scanline stride for new width. return new PixelInterleavedSampleModel(dataType, width, height, - pixelStride, scanlineStride, - bandOffsets); + pixelStride, pixelStride * width, + bandOff); } diff --git a/libjava/classpath/java/awt/image/RGBImageFilter.java b/libjava/classpath/java/awt/image/RGBImageFilter.java index c777fecd901..3cd14239c99 100644 --- a/libjava/classpath/java/awt/image/RGBImageFilter.java +++ b/libjava/classpath/java/awt/image/RGBImageFilter.java @@ -245,7 +245,7 @@ public abstract class RGBImageFilter extends ImageFilter { for (int xp = 0; xp < w; xp++) { - filtered[xp] = model.getRGB((pixels[index] & 0xff)); + filtered[xp] = model.getRGB((pixels[index])); index++; } index += scansize - w; diff --git a/libjava/classpath/java/awt/image/Raster.java b/libjava/classpath/java/awt/image/Raster.java index d63e156f6ae..fb0950dabf3 100644 --- a/libjava/classpath/java/awt/image/Raster.java +++ b/libjava/classpath/java/awt/image/Raster.java @@ -302,7 +302,7 @@ public class Raster Point location) { SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(), - w, h, scanlineStride, pixelStride, bandOffsets); + w, h, pixelStride, scanlineStride, bandOffsets); return createWritableRaster(sm, dataBuffer, location); } diff --git a/libjava/classpath/java/beans/Beans.java b/libjava/classpath/java/beans/Beans.java index b3b0a422edd..2f6e0a991a5 100644 --- a/libjava/classpath/java/beans/Beans.java +++ b/libjava/classpath/java/beans/Beans.java @@ -309,7 +309,7 @@ public class Beans * Objects. * * @param bean the Bean to cast. - * @param newClass the Class to cast it to. + * @param newBeanClass the Class to cast it to. * * @return whether the Bean can be cast to the class type * in question. diff --git a/libjava/classpath/java/beans/DefaultPersistenceDelegate.java b/libjava/classpath/java/beans/DefaultPersistenceDelegate.java index 08f6174bb6e..c4328e03060 100644 --- a/libjava/classpath/java/beans/DefaultPersistenceDelegate.java +++ b/libjava/classpath/java/beans/DefaultPersistenceDelegate.java @@ -127,7 +127,7 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate { Method readMethod = propertyDescs[i].getReadMethod(); - args[i] = readMethod.invoke(oldInstance, null); + args[i] = readMethod.invoke(oldInstance); } } } @@ -186,7 +186,7 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate if (readMethod != null && writeMethod != null) { - Object oldValue = readMethod.invoke(oldInstance, null); + Object oldValue = readMethod.invoke(oldInstance); if (oldValue != null) out.writeStatement(new Statement(oldInstance, diff --git a/libjava/classpath/java/beans/Encoder.java b/libjava/classpath/java/beans/Encoder.java index cde1735f4fd..6dc36277f99 100644 --- a/libjava/classpath/java/beans/Encoder.java +++ b/libjava/classpath/java/beans/Encoder.java @@ -195,7 +195,7 @@ public class Encoder PersistenceDelegate pd = (PersistenceDelegate) delegates.get(type); - return (pd != null) ? pd : (PersistenceDelegate) defaultPersistenceDelegate; + return (pd != null) ? pd : defaultPersistenceDelegate; } /** diff --git a/libjava/classpath/java/beans/EventHandler.java b/libjava/classpath/java/beans/EventHandler.java index 318b274898a..5efbc8dc6d7 100644 --- a/libjava/classpath/java/beans/EventHandler.java +++ b/libjava/classpath/java/beans/EventHandler.java @@ -173,19 +173,17 @@ public class EventHandler implements InvocationHandler try { // Look for boolean property getter isProperty - getter = o.getClass().getMethod("is" + capitalize(prop), - null); + getter = o.getClass().getMethod("is" + capitalize(prop)); } catch (NoSuchMethodException nsme1) { try { // Look for regular property getter getProperty - getter = o.getClass().getMethod("get" + capitalize(prop), - null); + getter = o.getClass().getMethod("get" + capitalize(prop)); } catch(NoSuchMethodException nsme2) { try { // Finally look for a method of the name prop - getter = o.getClass().getMethod(prop, null); + getter = o.getClass().getMethod(prop); } catch(NoSuchMethodException nsme3) { // Ok, give up with an intelligent hint for the user. throw new RuntimeException("Method not called: Could not find a property or method '" + prop @@ -194,7 +192,7 @@ public class EventHandler implements InvocationHandler } } try { - Object val = getter.invoke(o, null); + Object val = getter.invoke(o); if (rest != null) return getProperty(val, rest); @@ -304,7 +302,7 @@ public class EventHandler implements InvocationHandler // more specification compliant than the JDK itself because this one will fail in such a case. try { - actionMethod = targetClass.getMethod(action, null); + actionMethod = targetClass.getMethod(action); } catch(NoSuchMethodException nsme) { @@ -342,7 +340,7 @@ public class EventHandler implements InvocationHandler throw new ArrayIndexOutOfBoundsException(0); // Invoke target.action(property) - return actionMethod.invoke(target, null); + return actionMethod.invoke(target); } catch(InvocationTargetException ite) { throw new RuntimeException(ite.getCause()); } catch(IllegalAccessException iae) { diff --git a/libjava/classpath/java/beans/PropertyChangeSupport.java b/libjava/classpath/java/beans/PropertyChangeSupport.java index e944e151251..ecadb146fd7 100644 --- a/libjava/classpath/java/beans/PropertyChangeSupport.java +++ b/libjava/classpath/java/beans/PropertyChangeSupport.java @@ -346,8 +346,8 @@ public class PropertyChangeSupport implements Serializable { if (oldVal != newVal) firePropertyChange(new PropertyChangeEvent(source, propertyName, - new Integer(oldVal), - new Integer(newVal))); + Integer.valueOf(oldVal), + Integer.valueOf(newVal))); } /** diff --git a/libjava/classpath/java/beans/VetoableChangeSupport.java b/libjava/classpath/java/beans/VetoableChangeSupport.java index 12051d2ffb0..f2b6a1df84d 100644 --- a/libjava/classpath/java/beans/VetoableChangeSupport.java +++ b/libjava/classpath/java/beans/VetoableChangeSupport.java @@ -349,8 +349,8 @@ public class VetoableChangeSupport implements Serializable { if (oldVal != newVal) fireVetoableChange(new PropertyChangeEvent(source, propertyName, - new Integer(oldVal), - new Integer(newVal))); + Integer.valueOf(oldVal), + Integer.valueOf(newVal))); } /** diff --git a/libjava/classpath/java/beans/XMLDecoder.java b/libjava/classpath/java/beans/XMLDecoder.java index 7618bb8cb0e..131cf3b0464 100644 --- a/libjava/classpath/java/beans/XMLDecoder.java +++ b/libjava/classpath/java/beans/XMLDecoder.java @@ -164,7 +164,7 @@ public class XMLDecoder * * @param in InputStream to read XML data from. * @param owner Owner object which can be accessed and modified while parsing. - * @param exceptionListener ExceptionListener instance to which exception notifications are send. + * @param listener ExceptionListener instance to which exception notifications are send. * @param cl ClassLoader instance that is used for calls to <code>Class.forName(String, boolean, ClassLoader)</code> * @since 1.5 */ diff --git a/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java b/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java index f354ff47448..1c27f98e57b 100644 --- a/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java +++ b/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java @@ -38,8 +38,6 @@ exception statement from your version. */ package java.beans.beancontext; -import gnu.classpath.NotImplementedException; - import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; @@ -88,11 +86,6 @@ public class BeanContextServicesSupport private BeanContextServiceProvider provider; - private BCSSProxyServiceProvider(BeanContextServiceProvider p) - { - provider = p; - } - public Iterator getCurrentServiceSelectors (BeanContextServices bcs, Class serviceClass) { @@ -427,7 +420,7 @@ public class BeanContextServicesSupport * Subclasses may envelope its behaviour in order to read further * serialized data to the stream. * - * @param oos the stream from which data is being deserialized. + * @param ois the stream from which data is being deserialized. * @throws IOException if an I/O error occurs. * @throws ClassNotFoundException if the class of a deserialized object * can not be found. diff --git a/libjava/classpath/java/beans/beancontext/BeanContextSupport.java b/libjava/classpath/java/beans/beancontext/BeanContextSupport.java index d57f5f8842a..7572af3f0f9 100644 --- a/libjava/classpath/java/beans/beancontext/BeanContextSupport.java +++ b/libjava/classpath/java/beans/beancontext/BeanContextSupport.java @@ -794,12 +794,12 @@ public class BeanContextSupport extends BeanContextChildSupport } /** - * Deerializes the children using the + * Deserializes the children using the * {@link #deserialize(ObjectInputStream, Collection} method * and then calls {@link childDeserializedHook(Object, BCSChild)} * for each child deserialized. * - * @param oos the output stream. + * @param ois the input stream. * @throws IOException if an I/O error occurs. */ public final void readChildren (ObjectInputStream ois) diff --git a/libjava/classpath/java/io/BufferedReader.java b/libjava/classpath/java/io/BufferedReader.java index 4849949c989..c52d15ec60c 100644 --- a/libjava/classpath/java/io/BufferedReader.java +++ b/libjava/classpath/java/io/BufferedReader.java @@ -89,11 +89,6 @@ public class BufferedReader extends Reader static final int DEFAULT_BUFFER_SIZE = 8192; /** - * The line buffer for <code>readLine</code>. - */ - private StringBuffer sbuf = null; - - /** * Create a new <code>BufferedReader</code> that will read from the * specified subordinate stream with a default buffer size of 8192 chars. * @@ -455,10 +450,7 @@ public class BufferedReader extends Reader pos++; return str; } - if (sbuf == null) - sbuf = new StringBuffer(200); - else - sbuf.setLength(0); + StringBuilder sbuf = new StringBuilder(200); sbuf.append(buffer, pos, i - pos); pos = i; // We only want to return null when no characters were read before diff --git a/libjava/classpath/java/io/CharArrayWriter.java b/libjava/classpath/java/io/CharArrayWriter.java index 0eead3ad35d..8cbc8aeac43 100644 --- a/libjava/classpath/java/io/CharArrayWriter.java +++ b/libjava/classpath/java/io/CharArrayWriter.java @@ -267,7 +267,7 @@ public class CharArrayWriter extends Writer * sequence is wrapped around an input buffer, the results will * depend on the current position and length of that buffer. * - * @param seq the character sequence to append. If seq is null, + * @param cs the character sequence to append. If seq is null, * then the string "null" (the string representation of null) * is appended. * @return a reference to this object. @@ -294,7 +294,7 @@ public class CharArrayWriter extends Writer * <code>append(seq.subSequence(start,end))</code> when the sequence * is not null. * - * @param seq the character sequence to append. If seq is null, + * @param cs the character sequence to append. If seq is null, * then the string "null" (the string representation of null) * is appended. * @param start the index of the first Unicode character to use from diff --git a/libjava/classpath/java/io/DataInputStream.java b/libjava/classpath/java/io/DataInputStream.java index d2604b51ffa..ad43498c8d7 100644 --- a/libjava/classpath/java/io/DataInputStream.java +++ b/libjava/classpath/java/io/DataInputStream.java @@ -1,5 +1,6 @@ /* DataInputStream.java -- FilteredInputStream that implements DataInput - Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2008 + Free Software Foundation This file is part of GNU Classpath. @@ -349,7 +350,7 @@ public class DataInputStream extends FilterInputStream implements DataInput */ public final String readLine() throws IOException { - StringBuffer strb = new StringBuffer(); + StringBuilder strb = new StringBuilder(); while (true) { @@ -590,13 +591,56 @@ public class DataInputStream extends FilterInputStream implements DataInput public static final String readUTF(DataInput in) throws IOException { final int UTFlen = in.readUnsignedShort (); - byte[] buf = new byte [UTFlen]; + + return readUTF(in, UTFlen); + } + + /** + * This method is similar to <code>readUTF</code>, but the + * UTF-8 byte length is in 64 bits. + * This method is not public. It is used by <code>ObjectInputStream</code>. + * + * @return The <code>String</code> read + * + * @exception EOFException If end of file is reached before reading + * the String + * @exception UTFDataFormatException If the data is not in UTF-8 format + * @exception IOException If any other error occurs + * + * @see DataOutput#writeUTFLong + */ + final String readUTFLong () throws IOException + { + long l = readLong (); + if (l > Integer.MAX_VALUE) + throw new IOException("The string length > Integer.MAX_VALUE"); + final int UTFlen = (int)l; + return readUTF (this, UTFlen); + } + + /** + * This method performs the main task of <code>readUTF</code> and + * <code>readUTFLong</code>. + * + * @param in The <code>DataInput</code> source to read from + * + * @param len The UTF-8 byte length of the String to be read + * + * @return The String read from the source + * + * @exception IOException If an error occurs + * + * @see DataInput#readUTF + */ + private static final String readUTF(DataInput in, int len) throws IOException + { + byte[] buf = new byte [len]; // This blocks until the entire string is available rather than // doing partial processing on the bytes that are available and then // blocking. An advantage of the latter is that Exceptions // could be thrown earlier. The former is a bit cleaner. - in.readFully (buf, 0, UTFlen); + in.readFully (buf, 0, len); return convertFromUTF (buf); } @@ -703,7 +747,7 @@ public class DataInputStream extends FilterInputStream implements DataInput { // Give StringBuffer an initial estimated size to avoid // enlarge buffer frequently - StringBuffer strbuf = new StringBuffer (buf.length / 2 + 2); + StringBuilder strbuf = new StringBuilder (buf.length / 2 + 2); for (int i = 0; i < buf.length; ) { diff --git a/libjava/classpath/java/io/DataOutputStream.java b/libjava/classpath/java/io/DataOutputStream.java index 6670c2dba13..435ff76d13e 100644 --- a/libjava/classpath/java/io/DataOutputStream.java +++ b/libjava/classpath/java/io/DataOutputStream.java @@ -1,5 +1,5 @@ /* DataOutputStream.java -- Writes primitive Java datatypes to streams - Copyright (C) 1998, 2001, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2003, 2005, 2008 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -379,19 +379,20 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput /** * Calculate the length, in bytes, of a <code>String</code> in Utf8 format. + * This method is package-private so that <code>ObjectOutputStream</code> + * may use it. The return type is long so that a long string whose + * Utf8 byte count is 64 bit long may be handled. * * @param value The <code>String</code> to measure * @param start String index at which to begin count * @param sum Starting Utf8 byte count * - * @throws UTFDataFormatException if result would exceed 65535 */ - private int getUTFlength(String value, int start, int sum) - throws IOException + long getUTFlength(String value, int start, long sum) { int len = value.length(); - for (int i = start; i < len && sum <= 65535; ++i) + for (int i = start; i < len; ++i) { char c = value.charAt(i); if (c >= '\u0001' && c <= '\u007f') @@ -402,9 +403,6 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput sum += 3; } - if (sum > 65535) - throw new UTFDataFormatException (); - return sum; } @@ -442,10 +440,70 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput */ public final synchronized void writeUTF(String value) throws IOException { + long l = getUTFlength(value, 0, 0); + if (l > 65535) + throw new UTFDataFormatException (); + writeUTFShort(value, (int)l); + } + + /** + * This method performs the main task of <code>writeUTF</code>. + * This method is package-private because ObjectOutputStream uses it. + * + * @param value The <code>String</code> to write to the output in UTF format + * + * @param bytelen The UTF-8 byte length of the <code>String</code>. When + * this method is called, the expected byte length must have been calculated + * by <code>getUTFlength</code>. + * + * @exception IOException If an error occurs + * + * @see DataInput#readUTF + */ + final synchronized void writeUTFShort(String value, int bytelen) + throws IOException + { + writeShort(bytelen); + writeUTFBytes(value); + } + + /** + * This method is similar to <code>writeUTF</code>, but it writes the + * UTF-8 byte length in 64 bits. + * This method is not public but <code>ObjectOutputStream</code> uses it. + * + * @param value The <code>String</code> to write to the output in UTF format + * + * @param bytelen The UTF-8 byte length of the <code>String</code>. When + * this method is called, the expected byte length must have been calculated + * by <code>getUTFlength</code>. + * + * @exception IOException If an error occurs + * + */ + final synchronized void writeUTFLong(String value, long bytelen) + throws IOException + { + writeLong(bytelen); + writeUTFBytes(value); + } + + /** + * This method performes the main task of <code>writeUTF</code> and + * <code>WriteUTFLong</code>, which is to write the UTF-8 byte + * sequence to the output. + * + * @param value The <code>String</code> to write to the output in UTF format + * + * @exception IOException If an error occurs + * + */ + private final synchronized void writeUTFBytes(String value) + throws IOException + { int len = value.length(); int i = 0; int pos = 0; - boolean lengthWritten = false; if (buf == null) buf = new byte[512]; @@ -472,14 +530,6 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput buf[pos++] = (byte) (0x80 | (0x3f & c)); } } - if (! lengthWritten) - { - if (i == len) - writeShort(pos); - else - writeShort(getUTFlength(value, i, pos)); - lengthWritten = true; - } write(buf, 0, pos); pos = 0; } diff --git a/libjava/classpath/java/io/File.java b/libjava/classpath/java/io/File.java index f34b4dd2b5c..cd11163509b 100644 --- a/libjava/classpath/java/io/File.java +++ b/libjava/classpath/java/io/File.java @@ -1293,6 +1293,73 @@ public class File implements Serializable, Comparable<File> } /** + * Get the total space for the partition pointed by this file path, in bytes. + * + * @return the total number of bytes in this partition. + * @since 1.6 + */ + public long getTotalSpace() + { + // check security manager. + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkPermission(new RuntimePermission("getFileSystemAttributes")); + checkRead(); + + return VMFile.getTotalSpace(path); + } + + /** + * Get the free space in the partition pointed by this file path, in bytes. + * + * @return the number of free bytes in this partition. + * @since 1.6 + */ + public long getFreeSpace() + { + // check security manager. + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkPermission(new RuntimePermission("getFileSystemAttributes")); + checkRead(); + + return VMFile.getFreeSpace(path); + } + + /** + * Get the usable space in the partition pointed by this file path, in bytes. + * This is not necessarily the same as the number returned by + * {@link #getFreeSpace()}. + * + * <strong>Implementation note</strong>: Unlike the RI, on Linux and UNIX + * like systems this methods take into account the reserved space for the + * "root" user. This means that the returned results will be a little + * different if a normal user or root perform the query. + * + * Also, the bytes returned should be interpreted as an hint, and may be + * different at each call of this method or even right after the method + * returns. + * + * @return the number of usable bytes in this partition. + * @since 1.6 + */ + public long getUsableSpace() + { + // check security manager. + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkPermission(new RuntimePermission("getFileSystemAttributes")); + checkRead(); + + // root users can use the reserved extra space + String user = System.getProperty("user.name"); + if (user != null && user.equals("root")) + return VMFile.getFreeSpace(path); + + return VMFile.getUsableSpace(path); + } + + /** * This method sets the file represented by this object to be read only. * A read only file or directory cannot be modified. Please note that * GNU systems allow read only files to be deleted if the directory it diff --git a/libjava/classpath/java/io/FileOutputStream.java b/libjava/classpath/java/io/FileOutputStream.java index d7561a9d79f..b012e604404 100644 --- a/libjava/classpath/java/io/FileOutputStream.java +++ b/libjava/classpath/java/io/FileOutputStream.java @@ -59,7 +59,7 @@ public class FileOutputStream extends OutputStream { private FileDescriptor fd; - private FileChannelImpl ch; + private final FileChannelImpl ch; /** * This method initializes a <code>FileOutputStream</code> object to write diff --git a/libjava/classpath/java/io/ObjectInputStream.java b/libjava/classpath/java/io/ObjectInputStream.java index 37b2b64489c..6b2a65133d8 100644 --- a/libjava/classpath/java/io/ObjectInputStream.java +++ b/libjava/classpath/java/io/ObjectInputStream.java @@ -1,5 +1,5 @@ /* ObjectInputStream.java -- Class used to read serialized objects - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2008 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -367,7 +367,6 @@ public class ObjectInputStream extends InputStream } case TC_STRING: - case TC_LONGSTRING: { if(dump) dumpElement("STRING="); String s = this.realInputStream.readUTF(); @@ -377,6 +376,16 @@ public class ObjectInputStream extends InputStream break; } + case TC_LONGSTRING: + { + if(dump) dumpElement("STRING="); + String s = this.realInputStream.readUTFLong(); + if(dump) dumpElementln(s); + ret_val = processResolution(null, s, assignNewHandle(s,shared), + shared); + break; + } + case TC_ARRAY: { if(dump) dumpElementln("ARRAY"); @@ -926,7 +935,7 @@ public class ObjectInputStream extends InputStream return null; ObjectStreamClass oclazz; - oclazz = (ObjectStreamClass)classLookupTable.get(clazz); + oclazz = classLookupTable.get(clazz); if (oclazz == null) return ObjectStreamClass.lookup(clazz); else diff --git a/libjava/classpath/java/io/ObjectOutputStream.java b/libjava/classpath/java/io/ObjectOutputStream.java index b1894b36882..303aed472d9 100644 --- a/libjava/classpath/java/io/ObjectOutputStream.java +++ b/libjava/classpath/java/io/ObjectOutputStream.java @@ -1,5 +1,5 @@ /* ObjectOutputStream.java -- Class used to write serialized objects - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -363,10 +363,22 @@ public class ObjectOutputStream extends OutputStream if (obj instanceof String) { - realOutput.writeByte(TC_STRING); - if (shared) - assignNewHandle(obj); - realOutput.writeUTF((String)obj); + String s = (String)obj; + long l = realOutput.getUTFlength(s, 0, 0); + if (l <= 65535) + { + realOutput.writeByte(TC_STRING); + if (shared) + assignNewHandle(obj); + realOutput.writeUTFShort(s, (int)l); + } + else + { + realOutput.writeByte(TC_LONGSTRING); + if (shared) + assignNewHandle(obj); + realOutput.writeUTFLong(s, l); + } break; } diff --git a/libjava/classpath/java/io/ObjectStreamClass.java b/libjava/classpath/java/io/ObjectStreamClass.java index 1f3ba73dc99..8ebf32c58a4 100644 --- a/libjava/classpath/java/io/ObjectStreamClass.java +++ b/libjava/classpath/java/io/ObjectStreamClass.java @@ -106,7 +106,7 @@ public class ObjectStreamClass implements Serializable if (cl == null) return null; - ObjectStreamClass osc = (ObjectStreamClass) classLookupTable.get(cl); + ObjectStreamClass osc = classLookupTable.get(cl); if (osc != null) return osc; @@ -830,7 +830,7 @@ outer: } if (loadedByBootOrApplicationClassLoader(cl)) - uidCache.put(cl,new Long(result)); + uidCache.put(cl,Long.valueOf(result)); } return result; } @@ -1074,7 +1074,7 @@ outer: try { - return (Externalizable)constructor.newInstance(null); + return (Externalizable)constructor.newInstance(); } catch(Exception x) { diff --git a/libjava/classpath/java/io/OutputStreamWriter.java b/libjava/classpath/java/io/OutputStreamWriter.java index 26363401f01..5ccceed70b0 100644 --- a/libjava/classpath/java/io/OutputStreamWriter.java +++ b/libjava/classpath/java/io/OutputStreamWriter.java @@ -91,17 +91,17 @@ public class OutputStreamWriter extends Writer /** * The charset encoder. */ - private CharsetEncoder encoder; + private final CharsetEncoder encoder; /** * java.io canonical name of the encoding. */ - private String encodingName; + private final String encodingName; /** * Buffer output before character conversion as it has costly overhead. */ - private CharBuffer outputBuffer; + private final CharBuffer outputBuffer; private final static int BUFFER_SIZE = 1024; /** @@ -120,7 +120,11 @@ public class OutputStreamWriter extends Writer public OutputStreamWriter (OutputStream out, String encoding_scheme) throws UnsupportedEncodingException { + CharsetEncoder encoder; + String encodingName; this.out = out; + outputBuffer = CharBuffer.allocate(BUFFER_SIZE); + try { // Don't use NIO if avoidable @@ -128,44 +132,44 @@ public class OutputStreamWriter extends Writer { encodingName = "ISO8859_1"; encoder = null; - return; - } - - /* - * Workraround for encodings with a byte-order-mark. - * We only want to write it once per stream. - */ - try - { - if(encoding_scheme.equalsIgnoreCase("UnicodeBig") || - encoding_scheme.equalsIgnoreCase("UTF-16") || - encoding_scheme.equalsIgnoreCase("UTF16")) - { - encoding_scheme = "UTF-16BE"; - out.write((byte)0xFE); - out.write((byte)0xFF); - } - else if(encoding_scheme.equalsIgnoreCase("UnicodeLittle")){ - encoding_scheme = "UTF-16LE"; - out.write((byte)0xFF); - out.write((byte)0xFE); - } - } - catch(IOException ioe) - { } - - outputBuffer = CharBuffer.allocate(BUFFER_SIZE); - - Charset cs = EncodingHelper.getCharset(encoding_scheme); - if(cs == null) - throw new UnsupportedEncodingException("Encoding "+encoding_scheme+ - " unknown"); - encoder = cs.newEncoder(); - encodingName = EncodingHelper.getOldCanonical(cs.name()); - - encoder.onMalformedInput(CodingErrorAction.REPLACE); - encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); + else + { + /* + * Workaround for encodings with a byte-order-mark. + * We only want to write it once per stream. + */ + try + { + if(encoding_scheme.equalsIgnoreCase("UnicodeBig") || + encoding_scheme.equalsIgnoreCase("UTF-16") || + encoding_scheme.equalsIgnoreCase("UTF16")) + { + encoding_scheme = "UTF-16BE"; + out.write((byte)0xFE); + out.write((byte)0xFF); + } + else if(encoding_scheme.equalsIgnoreCase("UnicodeLittle")) + { + encoding_scheme = "UTF-16LE"; + out.write((byte)0xFF); + out.write((byte)0xFE); + } + } + catch(IOException ioe) + { + } + + Charset cs = EncodingHelper.getCharset(encoding_scheme); + if(cs == null) + throw new UnsupportedEncodingException("Encoding "+encoding_scheme+ + " unknown"); + encoder = cs.newEncoder(); + encodingName = EncodingHelper.getOldCanonical(cs.name()); + + encoder.onMalformedInput(CodingErrorAction.REPLACE); + encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); + } } catch(RuntimeException e) { @@ -174,6 +178,8 @@ public class OutputStreamWriter extends Writer encoder = null; encodingName = "ISO8859_1"; } + this.encoder = encoder; + this.encodingName = encodingName; } /** @@ -184,8 +190,10 @@ public class OutputStreamWriter extends Writer */ public OutputStreamWriter (OutputStream out) { + CharsetEncoder encoder; + String encodingName; this.out = out; - outputBuffer = null; + outputBuffer = CharBuffer.allocate(BUFFER_SIZE); try { String encoding = System.getProperty("file.encoding"); @@ -203,8 +211,9 @@ public class OutputStreamWriter extends Writer { encoder.onMalformedInput(CodingErrorAction.REPLACE); encoder.onUnmappableCharacter(CodingErrorAction.REPLACE); - outputBuffer = CharBuffer.allocate(BUFFER_SIZE); } + this.encoder = encoder; + this.encodingName = encodingName; } /** @@ -345,7 +354,7 @@ public class OutputStreamWriter extends Writer { byte[] b = new byte[count]; for(int i=0;i<count;i++) - b[i] = (byte)((buf[offset+i] <= 0xFF)?buf[offset+i]:'?'); + b[i] = nullConversion(buf[offset+i]); out.write(b); } else { try { @@ -369,6 +378,10 @@ public class OutputStreamWriter extends Writer } } + private byte nullConversion(char c) { + return (byte)((c <= 0xFF)?c:'?'); + } + /** * This method writes <code>count</code> bytes from the specified * <code>String</code> starting at position <code>offset</code> into the @@ -398,7 +411,20 @@ public class OutputStreamWriter extends Writer */ public void write (int ch) throws IOException { - write(new char[]{ (char)ch }, 0, 1); + // No buffering, no encoding ... just pass through + if (encoder == null && outputBuffer == null) { + out.write(nullConversion((char)ch)); + } else { + if (outputBuffer != null) { + if (outputBuffer.remaining() == 0) { + writeConvert(outputBuffer.array(), 0, BUFFER_SIZE); + outputBuffer.clear(); + } + outputBuffer.put((char)ch); + } else { + writeConvert(new char[]{ (char)ch }, 0, 1); + } + } } } // class OutputStreamWriter diff --git a/libjava/classpath/java/io/PipedInputStream.java b/libjava/classpath/java/io/PipedInputStream.java index c0396d206c6..924cc6662f0 100644 --- a/libjava/classpath/java/io/PipedInputStream.java +++ b/libjava/classpath/java/io/PipedInputStream.java @@ -82,7 +82,7 @@ public class PipedInputStream extends InputStream * This is the internal circular buffer used for storing bytes written * to the pipe and from which bytes are read by this stream */ - protected byte[] buffer = new byte[PIPE_SIZE]; + protected byte[] buffer = null; /** * The index into buffer where the next byte from the connected @@ -107,9 +107,26 @@ public class PipedInputStream extends InputStream */ public PipedInputStream() { + this(PIPE_SIZE); } /** + * Creates a new <code>PipedInputStream</code> of the given size that is not + * connected to a <code>PipedOutputStream</code>. + * It must be connected before bytes can be read from this stream. + * + * @since 1.6 + * @since IllegalArgumentException If pipeSize <= 0. + */ + public PipedInputStream(int pipeSize) throws IllegalArgumentException + { + if (pipeSize <= 0) + throw new IllegalArgumentException("pipeSize must be > 0"); + + this.buffer = new byte[pipeSize]; + } + + /** * This constructor creates a new <code>PipedInputStream</code> and connects * it to the passed in <code>PipedOutputStream</code>. The stream is then * ready for reading. @@ -121,10 +138,29 @@ public class PipedInputStream extends InputStream */ public PipedInputStream(PipedOutputStream source) throws IOException { + this(); connect(source); } /** + * This constructor creates a new <code>PipedInputStream</code> of the given + * size and connects it to the passed in <code>PipedOutputStream</code>. + * The stream is then ready for reading. + * + * @param source The <code>PipedOutputStream</code> to connect this + * stream to + * + * @since 1.6 + * @exception IOException If <code>source</code> is already connected. + */ + public PipedInputStream(PipedOutputStream source, int pipeSize) + throws IOException + { + this(pipeSize); + connect(source); + } + + /** * This method connects this stream to the passed in * <code>PipedOutputStream</code>. * This stream is then ready for reading. If this stream is already diff --git a/libjava/classpath/java/io/PrintStream.java b/libjava/classpath/java/io/PrintStream.java index 2d747c8c8f4..9347ac39795 100644 --- a/libjava/classpath/java/io/PrintStream.java +++ b/libjava/classpath/java/io/PrintStream.java @@ -76,7 +76,7 @@ public class PrintStream extends FilterOutputStream implements Appendable /** * Encoding name */ - private String encoding; + private final String encoding; /** * This boolean indicates whether or not an error has ever occurred @@ -88,7 +88,7 @@ public class PrintStream extends FilterOutputStream implements Appendable * This is <code>true</code> if auto-flush is enabled, * <code>false</code> otherwise */ - private boolean auto_flush; + private final boolean auto_flush; /** * This method initializes a new <code>PrintStream</code> object to write @@ -185,16 +185,17 @@ public class PrintStream extends FilterOutputStream implements Appendable public PrintStream (OutputStream out, boolean auto_flush) { super (out); - + String encoding; try { - this.encoding = SystemProperties.getProperty("file.encoding"); + encoding = SystemProperties.getProperty("file.encoding"); } catch (SecurityException e){ - this.encoding = "ISO8859_1"; + encoding = "ISO8859_1"; } catch (IllegalArgumentException e){ - this.encoding = "ISO8859_1"; + encoding = "ISO8859_1"; } catch (NullPointerException e){ - this.encoding = "ISO8859_1"; + encoding = "ISO8859_1"; } + this.encoding = encoding; this.auto_flush = auto_flush; } diff --git a/libjava/classpath/java/lang/Class.java b/libjava/classpath/java/lang/Class.java index d3df881367c..0aafe80f83c 100644 --- a/libjava/classpath/java/lang/Class.java +++ b/libjava/classpath/java/lang/Class.java @@ -1,5 +1,5 @@ /* Class.java -- Representation of a Java class. - Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006 + Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation This file is part of GNU Classpath. @@ -66,7 +66,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; -import java.util.HashSet; +import java.util.LinkedHashSet; /** @@ -596,7 +596,7 @@ public final class Class<T> */ private Field[] internalGetFields() { - HashSet<Field> set = new HashSet<Field>(); + LinkedHashSet<Field> set = new LinkedHashSet<Field>(); set.addAll(Arrays.asList(getDeclaredFields(true))); Class[] interfaces = getInterfaces(); for (int i = 0; i < interfaces.length; i++) @@ -1151,7 +1151,7 @@ public final class Class<T> } try { - return constructor.newInstance(null); + return constructor.newInstance(); } catch (InvocationTargetException e) { diff --git a/libjava/classpath/java/lang/Double.java b/libjava/classpath/java/lang/Double.java index c716203148b..466d48205ea 100644 --- a/libjava/classpath/java/lang/Double.java +++ b/libjava/classpath/java/lang/Double.java @@ -518,7 +518,10 @@ public final class Double extends Number implements Comparable<Double> */ public static long doubleToLongBits(double value) { - return VMDouble.doubleToLongBits(value); + if (isNaN(value)) + return 0x7ff8000000000000L; + else + return VMDouble.doubleToRawLongBits(value); } /** @@ -587,16 +590,25 @@ public final class Double extends Number implements Comparable<Double> */ public static int compare(double x, double y) { - if (isNaN(x)) - return isNaN(y) ? 0 : 1; - if (isNaN(y)) - return -1; - // recall that 0.0 == -0.0, so we convert to infinites and try again - if (x == 0 && y == 0) - return (int) (1 / x - 1 / y); - if (x == y) - return 0; - - return x > y ? 1 : -1; + // handle the easy cases: + if (x < y) + return -1; + if (x > y) + return 1; + + // handle equality respecting that 0.0 != -0.0 (hence not using x == y): + long lx = doubleToRawLongBits(x); + long ly = doubleToRawLongBits(y); + if (lx == ly) + return 0; + + // handle NaNs: + if (x != x) + return (y != y) ? 0 : 1; + else if (y != y) + return -1; + + // handle +/- 0.0 + return (lx < ly) ? -1 : 1; } } diff --git a/libjava/classpath/java/lang/Float.java b/libjava/classpath/java/lang/Float.java index dc39ec2af20..72f31b57eb4 100644 --- a/libjava/classpath/java/lang/Float.java +++ b/libjava/classpath/java/lang/Float.java @@ -526,7 +526,10 @@ public final class Float extends Number implements Comparable<Float> */ public static int floatToIntBits(float value) { - return VMFloat.floatToIntBits(value); + if (isNaN(value)) + return 0x7fc00000; + else + return VMFloat.floatToRawIntBits(value); } /** @@ -594,16 +597,25 @@ public final class Float extends Number implements Comparable<Float> */ public static int compare(float x, float y) { - if (isNaN(x)) - return isNaN(y) ? 0 : 1; - if (isNaN(y)) - return -1; - // recall that 0.0 == -0.0, so we convert to infinities and try again - if (x == 0 && y == 0) - return (int) (1 / x - 1 / y); - if (x == y) - return 0; - - return x > y ? 1 : -1; + // handle the easy cases: + if (x < y) + return -1; + if (x > y) + return 1; + + // handle equality respecting that 0.0 != -0.0 (hence not using x == y): + int ix = floatToRawIntBits(x); + int iy = floatToRawIntBits(y); + if (ix == iy) + return 0; + + // handle NaNs: + if (x != x) + return (y != y) ? 0 : 1; + else if (y != y) + return -1; + + // handle +/- 0.0 + return (ix < iy) ? -1 : 1; } } diff --git a/libjava/classpath/java/lang/Integer.java b/libjava/classpath/java/lang/Integer.java index 62907ff7753..cbf5274f0fc 100644 --- a/libjava/classpath/java/lang/Integer.java +++ b/libjava/classpath/java/lang/Integer.java @@ -705,16 +705,19 @@ public final class Integer extends Number implements Comparable<Integer> if (len == 0) throw new NumberFormatException("string length is null"); int ch = str.charAt(index); - if (ch == '-' || ch == '+') + if (ch == '-') { if (len == 1) - if (ch == '-') - throw new NumberFormatException("pure '-'"); - else if (ch == '+') - throw new NumberFormatException("pure '+'"); + throw new NumberFormatException("pure '-'"); isNeg = true; ch = str.charAt(++index); } + else if (ch == '+') + { + if (len == 1) + throw new NumberFormatException("pure '+'"); + ch = str.charAt(++index); + } if (decode) { if (ch == '0') diff --git a/libjava/classpath/java/lang/Long.java b/libjava/classpath/java/lang/Long.java index f0fbc904c36..08ac3976ca7 100644 --- a/libjava/classpath/java/lang/Long.java +++ b/libjava/classpath/java/lang/Long.java @@ -296,7 +296,7 @@ public final class Long extends Number implements Comparable<Long> * @return the <code>Long</code> * @since 1.5 */ - public static synchronized Long valueOf(long val) + public static Long valueOf(long val) { // We aren't required to cache here. We could, though perhaps we // ought to consider that as an empirical question. diff --git a/libjava/classpath/java/lang/StackTraceElement.java b/libjava/classpath/java/lang/StackTraceElement.java index 746dd63db49..73e1a463dd7 100644 --- a/libjava/classpath/java/lang/StackTraceElement.java +++ b/libjava/classpath/java/lang/StackTraceElement.java @@ -202,7 +202,7 @@ public final class StackTraceElement implements Serializable */ public String toString() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); if (declaringClass != null) { sb.append(declaringClass); diff --git a/libjava/classpath/java/lang/String.java b/libjava/classpath/java/lang/String.java index ecb46881148..0b56accf708 100644 --- a/libjava/classpath/java/lang/String.java +++ b/libjava/classpath/java/lang/String.java @@ -1303,13 +1303,13 @@ public final class String break; if (i < 0) return this; - char[] newStr = (char[]) value.clone(); - newStr[x] = newChar; + char[] newStr = toCharArray(); + newStr[x - offset] = newChar; while (--i >= 0) if (value[++x] == oldChar) - newStr[x] = newChar; + newStr[x - offset] = newChar; // Package constructor avoids an array copy. - return new String(newStr, offset, count, true); + return new String(newStr, 0, count, true); } /** @@ -1431,27 +1431,18 @@ public final class String } /** - * Lowercases this String according to a particular locale. This uses - * Unicode's special case mappings, as applied to the given Locale, so the - * resulting string may be a different length. - * - * @param loc locale to use - * @return new lowercased String, or this if no characters were lowercased - * @throws NullPointerException if loc is null - * @see #toUpperCase(Locale) - * @since 1.1 + * Convert string to lower case for a Turkish locale that requires special + * handling of '\u0049' */ - public String toLowerCase(Locale loc) + private String toLowerCaseTurkish() { // First, see if the current string is already lower case. - boolean turkish = "tr".equals(loc.getLanguage()); int i = count; int x = offset - 1; while (--i >= 0) { char ch = value[++x]; - if ((turkish && ch == '\u0049') - || ch != Character.toLowerCase(ch)) + if ((ch == '\u0049') || ch != Character.toLowerCase(ch)) break; } if (i < 0) @@ -1459,17 +1450,75 @@ public final class String // Now we perform the conversion. Fortunately, there are no multi-character // lowercase expansions in Unicode 3.0.0. - char[] newStr = (char[]) value.clone(); + char[] newStr = new char[count]; + VMSystem.arraycopy(value, offset, newStr, 0, x - offset); do { char ch = value[x]; // Hardcoded special case. - newStr[x++] = (turkish && ch == '\u0049') ? '\u0131' - : Character.toLowerCase(ch); + if (ch != '\u0049') + { + newStr[x - offset] = Character.toLowerCase(ch); + } + else + { + newStr[x - offset] = '\u0131'; + } + x++; } while (--i >= 0); // Package constructor avoids an array copy. - return new String(newStr, offset, count, true); + return new String(newStr, 0, count, true); + } + + /** + * Lowercases this String according to a particular locale. This uses + * Unicode's special case mappings, as applied to the given Locale, so the + * resulting string may be a different length. + * + * @param loc locale to use + * @return new lowercased String, or this if no characters were lowercased + * @throws NullPointerException if loc is null + * @see #toUpperCase(Locale) + * @since 1.1 + */ + public String toLowerCase(Locale loc) + { + // First, see if the current string is already lower case. + + // Is loc turkish? String equality test is ok as Locale.language is interned + if ("tr" == loc.getLanguage()) + { + return toLowerCaseTurkish(); + } + else + { + int i = count; + int x = offset - 1; + while (--i >= 0) + { + char ch = value[++x]; + if (ch != Character.toLowerCase(ch)) + break; + } + if (i < 0) + return this; + + // Now we perform the conversion. Fortunately, there are no + // multi-character lowercase expansions in Unicode 3.0.0. + char[] newStr = new char[count]; + VMSystem.arraycopy(value, offset, newStr, 0, x - offset); + do + { + char ch = value[x]; + // Hardcoded special case. + newStr[x - offset] = Character.toLowerCase(ch); + x++; + } + while (--i >= 0); + // Package constructor avoids an array copy. + return new String(newStr, 0, count, true); + } } /** @@ -1487,21 +1536,12 @@ public final class String } /** - * Uppercases this String according to a particular locale. This uses - * Unicode's special case mappings, as applied to the given Locale, so the - * resulting string may be a different length. - * - * @param loc locale to use - * @return new uppercased String, or this if no characters were uppercased - * @throws NullPointerException if loc is null - * @see #toLowerCase(Locale) - * @since 1.1 + * Uppercase this string for a Turkish locale */ - public String toUpperCase(Locale loc) + private String toUpperCaseTurkish() { // First, see how many characters we have to grow by, as well as if the // current string is already upper case. - boolean turkish = "tr".equals(loc.getLanguage()); int expand = 0; boolean unchanged = true; int i = count; @@ -1511,7 +1551,7 @@ public final class String char ch = value[--x]; expand += upperCaseExpansion(ch); unchanged = (unchanged && expand == 0 - && ! (turkish && ch == '\u0069') + && ch != '\u0069' && ch == Character.toUpperCase(ch)); } if (unchanged) @@ -1521,16 +1561,24 @@ public final class String i = count; if (expand == 0) { - char[] newStr = (char[]) value.clone(); + char[] newStr = new char[count]; + VMSystem.arraycopy(value, offset, newStr, 0, count - (x - offset)); while (--i >= 0) { char ch = value[x]; // Hardcoded special case. - newStr[x++] = (turkish && ch == '\u0069') ? '\u0130' - : Character.toUpperCase(ch); + if (ch != '\u0069') + { + newStr[x - offset] = Character.toUpperCase(ch); + } + else + { + newStr[x - offset] = '\u0130'; + } + x++; } // Package constructor avoids an array copy. - return new String(newStr, offset, count, true); + return new String(newStr, 0, count, true); } // Expansion is necessary. @@ -1540,7 +1588,7 @@ public final class String { char ch = value[x++]; // Hardcoded special case. - if (turkish && ch == '\u0069') + if (ch == '\u0069') { newStr[j++] = '\u0130'; continue; @@ -1560,6 +1608,79 @@ public final class String } /** + * Uppercases this String according to a particular locale. This uses + * Unicode's special case mappings, as applied to the given Locale, so the + * resulting string may be a different length. + * + * @param loc locale to use + * @return new uppercased String, or this if no characters were uppercased + * @throws NullPointerException if loc is null + * @see #toLowerCase(Locale) + * @since 1.1 + */ + public String toUpperCase(Locale loc) + { + // First, see how many characters we have to grow by, as well as if the + // current string is already upper case. + + // Is loc turkish? String equality test is ok as Locale.language is interned + if ("tr" == loc.getLanguage()) + { + return toUpperCaseTurkish(); + } + else + { + int expand = 0; + boolean unchanged = true; + int i = count; + int x = i + offset; + while (--i >= 0) + { + char ch = value[--x]; + expand += upperCaseExpansion(ch); + unchanged = (unchanged && expand == 0 + && ch == Character.toUpperCase(ch)); + } + if (unchanged) + return this; + + // Now we perform the conversion. + i = count; + if (expand == 0) + { + char[] newStr = new char[count]; + VMSystem.arraycopy(value, offset, newStr, 0, count - (x - offset)); + while (--i >= 0) + { + char ch = value[x]; + newStr[x - offset] = Character.toUpperCase(ch); + x++; + } + // Package constructor avoids an array copy. + return new String(newStr, 0, count, true); + } + + // Expansion is necessary. + char[] newStr = new char[count + expand]; + int j = 0; + while (--i >= 0) + { + char ch = value[x++]; + expand = upperCaseExpansion(ch); + if (expand > 0) + { + int index = upperCaseIndex(ch); + while (expand-- >= 0) + newStr[j++] = upperExpand[index++]; + } + else + newStr[j++] = Character.toUpperCase(ch); + } + // Package constructor avoids an array copy. + return new String(newStr, 0, newStr.length, true); + } + } + /** * Uppercases this String. This uses Unicode's special case mappings, as * applied to the platform's default Locale, so the resulting string may * be a different length. @@ -1617,9 +1738,6 @@ public final class String */ public char[] toCharArray() { - if (count == value.length) - return (char[]) value.clone(); - char[] copy = new char[count]; VMSystem.arraycopy(value, offset, copy, 0, count); return copy; diff --git a/libjava/classpath/java/lang/System.java b/libjava/classpath/java/lang/System.java index 68d76fc2164..9fd6bfe12cd 100644 --- a/libjava/classpath/java/lang/System.java +++ b/libjava/classpath/java/lang/System.java @@ -832,7 +832,7 @@ public final class System * Blocks the retention of all elements in the specified * collection from the collection. * - * @param c the collection of elements to retain. + * @param coll the collection of elements to retain. * @return true if the other elements were removed. * @throws NullPointerException if the collection is null. * @throws NullPointerException if any collection entry is null. diff --git a/libjava/classpath/java/lang/Throwable.java b/libjava/classpath/java/lang/Throwable.java index c47a14bf040..72f9e7f520b 100644 --- a/libjava/classpath/java/lang/Throwable.java +++ b/libjava/classpath/java/lang/Throwable.java @@ -411,7 +411,7 @@ public class Throwable implements Serializable // different threads to get mixed up when written to the same PrintWriter. private String stackTraceString() { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); // Main stacktrace StackTraceElement[] stack = getStackTrace(); @@ -455,7 +455,7 @@ public class Throwable implements Serializable // Adds to the given StringBuffer a line containing the name and // all stacktrace elements minus the last equal ones. - private static void stackTraceStringBuffer(StringBuffer sb, String name, + private static void stackTraceStringBuffer(StringBuilder sb, String name, StackTraceElement[] stack, int equal) { String nl = StaticData.nl; diff --git a/libjava/classpath/java/lang/management/ThreadInfo.java b/libjava/classpath/java/lang/management/ThreadInfo.java index 884f5af5e9e..5b8856d3599 100644 --- a/libjava/classpath/java/lang/management/ThreadInfo.java +++ b/libjava/classpath/java/lang/management/ThreadInfo.java @@ -192,134 +192,6 @@ public class ThreadInfo /** * Constructs a new {@link ThreadInfo} corresponding - * to the thread specified. - * - * @param thread the thread on which the new instance - * will be based. - * @param blockedCount the number of times the thread - * has been blocked. - * @param blockedTime the accumulated number of milliseconds - * the specified thread has been blocked - * (only used with contention monitoring enabled) - * @param lock the monitor lock the thread is waiting for - * (only used if blocked) - * @param lockOwner the thread which owns the monitor lock, or - * <code>null</code> if it doesn't have an owner - * (only used if blocked) - * @param waitedCount the number of times the thread has been in a - * waiting state. - * @param waitedTime the accumulated number of milliseconds the - * specified thread has been waiting - * (only used with contention monitoring enabled) - * @param isInNative true if the thread is in a native method. - * @param isSuspended true if the thread is suspended. - * @param trace the stack trace of the thread to a pre-determined - * depth (see VMThreadMXBeanImpl) - */ - private ThreadInfo(Thread thread, long blockedCount, long blockedTime, - Object lock, Thread lockOwner, long waitedCount, - long waitedTime, boolean isInNative, boolean isSuspended, - StackTraceElement[] trace) - { - this(thread, blockedCount, blockedTime, lock, lockOwner, waitedCount, - waitedTime, isInNative, isSuspended, trace, new MonitorInfo[]{}, - new LockInfo[]{}); - } - - /** - * Constructs a new {@link ThreadInfo} corresponding - * to the thread specified. - * - * @param thread the thread on which the new instance - * will be based. - * @param blockedCount the number of times the thread - * has been blocked. - * @param blockedTime the accumulated number of milliseconds - * the specified thread has been blocked - * (only used with contention monitoring enabled) - * @param lock the monitor lock the thread is waiting for - * (only used if blocked) - * @param lockOwner the thread which owns the monitor lock, or - * <code>null</code> if it doesn't have an owner - * (only used if blocked) - * @param waitedCount the number of times the thread has been in a - * waiting state. - * @param waitedTime the accumulated number of milliseconds the - * specified thread has been waiting - * (only used with contention monitoring enabled) - * @param isInNative true if the thread is in a native method. - * @param isSuspended true if the thread is suspended. - * @param trace the stack trace of the thread to a pre-determined - * depth (see VMThreadMXBeanImpl) - * @param lockedMonitors an array of {@link MonitorInfo} objects - * representing locks held on object monitors - * by the thread. - * @param lockedSynchronizers an array of {@link LockInfo} objects - * representing locks held on ownable - * synchronizers by the thread. - * @since 1.6 - */ - private ThreadInfo(Thread thread, long blockedCount, long blockedTime, - Object lock, Thread lockOwner, long waitedCount, - long waitedTime, boolean isInNative, boolean isSuspended, - StackTraceElement[] trace, MonitorInfo[] lockedMonitors, - LockInfo[] lockedSynchronizers) - { - this(thread.getId(), thread.getName(), thread.getState(), blockedCount, blockedTime, - lock == null ? null : lock.getClass().getName() + "@" + - Integer.toHexString(System.identityHashCode(lock)), - lockOwner == null ? -1 : lockOwner.getId(), - lockOwner == null ? null : lockOwner.getName(), - waitedCount, waitedTime, isInNative, isSuspended, - trace, lockedMonitors, lockedSynchronizers); - } - - /** - * Constructs a new {@link ThreadInfo} corresponding - * to the thread details specified. - * - * @param threadId the id of the thread on which this - * new instance will be based. - * @param threadName the name of the thread on which - * this new instance will be based. - * @param threadState the state of the thread on which - * this new instance will be based. - * @param blockedCount the number of times the thread - * has been blocked. - * @param blockedTime the accumulated number of milliseconds - * the specified thread has been blocked - * (only used with contention monitoring enabled) - * @param lockName the name of the monitor lock the thread is waiting for - * (only used if blocked) - * @param lockOwnerId the id of the thread which owns the monitor - * lock, or <code>-1</code> if it doesn't have an owner - * (only used if blocked) - * @param lockOwnerName the name of the thread which owns the monitor - * lock, or <code>null</code> if it doesn't have an - * owner (only used if blocked) - * @param waitedCount the number of times the thread has been in a - * waiting state. - * @param waitedTime the accumulated number of milliseconds the - * specified thread has been waiting - * (only used with contention monitoring enabled) - * @param isInNative true if the thread is in a native method. - * @param isSuspended true if the thread is suspended. - * @param trace the stack trace of the thread to a pre-determined - * depth (see VMThreadMXBeanImpl) - */ - private ThreadInfo(long threadId, String threadName, Thread.State threadState, - long blockedCount, long blockedTime, String lockName, - long lockOwnerId, String lockOwnerName, long waitedCount, - long waitedTime, boolean isInNative, boolean isSuspended, - StackTraceElement[] trace) - { - this(threadId, threadName, threadState, blockedCount, blockedTime, - lockName, lockOwnerId, lockOwnerName, waitedCount, waitedTime, - isInNative, isSuspended, trace, new MonitorInfo[]{}, new LockInfo[]{}); - } - - /** - * Constructs a new {@link ThreadInfo} corresponding * to the thread details specified. * * @param threadId the id of the thread on which this diff --git a/libjava/classpath/java/lang/reflect/Array.java b/libjava/classpath/java/lang/reflect/Array.java index fee9f0172ee..d64e36c3790 100644 --- a/libjava/classpath/java/lang/reflect/Array.java +++ b/libjava/classpath/java/lang/reflect/Array.java @@ -209,19 +209,19 @@ public final class Array if (array instanceof boolean[]) return ((boolean[]) array)[index] ? Boolean.TRUE : Boolean.FALSE; if (array instanceof byte[]) - return new Byte(((byte[]) array)[index]); + return Byte.valueOf(((byte[]) array)[index]); if (array instanceof char[]) - return new Character(((char[]) array)[index]); + return Character.valueOf(((char[]) array)[index]); if (array instanceof short[]) - return new Short(((short[]) array)[index]); + return Short.valueOf(((short[]) array)[index]); if (array instanceof int[]) - return new Integer(((int[]) array)[index]); + return Integer.valueOf(((int[]) array)[index]); if (array instanceof long[]) - return new Long(((long[]) array)[index]); + return Long.valueOf(((long[]) array)[index]); if (array instanceof float[]) - return new Float(((float[]) array)[index]); + return Float.valueOf(((float[]) array)[index]); if (array instanceof double[]) - return new Double(((double[]) array)[index]); + return Double.valueOf(((double[]) array)[index]); if (array == null) throw new NullPointerException(); throw new IllegalArgumentException(); diff --git a/libjava/classpath/java/lang/reflect/Proxy.java b/libjava/classpath/java/lang/reflect/Proxy.java index ef743f6bcb0..6c1e975a287 100644 --- a/libjava/classpath/java/lang/reflect/Proxy.java +++ b/libjava/classpath/java/lang/reflect/Proxy.java @@ -471,9 +471,9 @@ public class Proxy implements Serializable .getMethod("equals", new Class[] {Object.class})); coreMethods.put(sig, sig); - sig = new ProxySignature(Object.class.getMethod("hashCode", null)); + sig = new ProxySignature(Object.class.getMethod("hashCode")); coreMethods.put(sig, sig); - sig = new ProxySignature(Object.class.getMethod("toString", null)); + sig = new ProxySignature(Object.class.getMethod("toString")); coreMethods.put(sig, sig); } catch (Exception e) @@ -1033,7 +1033,7 @@ public class Proxy implements Serializable code_length += 9; // new, dup_x1, swap, invokespecial, athrow } int handler_pc = code_length - 1; - StringBuffer signature = new StringBuffer("("); + StringBuilder signature = new StringBuilder("("); for (int j = 0; j < paramtypes.length; j++) signature.append(TypeSignature.getEncodingOfClass(paramtypes[j])); signature.append(")").append(TypeSignature.getEncodingOfClass(ret_type)); @@ -1261,8 +1261,8 @@ public class Proxy implements Serializable // we're in the same package. m.flag = true; - Object[] args = {loader, qualName, bytecode, new Integer(0), - new Integer(bytecode.length), + Object[] args = {loader, qualName, bytecode, Integer.valueOf(0), + Integer.valueOf(bytecode.length), Object.class.getProtectionDomain() }; Class clazz = (Class) m.invoke(null, args); @@ -1492,7 +1492,7 @@ public class Proxy implements Serializable if (i == len) return str; - final StringBuffer sb = new StringBuffer(str); + final StringBuilder sb = new StringBuilder(str); sb.setLength(i); for ( ; i < len; i++) { @@ -1533,7 +1533,7 @@ public class Proxy implements Serializable int size = poolEntries.size() + 1; if (size >= 65535) throw new IllegalArgumentException("exceeds VM limitations"); - i = new Integer(size); + i = Integer.valueOf(size); poolEntries.put(sequence, i); pool.append(sequence); } diff --git a/libjava/classpath/java/math/BigInteger.java b/libjava/classpath/java/math/BigInteger.java index 8d174d084f2..3fb75ffa37b 100644 --- a/libjava/classpath/java/math/BigInteger.java +++ b/libjava/classpath/java/math/BigInteger.java @@ -1,5 +1,5 @@ /* java.math.BigInteger -- Arbitary precision integers - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -1313,7 +1313,7 @@ public class BigInteger extends Number implements Comparable<BigInteger> int b = pMinus1.getLowestSetBit(); // Set m such that this = 1 + 2^b * m. - BigInteger m = pMinus1.divide(valueOf(2L << b - 1)); + BigInteger m = pMinus1.divide(valueOf(2L).pow(b)); // The HAC (Handbook of Applied Cryptography), Alfred Menezes & al. Note // 4.49 (controlling the error probability) gives the number of trials diff --git a/libjava/classpath/java/net/DatagramSocket.java b/libjava/classpath/java/net/DatagramSocket.java index d7aad7222c7..ea681a1ab0a 100644 --- a/libjava/classpath/java/net/DatagramSocket.java +++ b/libjava/classpath/java/net/DatagramSocket.java @@ -403,7 +403,7 @@ public class DatagramSocket if (timeout < 0) throw new IllegalArgumentException("Invalid timeout: " + timeout); - getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout)); + getImpl().setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(timeout)); } /** @@ -450,7 +450,7 @@ public class DatagramSocket if (size < 0) throw new IllegalArgumentException("Buffer size is less than 0"); - getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size)); + getImpl().setOption(SocketOptions.SO_SNDBUF, Integer.valueOf(size)); } /** @@ -497,7 +497,7 @@ public class DatagramSocket if (size < 0) throw new IllegalArgumentException("Buffer size is less than 0"); - getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size)); + getImpl().setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size)); } /** @@ -916,7 +916,7 @@ public class DatagramSocket if (tc < 0 || tc > 255) throw new IllegalArgumentException(); - getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc)); + getImpl().setOption(SocketOptions.IP_TOS, Integer.valueOf(tc)); } /** diff --git a/libjava/classpath/java/net/ResolverCache.java b/libjava/classpath/java/net/ResolverCache.java index d57df49199c..ad329b6075d 100644 --- a/libjava/classpath/java/net/ResolverCache.java +++ b/libjava/classpath/java/net/ResolverCache.java @@ -107,7 +107,7 @@ class ResolverCache /** * Return the hostname for the specified IP address. * - * @param ip The IP address as a byte array + * @param addr The IP address as a byte array * * @return The hostname * @@ -116,7 +116,7 @@ class ResolverCache public static String getHostByAddr(byte[] addr) throws UnknownHostException { Object key = makeHashableAddress(addr); - Entry entry = (Entry) get(key); + Entry entry = get(key); if (entry != null) { if (entry.value == null) @@ -149,7 +149,7 @@ class ResolverCache public static byte[][] getHostByName(String hostname) throws UnknownHostException { - Entry entry = (Entry) get(hostname); + Entry entry = get(hostname); if (entry != null) { if (entry.value == null) diff --git a/libjava/classpath/java/net/ServerSocket.java b/libjava/classpath/java/net/ServerSocket.java index 9cefd29e6b1..fa1c51e75c1 100644 --- a/libjava/classpath/java/net/ServerSocket.java +++ b/libjava/classpath/java/net/ServerSocket.java @@ -469,7 +469,7 @@ public class ServerSocket if (timeout < 0) throw new IllegalArgumentException("SO_TIMEOUT value must be >= 0"); - impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout)); + impl.setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(timeout)); } /** @@ -556,7 +556,7 @@ public class ServerSocket if (size <= 0) throw new IllegalArgumentException("SO_RCVBUF value must be > 0"); - impl.setOption(SocketOptions.SO_RCVBUF, new Integer(size)); + impl.setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size)); } /** diff --git a/libjava/classpath/java/net/Socket.java b/libjava/classpath/java/net/Socket.java index 64805274241..7541bdf78c5 100644 --- a/libjava/classpath/java/net/Socket.java +++ b/libjava/classpath/java/net/Socket.java @@ -844,7 +844,7 @@ public class Socket if (timeout < 0) throw new IllegalArgumentException("SO_TIMEOUT value must be >= 0"); - getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout)); + getImpl().setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(timeout)); } /** @@ -896,7 +896,7 @@ public class Socket if (size <= 0) throw new IllegalArgumentException("SO_SNDBUF value must be > 0"); - getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size)); + getImpl().setOption(SocketOptions.SO_SNDBUF, Integer.valueOf(size)); } /** @@ -943,7 +943,7 @@ public class Socket if (size <= 0) throw new IllegalArgumentException("SO_RCVBUF value must be > 0"); - getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size)); + getImpl().setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size)); } /** @@ -1211,7 +1211,7 @@ public class Socket if (tc < 0 || tc > 255) throw new IllegalArgumentException(); - getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc)); + getImpl().setOption(SocketOptions.IP_TOS, Integer.valueOf(tc)); } /** diff --git a/libjava/classpath/java/net/URI.java b/libjava/classpath/java/net/URI.java index 4bf4db9856c..85e0e04f236 100644 --- a/libjava/classpath/java/net/URI.java +++ b/libjava/classpath/java/net/URI.java @@ -483,7 +483,7 @@ public final class URI */ private static String quote(String str, String legalCharacters) { - StringBuffer sb = new StringBuffer(str.length()); + StringBuilder sb = new StringBuilder(str.length()); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); @@ -778,8 +778,8 @@ public final class URI This follows the algorithm in section 5.2.4. of RFC3986, but doesn't modify the input buffer. */ - StringBuffer input = new StringBuffer(relativePath); - StringBuffer output = new StringBuffer(); + StringBuilder input = new StringBuilder(relativePath); + StringBuilder output = new StringBuilder(); int start = 0; while (start < input.length()) { @@ -853,7 +853,7 @@ public final class URI * * @param buffer the buffer containing the path. */ - private void removeLastSegment(StringBuffer buffer) + private void removeLastSegment(StringBuilder buffer) { int lastSlash = buffer.lastIndexOf("/"); if (lastSlash == -1) @@ -899,7 +899,7 @@ public final class URI path = ""; if (! (path.startsWith("/"))) { - StringBuffer basepath = new StringBuffer(this.path); + StringBuilder basepath = new StringBuilder(this.path); int i = this.path.lastIndexOf('/'); if (i >= 0) @@ -1321,7 +1321,8 @@ public final class URI int hCompare = host.compareTo(uri.getHost()); if (hCompare != 0) return hCompare; - return new Integer(port).compareTo(new Integer(uri.getPort())); + int uriPort = uri.getPort(); + return (uriPort == port) ? 0 : (uriPort > port) ? -1 : 1; } } if (rawPath == null && uri.getRawPath() != null) @@ -1387,8 +1388,8 @@ public final class URI { String strRep = toString(); boolean inNonAsciiBlock = false; - StringBuffer buffer = new StringBuffer(); - StringBuffer encBuffer = null; + StringBuilder buffer = new StringBuilder(); + StringBuilder encBuffer = null; for (int i = 0; i < strRep.length(); i++) { char c = strRep.charAt(i); @@ -1405,7 +1406,7 @@ public final class URI { if (!inNonAsciiBlock) { - encBuffer = new StringBuffer(); + encBuffer = new StringBuilder(); inNonAsciiBlock = true; } encBuffer.append(c); @@ -1427,7 +1428,7 @@ public final class URI { try { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); // this is far from optimal, but it works byte[] utf8 = str.getBytes("utf-8"); for (int j = 0; j < utf8.length; j++) diff --git a/libjava/classpath/java/net/URLClassLoader.java b/libjava/classpath/java/net/URLClassLoader.java index 346f51c5dfa..e1db2a18e55 100644 --- a/libjava/classpath/java/net/URLClassLoader.java +++ b/libjava/classpath/java/net/URLClassLoader.java @@ -452,7 +452,7 @@ public class URLClassLoader extends SecureClassLoader { // Compute the name of the package as it may appear in the // Manifest. - StringBuffer xform = new StringBuffer(name); + StringBuilder xform = new StringBuilder(name); for (int i = xform.length () - 1; i >= 0; --i) if (xform.charAt(i) == '.') xform.setCharAt(i, '/'); @@ -641,7 +641,7 @@ public class URLClassLoader extends SecureClassLoader { if (thisString == null) { - StringBuffer sb = new StringBuffer(); + StringBuilder sb = new StringBuilder(); sb.append(this.getClass().getName()); sb.append("{urls=[" ); URL[] thisURLs = getURLs(); diff --git a/libjava/classpath/java/net/URLEncoder.java b/libjava/classpath/java/net/URLEncoder.java index dacc3848e37..2f11c501b17 100644 --- a/libjava/classpath/java/net/URLEncoder.java +++ b/libjava/classpath/java/net/URLEncoder.java @@ -113,7 +113,7 @@ public class URLEncoder int start = 0; int i = 0; - StringBuffer result = new StringBuffer(length); + StringBuilder result = new StringBuilder(length); while (true) { while (i < length && isSafe(s.charAt(i))) diff --git a/libjava/classpath/java/nio/charset/Charset.java b/libjava/classpath/java/nio/charset/Charset.java index 556e4707eeb..924e005e65a 100644 --- a/libjava/classpath/java/nio/charset/Charset.java +++ b/libjava/classpath/java/nio/charset/Charset.java @@ -234,7 +234,7 @@ public abstract class Charset implements Comparable<Charset> { for (Iterator<Charset> i = providers[j].charsets(); i.hasNext(); ) { - Charset cs = (Charset) i.next(); + Charset cs = i.next(); charsets.put(cs.name(), cs); } } diff --git a/libjava/classpath/java/nio/charset/CoderResult.java b/libjava/classpath/java/nio/charset/CoderResult.java index 664215d9a68..304d9d70895 100644 --- a/libjava/classpath/java/nio/charset/CoderResult.java +++ b/libjava/classpath/java/nio/charset/CoderResult.java @@ -170,7 +170,7 @@ public class CoderResult if (length <= 0) throw new IllegalArgumentException ("Non-positive length"); - Integer len = new Integer (length); + Integer len = Integer.valueOf (length); CoderResult cr = null; Object o; if ((o = cache.get (len)) != null) diff --git a/libjava/classpath/java/security/SecureClassLoader.java b/libjava/classpath/java/security/SecureClassLoader.java index f683f9a700f..6e173007e45 100644 --- a/libjava/classpath/java/security/SecureClassLoader.java +++ b/libjava/classpath/java/security/SecureClassLoader.java @@ -37,8 +37,6 @@ exception statement from your version. */ package java.security; -import java.util.WeakHashMap; - import java.nio.ByteBuffer; import java.util.HashMap; @@ -113,7 +111,7 @@ public class SecureClassLoader extends ClassLoader { synchronized (protectionDomainCache) { - protectionDomain = (ProtectionDomain)protectionDomainCache.get(cs); + protectionDomain = protectionDomainCache.get(cs); } if (protectionDomain == null) @@ -122,8 +120,7 @@ public class SecureClassLoader extends ClassLoader = new ProtectionDomain(cs, getPermissions(cs), this, null); synchronized (protectionDomainCache) { - ProtectionDomain domain - = (ProtectionDomain)protectionDomainCache.get(cs); + ProtectionDomain domain = protectionDomainCache.get(cs); if (domain == null) protectionDomainCache.put(cs, protectionDomain); else diff --git a/libjava/classpath/java/security/Security.java b/libjava/classpath/java/security/Security.java index d3d2c1ebcf9..6b7b66428ec 100644 --- a/libjava/classpath/java/security/Security.java +++ b/libjava/classpath/java/security/Security.java @@ -702,7 +702,7 @@ public final class Security return true; // assume value is a number. cehck for greater-than-or-equal - return (new Integer(val).intValue() >= new Integer(realVal).intValue()); + return (Integer.parseInt(val) >= Integer.parseInt(realVal)); } } diff --git a/libjava/classpath/java/security/cert/CertificateFactory.java b/libjava/classpath/java/security/cert/CertificateFactory.java index 8139c6ec5c3..d83b8160e27 100644 --- a/libjava/classpath/java/security/cert/CertificateFactory.java +++ b/libjava/classpath/java/security/cert/CertificateFactory.java @@ -42,7 +42,6 @@ import gnu.java.security.Engine; import java.io.InputStream; import java.lang.reflect.InvocationTargetException; -import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.Provider; diff --git a/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java b/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java index 0df8dec783e..ad551117729 100644 --- a/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java +++ b/libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java @@ -55,12 +55,12 @@ public class RSAKeyGenParameterSpec implements AlgorithmParameterSpec /** Public Exponent F0 = 3 */ - public static final BigInteger F0 = new BigInteger("3"); + public static final BigInteger F0 = BigInteger.valueOf(3); /** Public Exponent F4 = 3 */ - public static final BigInteger F4 = new BigInteger("65537"); + public static final BigInteger F4 = BigInteger.valueOf(65537L); /** Create a new RSAKeyGenParameterSpec to store the RSA key's keysize diff --git a/libjava/classpath/java/text/ChoiceFormat.java b/libjava/classpath/java/text/ChoiceFormat.java index 94c13a2ca0c..629701c171a 100644 --- a/libjava/classpath/java/text/ChoiceFormat.java +++ b/libjava/classpath/java/text/ChoiceFormat.java @@ -114,10 +114,10 @@ public class ChoiceFormat extends NumberFormat if (index == max) throw new IllegalArgumentException ("unexpected end of text"); - Double d = new Double (newPattern.substring(dstart, index)); + Double d = Double.valueOf (newPattern.substring(dstart, index)); if (newPattern.charAt(index) == '<') - d = new Double (nextDouble (d.doubleValue())); + d = Double.valueOf (nextDouble (d.doubleValue())); limitVec.addElement(d); @@ -404,11 +404,11 @@ public class ChoiceFormat extends NumberFormat if (sourceStr.startsWith(choiceFormats[i], index)) { pos.setIndex(index + choiceFormats[i].length()); - return new Double (choiceLimits[i]); + return Double.valueOf (choiceLimits[i]); } } pos.setErrorIndex(index); - return new Double (Double.NaN); + return Double.valueOf (Double.NaN); } /** diff --git a/libjava/classpath/java/text/CollationElementIterator.java b/libjava/classpath/java/text/CollationElementIterator.java index 45c79142cc7..08c5cb56361 100644 --- a/libjava/classpath/java/text/CollationElementIterator.java +++ b/libjava/classpath/java/text/CollationElementIterator.java @@ -73,7 +73,7 @@ public final class CollationElementIterator /** * This is the String that is being iterated over. */ - String text; + CharacterIterator text; /** * This is the index into the collation decomposition where we are currently scanning. @@ -111,6 +111,21 @@ public final class CollationElementIterator setText (text); } + /** + * This method initializes a new instance of <code>CollationElementIterator</code> + * to iterate over the specified <code>String</code> using the rules in the + * specified <code>RuleBasedCollator</code>. + * + * @param collator The <code>RuleBasedCollation</code> used for calculating collation values + * @param text The character iterator to iterate over. + */ + CollationElementIterator(RuleBasedCollator collator, CharacterIterator text) + { + this.collator = collator; + + setText (text); + } + RuleBasedCollator.CollationElement nextBlock() { if (index >= text_decomposition.length) @@ -246,7 +261,7 @@ public final class CollationElementIterator int alreadyExpanded = 0; int idxToMove = 0; - this.text = text; + this.text = new StringCharacterIterator(text); this.index = 0; String work_text = text.intern(); @@ -440,7 +455,7 @@ public final class CollationElementIterator if (offset < 0) throw new IllegalArgumentException("Negative offset: " + offset); - if (offset > (text.length() - 1)) + if (offset > (text.getEndIndex() - 1)) throw new IllegalArgumentException("Offset too large: " + offset); for (index = 0; index < text_decomposition.length; index++) diff --git a/libjava/classpath/java/text/DecimalFormat.java b/libjava/classpath/java/text/DecimalFormat.java index 7febdeb49c4..61732c1123d 100644 --- a/libjava/classpath/java/text/DecimalFormat.java +++ b/libjava/classpath/java/text/DecimalFormat.java @@ -716,15 +716,15 @@ public class DecimalFormat extends NumberFormat if (this.parseBigDecimal) { if (isNegative) - return new BigDecimal(Double.NEGATIVE_INFINITY); + return BigDecimal.valueOf(Double.NEGATIVE_INFINITY); - return new BigDecimal(Double.POSITIVE_INFINITY); + return BigDecimal.valueOf(Double.POSITIVE_INFINITY); } if (isNegative) - return new Double(Double.NEGATIVE_INFINITY); + return Double.valueOf(Double.NEGATIVE_INFINITY); - return new Double(Double.POSITIVE_INFINITY); + return Double.valueOf(Double.POSITIVE_INFINITY); } // no number... @@ -771,21 +771,21 @@ public class DecimalFormat extends NumberFormat // want integer? if (this.parseIntegerOnly) - return new Long(bigDecimal.longValue()); + return Long.valueOf(bigDecimal.longValue()); // 3th special case -0.0 if (isNegative && (bigDecimal.compareTo(BigDecimal.ZERO) == 0)) - return new Double(-0.0); + return Double.valueOf(-0.0); try { BigDecimal integer = bigDecimal.setScale(0, BigDecimal.ROUND_UNNECESSARY); - return new Long(integer.longValue()); + return Long.valueOf(integer.longValue()); } catch (ArithmeticException e) { - return new Double(bigDecimal.doubleValue()); + return Double.valueOf(bigDecimal.doubleValue()); } } @@ -1787,7 +1787,7 @@ public class DecimalFormat extends NumberFormat int endIndexFract = 0; // compute the multiplier to use with percent and similar - number = number.multiply(new BigDecimal(_multiplier)); + number = number.multiply(BigDecimal.valueOf(_multiplier)); // XXX: special case, not sure if it belongs here or if it is // correct at all. There may be other special cases as well diff --git a/libjava/classpath/java/text/MessageFormat.java b/libjava/classpath/java/text/MessageFormat.java index ab71cecea5a..5a595f57615 100644 --- a/libjava/classpath/java/text/MessageFormat.java +++ b/libjava/classpath/java/text/MessageFormat.java @@ -498,7 +498,7 @@ public class MessageFormat extends Format int position = output_iterator.getEndIndex(); hash_argument.put (MessageFormat.Field.ARGUMENT, - new Integer(elements[i].argNumber)); + Integer.valueOf(elements[i].argNumber)); if (iterator != null) @@ -630,7 +630,7 @@ public class MessageFormat extends Format // have recursive formatting. ChoiceFormat cf = (ChoiceFormat) formatter; String[] formats = (String[]) cf.getFormats(); - double[] limits = (double[]) cf.getLimits(); + double[] limits = cf.getLimits(); MessageFormat subfmt = new MessageFormat (); subfmt.setLocale(locale); ParsePosition subpos = new ParsePosition (index); diff --git a/libjava/classpath/java/text/RuleBasedCollator.java b/libjava/classpath/java/text/RuleBasedCollator.java index 4bffcaf2905..7ec18dcc92f 100644 --- a/libjava/classpath/java/text/RuleBasedCollator.java +++ b/libjava/classpath/java/text/RuleBasedCollator.java @@ -923,17 +923,8 @@ element_loop: * @return A <code>CollationElementIterator</code> for the specified <code>String</code>. */ public CollationElementIterator getCollationElementIterator(CharacterIterator source) - throws NotImplementedException // Because decomposeCharacter does not work { - StringBuffer expand = new StringBuffer(""); - - // Right now we assume that we will read from the beginning of the string. - for (char c = source.first(); - c != CharacterIterator.DONE; - c = source.next()) - decomposeCharacter(c, expand); - - return getCollationElementIterator(expand.toString()); + return new CollationElementIterator(this, source); } /** diff --git a/libjava/classpath/java/text/SimpleDateFormat.java b/libjava/classpath/java/text/SimpleDateFormat.java index f78fdcb89c5..934fb42e2a1 100644 --- a/libjava/classpath/java/text/SimpleDateFormat.java +++ b/libjava/classpath/java/text/SimpleDateFormat.java @@ -139,9 +139,9 @@ public class SimpleDateFormat extends DateFormat */ public String toString() { - StringBuffer builder; + StringBuilder builder; - builder = new StringBuffer(getClass().getName()); + builder = new StringBuilder(getClass().getName()); builder.append("[field="); builder.append(field); builder.append(", size="); @@ -322,7 +322,7 @@ public class SimpleDateFormat extends DateFormat // Look for the terminating quote. However, if we // see a '', that represents a literal quote and // we must iterate. - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); int oldPos = i + 1; do { @@ -346,7 +346,7 @@ public class SimpleDateFormat extends DateFormat else { // A special character - tokens.add(new Character(thisChar)); + tokens.add(Character.valueOf(thisChar)); } } else @@ -372,7 +372,7 @@ public class SimpleDateFormat extends DateFormat */ public String toString() { - StringBuffer output = new StringBuffer(getClass().getName()); + StringBuilder output = new StringBuilder(getClass().getName()); output.append("[tokens="); output.append(tokens); output.append(", formatData="); @@ -554,7 +554,7 @@ public class SimpleDateFormat extends DateFormat String oldChars, String newChars) { int len = pattern.length(); - StringBuffer buf = new StringBuffer(len); + StringBuilder buf = new StringBuilder(len); boolean quoted = false; for (int i = 0; i < len; i++) { @@ -1279,12 +1279,12 @@ public class SimpleDateFormat extends DateFormat // advance the index pos.setIndex(pos.getIndex() + matcher.end()); - return new Integer(offset); + return Integer.valueOf(offset); } else if (zoneString.startsWith("GMT")) { pos.setIndex(pos.getIndex() + 3); - return new Integer(0); + return Integer.valueOf(0); } return null; } diff --git a/libjava/classpath/java/util/AbstractMap.java b/libjava/classpath/java/util/AbstractMap.java index 2f58121cede..02a30a294de 100644 --- a/libjava/classpath/java/util/AbstractMap.java +++ b/libjava/classpath/java/util/AbstractMap.java @@ -524,7 +524,7 @@ public abstract class AbstractMap<K, V> implements Map<K, V> public String toString() { Iterator<Map.Entry<K, V>> entries = entrySet().iterator(); - StringBuffer r = new StringBuffer("{"); + StringBuilder r = new StringBuilder("{"); for (int pos = size(); pos > 0; pos--) { Map.Entry<K, V> entry = entries.next(); diff --git a/libjava/classpath/java/util/Calendar.java b/libjava/classpath/java/util/Calendar.java index 2b385b1a0b2..712296b1a2a 100644 --- a/libjava/classpath/java/util/Calendar.java +++ b/libjava/classpath/java/util/Calendar.java @@ -572,7 +572,7 @@ public abstract class Calendar * Cache of locale->calendar-class mappings. This avoids having to do a ResourceBundle * lookup for every getInstance call. */ - private static HashMap<Locale,Class> cache = new HashMap<Locale,Class>(); + private static final HashMap<Locale,Class> cache = new HashMap<Locale,Class>(); /** Preset argument types for calendar-class constructor lookup. */ private static Class[] ctorArgTypes = new Class[] @@ -1266,7 +1266,7 @@ public abstract class Calendar /** * Compares the time of two calendar instances. - * @param calendar the calendar to which the time should be compared. + * @param cal the calendar to which the time should be compared. * @return 0 if the two calendars are set to the same time, * less than 0 if the time of this calendar is before that of * <code>cal</code>, or more than 0 if the time of this calendar is after @@ -1328,8 +1328,8 @@ public abstract class Calendar */ public String toString() { - StringBuffer sb = new StringBuffer(); - sb.append(getClass().getName()).append('['); + StringBuilder sb = new StringBuilder(getClass().getName()); + sb.append('['); sb.append("time="); if (isTimeSet) sb.append(time); diff --git a/libjava/classpath/java/util/Collections.java b/libjava/classpath/java/util/Collections.java index fd802fe9db4..ae2010f1ce5 100644 --- a/libjava/classpath/java/util/Collections.java +++ b/libjava/classpath/java/util/Collections.java @@ -6167,7 +6167,7 @@ public class Collections * correct type. * * @param index the index at which to place the new element. - * @param c the collections of objects to add. + * @param coll the collections of objects to add. * @throws ClassCastException if the type of any element in c is not a * valid type for the underlying collection. */ @@ -6870,7 +6870,7 @@ public class Collections * Adds all pairs within the supplied map to the underlying map, * provided they are all have the correct key and value types. * - * @param m the map, the entries of which should be added + * @param map the map, the entries of which should be added * to the underlying map. * @throws ClassCastException if the type of a key or value is * not a valid type for the underlying map. diff --git a/libjava/classpath/java/util/Date.java b/libjava/classpath/java/util/Date.java index 1ad128ebfc5..8646c19175e 100644 --- a/libjava/classpath/java/util/Date.java +++ b/libjava/classpath/java/util/Date.java @@ -722,7 +722,7 @@ public class Date boolean localTimezone = true; // Trim out any nested stuff in parentheses now to make parsing easier. - StringBuffer buf = new StringBuffer(); + StringBuilder buf = new StringBuilder(); int parenNesting = 0; int len = string.length(); for (int i = 0; i < len; i++) diff --git a/libjava/classpath/java/util/Formatter.java b/libjava/classpath/java/util/Formatter.java index 12b705bce06..82130782e0f 100644 --- a/libjava/classpath/java/util/Formatter.java +++ b/libjava/classpath/java/util/Formatter.java @@ -291,7 +291,7 @@ public final class Formatter * If the locale is <code>null</code>, then no localization is * applied. * - * @param file the output stream. + * @param out the output stream. * @param charset the character set to use for output. * @param loc the locale to use. * @throws UnsupportedEncodingException if the supplied character @@ -1427,7 +1427,7 @@ public final class Formatter * Outputs a formatted string based on the supplied specification, * <code>fmt</code>, and its arguments using the formatter's locale. * - * @param fmt the format specification. + * @param format the format specification. * @param args the arguments to apply to the specification. * @throws IllegalFormatException if there is a problem with * the syntax of the format diff --git a/libjava/classpath/java/util/Hashtable.java b/libjava/classpath/java/util/Hashtable.java index a85674637e7..07bd9469318 100644 --- a/libjava/classpath/java/util/Hashtable.java +++ b/libjava/classpath/java/util/Hashtable.java @@ -579,7 +579,7 @@ public class Hashtable<K, V> extends Dictionary<K, V> // would repeatedly re-lock/release the monitor, we directly use the // unsynchronized EntryIterator instead. Iterator<Map.Entry<K, V>> entries = new EntryIterator(); - StringBuffer r = new StringBuffer("{"); + StringBuilder r = new StringBuilder("{"); for (int pos = size; pos > 0; pos--) { r.append(entries.next()); @@ -1088,7 +1088,7 @@ public class Hashtable<K, V> extends Dictionary<K, V> * <code>next()</code> gives a different result, by returning just * the key rather than the whole element. */ - private EntryIterator iterator; + private final EntryIterator iterator; /** * Construct a new KeyIterator @@ -1153,7 +1153,7 @@ public class Hashtable<K, V> extends Dictionary<K, V> * <code>next()</code> gives a different result, by returning just * the value rather than the whole element. */ - private EntryIterator iterator; + private final EntryIterator iterator; /** * Construct a new KeyIterator @@ -1294,7 +1294,7 @@ public class Hashtable<K, V> extends Dictionary<K, V> * <code>nextElement()</code> gives a different result, by returning just * the key rather than the whole element. */ - private EntryEnumerator enumerator; + private final EntryEnumerator enumerator; /** * Construct a new KeyEnumerator @@ -1355,7 +1355,7 @@ public class Hashtable<K, V> extends Dictionary<K, V> * <code>nextElement()</code> gives a different result, by returning just * the value rather than the whole element. */ - private EntryEnumerator enumerator; + private final EntryEnumerator enumerator; /** * Construct a new ValueEnumerator diff --git a/libjava/classpath/java/util/LinkedHashSet.java b/libjava/classpath/java/util/LinkedHashSet.java index a0b32f34964..03b9556062c 100644 --- a/libjava/classpath/java/util/LinkedHashSet.java +++ b/libjava/classpath/java/util/LinkedHashSet.java @@ -1,6 +1,6 @@ /* LinkedHashSet.java -- a set backed by a LinkedHashMap, for linked list traversal. - Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2004, 2005, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -98,7 +98,7 @@ public class LinkedHashSet<T> extends HashSet<T> /** * Construct a new, empty HashSet whose backing HashMap has the default - * capacity (11) and loadFacor (0.75). + * capacity (11) and loadFactor (0.75). */ public LinkedHashSet() { diff --git a/libjava/classpath/java/util/Locale.java b/libjava/classpath/java/util/Locale.java index 846ae7baadc..cd372f24551 100644 --- a/libjava/classpath/java/util/Locale.java +++ b/libjava/classpath/java/util/Locale.java @@ -178,21 +178,21 @@ public final class Locale implements Serializable, Cloneable * * @serial the languange, possibly "" */ - private String language; + private final String language; /** * The country code, as returned by getCountry(). * * @serial the country, possibly "" */ - private String country; + private final String country; /** * The variant code, as returned by getVariant(). * * @serial the variant, possibly "" */ - private String variant; + private final String variant; /** * This is the cached hashcode. When writing to stream, we write -1. @@ -324,13 +324,12 @@ public final class Locale implements Serializable, Cloneable // default locale. if (defaultLocale != null) { - language = convertLanguage(language).intern(); - country = country.toUpperCase().intern(); - variant = variant.intern(); + language = convertLanguage(language); + country = country.toUpperCase(); } - this.language = language; - this.country = country; - this.variant = variant; + this.language = language.intern(); + this.country = country.intern(); + this.variant = variant.intern(); hashcode = language.hashCode() ^ country.hashCode() ^ variant.hashCode(); } @@ -1022,9 +1021,6 @@ public final class Locale implements Serializable, Cloneable throws IOException, ClassNotFoundException { s.defaultReadObject(); - language = language.intern(); - country = country.intern(); - variant = variant.intern(); hashcode = language.hashCode() ^ country.hashCode() ^ variant.hashCode(); } } // class Locale diff --git a/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java b/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java index 48c017f50fa..6e4fb9a8ac9 100644 --- a/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java +++ b/libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java @@ -41,18 +41,71 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; + import java.lang.reflect.Array; + import java.util.AbstractList; +import java.util.Arrays; import java.util.Collection; +import java.util.ConcurrentModificationException; import java.util.Iterator; import java.util.List; +import java.util.ListIterator; +import java.util.NoSuchElementException; import java.util.RandomAccess; -/** @since 1.5 */ -public class CopyOnWriteArrayList<E> extends AbstractList<E> implements - List<E>, RandomAccess, Cloneable, Serializable +/** + * A thread-safe implementation of an ArrayList. A CopyOnWriteArrayList is + * as special ArrayList which performs copies of the underlying storage + * each time a write (<code>remove</code>, <code>add</code> etc..) operation + * is performed.<br /> + * <br /> + * The update operation in this class run usually in <code>O(n)</code> or worse, + * but traversal operations are fast and efficient, especially when running in + * a multi-thread environment without the need to design complex synchronize + * mechanisms.<br /> + * <br /> + * <code>Iterator</code>s in this class work on a snapshot of the backing store + * at the moment the iterator itself was created, hence the iterator will not + * reflect changes in the underlying storage. Thus, update operation on the + * <code>Iterator</code>s are not supported, but as interferences from other + * threads are impossible, no <code>ConcurrentModificationException</code> + * will be ever thrown from within the <code>Iterator</code>. + * <br /><br /> + * This class is especially useful when used with event handling, like the + * following code demonstrates:<br /> + * <code><pre> + * + * CopyOnWriteArrayList<EventListener> listeners = + * new CopyOnWriteArrayList<EventListener>(); + * + * [...] + * + * for (final EventListener listener : listeners) + * { + * Runnable dispatcher = new Runnable() { + * public void run() + * { + * listener.preferenceChange(event); + * } + * }; + * + * Executor executor = Executors.newSingleThreadExecutor(); + * executor.execute(dispatcher); + * } + * </pre></code> + * + * @since 1.5 + */ +public class CopyOnWriteArrayList<E> + implements List<E>, RandomAccess, Cloneable, Serializable { /** + * + */ + private static final long serialVersionUID = 8673264195747942595L; + + /** * Where the data is stored. */ private transient E[] data; @@ -118,7 +171,7 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements } /** - * Returns true iff element is in this ArrayList. + * Returns true if element is in this ArrayList. * * @param e * the element whose inclusion in the List is being tested @@ -130,6 +183,28 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements } /** + * Tests whether this collection contains all the elements in a given + * collection. This implementation iterates over the given collection, + * testing whether each element is contained in this collection. If any one + * is not, false is returned. Otherwise true is returned. + * + * @param c the collection to test against + * @return true if this collection contains all the elements in the given + * collection + * @throws NullPointerException if the given collection is null + * @see #contains(Object) + */ + public boolean containsAll(Collection<?> c) + { + Iterator<?> itr = c.iterator(); + int pos = c.size(); + while (--pos >= 0) + if (!contains(itr.next())) + return false; + return true; + } + + /** * Returns the lowest index at which element appears in this List, or -1 if it * does not appear. * @@ -161,7 +236,7 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements for (int i = index; i < data.length; i++) if (equals(e, data[i])) - return i; + return i; return -1; } @@ -197,7 +272,7 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements for (int i = index; i >= 0; i--) if (equals(e, data[i])) - return i; + return i; return -1; } @@ -212,7 +287,6 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements try { clone = (CopyOnWriteArrayList<E>) super.clone(); - clone.data = (E[]) data.clone(); } catch (CloneNotSupportedException e) { @@ -347,18 +421,154 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements */ public synchronized E remove(int index) { - E[] data = this.data; - E[] newData = (E[]) new Object[data.length - 1]; + if (index < 0 || index >= this.size()) + throw new IndexOutOfBoundsException("index = " + index); + + E[] snapshot = this.data; + E[] newData = (E[]) new Object[snapshot.length - 1]; + + E result = snapshot[index]; + if (index > 0) - System.arraycopy(data, 0, newData, 0, index - 1); - System.arraycopy(data, index + 1, newData, index, - data.length - index - 1); - E r = data[index]; + System.arraycopy(snapshot, 0, newData, 0, index); + + System.arraycopy(snapshot, index + 1, newData, index, + snapshot.length - index - 1); + this.data = newData; - return r; + + return result; } /** + * Remove the first occurrence, if any, of the given object from this list, + * returning <code>true</code> if the object was removed, <code>false</code> + * otherwise. + * + * @param element the object to be removed. + * @return true if element was removed, false otherwise. false means also that + * the underlying storage was unchanged after this operation concluded. + */ + public synchronized boolean remove(Object element) + { + E[] snapshot = this.data; + E[] newData = (E[]) new Object[snapshot.length - 1]; + + // search the element to remove while filling the backup array + // this way we can run this method in O(n) + int elementIndex = -1; + for (int i = 0; i < snapshot.length; i++) + { + if (equals(element, snapshot[i])) + { + elementIndex = i; + break; + } + + if (i < newData.length) + newData[i] = snapshot[i]; + } + + if (elementIndex < 0) + return false; + + System.arraycopy(snapshot, elementIndex + 1, newData, elementIndex, + snapshot.length - elementIndex - 1); + this.data = newData; + + return true; + } + + /** + * Removes all the elements contained in the given collection. + * This method removes the elements that are contained in both + * this list and in the given collection. + * + * @param c the collection containing the elements to be removed from this + * list. + * @return true if at least one element was removed, indicating that + * the list internal storage changed as a result, false otherwise. + */ + public synchronized boolean removeAll(Collection<?> c) + { + if (c.size() == 0) + return false; + + E [] snapshot = this.data; + E [] storage = (E[]) new Object[this.data.length]; + boolean changed = false; + + int length = 0; + for (E element : snapshot) + { + // copy all the elements, including null values + // if the collection can hold it + // FIXME: slow operation + if (c.contains(element)) + changed = true; + else + storage[length++] = element; + } + + if (!changed) + return false; + + E[] newData = (E[]) new Object[length]; + System.arraycopy(storage, 0, newData, 0, length); + + this.data = newData; + + return true; + } + + /** + * Removes all the elements that are not in the passed collection. + * If the collection is void, this method has the same effect of + * <code>clear()</code>. + * Please, note that this method is extremely slow (unless the argument has + * <code>size == 0</code>) and has bad performance is both space and time + * usage. + * + * @param c the collection containing the elements to be retained by this + * list. + * @return true the list internal storage changed as a result of this + * operation, false otherwise. + */ + public synchronized boolean retainAll(Collection<?> c) + { + // if the given collection does not contain elements + // we remove all the elements from our storage + if (c.size() == 0) + { + this.clear(); + return true; + } + + E [] snapshot = this.data; + E [] storage = (E[]) new Object[this.data.length]; + + int length = 0; + for (E element : snapshot) + { + if (c.contains(element)) + storage[length++] = element; + } + + // means we retained all the elements previously in our storage + // we are running already slow here, but at least we avoid copying + // another array and changing the internal storage + if (length == snapshot.length) + return false; + + E[] newData = (E[]) new Object[length]; + System.arraycopy(storage, 0, newData, 0, length); + + this.data = newData; + + return true; + } + + /** * Removes all elements from this List */ public synchronized void clear() @@ -399,21 +609,42 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements */ public synchronized boolean addAll(int index, Collection< ? extends E> c) { - E[] data = this.data; - Iterator<? extends E> itr = c.iterator(); + if (index < 0 || index > this.size()) + throw new IndexOutOfBoundsException("index = " + index); + int csize = c.size(); if (csize == 0) return false; - + + E[] data = this.data; + Iterator<? extends E> itr = c.iterator(); + E[] newData = (E[]) new Object[data.length + csize]; - System.arraycopy(data, 0, newData, 0, data.length); - int end = data.length; + + // avoid this call at all if we were asked to put the elements at the + // beginning of our storage + if (index != 0) + System.arraycopy(data, 0, newData, 0, index); + + int itemsLeft = index; + for (E value : c) - newData[end++] = value; + newData[index++] = value; + + // now copy the remaining elements + System.arraycopy(data, itemsLeft, newData, 0, data.length - itemsLeft); + this.data = newData; + return true; } + /** + * Adds an element if the list does not contains it already. + * + * @param val the element to add to the list. + * @return true if the element was added, false otherwise. + */ public synchronized boolean addIfAbsent(E val) { if (contains(val)) @@ -422,16 +653,752 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements return true; } + /** + * Adds all the element from the given collection that are not already + * in this list. + * + * @param c the Collection containing the elements to be inserted + * @return true the list internal storage changed as a result of this + * operation, false otherwise. + */ public synchronized int addAllAbsent(Collection<? extends E> c) { - int result = 0; + int size = c.size(); + if (size == 0) + return 0; + + E [] snapshot = this.data; + E [] storage = (E[]) new Object[size]; + + size = 0; for (E val : c) { - if (addIfAbsent(val)) - ++result; + if (!this.contains(val)) + storage[size++] = val; } - return result; + + if (size == 0) + return 0; + + // append storage to data + E [] newData = (E[]) new Object[snapshot.length + size]; + + System.arraycopy(snapshot, 0, newData, 0, snapshot.length); + System.arraycopy(storage, 0, newData, snapshot.length, size); + + this.data = newData; + + return size; + } + + public String toString() + { + return Arrays.toString(this.data); + } + + public boolean equals(Object o) + { + if (o == null) + return false; + + if (this == o) + return true; + + // let's see if 'o' is a list, if so, we need to compare the elements + // as returned by the iterator + if (o instanceof List) + { + List<?> source = (List<?>) o; + + if (source.size() != this.size()) + return false; + + Iterator<?> sourceIterator = source.iterator(); + for (E element : this) + { + if (!element.equals(sourceIterator.next())) + return false; + } + + return true; + } + + return false; + } + + public int hashCode() + { + // see http://java.sun.com/6/docs/api/java/util/List.html#hashcode() + int hashcode = 1; + for (E element : this) + { + hashcode = 31 * hashcode + (element == null ? 0 : element.hashCode()); + } + return hashcode; + } + + /** + * Return an Iterator containing the elements of this list. + * The Iterator uses a snapshot of the state of the internal storage + * at the moment this method is called and does <strong>not</strong> support + * update operations, so no synchronization is needed to traverse the + * iterator. + * + * @return an Iterator containing the elements of this list in sequence. + */ + public Iterator<E> iterator() + { + return new Iterator<E>() + { + E [] iteratorData = CopyOnWriteArrayList.this.data; + int currentElement = 0; + + public boolean hasNext() + { + return (currentElement < iteratorData.length); + } + + public E next() + { + return iteratorData[currentElement++]; + } + + public void remove() + { + throw new UnsupportedOperationException("updating of elements in " + + "iterators is not supported " + + "by this class"); + } + }; } + + /** + * Return a ListIterator containing the elements of this list. + * The Iterator uses a snapshot of the state of the internal storage + * at the moment this method is called and does <strong>not</strong> support + * update operations, so no synchronization is needed to traverse the + * iterator. + * + * @return a ListIterator containing the elements of this list in sequence. + */ + public ListIterator<E> listIterator() + { + return listIterator(0); + } + + /** + * Return a ListIterator over the elements of this list starting at + * the specified index. An initial call to {@code next()} will thus + * return the element at {@code index}, while an initial call to + * {@code previous()} will return the element at {@code index-1}. The + * Iterator uses a snapshot of the state of the internal storage + * at the moment this method is called and does <strong>not</strong> support + * update operations, so no synchronization is needed to traverse the + * iterator. + * + * @param index the index at which to start iterating. + * @return a ListIterator containing the elements of this list in sequence. + */ + public ListIterator<E> listIterator(final int index) + { + if (index < 0 || index > size()) + throw new IndexOutOfBoundsException("Index: " + index + ", Size:" + + size()); + + return new ListIterator<E>() + { + E [] iteratorData = CopyOnWriteArrayList.this.data; + int currentElement = index; + + public void add(E o) + { + throw new UnsupportedOperationException("updating of elements in " + + "iterators is not supported " + + "by this class"); + } + + public boolean hasNext() + { + return (currentElement < iteratorData.length); + } + + public boolean hasPrevious() + { + return (currentElement > 0); + } + + public E next() + { + if (hasNext() == false) + throw new java.util.NoSuchElementException(); + + return iteratorData[currentElement++]; + } + + public int nextIndex() + { + return (currentElement + 1); + } + + public E previous() + { + if (hasPrevious() == false) + throw new java.util.NoSuchElementException(); + + return iteratorData[--currentElement]; + } + + public int previousIndex() + { + return (currentElement - 1); + } + + public void remove() + { + throw new UnsupportedOperationException("updating of elements in " + + "iterators is not supported " + + "by this class"); + } + + public void set(E o) + { + throw new UnsupportedOperationException("updating of elements in " + + "iterators is not supported " + + "by this class"); + } + + }; + } + + /** + * Obtain a List view of a subsection of this list, from fromIndex + * (inclusive) to toIndex (exclusive). If the two indices are equal, the + * sublist is empty. The returned list should be modifiable if and only + * if this list is modifiable. Changes to the returned list should be + * reflected in this list. If this list is structurally modified in + * any way other than through the returned list, the result of any subsequent + * operations on the returned list is undefined. + * <p> + * + * This implementation returns a subclass of AbstractList. It stores, in + * private fields, the offset and size of the sublist, and the expected + * modCount of the backing list. If the backing list implements RandomAccess, + * the sublist will also. + * <p> + * + * The subclass's <code>set(int, Object)</code>, <code>get(int)</code>, + * <code>add(int, Object)</code>, <code>remove(int)</code>, + * <code>addAll(int, Collection)</code> and + * <code>removeRange(int, int)</code> methods all delegate to the + * corresponding methods on the backing abstract list, after + * bounds-checking the index and adjusting for the offset. The + * <code>addAll(Collection c)</code> method merely returns addAll(size, c). + * The <code>listIterator(int)</code> method returns a "wrapper object" + * over a list iterator on the backing list, which is created with the + * corresponding method on the backing list. The <code>iterator()</code> + * method merely returns listIterator(), and the <code>size()</code> method + * merely returns the subclass's size field. + * <p> + * + * All methods first check to see if the actual modCount of the backing + * list is equal to its expected value, and throw a + * ConcurrentModificationException if it is not. + * + * @param fromIndex the index that the returned list should start from + * (inclusive) + * @param toIndex the index that the returned list should go to (exclusive) + * @return a List backed by a subsection of this list + * @throws IndexOutOfBoundsException if fromIndex < 0 + * || toIndex > size() + * @throws IndexOutOfBoundsException if fromIndex > toIndex + * @see ConcurrentModificationException + * @see RandomAccess + */ + public synchronized List<E> subList(int fromIndex, int toIndex) + { + // This follows the specification of AbstractList, but is inconsistent + // with the one in List. Don't you love Sun's inconsistencies? + if (fromIndex > toIndex) + throw new IndexOutOfBoundsException(fromIndex + " > " + toIndex); + if (fromIndex < 0 || toIndex > size()) + throw new IndexOutOfBoundsException(); + + if (this instanceof RandomAccess) + return new RandomAccessSubList<E>(this, fromIndex, toIndex); + return new SubList<E>(this, fromIndex, toIndex); + } + + /** + * This class follows the implementation requirements set forth in + * {@link AbstractList#subList(int, int)}. It matches Sun's implementation + * by using a non-public top-level class in the same package. + * + * @author Original author unknown + * @author Eric Blake (ebb9@email.byu.edu) + */ + private static class SubList<E> + extends AbstractList<E> + { + // Package visible, for use by iterator. + /** The original list. */ + final CopyOnWriteArrayList<E> backingList; + /** The index of the first element of the sublist. */ + final int offset; + /** The size of the sublist. */ + int size; + /** The backing data */ + E[] data; + + /** + * Construct the sublist. + * + * @param backing the list this comes from + * @param fromIndex the lower bound, inclusive + * @param toIndex the upper bound, exclusive + */ + SubList(CopyOnWriteArrayList<E> backing, int fromIndex, int toIndex) + { + backingList = backing; + data = backing.data; + offset = fromIndex; + size = toIndex - fromIndex; + } + + /** + * This method checks the two modCount fields to ensure that there has + * not been a concurrent modification, returning if all is okay. + * + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + */ + // This can be inlined. Package visible, for use by iterator. + void checkMod() + { + if (data != backingList.data) + throw new ConcurrentModificationException(); + } + + /** + * This method checks that a value is between 0 and size (inclusive). If + * it is not, an exception is thrown. + * + * @param index the value to check + * @throws IndexOutOfBoundsException if index < 0 || index > size() + */ + // This will get inlined, since it is private. + private void checkBoundsInclusive(int index) + { + if (index < 0 || index > size) + throw new IndexOutOfBoundsException("Index: " + index + + ", Size:" + size); + } + + /** + * This method checks that a value is between 0 (inclusive) and size + * (exclusive). If it is not, an exception is thrown. + * + * @param index the value to check + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + */ + // This will get inlined, since it is private. + private void checkBoundsExclusive(int index) + { + if (index < 0 || index >= size) + throw new IndexOutOfBoundsException("Index: " + index + + ", Size:" + size); + } + + /** + * Specified by AbstractList.subList to return the private field size. + * + * @return the sublist size + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + */ + public int size() + { + synchronized (backingList) + { + checkMod(); + return size; + } + } + + public void clear() + { + synchronized (backingList) + { + E[] snapshot = backingList.data; + E[] newData = (E[]) new Object[snapshot.length - size]; + + int toIndex = size + offset; + + System.arraycopy(snapshot, 0, newData, 0, offset); + System.arraycopy(snapshot, toIndex, newData, offset, + snapshot.length - toIndex); + + backingList.data = newData; + this.data = backingList.data; + this.size = 0; + } + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the location to modify + * @param o the new value + * @return the old value + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws UnsupportedOperationException if the backing list does not + * support the set operation + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + * @throws ClassCastException if o cannot be added to the backing list due + * to its type + * @throws IllegalArgumentException if o cannot be added to the backing list + * for some other reason + */ + public E set(int index, E o) + { + synchronized (backingList) + { + checkMod(); + checkBoundsExclusive(index); + + E el = backingList.set(index + offset, o); + this.data = backingList.data; + + return el; + } + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the location to get from + * @return the object at that location + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + */ + public E get(int index) + { + synchronized (backingList) + { + checkMod(); + checkBoundsExclusive(index); + + return backingList.get(index + offset); + } + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the index to insert at + * @param o the object to add + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index > size() + * @throws UnsupportedOperationException if the backing list does not + * support the add operation. + * @throws ClassCastException if o cannot be added to the backing list due + * to its type. + * @throws IllegalArgumentException if o cannot be added to the backing + * list for some other reason. + */ + public void add(int index, E o) + { + synchronized (backingList) + { + checkMod(); + checkBoundsInclusive(index); + + backingList.add(index + offset, o); + + this.data = backingList.data; + size++; + } + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the index to remove + * @return the removed object + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index >= size() + * @throws UnsupportedOperationException if the backing list does not + * support the remove operation + */ + public E remove(int index) + { + synchronized (backingList) + { + checkMod(); + checkBoundsExclusive(index); + E o = backingList.remove(index + offset); + + this.data = backingList.data; + size--; + + return o; + } + } + + /** + * Specified by AbstractList.subList to delegate to the backing list. + * + * @param index the location to insert at + * @param c the collection to insert + * @return true if this list was modified, in other words, c is non-empty + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if index < 0 || index > size() + * @throws UnsupportedOperationException if this list does not support the + * addAll operation + * @throws ClassCastException if some element of c cannot be added to this + * list due to its type + * @throws IllegalArgumentException if some element of c cannot be added + * to this list for some other reason + * @throws NullPointerException if the specified collection is null + */ + public boolean addAll(int index, Collection<? extends E> c) + { + synchronized (backingList) + { + checkMod(); + checkBoundsInclusive(index); + int csize = c.size(); + boolean result = backingList.addAll(offset + index, c); + + this.data = backingList.data; + size += csize; + + return result; + } + } + + /** + * Specified by AbstractList.subList to return addAll(size, c). + * + * @param c the collection to insert + * @return true if this list was modified, in other words, c is non-empty + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws UnsupportedOperationException if this list does not support the + * addAll operation + * @throws ClassCastException if some element of c cannot be added to this + * list due to its type + * @throws IllegalArgumentException if some element of c cannot be added + * to this list for some other reason + * @throws NullPointerException if the specified collection is null + */ + public boolean addAll(Collection<? extends E> c) + { + synchronized (backingList) + { + return addAll(size, c); + } + } + + /** + * Specified by AbstractList.subList to return listIterator(). + * + * @return an iterator over the sublist + */ + public Iterator<E> iterator() + { + return listIterator(); + } + + /** + * Specified by AbstractList.subList to return a wrapper around the + * backing list's iterator. + * + * @param index the start location of the iterator + * @return a list iterator over the sublist + * @throws ConcurrentModificationException if the backing list has been + * modified externally to this sublist + * @throws IndexOutOfBoundsException if the value is out of range + */ + public ListIterator<E> listIterator(final int index) + { + checkMod(); + checkBoundsInclusive(index); + + return new ListIterator<E>() + { + private final ListIterator<E> i = + backingList.listIterator(index + offset); + private int position = index; + + /** + * Tests to see if there are any more objects to + * return. + * + * @return True if the end of the list has not yet been + * reached. + */ + public boolean hasNext() + { + return position < size; + } + + /** + * Tests to see if there are objects prior to the + * current position in the list. + * + * @return True if objects exist prior to the current + * position of the iterator. + */ + public boolean hasPrevious() + { + return position > 0; + } + + /** + * Retrieves the next object from the list. + * + * @return The next object. + * @throws NoSuchElementException if there are no + * more objects to retrieve. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public E next() + { + if (position == size) + throw new NoSuchElementException(); + position++; + return i.next(); + } + + /** + * Retrieves the previous object from the list. + * + * @return The next object. + * @throws NoSuchElementException if there are no + * previous objects to retrieve. + * @throws ConcurrentModificationException if the + * list has been modified elsewhere. + */ + public E previous() + { + if (position == 0) + throw new NoSuchElementException(); + position--; + return i.previous(); + } + + /** + * Returns the index of the next element in the + * list, which will be retrieved by <code>next()</code> + * + * @return The index of the next element. + */ + public int nextIndex() + { + return i.nextIndex() - offset; + } + + /** + * Returns the index of the previous element in the + * list, which will be retrieved by <code>previous()</code> + * + * @return The index of the previous element. + */ + public int previousIndex() + { + return i.previousIndex() - offset; + } + + /** + * Removes the last object retrieved by <code>next()</code> + * from the list, if the list supports object removal. + * + * @throws IllegalStateException if the iterator is positioned + * before the start of the list or the last object has already + * been removed. + * @throws UnsupportedOperationException if the list does + * not support removing elements. + */ + public void remove() + { + throw new UnsupportedOperationException("Modification not supported " + + "on CopyOnWriteArrayList iterators"); + } + + /** + * Replaces the last object retrieved by <code>next()</code> + * or <code>previous</code> with o, if the list supports object + * replacement and an add or remove operation has not already + * been performed. + * + * @throws IllegalStateException if the iterator is positioned + * before the start of the list or the last object has already + * been removed. + * @throws UnsupportedOperationException if the list doesn't support + * the addition or removal of elements. + * @throws ClassCastException if the type of o is not a valid type + * for this list. + * @throws IllegalArgumentException if something else related to o + * prevents its addition. + * @throws ConcurrentModificationException if the list + * has been modified elsewhere. + */ + public void set(E o) + { + throw new UnsupportedOperationException("Modification not supported " + + "on CopyOnWriteArrayList iterators"); + } + + /** + * Adds the supplied object before the element that would be returned + * by a call to <code>next()</code>, if the list supports addition. + * + * @param o The object to add to the list. + * @throws UnsupportedOperationException if the list doesn't support + * the addition of new elements. + * @throws ClassCastException if the type of o is not a valid type + * for this list. + * @throws IllegalArgumentException if something else related to o + * prevents its addition. + * @throws ConcurrentModificationException if the list + * has been modified elsewhere. + */ + public void add(E o) + { + throw new UnsupportedOperationException("Modification not supported " + + "on CopyOnWriteArrayList iterators"); + } + }; + } + } // class SubList + + /** + * This class is a RandomAccess version of SubList, as required by + * {@link AbstractList#subList(int, int)}. + * + * @author Eric Blake (ebb9@email.byu.edu) + */ + private static final class RandomAccessSubList<E> extends SubList<E> + implements RandomAccess + { + /** + * Construct the sublist. + * + * @param backing the list this comes from + * @param fromIndex the lower bound, inclusive + * @param toIndex the upper bound, exclusive + */ + RandomAccessSubList(CopyOnWriteArrayList<E> backing, int fromIndex, int toIndex) + { + super(backing, fromIndex, toIndex); + } + } // class RandomAccessSubList /** * Serializes this object to the given stream. diff --git a/libjava/classpath/java/util/jar/Manifest.java b/libjava/classpath/java/util/jar/Manifest.java index 8effc2878ce..980cfc60baf 100644 --- a/libjava/classpath/java/util/jar/Manifest.java +++ b/libjava/classpath/java/util/jar/Manifest.java @@ -138,7 +138,7 @@ public class Manifest implements Cloneable */ public Attributes getAttributes(String entryName) { - return (Attributes) getEntries().get(entryName); + return getEntries().get(entryName); } /** diff --git a/libjava/classpath/java/util/logging/Logger.java b/libjava/classpath/java/util/logging/Logger.java index 01ef8f522b8..f7157c17698 100644 --- a/libjava/classpath/java/util/logging/Logger.java +++ b/libjava/classpath/java/util/logging/Logger.java @@ -45,110 +45,105 @@ import java.security.AccessController; import java.security.PrivilegedAction; /** - * A Logger is used for logging information about events. Usually, there - * is a seprate logger for each subsystem or component, although there - * is a shared instance for components that make only occasional use of - * the logging framework. - * - * <p>It is common to name a logger after the name of a corresponding - * Java package. Loggers are organized into a hierarchical namespace; - * for example, the logger <code>"org.gnu.foo"</code> is the - * <em>parent</em> of logger <code>"org.gnu.foo.bar"</code>. - * - * <p>A logger for a named subsystem can be obtained through {@link - * java.util.logging.Logger#getLogger(java.lang.String)}. However, - * only code which has been granted the permission to control the - * logging infrastructure will be allowed to customize that logger. - * Untrusted code can obtain a private, anonymous logger through - * {@link #getAnonymousLogger()} if it wants to perform any - * modifications to the logger. - * - * <p>FIXME: Write more documentation. - * + * A Logger is used for logging information about events. Usually, there is a + * seprate logger for each subsystem or component, although there is a shared + * instance for components that make only occasional use of the logging + * framework. + * <p> + * It is common to name a logger after the name of a corresponding Java package. + * Loggers are organized into a hierarchical namespace; for example, the logger + * <code>"org.gnu.foo"</code> is the <em>parent</em> of logger + * <code>"org.gnu.foo.bar"</code>. + * <p> + * A logger for a named subsystem can be obtained through {@link + * java.util.logging.Logger#getLogger(java.lang.String)}. However, only code + * which has been granted the permission to control the logging infrastructure + * will be allowed to customize that logger. Untrusted code can obtain a + * private, anonymous logger through {@link #getAnonymousLogger()} if it wants + * to perform any modifications to the logger. + * <p> + * FIXME: Write more documentation. + * * @author Sascha Brawer (brawer@acm.org) */ public class Logger { - static final Logger root = new Logger("", null); /** - * A logger provided to applications that make only occasional use - * of the logging framework, typically early prototypes. Serious - * products are supposed to create and use their own Loggers, so - * they can be controlled individually. + * A logger provided to applications that make only occasional use of the + * logging framework, typically early prototypes. Serious products are + * supposed to create and use their own Loggers, so they can be controlled + * individually. */ public static final Logger global; + /** + * Use to lock methods on this class instead of calling synchronize on methods + * to avoid deadlocks. Yeah, no kidding, we got them :) + */ + private static final Object[] lock = new Object[0]; + static { // Our class might be initialized from an unprivileged context - global = (Logger) AccessController.doPrivileged - (new PrivilegedAction() - { - public Object run() - { - return getLogger("global"); - } - }); + global = (Logger) AccessController.doPrivileged(new PrivilegedAction() + { + public Object run() + { + return getLogger("global"); + } + }); } - /** - * The name of the Logger, or <code>null</code> if the logger is - * anonymous. - * - * <p>A previous version of the GNU Classpath implementation granted - * untrusted code the permission to control any logger whose name - * was null. However, test code revealed that the Sun J2SE 1.4 - * reference implementation enforces the security control for any - * logger that was not created through getAnonymousLogger, even if - * it has a null name. Therefore, a separate flag {@link - * Logger#anonymous} was introduced. + * The name of the Logger, or <code>null</code> if the logger is anonymous. + * <p> + * A previous version of the GNU Classpath implementation granted untrusted + * code the permission to control any logger whose name was null. However, + * test code revealed that the Sun J2SE 1.4 reference implementation enforces + * the security control for any logger that was not created through + * getAnonymousLogger, even if it has a null name. Therefore, a separate flag + * {@link Logger#anonymous} was introduced. */ private final String name; - /** * The name of the resource bundle used for localization. - * - * <p>This variable cannot be declared as <code>final</code> - * because its value can change as a result of calling - * getLogger(String,String). + * <p> + * This variable cannot be declared as <code>final</code> because its value + * can change as a result of calling getLogger(String,String). */ private String resourceBundleName; - /** * The resource bundle used for localization. - * - * <p>This variable cannot be declared as <code>final</code> - * because its value can change as a result of calling - * getLogger(String,String). + * <p> + * This variable cannot be declared as <code>final</code> because its value + * can change as a result of calling getLogger(String,String). */ private ResourceBundle resourceBundle; private Filter filter; private final List handlerList = new java.util.ArrayList(4); + private Handler[] handlers = new Handler[0]; /** - * Indicates whether or not this logger is anonymous. While - * a LoggingPermission is required for any modifications to - * a normal logger, untrusted code can obtain an anonymous logger - * and modify it according to its needs. - * - * <p>A previous version of the GNU Classpath implementation - * granted access to every logger whose name was null. - * However, test code revealed that the Sun J2SE 1.4 reference - * implementation enforces the security control for any logger - * that was not created through getAnonymousLogger, even - * if it has a null name. + * Indicates whether or not this logger is anonymous. While a + * LoggingPermission is required for any modifications to a normal logger, + * untrusted code can obtain an anonymous logger and modify it according to + * its needs. + * <p> + * A previous version of the GNU Classpath implementation granted access to + * every logger whose name was null. However, test code revealed that the Sun + * J2SE 1.4 reference implementation enforces the security control for any + * logger that was not created through getAnonymousLogger, even if it has a + * null name. */ private boolean anonymous; - private boolean useParentHandlers; private Level level; @@ -156,29 +151,26 @@ public class Logger private Logger parent; /** - * Constructs a Logger for a subsystem. Most applications do not - * need to create new Loggers explicitly; instead, they should call - * the static factory methods - * {@link #getLogger(java.lang.String,java.lang.String) getLogger} + * Constructs a Logger for a subsystem. Most applications do not need to + * create new Loggers explicitly; instead, they should call the static factory + * methods {@link #getLogger(java.lang.String,java.lang.String) getLogger} * (with ResourceBundle for localization) or - * {@link #getLogger(java.lang.String) getLogger} (without - * ResourceBundle), respectively. - * - * @param name the name for the logger, for example "java.awt" - * or "com.foo.bar". The name should be based on - * the name of the package issuing log records - * and consist of dot-separated Java identifiers. - * - * @param resourceBundleName the name of a resource bundle - * for localizing messages, or <code>null</code> - * to indicate that messages do not need to be localized. - * + * {@link #getLogger(java.lang.String) getLogger} (without ResourceBundle), + * respectively. + * + * @param name the name for the logger, for example "java.awt" or + * "com.foo.bar". The name should be based on the name of the + * package issuing log records and consist of dot-separated Java + * identifiers. + * @param resourceBundleName the name of a resource bundle for localizing + * messages, or <code>null</code> to indicate that messages do + * not need to be localized. * @throws java.util.MissingResourceException if - * <code>resourceBundleName</code> is not <code>null</code> - * and no such bundle could be located. + * <code>resourceBundleName</code> is not <code>null</code> + * and no such bundle could be located. */ protected Logger(String name, String resourceBundleName) - throws MissingResourceException + throws MissingResourceException { this.name = name; this.resourceBundleName = resourceBundleName; @@ -190,1002 +182,978 @@ public class Logger level = null; - /* This is null when the root logger is being constructed, - * and the root logger afterwards. + /* + * This is null when the root logger is being constructed, and the root + * logger afterwards. */ parent = root; useParentHandlers = (parent != null); } - - /** - * Finds a registered logger for a subsystem, or creates one in - * case no logger has been registered yet. - * - * @param name the name for the logger, for example "java.awt" - * or "com.foo.bar". The name should be based on - * the name of the package issuing log records - * and consist of dot-separated Java identifiers. - * - * @throws IllegalArgumentException if a logger for the subsystem - * identified by <code>name</code> has already been created, - * but uses a a resource bundle for localizing messages. - * - * @throws NullPointerException if <code>name</code> is - * <code>null</code>. - * - * @return a logger for the subsystem specified by <code>name</code> - * that does not localize messages. + * Finds a registered logger for a subsystem, or creates one in case no logger + * has been registered yet. + * + * @param name the name for the logger, for example "java.awt" or + * "com.foo.bar". The name should be based on the name of the + * package issuing log records and consist of dot-separated Java + * identifiers. + * @throws IllegalArgumentException if a logger for the subsystem identified + * by <code>name</code> has already been created, but uses a a + * resource bundle for localizing messages. + * @throws NullPointerException if <code>name</code> is <code>null</code>. + * @return a logger for the subsystem specified by <code>name</code> that + * does not localize messages. */ public static Logger getLogger(String name) { return getLogger(name, null); } - /** - * Finds a registered logger for a subsystem, or creates one in case - * no logger has been registered yet. - * - * <p>If a logger with the specified name has already been - * registered, the behavior depends on the resource bundle that is - * currently associated with the existing logger. - * - * <ul><li>If the existing logger uses the same resource bundle as - * specified by <code>resourceBundleName</code>, the existing logger - * is returned.</li> - * - * <li>If the existing logger currently does not localize messages, - * the existing logger is modified to use the bundle specified by - * <code>resourceBundleName</code>. The existing logger is then - * returned. Therefore, all subsystems currently using this logger - * will produce localized messages from now on.</li> - * - * <li>If the existing logger already has an associated resource - * bundle, but a different one than specified by - * <code>resourceBundleName</code>, an - * <code>IllegalArgumentException</code> is thrown.</li></ul> - * - * @param name the name for the logger, for example "java.awt" - * or "org.gnu.foo". The name should be based on - * the name of the package issuing log records - * and consist of dot-separated Java identifiers. - * - * @param resourceBundleName the name of a resource bundle - * for localizing messages, or <code>null</code> - * to indicate that messages do not need to be localized. - * + * Finds a registered logger for a subsystem, or creates one in case no logger + * has been registered yet. + * <p> + * If a logger with the specified name has already been registered, the + * behavior depends on the resource bundle that is currently associated with + * the existing logger. + * <ul> + * <li>If the existing logger uses the same resource bundle as specified by + * <code>resourceBundleName</code>, the existing logger is returned.</li> + * <li>If the existing logger currently does not localize messages, the + * existing logger is modified to use the bundle specified by + * <code>resourceBundleName</code>. The existing logger is then returned. + * Therefore, all subsystems currently using this logger will produce + * localized messages from now on.</li> + * <li>If the existing logger already has an associated resource bundle, but + * a different one than specified by <code>resourceBundleName</code>, an + * <code>IllegalArgumentException</code> is thrown.</li> + * </ul> + * + * @param name the name for the logger, for example "java.awt" or + * "org.gnu.foo". The name should be based on the name of the + * package issuing log records and consist of dot-separated Java + * identifiers. + * @param resourceBundleName the name of a resource bundle for localizing + * messages, or <code>null</code> to indicate that messages do + * not need to be localized. * @return a logger for the subsystem specified by <code>name</code>. - * * @throws java.util.MissingResourceException if - * <code>resourceBundleName</code> is not <code>null</code> - * and no such bundle could be located. - * - * @throws IllegalArgumentException if a logger for the subsystem - * identified by <code>name</code> has already been created, - * but uses a different resource bundle for localizing - * messages. - * - * @throws NullPointerException if <code>name</code> is - * <code>null</code>. + * <code>resourceBundleName</code> is not <code>null</code> + * and no such bundle could be located. + * @throws IllegalArgumentException if a logger for the subsystem identified + * by <code>name</code> has already been created, but uses a + * different resource bundle for localizing messages. + * @throws NullPointerException if <code>name</code> is <code>null</code>. */ public static Logger getLogger(String name, String resourceBundleName) { LogManager lm = LogManager.getLogManager(); - Logger result; + Logger result; if (name == null) throw new NullPointerException(); - /* Without synchronized(lm), it could happen that another thread - * would create a logger between our calls to getLogger and - * addLogger. While addLogger would indicate this by returning - * false, we could not be sure that this other logger was still - * existing when we called getLogger a second time in order - * to retrieve it -- note that LogManager is only allowed to - * keep weak references to registered loggers, so Loggers - * can be garbage collected at any time in general, and between - * our call to addLogger and our second call go getLogger - * in particular. - * - * Of course, we assume here that LogManager.addLogger etc. - * are synchronizing on the global LogManager object. There - * is a comment in the implementation of LogManager.addLogger - * referring to this comment here, so that any change in - * the synchronization of LogManager will be reflected here. + /* + * Without synchronized(lm), it could happen that another thread would + * create a logger between our calls to getLogger and addLogger. While + * addLogger would indicate this by returning false, we could not be sure + * that this other logger was still existing when we called getLogger a + * second time in order to retrieve it -- note that LogManager is only + * allowed to keep weak references to registered loggers, so Loggers can be + * garbage collected at any time in general, and between our call to + * addLogger and our second call go getLogger in particular. Of course, we + * assume here that LogManager.addLogger etc. are synchronizing on the + * global LogManager object. There is a comment in the implementation of + * LogManager.addLogger referring to this comment here, so that any change + * in the synchronization of LogManager will be reflected here. */ - synchronized (lm) - { - result = lm.getLogger(name); - if (result == null) - { - boolean couldBeAdded; - - result = new Logger(name, resourceBundleName); - couldBeAdded = lm.addLogger(result); - if (!couldBeAdded) - throw new IllegalStateException("cannot register new logger"); - } - else + synchronized (lock) { - /* The logger already exists. Make sure it uses - * the same resource bundle for localizing messages. - */ - String existingBundleName = result.getResourceBundleName(); - - /* The Sun J2SE 1.4 reference implementation will return the - * registered logger object, even if it does not have a resource - * bundle associated with it. However, it seems to change the - * resourceBundle of the registered logger to the bundle - * whose name was passed to getLogger. - */ - if ((existingBundleName == null) && (resourceBundleName != null)) - { - /* If ResourceBundle.getBundle throws an exception, the - * existing logger will be unchanged. This would be - * different if the assignment to resourceBundleName - * came first. - */ - result.resourceBundle = ResourceBundle.getBundle(resourceBundleName); - result.resourceBundleName = resourceBundleName; - return result; - } - - if ((existingBundleName != resourceBundleName) - && ((existingBundleName == null) - || !existingBundleName.equals(resourceBundleName))) - { - throw new IllegalArgumentException(); - } + synchronized (lm) + { + result = lm.getLogger(name); + if (result == null) + { + boolean couldBeAdded; + + result = new Logger(name, resourceBundleName); + couldBeAdded = lm.addLogger(result); + if (! couldBeAdded) + throw new IllegalStateException("cannot register new logger"); + } + else + { + /* + * The logger already exists. Make sure it uses the same + * resource bundle for localizing messages. + */ + String existingBundleName = result.getResourceBundleName(); + + /* + * The Sun J2SE 1.4 reference implementation will return the + * registered logger object, even if it does not have a resource + * bundle associated with it. However, it seems to change the + * resourceBundle of the registered logger to the bundle whose + * name was passed to getLogger. + */ + if ((existingBundleName == null) && + (resourceBundleName != null)) + { + /* + * If ResourceBundle.getBundle throws an exception, the + * existing logger will be unchanged. This would be + * different if the assignment to resourceBundleName came + * first. + */ + result.resourceBundle = + ResourceBundle.getBundle(resourceBundleName); + + result.resourceBundleName = resourceBundleName; + return result; + } + + if ((existingBundleName != resourceBundleName) + && ((existingBundleName == null) + || !existingBundleName.equals(resourceBundleName))) + { + throw new IllegalArgumentException(); + } + } + } } - } return result; } - /** - * Creates a new, unnamed logger. Unnamed loggers are not - * registered in the namespace of the LogManager, and no special - * security permission is required for changing their state. - * Therefore, untrusted applets are able to modify their private - * logger instance obtained through this method. - * - * <p>The parent of the newly created logger will the the root - * logger, from which the level threshold and the handlers are - * inherited. + * Creates a new, unnamed logger. Unnamed loggers are not registered in the + * namespace of the LogManager, and no special security permission is required + * for changing their state. Therefore, untrusted applets are able to modify + * their private logger instance obtained through this method. + * <p> + * The parent of the newly created logger will the the root logger, from which + * the level threshold and the handlers are inherited. */ public static Logger getAnonymousLogger() { return getAnonymousLogger(null); } - /** - * Creates a new, unnamed logger. Unnamed loggers are not - * registered in the namespace of the LogManager, and no special - * security permission is required for changing their state. - * Therefore, untrusted applets are able to modify their private - * logger instance obtained through this method. - * - * <p>The parent of the newly created logger will the the root - * logger, from which the level threshold and the handlers are - * inherited. - * - * @param resourceBundleName the name of a resource bundle - * for localizing messages, or <code>null</code> - * to indicate that messages do not need to be localized. - * + * Creates a new, unnamed logger. Unnamed loggers are not registered in the + * namespace of the LogManager, and no special security permission is required + * for changing their state. Therefore, untrusted applets are able to modify + * their private logger instance obtained through this method. + * <p> + * The parent of the newly created logger will the the root logger, from which + * the level threshold and the handlers are inherited. + * + * @param resourceBundleName the name of a resource bundle for localizing + * messages, or <code>null</code> to indicate that messages do + * not need to be localized. * @throws java.util.MissingResourceException if - * <code>resourceBundleName</code> is not <code>null</code> - * and no such bundle could be located. + * <code>resourceBundleName</code> is not <code>null</code> + * and no such bundle could be located. */ public static Logger getAnonymousLogger(String resourceBundleName) - throws MissingResourceException + throws MissingResourceException { - Logger result; + Logger result; result = new Logger(null, resourceBundleName); result.anonymous = true; return result; } - /** - * Returns the name of the resource bundle that is being used for - * localizing messages. - * - * @return the name of the resource bundle used for localizing messages, - * or <code>null</code> if the parent's resource bundle - * is used for this purpose. + * Returns the name of the resource bundle that is being used for localizing + * messages. + * + * @return the name of the resource bundle used for localizing messages, or + * <code>null</code> if the parent's resource bundle is used for + * this purpose. */ - public synchronized String getResourceBundleName() + public String getResourceBundleName() { - return resourceBundleName; + synchronized (lock) + { + return resourceBundleName; + } } - /** - * Returns the resource bundle that is being used for localizing - * messages. - * - * @return the resource bundle used for localizing messages, - * or <code>null</code> if the parent's resource bundle - * is used for this purpose. + * Returns the resource bundle that is being used for localizing messages. + * + * @return the resource bundle used for localizing messages, or + * <code>null</code> if the parent's resource bundle is used for + * this purpose. */ - public synchronized ResourceBundle getResourceBundle() + public ResourceBundle getResourceBundle() { - return resourceBundle; + synchronized (lock) + { + return resourceBundle; + } } - /** - * Returns the severity level threshold for this <code>Handler</code>. - * All log records with a lower severity level will be discarded; - * a log record of the same or a higher level will be published - * unless an installed <code>Filter</code> decides to discard it. - * - * @return the severity level below which all log messages will be - * discarded, or <code>null</code> if the logger inherits - * the threshold from its parent. + * Returns the severity level threshold for this <code>Handler</code>. All + * log records with a lower severity level will be discarded; a log record of + * the same or a higher level will be published unless an installed + * <code>Filter</code> decides to discard it. + * + * @return the severity level below which all log messages will be discarded, + * or <code>null</code> if the logger inherits the threshold from + * its parent. */ - public synchronized Level getLevel() + public Level getLevel() { - return level; + synchronized (lock) + { + return level; + } } - /** - * Returns whether or not a message of the specified level - * would be logged by this logger. - * - * @throws NullPointerException if <code>level</code> - * is <code>null</code>. + * Returns whether or not a message of the specified level would be logged by + * this logger. + * + * @throws NullPointerException if <code>level</code> is <code>null</code>. */ - public synchronized boolean isLoggable(Level level) + public boolean isLoggable(Level level) { - if (this.level != null) - return this.level.intValue() <= level.intValue(); + synchronized (lock) + { + if (this.level != null) + return this.level.intValue() <= level.intValue(); - if (parent != null) - return parent.isLoggable(level); - else - return false; + if (parent != null) + return parent.isLoggable(level); + else + return false; + } } - /** - * Sets the severity level threshold for this <code>Handler</code>. - * All log records with a lower severity level will be discarded - * immediately. A log record of the same or a higher level will be - * published unless an installed <code>Filter</code> decides to - * discard it. - * - * @param level the severity level below which all log messages - * will be discarded, or <code>null</code> to - * indicate that the logger should inherit the - * threshold from its parent. - * - * @throws SecurityException if this logger is not anonymous, a - * security manager exists, and the caller is not granted - * the permission to control the logging infrastructure by - * having LoggingPermission("control"). Untrusted code can - * obtain an anonymous logger through the static factory method - * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. + * Sets the severity level threshold for this <code>Handler</code>. All log + * records with a lower severity level will be discarded immediately. A log + * record of the same or a higher level will be published unless an installed + * <code>Filter</code> decides to discard it. + * + * @param level the severity level below which all log messages will be + * discarded, or <code>null</code> to indicate that the logger + * should inherit the threshold from its parent. + * @throws SecurityException if this logger is not anonymous, a security + * manager exists, and the caller is not granted the permission to + * control the logging infrastructure by having + * LoggingPermission("control"). Untrusted code can obtain an + * anonymous logger through the static factory method + * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. */ - public synchronized void setLevel(Level level) + public void setLevel(Level level) { - /* An application is allowed to control an anonymous logger - * without having the permission to control the logging - * infrastructure. - */ - if (!anonymous) - LogManager.getLogManager().checkAccess(); - - this.level = level; + synchronized (lock) + { + /* + * An application is allowed to control an anonymous logger without + * having the permission to control the logging infrastructure. + */ + if (! anonymous) + LogManager.getLogManager().checkAccess(); + + this.level = level; + } } - - public synchronized Filter getFilter() + public Filter getFilter() { - return filter; + synchronized (lock) + { + return filter; + } } - /** - * @throws SecurityException if this logger is not anonymous, a - * security manager exists, and the caller is not granted - * the permission to control the logging infrastructure by - * having LoggingPermission("control"). Untrusted code can - * obtain an anonymous logger through the static factory method - * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. + * @throws SecurityException if this logger is not anonymous, a security + * manager exists, and the caller is not granted the permission to + * control the logging infrastructure by having + * LoggingPermission("control"). Untrusted code can obtain an + * anonymous logger through the static factory method + * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. */ - public synchronized void setFilter(Filter filter) - throws SecurityException + public void setFilter(Filter filter) throws SecurityException { - /* An application is allowed to control an anonymous logger - * without having the permission to control the logging - * infrastructure. - */ - if (!anonymous) - LogManager.getLogManager().checkAccess(); - - this.filter = filter; + synchronized (lock) + { + /* + * An application is allowed to control an anonymous logger without + * having the permission to control the logging infrastructure. + */ + if (! anonymous) + LogManager.getLogManager().checkAccess(); + + this.filter = filter; + } } - - - /** * Returns the name of this logger. - * - * @return the name of this logger, or <code>null</code> if - * the logger is anonymous. + * + * @return the name of this logger, or <code>null</code> if the logger is + * anonymous. */ public String getName() { - /* Note that the name of a logger cannot be changed during - * its lifetime, so no synchronization is needed. + /* + * Note that the name of a logger cannot be changed during its lifetime, so + * no synchronization is needed. */ return name; } - /** - * Passes a record to registered handlers, provided the record - * is considered as loggable both by {@link #isLoggable(Level)} - * and a possibly installed custom {@link #setFilter(Filter) filter}. - * - * <p>If the logger has been configured to use parent handlers, - * the record will be forwarded to the parent of this logger - * in addition to being processed by the handlers registered with - * this logger. - * - * <p>The other logging methods in this class are convenience methods - * that merely create a new LogRecord and pass it to this method. - * Therefore, subclasses usually just need to override this single - * method for customizing the logging behavior. - * + * Passes a record to registered handlers, provided the record is considered + * as loggable both by {@link #isLoggable(Level)} and a possibly installed + * custom {@link #setFilter(Filter) filter}. + * <p> + * If the logger has been configured to use parent handlers, the record will + * be forwarded to the parent of this logger in addition to being processed by + * the handlers registered with this logger. + * <p> + * The other logging methods in this class are convenience methods that merely + * create a new LogRecord and pass it to this method. Therefore, subclasses + * usually just need to override this single method for customizing the + * logging behavior. + * * @param record the log record to be inspected and possibly forwarded. */ - public synchronized void log(LogRecord record) + public void log(LogRecord record) { - if (!isLoggable(record.getLevel())) - return; - - if ((filter != null) && !filter.isLoggable(record)) - return; - - /* If no logger name has been set for the log record, - * use the name of this logger. - */ - if (record.getLoggerName() == null) - record.setLoggerName(name); - - /* Avoid that some other thread is changing the logger hierarchy - * while we are traversing it. - */ - synchronized (LogManager.getLogManager()) - { - Logger curLogger = this; - - do + synchronized (lock) { - /* The Sun J2SE 1.4 reference implementation seems to call the - * filter only for the logger whose log method is called, - * never for any of its parents. Also, parent loggers publish - * log record whatever their level might be. This is pretty - * weird, but GNU Classpath tries to be as compatible as - * possible to the reference implementation. - */ - for (int i = 0; i < curLogger.handlers.length; i++) - curLogger.handlers[i].publish(record); - - if (curLogger.getUseParentHandlers() == false) - break; - - curLogger = curLogger.getParent(); + if (!isLoggable(record.getLevel())) + return; + + if ((filter != null) && ! filter.isLoggable(record)) + return; + + /* + * If no logger name has been set for the log record, use the name of + * this logger. + */ + if (record.getLoggerName() == null) + record.setLoggerName(name); + + /* + * Avoid that some other thread is changing the logger hierarchy while + * we are traversing it. + */ + synchronized (LogManager.getLogManager()) + { + Logger curLogger = this; + + do + { + /* + * The Sun J2SE 1.4 reference implementation seems to call the + * filter only for the logger whose log method is called, never + * for any of its parents. Also, parent loggers publish log + * record whatever their level might be. This is pretty weird, + * but GNU Classpath tries to be as compatible as possible to + * the reference implementation. + */ + for (int i = 0; i < curLogger.handlers.length; i++) + curLogger.handlers[i].publish(record); + + if (curLogger.getUseParentHandlers() == false) + break; + + curLogger = curLogger.getParent(); + } + while (parent != null); + } } - while (parent != null); - } } - public void log(Level level, String message) { if (isLoggable(level)) log(level, message, (Object[]) null); } - - public synchronized void log(Level level, - String message, - Object param) + public void log(Level level, String message, Object param) { - if (isLoggable(level)) + synchronized (lock) { - StackTraceElement caller = getCallerStackFrame(); - logp(level, - caller != null ? caller.getClassName() : "<unknown>", - caller != null ? caller.getMethodName() : "<unknown>", - message, - param); + if (isLoggable(level)) + { + StackTraceElement caller = getCallerStackFrame(); + logp(level, caller != null ? caller.getClassName() : "<unknown>", + caller != null ? caller.getMethodName() : "<unknown>", + message, param); + } } } - - public synchronized void log(Level level, - String message, - Object[] params) + public void log(Level level, String message, Object[] params) { - if (isLoggable(level)) + synchronized (lock) { - StackTraceElement caller = getCallerStackFrame(); - logp(level, - caller != null ? caller.getClassName() : "<unknown>", - caller != null ? caller.getMethodName() : "<unknown>", - message, - params); + if (isLoggable(level)) + { + StackTraceElement caller = getCallerStackFrame(); + logp(level, caller != null ? caller.getClassName() : "<unknown>", + caller != null ? caller.getMethodName() : "<unknown>", + message, params); + + } } } - - public synchronized void log(Level level, - String message, - Throwable thrown) + public void log(Level level, String message, Throwable thrown) { - if (isLoggable(level)) + synchronized (lock) { - StackTraceElement caller = getCallerStackFrame(); - logp(level, - caller != null ? caller.getClassName() : "<unknown>", - caller != null ? caller.getMethodName() : "<unknown>", - message, - thrown); + if (isLoggable(level)) + { + StackTraceElement caller = getCallerStackFrame(); + logp(level, caller != null ? caller.getClassName() : "<unknown>", + caller != null ? caller.getMethodName() : "<unknown>", + message, thrown); + } } } - - public synchronized void logp(Level level, - String sourceClass, - String sourceMethod, - String message) + public void logp(Level level, String sourceClass, String sourceMethod, + String message) { - logp(level, sourceClass, sourceMethod, message, - (Object[]) null); + synchronized (lock) + { + logp(level, sourceClass, sourceMethod, message, (Object[]) null); + } } - - public synchronized void logp(Level level, - String sourceClass, - String sourceMethod, - String message, - Object param) + public void logp(Level level, String sourceClass, String sourceMethod, + String message, Object param) { - logp(level, sourceClass, sourceMethod, message, - new Object[] { param }); - } + synchronized (lock) + { + logp(level, sourceClass, sourceMethod, message, new Object[] { param }); + } + } - private synchronized ResourceBundle findResourceBundle() + private ResourceBundle findResourceBundle() { - if (resourceBundle != null) - return resourceBundle; + synchronized (lock) + { + if (resourceBundle != null) + return resourceBundle; - if (parent != null) - return parent.findResourceBundle(); + if (parent != null) + return parent.findResourceBundle(); - return null; + return null; + } } - - private synchronized void logImpl(Level level, - String sourceClass, - String sourceMethod, - String message, - Object[] params) + private void logImpl(Level level, String sourceClass, String sourceMethod, + String message, Object[] params) { - LogRecord rec = new LogRecord(level, message); + synchronized (lock) + { + LogRecord rec = new LogRecord(level, message); - rec.setResourceBundle(findResourceBundle()); - rec.setSourceClassName(sourceClass); - rec.setSourceMethodName(sourceMethod); - rec.setParameters(params); + rec.setResourceBundle(findResourceBundle()); + rec.setSourceClassName(sourceClass); + rec.setSourceMethodName(sourceMethod); + rec.setParameters(params); - log(rec); + log(rec); + } } - - public synchronized void logp(Level level, - String sourceClass, - String sourceMethod, - String message, - Object[] params) + public void logp(Level level, String sourceClass, String sourceMethod, + String message, Object[] params) { - logImpl(level, sourceClass, sourceMethod, message, params); + synchronized (lock) + { + logImpl(level, sourceClass, sourceMethod, message, params); + } } - - public synchronized void logp(Level level, - String sourceClass, - String sourceMethod, - String message, - Throwable thrown) + public void logp(Level level, String sourceClass, String sourceMethod, + String message, Throwable thrown) { - LogRecord rec = new LogRecord(level, message); + synchronized (lock) + { + LogRecord rec = new LogRecord(level, message); - rec.setResourceBundle(resourceBundle); - rec.setSourceClassName(sourceClass); - rec.setSourceMethodName(sourceMethod); - rec.setThrown(thrown); + rec.setResourceBundle(resourceBundle); + rec.setSourceClassName(sourceClass); + rec.setSourceMethodName(sourceMethod); + rec.setThrown(thrown); - log(rec); + log(rec); + } } - - public synchronized void logrb(Level level, - String sourceClass, - String sourceMethod, - String bundleName, - String message) + public void logrb(Level level, String sourceClass, String sourceMethod, + String bundleName, String message) { - logrb(level, sourceClass, sourceMethod, bundleName, - message, (Object[]) null); + synchronized (lock) + { + logrb(level, sourceClass, sourceMethod, bundleName, message, + (Object[]) null); + } } - - public synchronized void logrb(Level level, - String sourceClass, - String sourceMethod, - String bundleName, - String message, - Object param) + public void logrb(Level level, String sourceClass, String sourceMethod, + String bundleName, String message, Object param) { - logrb(level, sourceClass, sourceMethod, bundleName, - message, new Object[] { param }); + synchronized (lock) + { + logrb(level, sourceClass, sourceMethod, bundleName, message, + new Object[] { param }); + } } - - public synchronized void logrb(Level level, - String sourceClass, - String sourceMethod, - String bundleName, - String message, - Object[] params) + public void logrb(Level level, String sourceClass, String sourceMethod, + String bundleName, String message, Object[] params) { - LogRecord rec = new LogRecord(level, message); + synchronized (lock) + { + LogRecord rec = new LogRecord(level, message); - rec.setResourceBundleName(bundleName); - rec.setSourceClassName(sourceClass); - rec.setSourceMethodName(sourceMethod); - rec.setParameters(params); + rec.setResourceBundleName(bundleName); + rec.setSourceClassName(sourceClass); + rec.setSourceMethodName(sourceMethod); + rec.setParameters(params); - log(rec); + log(rec); + } } - - public synchronized void logrb(Level level, - String sourceClass, - String sourceMethod, - String bundleName, - String message, - Throwable thrown) + public void logrb(Level level, String sourceClass, String sourceMethod, + String bundleName, String message, Throwable thrown) { - LogRecord rec = new LogRecord(level, message); + synchronized (lock) + { + LogRecord rec = new LogRecord(level, message); - rec.setResourceBundleName(bundleName); - rec.setSourceClassName(sourceClass); - rec.setSourceMethodName(sourceMethod); - rec.setThrown(thrown); + rec.setResourceBundleName(bundleName); + rec.setSourceClassName(sourceClass); + rec.setSourceMethodName(sourceMethod); + rec.setThrown(thrown); - log(rec); + log(rec); + } } - - public synchronized void entering(String sourceClass, - String sourceMethod) + public void entering(String sourceClass, String sourceMethod) { - if (isLoggable(Level.FINER)) - logp(Level.FINER, sourceClass, sourceMethod, "ENTRY"); + synchronized (lock) + { + if (isLoggable(Level.FINER)) + logp(Level.FINER, sourceClass, sourceMethod, "ENTRY"); + } } - - public synchronized void entering(String sourceClass, - String sourceMethod, - Object param) + public void entering(String sourceClass, String sourceMethod, Object param) { - if (isLoggable(Level.FINER)) - logp(Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", param); + synchronized (lock) + { + if (isLoggable(Level.FINER)) + logp(Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", param); + } } - - public synchronized void entering(String sourceClass, - String sourceMethod, - Object[] params) + public void entering(String sourceClass, String sourceMethod, Object[] params) { - if (isLoggable(Level.FINER)) - { - StringBuffer buf = new StringBuffer(80); - buf.append("ENTRY"); - for (int i = 0; i < params.length; i++) + synchronized (lock) { - buf.append(" {"); - buf.append(i); - buf.append('}'); + if (isLoggable(Level.FINER)) + { + StringBuffer buf = new StringBuffer(80); + buf.append("ENTRY"); + for (int i = 0; i < params.length; i++) + { + buf.append(" {"); + buf.append(i); + buf.append('}'); + } + + logp(Level.FINER, sourceClass, sourceMethod, buf.toString(), params); + } } - - logp(Level.FINER, sourceClass, sourceMethod, buf.toString(), params); - } } - - public synchronized void exiting(String sourceClass, - String sourceMethod) + public void exiting(String sourceClass, String sourceMethod) { - if (isLoggable(Level.FINER)) - logp(Level.FINER, sourceClass, sourceMethod, "RETURN"); + synchronized (lock) + { + if (isLoggable(Level.FINER)) + logp(Level.FINER, sourceClass, sourceMethod, "RETURN"); + } } - - public synchronized void exiting(String sourceClass, - String sourceMethod, - Object result) + public void exiting(String sourceClass, String sourceMethod, Object result) { - if (isLoggable(Level.FINER)) - logp(Level.FINER, sourceClass, sourceMethod, "RETURN {0}", result); + synchronized (lock) + { + if (isLoggable(Level.FINER)) + logp(Level.FINER, sourceClass, sourceMethod, "RETURN {0}", result); + } } - - public synchronized void throwing(String sourceClass, - String sourceMethod, - Throwable thrown) + public void throwing(String sourceClass, String sourceMethod, Throwable thrown) { - if (isLoggable(Level.FINER)) - logp(Level.FINER, sourceClass, sourceMethod, "THROW", thrown); + synchronized (lock) + { + if (isLoggable(Level.FINER)) + logp(Level.FINER, sourceClass, sourceMethod, "THROW", thrown); + } } - /** - * Logs a message with severity level SEVERE, indicating a serious - * failure that prevents normal program execution. Messages at this - * level should be understandable to an inexperienced, non-technical - * end user. Ideally, they explain in simple words what actions the - * user can take in order to resolve the problem. - * + * Logs a message with severity level SEVERE, indicating a serious failure + * that prevents normal program execution. Messages at this level should be + * understandable to an inexperienced, non-technical end user. Ideally, they + * explain in simple words what actions the user can take in order to resolve + * the problem. + * * @see Level#SEVERE - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource - * bundle. While it is possible to pass - * <code>null</code>, this is not recommended, since - * a logging message without text is unlikely to be - * helpful. + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void severe(String message) + public void severe(String message) { - if (isLoggable(Level.SEVERE)) - log(Level.SEVERE, message); + synchronized (lock) + { + if (isLoggable(Level.SEVERE)) + log(Level.SEVERE, message); + } } - /** - * Logs a message with severity level WARNING, indicating a - * potential problem that does not prevent normal program execution. - * Messages at this level should be understandable to an - * inexperienced, non-technical end user. Ideally, they explain in - * simple words what actions the user can take in order to resolve - * the problem. - * + * Logs a message with severity level WARNING, indicating a potential problem + * that does not prevent normal program execution. Messages at this level + * should be understandable to an inexperienced, non-technical end user. + * Ideally, they explain in simple words what actions the user can take in + * order to resolve the problem. + * * @see Level#WARNING - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource - * bundle. While it is possible to pass - * <code>null</code>, this is not recommended, since - * a logging message without text is unlikely to be - * helpful. + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void warning(String message) + public void warning(String message) { - if (isLoggable(Level.WARNING)) - log(Level.WARNING, message); + synchronized (lock) + { + if (isLoggable(Level.WARNING)) + log(Level.WARNING, message); + } } - /** - * Logs a message with severity level INFO. {@link Level#INFO} is - * intended for purely informational messages that do not indicate - * error or warning situations. In the default logging - * configuration, INFO messages will be written to the system - * console. For this reason, the INFO level should be used only for - * messages that are important to end users and system - * administrators. Messages at this level should be understandable - * to an inexperienced, non-technical user. - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource - * bundle. While it is possible to pass - * <code>null</code>, this is not recommended, since - * a logging message without text is unlikely to be - * helpful. + * Logs a message with severity level INFO. {@link Level#INFO} is intended for + * purely informational messages that do not indicate error or warning + * situations. In the default logging configuration, INFO messages will be + * written to the system console. For this reason, the INFO level should be + * used only for messages that are important to end users and system + * administrators. Messages at this level should be understandable to an + * inexperienced, non-technical user. + * + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void info(String message) + public void info(String message) { - if (isLoggable(Level.INFO)) - log(Level.INFO, message); + synchronized (lock) + { + if (isLoggable(Level.INFO)) + log(Level.INFO, message); + } } - /** - * Logs a message with severity level CONFIG. {@link Level#CONFIG} is - * intended for static configuration messages, for example about the - * windowing environment, the operating system version, etc. - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource bundle. While - * it is possible to pass <code>null</code>, this is not - * recommended, since a logging message without text is unlikely - * to be helpful. + * Logs a message with severity level CONFIG. {@link Level#CONFIG} is intended + * for static configuration messages, for example about the windowing + * environment, the operating system version, etc. + * + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void config(String message) + public void config(String message) { - if (isLoggable(Level.CONFIG)) - log(Level.CONFIG, message); + synchronized (lock) + { + if (isLoggable(Level.CONFIG)) + log(Level.CONFIG, message); + } } - /** - * Logs a message with severity level FINE. {@link Level#FINE} is - * intended for messages that are relevant for developers using - * the component generating log messages. Examples include minor, - * recoverable failures, or possible inefficiencies. - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource - * bundle. While it is possible to pass - * <code>null</code>, this is not recommended, since - * a logging message without text is unlikely to be - * helpful. + * Logs a message with severity level FINE. {@link Level#FINE} is intended for + * messages that are relevant for developers using the component generating + * log messages. Examples include minor, recoverable failures, or possible + * inefficiencies. + * + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void fine(String message) + public void fine(String message) { - if (isLoggable(Level.FINE)) - log(Level.FINE, message); + synchronized (lock) + { + if (isLoggable(Level.FINE)) + log(Level.FINE, message); + } } - /** - * Logs a message with severity level FINER. {@link Level#FINER} is - * intended for rather detailed tracing, for example entering a - * method, returning from a method, or throwing an exception. - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource - * bundle. While it is possible to pass - * <code>null</code>, this is not recommended, since - * a logging message without text is unlikely to be - * helpful. + * Logs a message with severity level FINER. {@link Level#FINER} is intended + * for rather detailed tracing, for example entering a method, returning from + * a method, or throwing an exception. + * + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void finer(String message) + public void finer(String message) { - if (isLoggable(Level.FINER)) - log(Level.FINER, message); + synchronized (lock) + { + if (isLoggable(Level.FINER)) + log(Level.FINER, message); + } } - /** - * Logs a message with severity level FINEST. {@link Level#FINEST} - * is intended for highly detailed tracing, for example reaching a - * certain point inside the body of a method. - * - * @param message the message text, also used as look-up key if the - * logger is localizing messages with a resource - * bundle. While it is possible to pass - * <code>null</code>, this is not recommended, since - * a logging message without text is unlikely to be - * helpful. + * Logs a message with severity level FINEST. {@link Level#FINEST} is intended + * for highly detailed tracing, for example reaching a certain point inside + * the body of a method. + * + * @param message the message text, also used as look-up key if the logger is + * localizing messages with a resource bundle. While it is possible + * to pass <code>null</code>, this is not recommended, since a + * logging message without text is unlikely to be helpful. */ - public synchronized void finest(String message) + public void finest(String message) { - if (isLoggable(Level.FINEST)) - log(Level.FINEST, message); + synchronized (lock) + { + if (isLoggable(Level.FINEST)) + log(Level.FINEST, message); + } } - /** - * Adds a handler to the set of handlers that get notified - * when a log record is to be published. - * + * Adds a handler to the set of handlers that get notified when a log record + * is to be published. + * * @param handler the handler to be added. - * - * @throws NullPointerException if <code>handler</code> - * is <code>null</code>. - * - * @throws SecurityException if this logger is not anonymous, a - * security manager exists, and the caller is not granted - * the permission to control the logging infrastructure by - * having LoggingPermission("control"). Untrusted code can - * obtain an anonymous logger through the static factory method - * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. + * @throws NullPointerException if <code>handler</code> is <code>null</code>. + * @throws SecurityException if this logger is not anonymous, a security + * manager exists, and the caller is not granted the permission to + * control the logging infrastructure by having + * LoggingPermission("control"). Untrusted code can obtain an + * anonymous logger through the static factory method + * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. */ - public synchronized void addHandler(Handler handler) - throws SecurityException + public void addHandler(Handler handler) throws SecurityException { - if (handler == null) - throw new NullPointerException(); - - /* An application is allowed to control an anonymous logger - * without having the permission to control the logging - * infrastructure. - */ - if (!anonymous) - LogManager.getLogManager().checkAccess(); - - if (!handlerList.contains(handler)) - { - handlerList.add(handler); - handlers = getHandlers(); - } + synchronized (lock) + { + if (handler == null) + throw new NullPointerException(); + + /* + * An application is allowed to control an anonymous logger without + * having the permission to control the logging infrastructure. + */ + if (! anonymous) + LogManager.getLogManager().checkAccess(); + + if (! handlerList.contains(handler)) + { + handlerList.add(handler); + handlers = getHandlers(); + } + } } - /** - * Removes a handler from the set of handlers that get notified - * when a log record is to be published. - * + * Removes a handler from the set of handlers that get notified when a log + * record is to be published. + * * @param handler the handler to be removed. - * - * @throws SecurityException if this logger is not anonymous, a - * security manager exists, and the caller is not granted the - * permission to control the logging infrastructure by having - * LoggingPermission("control"). Untrusted code can obtain an - * anonymous logger through the static factory method {@link - * #getAnonymousLogger(java.lang.String) getAnonymousLogger}. - * - * @throws NullPointerException if <code>handler</code> - * is <code>null</code>. + * @throws SecurityException if this logger is not anonymous, a security + * manager exists, and the caller is not granted the permission to + * control the logging infrastructure by having + * LoggingPermission("control"). Untrusted code can obtain an + * anonymous logger through the static factory method {@link + * #getAnonymousLogger(java.lang.String) getAnonymousLogger}. + * @throws NullPointerException if <code>handler</code> is <code>null</code>. */ - public synchronized void removeHandler(Handler handler) - throws SecurityException + public void removeHandler(Handler handler) throws SecurityException { - /* An application is allowed to control an anonymous logger - * without having the permission to control the logging - * infrastructure. - */ - if (!anonymous) - LogManager.getLogManager().checkAccess(); - - if (handler == null) - throw new NullPointerException(); - - handlerList.remove(handler); - handlers = getHandlers(); + synchronized (lock) + { + /* + * An application is allowed to control an anonymous logger without + * having the permission to control the logging infrastructure. + */ + if (! anonymous) + LogManager.getLogManager().checkAccess(); + + if (handler == null) + throw new NullPointerException(); + + handlerList.remove(handler); + handlers = getHandlers(); + } } - /** - * Returns the handlers currently registered for this Logger. - * When a log record has been deemed as being loggable, - * it will be passed to all registered handlers for - * publication. In addition, if the logger uses parent handlers - * (see {@link #getUseParentHandlers() getUseParentHandlers} - * and {@link #setUseParentHandlers(boolean) setUseParentHandlers}, - * the log record will be passed to the parent's handlers. + * Returns the handlers currently registered for this Logger. When a log + * record has been deemed as being loggable, it will be passed to all + * registered handlers for publication. In addition, if the logger uses parent + * handlers (see {@link #getUseParentHandlers() getUseParentHandlers} and + * {@link #setUseParentHandlers(boolean) setUseParentHandlers}, the log + * record will be passed to the parent's handlers. */ - public synchronized Handler[] getHandlers() + public Handler[] getHandlers() { - /* We cannot return our internal handlers array - * because we do not have any guarantee that the - * caller would not change the array entries. - */ - return (Handler[]) handlerList.toArray(new Handler[handlerList.size()]); + synchronized (lock) + { + /* + * We cannot return our internal handlers array because we do not have + * any guarantee that the caller would not change the array entries. + */ + return (Handler[]) handlerList.toArray(new Handler[handlerList.size()]); + } } - /** - * Returns whether or not this Logger forwards log records to - * handlers registered for its parent loggers. - * - * @return <code>false</code> if this Logger sends log records - * merely to Handlers registered with itself; - * <code>true</code> if this Logger sends log records - * not only to Handlers registered with itself, but also - * to those Handlers registered with parent loggers. + * Returns whether or not this Logger forwards log records to handlers + * registered for its parent loggers. + * + * @return <code>false</code> if this Logger sends log records merely to + * Handlers registered with itself; <code>true</code> if this Logger + * sends log records not only to Handlers registered with itself, but + * also to those Handlers registered with parent loggers. */ - public synchronized boolean getUseParentHandlers() + public boolean getUseParentHandlers() { - return useParentHandlers; + synchronized (lock) + { + return useParentHandlers; + } } - /** - * Sets whether or not this Logger forwards log records to - * handlers registered for its parent loggers. - * - * @param useParentHandlers <code>false</code> to let this - * Logger send log records merely to Handlers registered - * with itself; <code>true</code> to let this Logger - * send log records not only to Handlers registered - * with itself, but also to those Handlers registered with - * parent loggers. - * - * @throws SecurityException if this logger is not anonymous, a - * security manager exists, and the caller is not granted - * the permission to control the logging infrastructure by - * having LoggingPermission("control"). Untrusted code can - * obtain an anonymous logger through the static factory method - * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. - * + * Sets whether or not this Logger forwards log records to handlers registered + * for its parent loggers. + * + * @param useParentHandlers <code>false</code> to let this Logger send log + * records merely to Handlers registered with itself; + * <code>true</code> to let this Logger send log records not only + * to Handlers registered with itself, but also to those Handlers + * registered with parent loggers. + * @throws SecurityException if this logger is not anonymous, a security + * manager exists, and the caller is not granted the permission to + * control the logging infrastructure by having + * LoggingPermission("control"). Untrusted code can obtain an + * anonymous logger through the static factory method + * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. */ - public synchronized void setUseParentHandlers(boolean useParentHandlers) + public void setUseParentHandlers(boolean useParentHandlers) { - /* An application is allowed to control an anonymous logger - * without having the permission to control the logging - * infrastructure. - */ - if (!anonymous) - LogManager.getLogManager().checkAccess(); - - this.useParentHandlers = useParentHandlers; + synchronized (lock) + { + /* + * An application is allowed to control an anonymous logger without + * having the permission to control the logging infrastructure. + */ + if (! anonymous) + LogManager.getLogManager().checkAccess(); + + this.useParentHandlers = useParentHandlers; + } } - /** - * Returns the parent of this logger. By default, the parent is - * assigned by the LogManager by inspecting the logger's name. - * - * @return the parent of this logger (as detemined by the LogManager - * by inspecting logger names), the root logger if no other - * logger has a name which is a prefix of this logger's name, or - * <code>null</code> for the root logger. + * Returns the parent of this logger. By default, the parent is assigned by + * the LogManager by inspecting the logger's name. + * + * @return the parent of this logger (as detemined by the LogManager by + * inspecting logger names), the root logger if no other logger has a + * name which is a prefix of this logger's name, or <code>null</code> + * for the root logger. */ - public synchronized Logger getParent() + public Logger getParent() { - return parent; + synchronized (lock) + { + return parent; + } } - /** - * Sets the parent of this logger. Usually, applications do not - * call this method directly. Instead, the LogManager will ensure - * that the tree of loggers reflects the hierarchical logger - * namespace. Basically, this method should not be public at all, - * but the GNU implementation follows the API specification. - * - * @throws NullPointerException if <code>parent</code> is - * <code>null</code>. - * - * @throws SecurityException if this logger is not anonymous, a - * security manager exists, and the caller is not granted - * the permission to control the logging infrastructure by - * having LoggingPermission("control"). Untrusted code can - * obtain an anonymous logger through the static factory method - * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. + * Sets the parent of this logger. Usually, applications do not call this + * method directly. Instead, the LogManager will ensure that the tree of + * loggers reflects the hierarchical logger namespace. Basically, this method + * should not be public at all, but the GNU implementation follows the API + * specification. + * + * @throws NullPointerException if <code>parent</code> is <code>null</code>. + * @throws SecurityException if this logger is not anonymous, a security + * manager exists, and the caller is not granted the permission to + * control the logging infrastructure by having + * LoggingPermission("control"). Untrusted code can obtain an + * anonymous logger through the static factory method + * {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}. */ - public synchronized void setParent(Logger parent) + public void setParent(Logger parent) { - if (parent == null) - throw new NullPointerException(); + synchronized (lock) + { + if (parent == null) + throw new NullPointerException(); - if (this == root) - throw new IllegalArgumentException( - "the root logger can only have a null parent"); + if (this == root) + throw new IllegalArgumentException( + "the root logger can only have a null parent"); - /* An application is allowed to control an anonymous logger - * without having the permission to control the logging - * infrastructure. - */ - if (!anonymous) - LogManager.getLogManager().checkAccess(); + /* + * An application is allowed to control an anonymous logger without + * having the permission to control the logging infrastructure. + */ + if (! anonymous) + LogManager.getLogManager().checkAccess(); - this.parent = parent; + this.parent = parent; + } } - + /** - * Gets the StackTraceElement of the first class that is not this class. - * That should be the initial caller of a logging method. + * Gets the StackTraceElement of the first class that is not this class. That + * should be the initial caller of a logging method. + * * @return caller of the initial logging method or null if unknown. */ private StackTraceElement getCallerStackFrame() @@ -1195,18 +1163,18 @@ public class Logger int index = 0; // skip to stackentries until this class - while(index < stackTrace.length - && !stackTrace[index].getClassName().equals(getClass().getName())) + while (index < stackTrace.length + && ! stackTrace[index].getClassName().equals(getClass().getName())) index++; // skip the stackentries of this class - while(index < stackTrace.length - && stackTrace[index].getClassName().equals(getClass().getName())) + while (index < stackTrace.length + && stackTrace[index].getClassName().equals(getClass().getName())) index++; return index < stackTrace.length ? stackTrace[index] : null; } - + /** * Reset and close handlers attached to this logger. This function is package * private because it must only be available to the LogManager. diff --git a/libjava/classpath/java/util/zip/ZipEntry.java b/libjava/classpath/java/util/zip/ZipEntry.java index 9b7afa00045..893f043746d 100644 --- a/libjava/classpath/java/util/zip/ZipEntry.java +++ b/libjava/classpath/java/util/zip/ZipEntry.java @@ -357,7 +357,7 @@ public class ZipEntry implements ZipConstants, Cloneable | (extra[pos+2] & 0xff) << 8 | (extra[pos+3] & 0xff) << 16 | (extra[pos+4] & 0xff) << 24); - setTime(time); + setTime(time*1000); } } pos += len; diff --git a/libjava/classpath/javax/accessibility/AccessibleAction.java b/libjava/classpath/javax/accessibility/AccessibleAction.java index a7cf05e4a04..c2e00714176 100644 --- a/libjava/classpath/javax/accessibility/AccessibleAction.java +++ b/libjava/classpath/javax/accessibility/AccessibleAction.java @@ -78,6 +78,22 @@ public interface AccessibleAction static final String TOGGLE_EXPAND = "toggle expand"; /** + * The name of an action which causes a component to perform its default + * action. + * + * @since 1.6 + */ + static final String CLICK = "click"; + + /** + * The name of an action which toggles the state of a popup, causing a + * hidden popup to be displayed and a visible popup to be hidden. + * + * @since 1.6 + */ + static final String TOGGLE_POPUP = "toggle popup"; + + /** * Get the number possible actions for this object, with the zeroth * representing the default action. * diff --git a/libjava/classpath/javax/accessibility/AccessibleAttributeSequence.java b/libjava/classpath/javax/accessibility/AccessibleAttributeSequence.java index 5ee50e5d787..de8edcb9706 100644 --- a/libjava/classpath/javax/accessibility/AccessibleAttributeSequence.java +++ b/libjava/classpath/javax/accessibility/AccessibleAttributeSequence.java @@ -41,8 +41,12 @@ package javax.accessibility; import javax.swing.text.AttributeSet; /** - * This is a convenience class that represents an accessible - * attribute sequence. + * This is a convenience class that wraps together a sequence + * of text with the attributes applied to it. This allows a single + * object to be used when + * {@link AccessibleContext#ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED} + * events are fired. + * * @since 1.5 */ public class AccessibleAttributeSequence @@ -63,9 +67,19 @@ public class AccessibleAttributeSequence public int endIndex; /** - * Create a new instance. + * Creates a new instance using the specified attributes + * and the supplied start and end indicies. + * + * @param start the index of the start of the text. + * @param end the index of the end of the text. + * @param attr the attributes applied to the text sequence. + * @since 1.6 */ - public AccessibleAttributeSequence() + public AccessibleAttributeSequence(int start, int end, AttributeSet attr) { + startIndex = start; + endIndex = end; + attributes = attr; } + } diff --git a/libjava/classpath/javax/accessibility/AccessibleEditableText.java b/libjava/classpath/javax/accessibility/AccessibleEditableText.java index 07d7530e4f4..308016a3966 100644 --- a/libjava/classpath/javax/accessibility/AccessibleEditableText.java +++ b/libjava/classpath/javax/accessibility/AccessibleEditableText.java @@ -125,7 +125,7 @@ public interface AccessibleEditableText extends AccessibleText * Select the text between two points. * * @param start the start position, inclusive - * @param end the end position, exclusive + * @param stop the end position, exclusive */ // XXX What happens if indices are out of bounds? void selectText(int start, int stop); diff --git a/libjava/classpath/javax/accessibility/AccessibleRelationSet.java b/libjava/classpath/javax/accessibility/AccessibleRelationSet.java index 768c9cd791c..49161d77e9d 100644 --- a/libjava/classpath/javax/accessibility/AccessibleRelationSet.java +++ b/libjava/classpath/javax/accessibility/AccessibleRelationSet.java @@ -168,7 +168,7 @@ public class AccessibleRelationSet { int i = relations.size(); while (--i >= 0) - if (((AccessibleRelation) relations.get(i)).key.equals(key)) + if ((relations.get(i)).key.equals(key)) return true; return false; } @@ -184,7 +184,7 @@ public class AccessibleRelationSet int i = relations.size(); while (--i >= 0) { - AccessibleRelation r = (AccessibleRelation) relations.get(i); + AccessibleRelation r = relations.get(i); if (r.key.equals(key)) return r; } diff --git a/libjava/classpath/javax/accessibility/AccessibleRole.java b/libjava/classpath/javax/accessibility/AccessibleRole.java index a5396f147f5..c568b4fe93b 100644 --- a/libjava/classpath/javax/accessibility/AccessibleRole.java +++ b/libjava/classpath/javax/accessibility/AccessibleRole.java @@ -517,6 +517,19 @@ public class AccessibleRole extends AccessibleBundle = new AccessibleRole("ruler"); /** + * A HTML container is an accessible object which contains other + * accessible objects that together form some HTML content. For example, + * the content may be a sequence of text containing a link, which + * would be represent as two children, one an {@link AccessibleText} + * object holding the normal text and the other an + * {@link AccessibleHypertext} object representing the link. + * + * @since 1.6 + */ + public static final AccessibleRole HTML_CONTAINER + = new AccessibleRole("HTML container"); + + /** * Create a new constant with a locale independent key. Follow the example, * keep the constructor private and make public constants instead. * diff --git a/libjava/classpath/javax/accessibility/AccessibleTextSequence.java b/libjava/classpath/javax/accessibility/AccessibleTextSequence.java index 88fa4c2b880..b400160aa35 100644 --- a/libjava/classpath/javax/accessibility/AccessibleTextSequence.java +++ b/libjava/classpath/javax/accessibility/AccessibleTextSequence.java @@ -39,7 +39,10 @@ exception statement from your version. */ package javax.accessibility; /** - * This is a convenience class that encapsulates a String and a range. + * This is a convenience class that encapsulates a string of text + * and a range specifying where, within a larger body of text, the + * string may be found. + * * @since 1.5 */ public class AccessibleTextSequence @@ -61,8 +64,18 @@ public class AccessibleTextSequence /** * Create a new instance. + * + * @param start the initial index of the text within a larger + * body of text. + * @param end the final index of the text within a larger body + * of text. + * @param txt the text itself. + * @since 1.6 */ - public AccessibleTextSequence() + public AccessibleTextSequence(int start, int end, String txt) { + startIndex = start; + endIndex = end; + text = txt; } } diff --git a/libjava/classpath/javax/imageio/ImageReader.java b/libjava/classpath/javax/imageio/ImageReader.java index c7eed06fbdc..269493f2330 100644 --- a/libjava/classpath/javax/imageio/ImageReader.java +++ b/libjava/classpath/javax/imageio/ImageReader.java @@ -429,7 +429,7 @@ public abstract class ImageReader * IllegalStateException). If input is null then the current input * source will be removed. * - * @param input the input source object + * @param in the input source object * @param seekForwardOnly true if this reader should be allowed to * read input from the data stream more than once, false otherwise * @@ -1498,7 +1498,7 @@ public abstract class ImageReader * null. IllegalArgumentException is thrown if either region will * contain 0 pixels after clipping. * - * @param image read parameters, or null + * @param param read parameters, or null * @param srcWidth the width of the source image * @param srcHeight the height of the source image * @param image the destination image, or null @@ -1734,7 +1734,7 @@ public abstract class ImageReader public ImageTypeSpecifier getRawImageType (int imageIndex) throws IOException { - return (ImageTypeSpecifier) getImageTypes(imageIndex).next(); + return getImageTypes(imageIndex).next(); } /** @@ -1828,7 +1828,7 @@ public abstract class ImageReader * warning listeners will be notified of read progress, changes in * sample sets and warnings respectively. * - * @param the index of the image frame to read + * @param imageIndex the index of the image frame to read * * @return a buffered image * @@ -1855,8 +1855,8 @@ public abstract class ImageReader * The source and destination band settings are checked with a call * to checkReadParamBandSettings. * - * @param the index of the image frame to read - * @param the image read parameters + * @param imageIndex the index of the image frame to read + * @param param the image read parameters * * @return an IIOImage * @@ -1902,7 +1902,7 @@ public abstract class ImageReader * Each set of source and destination band settings are checked with * a call to checkReadParamBandSettings. * - * @param an iterator over the image read parameters + * @param params iterator over the image read parameters * * @return an IIOImage * @@ -1938,8 +1938,8 @@ public abstract class ImageReader * before this method returns and so listeners will not necessarily * be notified. * - * @param the index of the image frame to read - * @param the image read parameters + * @param imageIndex the index of the image frame to read + * @param param the image read parameters * * @return a rendered image * diff --git a/libjava/classpath/javax/imageio/ImageTypeSpecifier.java b/libjava/classpath/javax/imageio/ImageTypeSpecifier.java index 05b3a26d493..3faa3c937c3 100644 --- a/libjava/classpath/javax/imageio/ImageTypeSpecifier.java +++ b/libjava/classpath/javax/imageio/ImageTypeSpecifier.java @@ -119,7 +119,7 @@ public class ImageTypeSpecifier * @param colorSpace the color space * @param bankIndices the bank indices at which each band will be * stored - * @param bandOffsets the starting band offset for each band within + * @param bankOffsets the starting band offset for each band within * its bank * @param dataType the data type, a DataBuffer constant * @param hasAlpha true if this image type specifier should have an @@ -168,8 +168,8 @@ public class ImageTypeSpecifier * Create a buffered image with the given dimensions using that has * the characteristics specified by this image type specifier. * - * @param the width of the buffered image, in pixels - * @param the height of the buffered image, in pixels + * @param width width of the buffered image, in pixels + * @param height the height of the buffered image, in pixels * * @return a buffered image * diff --git a/libjava/classpath/javax/imageio/ImageWriter.java b/libjava/classpath/javax/imageio/ImageWriter.java index b49e081f002..78d792c72d4 100644 --- a/libjava/classpath/javax/imageio/ImageWriter.java +++ b/libjava/classpath/javax/imageio/ImageWriter.java @@ -899,7 +899,7 @@ public abstract class ImageWriter * IllegalStateException). If input is null then the current input * source will be removed. * - * @param input the output destination object + * @param output the output destination object * * @exception IllegalArgumentException if input is not a valid input * source for this writer and is not an ImageInputStream @@ -1338,7 +1338,7 @@ public abstract class ImageWriter * @param imageIndex the frame index at which to insert the image * @param image the image data, metadata and thumbnails to be * inserted - * @param the image write parameters, or null + * @param param image write parameters, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if image insertion is diff --git a/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java b/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java index 78fad1a15f0..444497d7dc5 100644 --- a/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java +++ b/libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java @@ -39,18 +39,13 @@ exception statement from your version. */ package javax.imageio.metadata; import org.w3c.dom.Attr; -import org.w3c.dom.DOMException; -import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.TypeInfo; -import org.w3c.dom.UserDataHandler; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.ResourceBundle; diff --git a/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java b/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java index 2d52e467078..37269f53916 100644 --- a/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java +++ b/libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java @@ -334,7 +334,7 @@ public class IIOMetadataNode */ public void setAttribute(String name, String value) { - Attr attr = (Attr) getAttributeNode(name); + Attr attr = getAttributeNode(name); if (attr != null) attr.setValue(value); else diff --git a/libjava/classpath/javax/imageio/spi/ServiceRegistry.java b/libjava/classpath/javax/imageio/spi/ServiceRegistry.java index 3051a813bc3..170ea009ad7 100644 --- a/libjava/classpath/javax/imageio/spi/ServiceRegistry.java +++ b/libjava/classpath/javax/imageio/spi/ServiceRegistry.java @@ -787,10 +787,10 @@ public class ServiceRegistry * @param category the service category to which an ordering * constraint is to be added. * - * @param first the provider which is supposed to come before + * @param firstProvider the provider which is supposed to come before * <code>second</code>. * - * @param second the provider which is supposed to come after + * @param secondProvider the provider which is supposed to come after * <code>first</code>. * * @throws IllegalArgumentException if <code>first</code> and @@ -815,10 +815,10 @@ public class ServiceRegistry * @param category the service category from which an ordering * constraint is to be removed. * - * @param first the provider which is supposed to come before + * @param firstProvider the provider which is supposed to come before * <code>second</code>. * - * @param second the provider which is supposed to come after + * @param secondProvider the provider which is supposed to come after * <code>first</code>. * * @throws IllegalArgumentException if <code>first</code> and diff --git a/libjava/classpath/javax/imageio/stream/ImageInputStream.java b/libjava/classpath/javax/imageio/stream/ImageInputStream.java index a2af6c3e2a1..4d1b5d57aa5 100644 --- a/libjava/classpath/javax/imageio/stream/ImageInputStream.java +++ b/libjava/classpath/javax/imageio/stream/ImageInputStream.java @@ -469,7 +469,7 @@ public interface ImageInputStream * @param offset the index of the first element in <code>i</code> * that will hold read data. * - * @param numLongs the number of signed 32-bit integers to read + * @param numInts the number of signed 32-bit integers to read * (which is one fourth of the number of bytes). * * @throws IndexOutOfBoundsException if <code>offset</code> or diff --git a/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java b/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java index da8a958bb64..72aa5e8d59f 100644 --- a/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java +++ b/libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java @@ -39,10 +39,8 @@ exception statement from your version. */ package javax.imageio.stream; import java.io.BufferedInputStream; -import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; /** * @author Michael Koch (konqueror@gmx.de) diff --git a/libjava/classpath/javax/management/MBeanPermission.java b/libjava/classpath/javax/management/MBeanPermission.java index 2c8dfbd622d..1ee0e710433 100644 --- a/libjava/classpath/javax/management/MBeanPermission.java +++ b/libjava/classpath/javax/management/MBeanPermission.java @@ -224,7 +224,7 @@ public class MBeanPermission * or either <code>null</code> or <code>"-"</code> for a * value which may be implied by any member, but not * imply any member itself. - * @param objectName the {@link ObjectName} to which this permission applies, + * @param name the {@link ObjectName} to which this permission applies, * or <code>null</code> for a value which may be implied by * any object name, but not imply any object name itself. * @param actions the actions associated with this permission. diff --git a/libjava/classpath/javax/management/NotificationBroadcasterSupport.java b/libjava/classpath/javax/management/NotificationBroadcasterSupport.java index 59d9ec28e16..7eba6eccf25 100644 --- a/libjava/classpath/javax/management/NotificationBroadcasterSupport.java +++ b/libjava/classpath/javax/management/NotificationBroadcasterSupport.java @@ -105,7 +105,7 @@ public class NotificationBroadcasterSupport */ public NotificationBroadcasterSupport() { - this(null, null); + this(null, (MBeanNotificationInfo[]) null); } /** @@ -124,7 +124,7 @@ public class NotificationBroadcasterSupport */ public NotificationBroadcasterSupport(Executor executor) { - this(executor, null); + this(executor, (MBeanNotificationInfo) null); } /** diff --git a/libjava/classpath/javax/management/ObjectName.java b/libjava/classpath/javax/management/ObjectName.java index 4ea21cdc7ae..1fb51506f04 100644 --- a/libjava/classpath/javax/management/ObjectName.java +++ b/libjava/classpath/javax/management/ObjectName.java @@ -39,7 +39,6 @@ package javax.management; import java.io.Serializable; -import java.util.Collections; import java.util.Hashtable; import java.util.Iterator; import java.util.Map; diff --git a/libjava/classpath/javax/management/StandardMBean.java b/libjava/classpath/javax/management/StandardMBean.java index 37483845376..bd59c68ae22 100644 --- a/libjava/classpath/javax/management/StandardMBean.java +++ b/libjava/classpath/javax/management/StandardMBean.java @@ -228,13 +228,13 @@ public class StandardMBean Method getter; try { - getter = iface.getMethod("get" + name, null); + getter = iface.getMethod("get" + name); } catch (NoSuchMethodException e) { try { - getter = iface.getMethod("is" + name, null); + getter = iface.getMethod("is" + name); } catch (NoSuchMethodException ex) { @@ -246,7 +246,7 @@ public class StandardMBean Object result; try { - result = getter.invoke(impl, null); + result = getter.invoke(impl); } catch (IllegalAccessException e) { diff --git a/libjava/classpath/javax/management/openmbean/ArrayType.java b/libjava/classpath/javax/management/openmbean/ArrayType.java index 42f80623d9a..e6cf5261aaa 100644 --- a/libjava/classpath/javax/management/openmbean/ArrayType.java +++ b/libjava/classpath/javax/management/openmbean/ArrayType.java @@ -39,7 +39,6 @@ package javax.management.openmbean; import java.lang.reflect.Array; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; diff --git a/libjava/classpath/javax/management/package.html b/libjava/classpath/javax/management/package.html new file mode 100644 index 00000000000..3543eec908c --- /dev/null +++ b/libjava/classpath/javax/management/package.html @@ -0,0 +1,197 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<!-- package.html - describes classes in javax.management package. + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. --> + +<html> +<head><title>GNU Classpath - javax.management</title></head> + +<body> + +<p> +Provides the core classes for the Java Management Extensions (JMX). This API +builds on the notion of Java beans by providing a layer of abstraction between +the beans themselves and the method of accessing them. Instead of being accessed +directly, management beans or <strong>MBeans</strong> are usually accessed via +a management server (an implementation of the @see MBeanServer interface). Thus, +the bean itself may be a simple Java object or it may be something +more complicated (for example, the server may map from Java to SNMP). The server may +also retrieve the bean from some remote location rather than using a local object. +</p> +<p> +Management beans are usually used for monitoring and/or configuration +of a particular entity. For example, the platform management beans +found in the @see java.lang.management package allow the user +to obtain information about the operating system, current memory usage, etc. +as well as turning on and off certain additional facilities. To this end, +an MBean consists of: +</p> +<ul> +<li><emph>attributes</emph> that may be read and/or written to.</li> +<li><emph>operations</emph> which may be performed.</li> +<li><emph>notifications</emph> that may emitted by the bean and listened for by users.</li> +</ul> +<p> +The most common type of management bean is the @see StandardMBean, A standard MBean +relies on the naming patterns established by the JavaBeans framework; the value of an +attribute <code>name</code> is retrieved by an accessor method named <code>getName</code> +and changed by a mutator method called <code>setName</code>. If the mutator is absent, +the attribute is read only. Naming is also used to associate the implementation of a +bean with its interface; an bean <code>Person</code> is assumed to be an implementation +of the interface <code>PersonMBean</code> (and vice versa). To avoid these naming constraints, +the @see StandardMBean class may be used. +</p> +<p> +<h2>Types of Beans</h2> +<p> +The @see StandardMBean class is one example of a @see DynamicMBean where the attributes and +operations of the bean are provided dynamically via the methods provided. With the +@see StandardMBean class, this simply means that the class uses reflection to access the +appropriate methods of the bean implementation. In a more complex scenario, the bean's +data could be supplied from a file or over the network. +</p> +<p> +Once we start talking about accessing beans over network and platform boundaries, we run +in to the issue of how to deal with the types utilised by these beans. Simple types, such +as numbers and strings, are usually fine but more complex types need special treatment. +An <emph>Open MBean</emph> is one that only uses a specific set of types defined in the +@see javax.management.openmbean package, allowing both sides of a remote connection to provide +this subset of types and thus interact. An @see MXBean goes a stage further, and defines +a method whereby a normal Java MBean may become an Open MBean by performing a defined mapping +on the types of the bean. For example, a @see java.util.List or @see java.util.Set of a +particular type becomes an array of the same type. +</p> +<h2>Accessing Beans</h2> +<p> +Although beans can be accessed like normal objects, the normal way of accessing them is +via an @see MBeanServer. This provides the abstraction from the bean's implementation to +a set of attributes, operations and notifications. The server identifies each bean via +an @see ObjectName. This name is unique to a particular bean and is used to identify the +bean when retrieving the value of an attribute or invoking an operation. Essentially, most +methods provided by the server are the same as those provided by the @see DynamicMBean +interface, except that each takes this additional @link ObjectName parameter to identify the +bean being accessed. +</p> +<p> +The @see MBeanServerFactory keeps track of the current MBean servers in use and allows new +ones to be created. A special @see MBeanServer instance, called the <emph>platform MBean +server</emph>, is created when the Java virtual machine is started and a reference to this +may be obtained from the @see ManagementFactory using +@see ManagementFactory#getPlatformMBeanServer(). This primarily exists for the purpose of +creating and registering the platform MBeans, described in @see java.lang.management, which +provide access to information about the underlying operating system, memory usage, the behaviour +of the garbage collector, etc. but is equally suitable for creating and registering your own +beans. Alternatively, a server instance may be obtained from the @see MBeanServerFactory. +</p> +<p> +A bean obtains an @link ObjectName by registering with the server. This operation can be +performed either by passing an existing instance to the @see MBeanServer#registerMBean method +or by using the @see MBeanServer#createMBean method to simultaneously create the bean and +register it with the server. During the registration process, the bean may perform some +arbitrary behaviour if it implements the @link MBeanRegistration interface. The same is +true when unregistering a bean. +</p> +<p> +To actually access the attributes and operations of a bean via the server, we use code +like the following: +</p> +<pre> +// First we obtain the platform MBean server which has the platform MBeans registered +MBeanServer server = ManagementFactory.getPlatformMBeanServer(); +// We also need the object name of the memory bean so we can address it +ObjectName name = new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME); +// Next we obtain the value of the 'verbose' attribute +// What actually happens here is that the server invokes the 'isVerbose' method of +// the MemoryMXBean +boolean verbose = server.getAttribute(name, "verbose"); +// We can also set the value of verbose. Again the server is actually performing +// a setVerbose(val) on the bean but we don't need to know this. +Attribute attrib = new Attribute("verbose", true); +server.setAttribute(name, attrib); +// We can also invoke the 'gc' operation which calls the garbage collector. +server.invoke(name, "gc", new Object[]{}, new String[]{}); +</pre> +<p> +As noted above, the server is simply making basic method calls on the object using +reflection. However, the server provides a layer of abstraction which means that something +more complicated could actually be going on. The lines above are equally applicable, for +example, if <code>server</code> is instead an @see MBeanServerConnection connecting us +to a distant computer. +</p> +<p> +This rather hideous code can be simplified back into simple method calls on an object, +so that we get the best of both worlds. This is achieved using a <emph>MBean proxy</emph>: +<pre> +MBeanServer server = ManagementFactory.getPlatformMBeanServer(); +ObjectName name = new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME); +MemoryMXBean bean = JMX.newMBeanProxy(server, name, MemoryMXBean.class); +boolean verbose = bean.isVerbose(); +bean.setVerbose(true); +bean.gc(); +</pre> +<p> +See how much simpler the operations are? The proxy handles the task of translating the method +calls into appropriate invocations of methods on the server, simplifying the code for the user. +</p> +<p> +Finally, we have assumed in the code above that the @see ObjectName of the bean is known. +If this is not the case, then the server's database can be searched. The @see Query class +provides appropriate operators (e.g. boolean (and,or), value comparison (>, <)) for +building up relatively complex queries. Once constructed, a query may be passed to either +the @see MBeanServer#queryNames or @see MBeanServer#queryMBeans to obtain an appropriate +set of @see ObjectName or MBean instances. +</p> +<h2>Notifications</h2> +<p> +MBeans also have the capability to emit events. Beans which do so implement either the +@see NotificationBroadcaster or @see NotificationEmitter interface (the difference between +the two is simply the existence of a better removal method in the newer +@see NotificationEmitter interface, which otherwise extends @see NotificationBroadcaster), +usually by extending the @see NotificationBroadcasterSupport class. As is usual with event +handling, other classes may <emph>signup</emph> to receive events via the +@see NotificationListener interface. The signup process can include registering a filter +(an implementation of @see NotificationFilter) so that only certain events reach the +listener and others are discarded. +</p> +<h2>Remote Access</h2> +<p> +The subpackage @see javax.management.remote provides facilities to access remote MBean +servers. This consists of a <emph>connector</emph> framework which abstracts the method +of accessing remote servers from the actual implementation, so that the same method is +used to connect to a remote server, regardless of how it is accessed. +</p> +</body> +</html> diff --git a/libjava/classpath/javax/management/remote/NotificationResult.java b/libjava/classpath/javax/management/remote/NotificationResult.java new file mode 100644 index 00000000000..c0b2d9ba1a6 --- /dev/null +++ b/libjava/classpath/javax/management/remote/NotificationResult.java @@ -0,0 +1,166 @@ +/* NotificationResult.java -- Wrapper for a series of buffered notifications. + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.management.remote; + +import java.io.Serializable; + +/** + * <p> + * Wraps the result of a query for buffered notifications. In a remote + * scenario, it may be more practical for the server to buffer individual + * notifications from its beans and then return them in bulk on request. + * This class contains the notifications returned by such a request. + * </p> + * <p> + * It consists of a series of {@link Notification} and identifier pairs, + * wrapped in a {@link TargetedNotification} object. The identifiers + * serve to pair up the notification with the listener that requested + * it. Two positive numbers are also included: the first sequence number + * used by the returned notifications, and the sequence number of the + * notification which will be returned by the next query. The first + * sequence number may be greater than the next sequence number if some + * notifications have been lost. + * </p> + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class NotificationResult + implements Serializable +{ + + /** + * Compatible with JDK 1.6 + */ + private static final long serialVersionUID = 1191800228721395279L; + + /** + * The sequence number of the first notification. + */ + private long earliestSequenceNumber; + + /** + * The sequence number of the next notification to be + * returned by a future query. + */ + private long nextSequenceNumber; + + /** + * The pairs of notifications and identifiers returned + * by the query. + */ + private TargetedNotification[] targetedNotifications; + + /** + * Constructs a new {@link NotificationResult} using the specified + * sequence numbers and the supplied array of notification pairs. + * + * @param startSeqNumber the sequence number of the first notification + * being returned. + * @param nextSeqNumber the sequence numbr of the next notification + * that will be returned from a future query. + * @param notifications the notification and identifier pairs. This + * may be empty. + * @throws IllegalArgumentException if a sequence number is negative + * or <code>notifications</code> is + * <code>null</code>. + */ + public NotificationResult(long startSeqNumber, long nextSeqNumber, + TargetedNotification[] notifications) + { + if (startSeqNumber < 0) + throw new IllegalArgumentException("Starting sequence number is " + + "less than 0."); + if (nextSeqNumber < 0) + throw new IllegalArgumentException("Next sequence number is " + + "less than 0."); + if (notifications == null) + throw new IllegalArgumentException("The array of notifications is null."); + earliestSequenceNumber = startSeqNumber; + nextSequenceNumber = nextSeqNumber; + targetedNotifications = notifications; + } + + /** + * Returns the sequence number of the earliest notification + * in the buffer. + * + * @return the sequence number of the earliest notification. + */ + public long getEarliestSequenceNumber() + { + return earliestSequenceNumber; + } + + /** + * Returns the sequence number of the next notification to + * be returned by a future query. + * + * @return the sequence number of the next notification. + */ + public long getNextSequenceNumber() + { + return nextSequenceNumber; + } + + /** + * Returns the notification and identifier pairs returned + * by the query. + * + * @return the notification and identifier pairs. + */ + public TargetedNotification[] getTargetedNotifications() + { + return targetedNotifications; + } + + /** + * Returns a textual representation of the object. + * + * @return a textual representation. + */ + public String toString() + { + return getClass().getName() + + "[earliestSequenceNumber=" + earliestSequenceNumber + + ",nextSequenceNumber=" + nextSequenceNumber + + ",targetedNotifications=" + targetedNotifications + + "]"; + } + +} diff --git a/libjava/classpath/javax/management/remote/TargetedNotification.java b/libjava/classpath/javax/management/remote/TargetedNotification.java new file mode 100644 index 00000000000..c383c9184c0 --- /dev/null +++ b/libjava/classpath/javax/management/remote/TargetedNotification.java @@ -0,0 +1,127 @@ +/* TargetedNotificaton.java -- Wrapper for a notification and identifier pair. + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.management.remote; + +import java.io.Serializable; + +import javax.management.Notification; + +/** + * Wraps a notification with an identifier that specifies + * the listener which received it. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public class TargetedNotification + implements Serializable +{ + + /** + * Compatible with JDK 1.6 + */ + private static final long serialVersionUID = 7676132089779300926L; + + /** + * The notification that was recieved by the listener. + */ + private Notification notif; + + /** + * The identifier for the listener that received the notification; + */ + private Integer id; + + /** + * Constructs a new {@link TargetedNotification} which connects + * the supplied notification with the specified identifier. The + * identifier matches one of those returned by a previous call + * to add a new notification listener. + * + * @param notif the notification. + * @param id the identifier of the listener that received the + * notification. + * @throws IllegalArgumentException if either argument is + * <code>null</code>. + */ + public TargetedNotification(Notification notif, Integer id) + { + if (notif == null) + throw new IllegalArgumentException("The notification is null."); + if (id == null) + throw new IllegalArgumentException("The identifier is null."); + this.notif = notif; + this.id = id; + } + + /** + * Returns the notification. + * + * @return the notification. + */ + public Notification getNotification() + { + return notif; + } + + /** + * Returns the identifier for the listener + * which received the notification. + * + * @return the identifier. + */ + public Integer getListenerID() + { + return id; + } + + /** + * Returns a textual representation of the object. + * + * @return a textual representation. + */ + public String toString() + { + return getClass().getName() + + "[notif=" + notif + + ",id=" + id + + "]"; + } + +} + diff --git a/libjava/classpath/javax/management/remote/package.html b/libjava/classpath/javax/management/remote/package.html new file mode 100644 index 00000000000..f1d469f3ab1 --- /dev/null +++ b/libjava/classpath/javax/management/remote/package.html @@ -0,0 +1,53 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<!-- package.html - describes classes in javax.management.remote package. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. --> + +<html> +<head><title>GNU Classpath - javax.management.remote</title></head> + +<body> + +<p> +Provides a framework for accessing remote MBean servers. The JMX +remote API introduces the notion of a <emph>connector</emph>. On +the server side, the connector wraps the MBean server, processing +calls from remote clients. The client sends its requests via +a connector which is responsible for transmitting the request +to the server. +</p> +</body> +</html> diff --git a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java new file mode 100644 index 00000000000..38fb544fe45 --- /dev/null +++ b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java @@ -0,0 +1,1151 @@ +/* RMIConnection.java -- RMI object representing a MBean server connection. + Copyright (C) 2007, 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.management.remote.rmi; + +import java.io.Closeable; +import java.io.IOException; + +import java.rmi.MarshalledObject; +import java.rmi.Remote; + +import java.util.Set; + +import javax.management.AttributeList; +import javax.management.AttributeNotFoundException; +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.IntrospectionException; +import javax.management.InvalidAttributeValueException; +import javax.management.ListenerNotFoundException; +import javax.management.MBeanInfo; +import javax.management.MBeanException; +import javax.management.MBeanRegistrationException; +import javax.management.NotCompliantMBeanException; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.ReflectionException; + +import javax.management.remote.NotificationResult; + +import javax.security.auth.Subject; + +/** + * <p> + * RMI interface for forwarding requests to a remote + * {@link javax.management.MBeanServer}. This interface + * parallels the {@link javax.management.MBeanServerConnection} + * interface, providing a way of invoking those methods using + * the RMI protocol. When a client wishes to call a method + * of an MBean server using RMI, the method is called on the stub + * on the client side, which serializes the object parameters + * and sends them to the server where they are deserialized and + * an implementation of this interface forwards them to the + * appropriate MBean server. Return values follow the same + * process, only in reverse. Each client obtains its own + * implementation of this interface from an {@link RMIServer} + * instance. + * </p> + * <p> + * Implementations of this interface do more than simply + * forward requests directly to the server. The arguments + * of the server methods are wrapped in {@link MarshalledObject} + * instances, so that the correct classloader can be used to + * deserialize the arguments. When a method is called, the + * implementation must first retrieve the appropriate classloader + * and then use it to deserialize the marshalled object. Unless + * explicitly specified in the documentation for the method, + * a parameter of the type {@link MarshalledObject} or an array + * of that type should not be {@code null}. + * </p> + * <p> + * Security is also handled by this interface, as the methods + * use an additional {@link javax.security.auth.Subject} parameter + * for role delegation. + * </p> + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface RMIConnection + extends Closeable, Remote +{ + + /** + * Handles {@link + * MBeanServerConnection#addNotificationListener(ObjectName, + * ObjectName, NotificationFilter, Object)} by + * registering the supplied listener with the specified management + * bean. Notifications emitted by the management bean are forwarded + * to the listener via the server, which will convert any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. The filter + * and handback object are wrapped in a {@link MarshalledObject} + * so that they are deserialised using the bean's classloader. + * + * @param name the name of the management bean with which the listener + * should be registered. + * @param listener the listener which will handle notifications from + * the bean. + * @param filter a wrapper containing a filter to apply to incoming + * notifications, or <code>null</code> if no filtering + * should be applied. + * @param passback a wrapper containing an object to be passed to the + * listener when a notification is emitted. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @throws InstanceNotFoundException if the name of the management bean + * could not be resolved. + * @throws RuntimeOperationsException if the bean associated with the given + * object name is not a + * {@link NotificationListener}. This + * exception wraps an + * {@link IllegalArgumentException}. + * @throws SecurityException if the client or delegated subject (if any) + * does not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #removeNotificationListener(ObjectName, ObjectName, + * javax.security.auth.Subject) + * @see #removeNotificationListener(ObjectName, ObjectName, + * java.rmi.MarshalledObject, + * java.rmi.MarshalledObject, + * javax.security.auth.Subject) + * @see #removeNotificationListeners(ObjectName, Integer[], + * javax.security.auth.Subject) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void addNotificationListener(ObjectName name, ObjectName listener, + MarshalledObject filter, MarshalledObject passback, + Subject delegationSubject) + throws InstanceNotFoundException, IOException; + + /** + * Handles {@link + * MBeanServerConnection#addNotificationListener(ObjectName, + * NotificationListener, NotificationFilter, Object)} by + * registering for notifications from the specified management + * beans. The array of filters is assumed to be aligned with + * the array of bean names, so that the notifications from each + * bean are matched against the appropriate filter (or left as + * is if the filter is {@code null}. Notifications emitted by + * the management beans are forwarded to a local listener created + * by this method, via the server, which converts any MBean + * references in the source to portable {@link ObjectName} + * instances. The notification is otherwise unchanged. + * </p> + * <p> + * This local listener buffers the notifications for retrieval by + * {@link #fetchNotifications(long,int,long). This method returns + * an array of listener identifiers which aligns with the supplied + * array of beans so that the appropriate listener can be identified + * by the client, which retains its own listener and handback object. + * The filters are wrapped in {@link MarshalledObject}s so that they are + * deserialised using the bean's classloader. + * </p> + * + * @param names the names of the management bean whose notifications + * should be recorded. + * @param filters an array of wrappers containing filters to apply to + * incoming notifications. An element may be <code>null</code> + * if no filtering should be applied to a bean's notifications. + * @param delegationSubjects an array of {@link javax.security.auth.Subject} + * instances containing the delegation principles for + * each listener. An element may be {@code null} if + * authentication is used instead, or the entire + * argument itself may be {@code null}. In the latter + * case, this is treated as an array of {@code null} + * values. + * @return an array of integers which act as listener identifiers, so that + * notifications retrieved from {@link #fetchNotifications(long,int,long) + * can be matched to the beans they were emitted from. The array is + * aligned against the array of beans supplied to this methods, so that + * the identifier in position 0 represents the bean in position 0 of the + * input array. + * @throws IllegalArgumentException if the {@code names} or {@code filters} array + * is {@code null}, the {@code names} array contains + * a {@code null} value or the three arrays are not + * of the same size. + * @throws ClassCastException if an element of the {@code filters} array unmarshalls + * as a non-null object that is not a {@link NotificationFilter}. + * @throws InstanceNotFoundException if the name of one of the management beans + * could not be resolved. + * @throws SecurityException if, for one of the beans, the client or delegated subject + * (if any) does not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #removeNotificationListener(ObjectName, ObjectName, + * javax.security.auth.Subject) + * @see #removeNotificationListener(ObjectName, ObjectName, + * java.rmi.MarshalledObject, + * java.rmi.MarshalledObject, + * javax.security.auth.Subject) + * @see #removeNotificationListeners(ObjectName, Integer[], + * javax.security.auth.Subject) + * @see NotificationBroadcaster#addNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, + Subject[] delegationSubjects) + throws InstanceNotFoundException, IOException; + + /** + * Closes the connection and unexports the RMI object implementing this + * interface. Following this call, future method calls to this instance + * will fail. + * + * @throws IOException if there is an I/O error in transmitting the close + * request via RMI, closing the connection, or unexporting + * the RMI object. + */ + void close() + throws IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#createMBean(String, ObjectName, + * Object[], String[])}. The array of parameters is wrapped in + * a {@link MarshalledObject} so that it is deserialised using the + * bean's classloader. + * </p> + * <p> + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + * </p> + * <p> + * If the name supplied is <code>null</code>, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + * </p> + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. This may + * be <code>null</code>. + * @param params the parameters for the bean's constructor, encapsulated + * in a {@link MarshalledObject}. If this parameter is + * <code>null</code>, it will be judged equivalent to an + * empty array. + * @param sig the signature of the constructor to use. If this parameter + * is <code>null</code>, it will be judged equivalent to an + * empty array. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> class name or object + * name or if the object name is a pattern. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + ObjectInstance createMBean(String className, ObjectName name, + MarshalledObject params, String[] sig, + Subject delegationSubject) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#createMBean(String, ObjectName, + * ObjectName, Object[], String[])}. The array of parameters is + * wrapped in a {@link MarshalledObject} so that it is deserialised + * using the bean's classloader. + * </p> + * <p> + * Instantiates a new instance of the specified management bean + * using the given constructor and registers it with the server + * under the supplied name. The class is loaded using the + * given class loader. If this argument is <code>null</code>, + * then the same class loader as was used to load the server + * is used. + * </p> + * <p> + * If the name supplied is <code>null</code>, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + * </p> + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. This may + * be <code>null</code>. + * @param loaderName the name of the class loader. + * @param params the parameters for the bean's constructor, encapsulated + * in a {@link MarshalledObject}. If this parameter is + * <code>null</code>, it will be judged equivalent to an + * empty array. + * @param sig the signature of the constructor to use. If this parameter + * is <code>null</code>, it will be judged equivalent to an + * empty array. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> class name or object + * name or if the object name is a pattern. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName, MarshalledObject params, + String[] sig, Subject delegationSubject) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException, + IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#createMBean(String, ObjectName, + * ObjectName)} by instantiating a new instance of the specified + * management bean using the default constructor and registering + * it with the server under the supplied name. The class is loaded + * using the given class loader. If this argument is <code>null</code>, + * then the same class loader as was used to load the server + * is used. + * </p> + * <p> + * If the name supplied is <code>null</code>, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + * </p> + * <p> + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, ObjectName, Object[], String) + * <code>createMBean(className, name, loaderName, (Object[]) null, + * (String) null)</code>} with <code>null</code> parameters + * and signature. + * </p> + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. This may + * be <code>null</code>. + * @param loaderName the name of the class loader. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws InstanceNotFoundException if the specified class loader is not + * registered with the server. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> class name or object + * name or if the object name is a pattern. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #createMBean(String, ObjectName, ObjectName, MarshalledObject, + * String[], Subject) + */ + ObjectInstance createMBean(String className, ObjectName name, + ObjectName loaderName, Subject delegationSubject) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, InstanceNotFoundException, + IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#createMBean(String, ObjectName)} by + * instantiating a new instance of the specified management bean + * using the default constructor and registering it with the server + * under the supplied name. The class is loaded using the + * {@link javax.management.loading.ClassLoaderRepository default + * loader repository} of the server. + * </p> + * <p> + * If the name supplied is <code>null</code>, then the bean is + * expected to implement the {@link MBeanRegistration} interface. + * The {@link MBeanRegistration#preRegister preRegister} method + * of this interface will be used to obtain the name in this case. + * </p> + * <p> + * This method is equivalent to calling {@link + * #createMBean(String, ObjectName, Object[], String[]) + * <code>createMBean(className, name, (Object[]) null, + * (String[]) null)</code>} with <code>null</code> parameters + * and signature. + * </p> + * + * @param className the class of the management bean, of which + * an instance should be created. + * @param name the name to register the new bean with. This may + * be <code>null</code>. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return an {@link ObjectInstance} containing the {@link ObjectName} + * and Java class name of the created instance. + * @throws ReflectionException if an exception occurs in creating + * an instance of the bean. + * @throws InstanceAlreadyExistsException if a matching instance + * already exists. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preRegister + * method. + * @throws MBeanException if the bean's constructor throws an exception. + * @throws NotCompliantMBeanException if the created bean is not + * compliant with the JMX specification. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> class name or object + * name or if the object name is a pattern. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #createMBean(String, ObjectName, MarshalledObject, String[], Subject) + */ + ObjectInstance createMBean(String className, ObjectName name, + Subject delegationSubject) + throws ReflectionException, InstanceAlreadyExistsException, + MBeanRegistrationException, MBeanException, + NotCompliantMBeanException, IOException; + + /** + * <p> + * Retrieves any waiting notifications from the server. When notifications + * are requested using the {@link #addNotificationListeners(ObjectName[], + * MarshalledObject[], Subject[])} method, the server sets up an internal + * listener to receive notifications from the bean and buffer them. When + * this method is called, these buffered notifications can be retrieved. + * </p> + * <p> + * The blocking behaviour of this method depends on the timeout value specified. + * If there are no waiting notifications in the buffer, a value of 0 will cause + * the method to return immediately. Conversely, if the value is + * {@link Long#MAX_VALUE}, then it will wait indefinitely until a notification + * arrives. For any other value, it waits until a notification arrives or the + * number of milliseconds specified by the timeout value is exceeded. The + * behaviour for a negative timeout value is undefined. + * </p> + * <p> + * For a notification to be returned, the following criteria must be fulfilled: + * </p> + * <ul> + * <li>the client must have previously requested notifications from at least + * one bean</li> + * <li>a bean from which notifications have been requested must have emitted + * a notification since the last call to this method</li> + * <li>the emitted notification must pass through any filters established + * when notifications were requested</li> + * <li>the sequence number of the notification must be greater than or equal + * to the specified sequence number (if non-negative)</li> + * </ul> + * + * @param sequenceNumber the sequence number of each notification returned + * must be greater than or equal to this value. If + * the number is negative, this is interpreted as + * meaning the sequence number of the next notification + * and so all notifications are allowed through. + * @param maxNotifications the maximum number of notifications to return. + * This does not include any duplicates so the + * number of actual notifications returned may + * be larger. + * @param timeout the number of milliseconds to wait for a notification + * if the buffer is empty. <code>0</code> causes the + * method to return immediately even if there are no + * notifications available (non-blocking behaviour) while + * a value of {@link Long#MAX_VALUE} causes it to wait + * indefinitely (blocking behaviour). The response to + * a negative value is undefined. + * @return a {@link NotificationResult} object containing the buffered + * notifications. + * @throws IOException if an I/O error occurs. + */ + NotificationResult fetchNotifications(long sequenceNumber, + int maxNotifications, + long timeout) + throws IOException; + + /** + * Handles {@link + * MBeanServerConnection#getAttribute(ObjectName, String)}, + * returning the value of the supplied attribute from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param name the name of the attribute to retrieve. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the value of the attribute. + * @throws AttributeNotFoundException if the attribute could not be + * accessed from the bean. + * @throws MBeanException if the management bean's accessor throws + * an exception. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> bean or attribute + * name. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#getAttribute(String) + */ + Object getAttribute(ObjectName bean, String name, Subject delegationSubject) + throws MBeanException, AttributeNotFoundException, + InstanceNotFoundException, ReflectionException, + IOException; + + /** + * Handles {@link + * MBeanServerConnection#getAttribute(ObjectName, String)}, + * returning the values of the named attributes from the specified + * management bean. + * + * @param bean the bean to retrieve the value from. + * @param names the names of the attributes to retrieve. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the values of the attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception was thrown in trying + * to invoke the bean's accessor. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> bean or attribute + * name. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#getAttributes(String[]) + */ + AttributeList getAttributes(ObjectName bean, String[] names, + Subject delegationSubject) + throws InstanceNotFoundException, ReflectionException, + IOException; + + /** + * Returns the unique identifier for this connection to the RMI + * server. + * + * @return the connection ID. + * @throws IOException if an I/O error occurred. + */ + String getConnectionId() + throws IOException; + + /** + * Handles {@link + * MBeanServerConnection#getDefaultDomain()} by returning the default + * domain this server applies to beans that have no specified domain. + * + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the default domain. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + String getDefaultDomain(Subject delegationSubject) + throws IOException; + + /** + * Handles {@link + * MBeanServerConnection#getDomains()} by returning an array + * containing all the domains used by beans registered with + * this server. The ordering of the array is undefined. + * + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the list of domains. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see ObjectName#getDomain() + */ + String[] getDomains(Subject delegationSubject) + throws IOException; + + /** + * Handles {@link + * MBeanServerConnection#getMBeanCount()} by returning the number of + * management beans registered with this server. + * + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the number of registered beans. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + Integer getMBeanCount(Subject delegationSubject) + throws IOException; + + /** + * Handles {@link + * MBeanServerConnection#getMBeanInfo(ObjectName)} by returning + * information on the given management bean. + * + * @param name the name of the management bean. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return an instance of {@link MBeanInfo} for the bean. + * @throws IntrospectionException if an exception occurs in examining + * the bean. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurs when trying + * to invoke {@link DynamicMBean#getMBeanInfo()} + * on the bean. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#getMBeanInfo() + */ + MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) + throws InstanceNotFoundException, IntrospectionException, + ReflectionException, IOException; + + /** + * Handles {@link + * MBeanServerConnection#getObjectInstance(ObjectName)} by returning + * the {@link ObjectInstance} created for the specified management + * bean on registration. + * + * @param name the name of the bean. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the corresponding {@link ObjectInstance} instance. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #createMBean(String, ObjectName, Subject) + */ + ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject) + throws InstanceNotFoundException, IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#invoke(ObjectName, String, Object[], + * String[])}. The array of parameters is wrapped in a + * {@link MarshalledObject} so that it is deserialised + * using the bean's classloader. + * </p> + * <p> + * Invokes the supplied operation on the specified management + * bean. The class objects specified in the signature are loaded + * using the same class loader as was used for the management bean. + * + * @param bean the management bean whose operation should be invoked. + * @param name the name of the operation to invoke. + * @param params the parameters for the bean's constructor, encapsulated + * in a {@link MarshalledObject}. If this parameter is + * <code>null</code>, it will be judged equivalent to an + * empty array. + * @param sig the signature of the constructor to use. If this parameter + * is <code>null</code>, it will be judged equivalent to an + * empty array. The class objects will be loaded using the + * bean's classloader. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return the return value of the method. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanException if the method invoked throws an exception. + * @throws ReflectionException if an exception is thrown in invoking the + * method. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see DynamicMBean#invoke(String, Object[], String[]) + */ + Object invoke(ObjectName bean, String name, MarshalledObject params, + String[] sig, Subject delegationSubject) + throws InstanceNotFoundException, MBeanException, + ReflectionException, IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#isInstanceOf(ObjectName, String) by + * returning true if the specified management bean is an instance + * of the supplied class. + * </p> + * <p> + * A bean, B, is an instance of a class, C, if either of the following + * conditions holds: + * </p> + * <ul> + * <li>The class name in B's {@link MBeanInfo} is equal to the supplied + * name.</li> + * <li>Both the class of B and C were loaded by the same class loader, + * and B is assignable to C.</li> + * </ul> + * + * @param name the name of the management bean. + * @param className the name of the class to test if <code>name</code> is + * an instance of. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return true if either B is directly an instance of the named class, + * or B is assignable to the class, given that both it and B's + * current class were loaded using the same class loader. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + boolean isInstanceOf(ObjectName name, String className, + Subject delegationSubject) + throws InstanceNotFoundException, IOException; + + /** + * Handles {@link + * MBeanServerConnection#isRegistered(ObjectName) by returning + * true if the specified management bean is registered with + * the server. + * + * @param name the name of the management bean. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return true if the bean is registered. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> bean name. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + boolean isRegistered(ObjectName name, Subject delegationSubject) + throws IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#queryMBeans(ObjectName, QueryExp)}. + * The query expression is wrapped in a {@link MarshalledObject} + * so that it is deserialised using the bean's classloader. + * </p> + * <p> + * Returns a set of {@link ObjectInstance}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + * </p> + * <ol> + * <li>Pattern matching is performed using the supplied + * {@link ObjectName}.</li> + * <li>The supplied query expression is applied.</li> + * </ol> + * <p> + * If both the object name and the query expression are <code>null</code>, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + * </p> + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name, encapsulated in a + * {@link MarshalledObject}. If a <code>null</code> value is + * encapsulated, then the beans will only be filtered using + * pattern matching on the supplied {@link ObjectName}. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return a set of {@link ObjectInstance}s matching the filtered beans. + * This is empty if no beans survived the filters. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + */ + Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, + Subject delegationSubject) + throws IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#queryNames(ObjectName, QueryExp)}. + * The query expression is wrapped in a {@link MarshalledObject} + * so that it is deserialised using the bean's classloader. + * </p> + * <p> + * Returns a set of {@link ObjectName}s matching the specified + * criteria. The full set of beans registered with the server + * are passed through two filters: + * </p> + * <ol> + * <li>Pattern matching is performed using the supplied + * {@link ObjectName}.</li> + * <li>The supplied query expression is applied.</li> + * </ol> + * <p> + * If both the object name and the query expression are <code>null</code>, + * or the object name has no domain and no key properties, + * no filtering will be performed and all beans are returned. + * </p> + * + * @param name an {@link ObjectName} to use as a filter. + * @param query a query expression to apply to each of the beans that match + * the given object name, encapsulated in a + * {@link MarshalledObject}. If a <code>null</code> value is + * encapsulated, then the beans will only be filtered using + * pattern matching on the supplied {@link ObjectName}. + * @param delegationSubject an instance of {@link javax.security.auth.Subject} + * containing the delegation principles. This may be + * {@code null} is authentication is used instead. + * @return a set of {@link ObjectName}s matching the filtered beans. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + Set<ObjectName> queryNames(ObjectName name, MarshalledObject query, + Subject delegationSubject) + throws IOException; + + /** + * <p> + * Handles {@link + * MBeanServerConnection#removeNotificationListener(ObjectName, + * ObjectName, NotificationFilter, Object)}. Both the filter and + * the handback object are wrapped in a {@link MarshalledObject} + * so that they are deserialised using the bean's classloader. + * </p> + * <p> + * Removes the specified listener from the list of recipients + * of notifications from the supplied bean. Only the first instance with + * the supplied filter and passback object is removed. + * <code>null</code> is used as a valid value for these parameters, + * rather than as a way to remove all registration instances for + * the specified listener; for this behaviour instead, see + * {@link #removeNotificationListener(ObjectName, NotificationListener)}. + * </p> + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the listener to remove. + * @param filter a wrapper containing the filter of the listener + * to remove. + * @param passback a wrapper containing the handback object of the + * listener to remove. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #addNotificationListener(ObjectName, NotificationListener, + * MarshalledObject, MarshalledObject, Subject) + * @see NotificationEmitter#removeNotificationListener(NotificationListener, + * NotificationFilter, + * Object) + */ + void removeNotificationListener(ObjectName name, + ObjectName listener, + MarshalledObject filter, + MarshalledObject passback, + Subject delegationSubject) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Handles {@link + * MBeanServerConnection#removeNotificationListener(ObjectName, + * ObjectName)} by removing the specified listener from the list + * of recipients of notifications from the supplied bean. This + * includes all combinations of filters and passback objects + * registered for this listener. For more specific removal of + * listeners, see {@link #removeNotificationListener(ObjectName, + * ObjectName,MarshalledObject,MarshalledObject,Subject)} + * + * @param name the name of the management bean from which the + * listener should be removed. + * @param listener the name of the listener to remove. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #addNotificationListener(ObjectName, NotificationListener, + * MarshalledObject, MarshalledObject, Subject) + * @see NotificationBroadcaster#removeNotificationListener(NotificationListener) + */ + void removeNotificationListener(ObjectName name, ObjectName listener, + Subject delegationSubject) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Removes one or more {@link NotificationListener}s from the specified + * management bean. This method corresponds to + * {@link #addNotificationListeners(ObjectName[], MarshalledObject[], + * Subject)} and provides a different way of handling + * MBeanServerConnection#removeNotificationListener(ObjectName, + * ObjectName)} and + * {@link MBeanServerConnection#removeNotificationListener(ObjectName, + * ObjectName, NotificationFilter, Object)} by using the integer + * identifiers provided by the + * {@link #addNotificationListeners(ObjectName[], MarshalledObject[], + * Subject)} method to select the listeners to remove. + * + * @param name the name of the management bean from which the + * listeners should be removed. + * @param listenerIds the identifiers of the listeners to remove. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @throws InstanceNotFoundException if a name doesn't match a registered + * bean. + * @throws ListenerNotFoundException if the specified listener + * is not registered with the bean. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @throws IllegalArgumentException if either <code>name</code>, + * <code>listenerIds</code> or an element + * of <code>listenerIds</code> + * is <code>null</code>. + * @see #addNotificationListeners(ObjectName[], MarshalledObject[], Subject) + */ + void removeNotificationListeners(ObjectName name, Integer[] listenerIds, + Subject delegationSubject) + throws InstanceNotFoundException, ListenerNotFoundException, + IOException; + + /** + * Handles {@link + * MBeanServerConnection#setAttribute(ObjectName, Attribute)} + * by setting the value of the specified attribute of the supplied + * management bean. The attribute is wrapped in a + * {@link MarshalledObject} so that it is deserialised using the + * bean's classloader. + * + * @param name the name of the management bean. + * @param attribute the attribute to set, encapsulated in a + * {@link MarshalledObject}. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws AttributeNotFoundException if the attribute does not + * correspond to an attribute + * of the bean. + * @throws InvalidAttributeValueException if the value is invalid + * for this particular + * attribute of the bean. + * @throws MBeanException if setting the attribute causes + * the bean to throw an exception (which + * becomes the cause of this exception). + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> bean or attribute + * name. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #getAttribute(ObjectName, String, Subject) + * @see javax.management.DynamicMBean#setAttribute(Attribute) + */ + void setAttribute(ObjectName name, MarshalledObject attribute, + Subject delegationSubject) + throws InstanceNotFoundException, AttributeNotFoundException, + InvalidAttributeValueException, MBeanException, + ReflectionException, IOException; + + /** + * Handles {@link + * MBeanServerConnection#setAttributes(ObjectName, AttributeList)} + * by setting the value of each of the specified attributes + * of the supplied management bean to that specified by + * the {@link Attribute} object. The returned list contains + * the attributes that were set and their new values. + * The attribute list is wrapped in a {@link MarshalledObject} so + * that it is deserialised using the bean's classloader. + * + * @param name the name of the management bean. + * @param attributes the attributes to set, encapsulated in a + * {@link MarshalledObject}. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @return a list of the changed attributes. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws ReflectionException if an exception occurred in trying + * to use the reflection interface + * to lookup the attribute. The + * thrown exception is the cause of + * this exception. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> bean or attribute + * list. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + * @see #getAttributes(ObjectName, String[]) + * @see DynamicMBean#setAttributes(AttributeList) + */ + AttributeList setAttributes(ObjectName name, MarshalledObject attributes, + Subject delegationSubject) + throws InstanceNotFoundException, ReflectionException, + IOException; + + /** + * Handles {@link + * MBeanServerConnection#unregisterMBean(ObjectName)} by unregistering + * the specified management bean. Following this operation, + * the bean instance is no longer accessible from the server via this + * name. Prior to unregistering the bean, the + * {@link MBeanRegistration#preDeregister()} method will be called if + * the bean implements the {@link MBeanRegistration} interface. + * + * @param name the name of the management bean. + * @param delegationSubject a {@link javax.security.auth.Subject} instance + * containing the delegation principles or + * {@code null} if authentication is used. + * @throws InstanceNotFoundException if the bean can not be found. + * @throws MBeanRegistrationException if an exception occurs in + * calling the preDeregister + * method. + * @throws RuntimeOperationsException if an {@link IllegalArgumentException} + * is thrown by the server due to a + * <code>null</code> bean name or a + * request being made to unregister the + * {@link MBeanServerDelegate} bean. + * @throws SecurityException if the client or delegated subject (if any) does + * not have permission to invoke this operation. + * @throws IOException if an I/O error occurred in communicating with + * the bean server. + */ + void unregisterMBean(ObjectName name, Subject delegationSubject) + throws InstanceNotFoundException, MBeanRegistrationException, + IOException; + +} diff --git a/libjava/classpath/javax/management/remote/rmi/RMIServer.java b/libjava/classpath/javax/management/remote/rmi/RMIServer.java new file mode 100644 index 00000000000..d862372ace7 --- /dev/null +++ b/libjava/classpath/javax/management/remote/rmi/RMIServer.java @@ -0,0 +1,89 @@ +/* RMIServer.java -- RMI object for connecting to an RMI JMX connector. + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.management.remote.rmi; + +import java.io.IOException; + +import java.rmi.Remote; +import java.rmi.RemoteException; + +/** + * RMI interface for obtaining an instance of an + * {@link RMIConnection}. An implementation of this + * interface exists for each RMI connector. + * + * @author Andrew John Hughes (gnu_andrew@member.fsf.org) + * @since 1.5 + */ +public interface RMIServer + extends Remote +{ + + /** + * Returns the version of the RMI connection protocol used + * by this server. The returned string takes the form of + * <emph>protocol-version implementation-name</emph> where + * <emph>protocol-version</emph> is a series of two or more + * non-negative integers, separated by a decimal point (.) + * (currently {@code 1.0}) and <emph>implementation-name</emph> + * is the string {@code "GNU Classpath"} followed by the version + * of GNU Classpath in use. + * + * @return the string specified above. + * @throws RemoteException if there is a problem with the transfer + * of the string via RMI. + */ + String getVersion() + throws RemoteException; + + /** + * Constructs and returns a new RMI connection using the specified + * authentication credentials. Each client calls this method to + * obtain a connection to the server. + * + * @param credentials a user-defined object passed to the server + * to authenticate the client. May be {@code null}. + * @return the new connection. + * @throws IOException if the new connection can not be created or + * exported, or an error occurs in the RMI transmission. + * @throws SecurityException if the client could not be authenticated + * correctly using the supplied credientials. + */ + RMIConnection newClient(Object credentials) + throws IOException; +} diff --git a/libjava/classpath/javax/net/ssl/HttpsURLConnection.java b/libjava/classpath/javax/net/ssl/HttpsURLConnection.java index 7d68162c96a..c02cb9e7b5c 100644 --- a/libjava/classpath/javax/net/ssl/HttpsURLConnection.java +++ b/libjava/classpath/javax/net/ssl/HttpsURLConnection.java @@ -38,7 +38,6 @@ exception statement from your version. */ package javax.net.ssl; -import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import java.security.Principal; diff --git a/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java b/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java index 997dcbc3779..503c06c0290 100644 --- a/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java +++ b/libjava/classpath/javax/print/attribute/standard/JobStateReasons.java @@ -40,8 +40,6 @@ package javax.print.attribute.standard; import java.util.Collection; import java.util.HashSet; -import java.util.Iterator; - import javax.print.attribute.Attribute; import javax.print.attribute.PrintJobAttribute; diff --git a/libjava/classpath/javax/print/attribute/standard/MediaSize.java b/libjava/classpath/javax/print/attribute/standard/MediaSize.java index be3f1567812..f2fa100a05c 100644 --- a/libjava/classpath/javax/print/attribute/standard/MediaSize.java +++ b/libjava/classpath/javax/print/attribute/standard/MediaSize.java @@ -214,7 +214,7 @@ public class MediaSize extends Size2DSyntax for (int i = 0; i < mediaCache.size(); i++) { - MediaSize size = (MediaSize) mediaCache.get(i); + MediaSize size = mediaCache.get(i); int dist = (Math.abs(size.getXMicrometers() - xMicro) + Math.abs(size.getYMicrometers() - yMicro)); @@ -240,7 +240,7 @@ public class MediaSize extends Size2DSyntax { for (int i = 0; i < mediaCache.size(); i++) { - MediaSize size = (MediaSize) mediaCache.get(i); + MediaSize size = mediaCache.get(i); if (size.getMediaSizeName().equals(media)) return size; diff --git a/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java b/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java index c58dd53795e..3e77e181e55 100644 --- a/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java +++ b/libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java @@ -178,7 +178,7 @@ public final class PrinterStateReasons if (severity == null) throw new NullPointerException("severity is null"); - return super.put((PrinterStateReason) reason, (Severity) severity); + return super.put(reason, severity); } /** diff --git a/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java b/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java index 2849707632b..f376bedfe80 100644 --- a/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java +++ b/libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java @@ -84,7 +84,7 @@ public interface PortableRemoteObjectDelegate * unexported. Also, such object cannot be collected by garbage collector. * This is usually impemented via {@link Util#unexportObject} * - * @param object the object to export. + * @param obj the object to export. * * @throws RemoteException */ @@ -113,7 +113,7 @@ public interface PortableRemoteObjectDelegate * returned stub is also connected to the same ORB. If the target is * unconnected, the returned stub is unconnected. * - * @param target a server side object. + * @param obj a server side object. * @return a stub object that can be used to access that server object. * * @throws NoSuchObjectException if a stub cannot be located for the given @@ -127,7 +127,7 @@ public interface PortableRemoteObjectDelegate * object to becomes available for garbage collection. This is usually * impemented via {@link Util#unexportObject} * - * @param object the object to unexport. + * @param obj the object to unexport. * * @throws NoSuchObjectException if the passed object is not currently * exported. diff --git a/libjava/classpath/javax/rmi/CORBA/Util.java b/libjava/classpath/javax/rmi/CORBA/Util.java index cfd3d7bd686..04b6f63a6fb 100644 --- a/libjava/classpath/javax/rmi/CORBA/Util.java +++ b/libjava/classpath/javax/rmi/CORBA/Util.java @@ -332,7 +332,7 @@ public class Util * </tr> * </table> * - * @param ex an exception that was thrown on a server side implementation. + * @param exception an exception that was thrown on a server side implementation. * * @return the corresponding RemoteException unless it is a RuntimeException. * diff --git a/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java b/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java index cacb925810b..79d740e7b0a 100644 --- a/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java +++ b/libjava/classpath/javax/rmi/CORBA/UtilDelegate.java @@ -243,7 +243,7 @@ public interface UtilDelegate * </tr> * </table> * - * @param ex an exception that was thrown on a server side implementation. + * @param e an exception that was thrown on a server side implementation. * * @return the corresponding RemoteException unless it is a RuntimeException. * @@ -266,7 +266,7 @@ public interface UtilDelegate * * @param output a stream to write to, must be * org.omg.CORBA_2_3.portable.OutputStream - * @param object an object to write. + * @param obj an object to write. */ void writeRemoteObject(OutputStream output, Object obj); diff --git a/libjava/classpath/javax/rmi/CORBA/ValueHandler.java b/libjava/classpath/javax/rmi/CORBA/ValueHandler.java index c4213efdcfb..acc44aa2f4a 100644 --- a/libjava/classpath/javax/rmi/CORBA/ValueHandler.java +++ b/libjava/classpath/javax/rmi/CORBA/ValueHandler.java @@ -114,7 +114,7 @@ public interface ValueHandler * When the value provides the writeReplace method, the result of this method * is written. Otherwise, the value itself is written. * - * @param the value that should be written to the stream. + * @param value the value that should be written to the stream. * * @return the value that will be actually written to the stream. */ diff --git a/libjava/classpath/javax/rmi/PortableRemoteObject.java b/libjava/classpath/javax/rmi/PortableRemoteObject.java index 5bb6b112613..db2ea6b8069 100644 --- a/libjava/classpath/javax/rmi/PortableRemoteObject.java +++ b/libjava/classpath/javax/rmi/PortableRemoteObject.java @@ -97,10 +97,10 @@ public class PortableRemoteObject * <code>a_source</code> parameter. The a_target is connected to the same * ORB (and, if applicable, to the same {@link POA}) as the a_source. * - * @param a_target the target to connect to ORB, must be an instance of either + * @param target the target to connect to ORB, must be an instance of either * {@link ObjectImpl} (Stubs and old-style ties) or {@link Tie}. * - * @param a_source the object, providing the connection information, must be + * @param source the object, providing the connection information, must be * an instance of either {@link ObjectImpl} (Stubs and old-style ties) or * {@link Servant} (the next-generation Ties supporting {@link POA}). * diff --git a/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java b/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java index 1fed5824cd4..3a4c6cebeff 100644 --- a/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java +++ b/libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java @@ -50,7 +50,7 @@ import java.rmi.server.RMIClientSocketFactory; * SslRMIClientSocketFactory * * This class implements an RMIClientSocketFactory for SSL sockets. - * it uses the defeult SSLClientSocketFactory. + * it uses the default SSLClientSocketFactory. * * This class can optionally use the following system properties, if set: * <code>javax.rmi.ssl.client.enabledCipherSuites</code> @@ -92,17 +92,19 @@ public class SslRMIClientSocketFactory private String[] getProp(String p) { - StringTokenizer st; + String o; try { - String o = (String)System.getProperty( p ); - st = new StringTokenizer( o, "," ); + o = System.getProperty(p); } catch(SecurityException se) { return null; } + if (o == null) + return null; + StringTokenizer st = new StringTokenizer( o, "," ); int n = st.countTokens(); if( n < 1 ) return null; diff --git a/libjava/classpath/javax/swing/JFrame.java b/libjava/classpath/javax/swing/JFrame.java index 0ae23f101fa..e54d453b8df 100644 --- a/libjava/classpath/javax/swing/JFrame.java +++ b/libjava/classpath/javax/swing/JFrame.java @@ -258,7 +258,7 @@ public class JFrame extends Frame { // If we're adding in the initialization stage use super.add. // Otherwise pass the add onto the content pane. - if (isRootPaneCheckingEnabled()) + if (isRootPaneCheckingEnabled() && comp != rootPane) getContentPane().add(comp,constraints,index); else super.addImpl(comp, constraints, index); diff --git a/libjava/classpath/javax/swing/JTree.java b/libjava/classpath/javax/swing/JTree.java index 332ec74247d..c0365bc385b 100644 --- a/libjava/classpath/javax/swing/JTree.java +++ b/libjava/classpath/javax/swing/JTree.java @@ -3105,7 +3105,7 @@ public class JTree extends JComponent implements Scrollable, Accessible { while (toRemove.hasMoreElements()) { - TreePath current = (TreePath) toRemove.nextElement(); + TreePath current = toRemove.nextElement(); Enumeration descendants = getDescendantToggledPaths(current); while (descendants.hasMoreElements()) diff --git a/libjava/classpath/javax/swing/RepaintManager.java b/libjava/classpath/javax/swing/RepaintManager.java index 773371489d9..bb88ebfcdce 100644 --- a/libjava/classpath/javax/swing/RepaintManager.java +++ b/libjava/classpath/javax/swing/RepaintManager.java @@ -59,8 +59,6 @@ import java.util.Iterator; import java.util.Set; import java.util.WeakHashMap; -import javax.swing.text.JTextComponent; - /** * <p>The repaint manager holds a set of dirty regions, invalid components, * and a double buffer surface. The dirty regions and invalid components diff --git a/libjava/classpath/javax/swing/TransferHandler.java b/libjava/classpath/javax/swing/TransferHandler.java index 2e5963f443f..276697475f0 100644 --- a/libjava/classpath/javax/swing/TransferHandler.java +++ b/libjava/classpath/javax/swing/TransferHandler.java @@ -149,7 +149,7 @@ public class TransferHandler implements Serializable Object o; try { - o = getter.invoke(component, null); + o = getter.invoke(component); return o; } catch (Exception ex) diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java b/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java index de82bd47bb6..b1fb727feeb 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java @@ -40,10 +40,8 @@ package javax.swing.plaf.basic; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; -import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; -import java.util.Enumeration; import java.util.Iterator; import java.util.List; import java.util.Vector; diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java index e1f8e4b28ba..4b6e2f79856 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java @@ -42,7 +42,6 @@ import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java b/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java index 4c270682d88..e73c39bf6ac 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java @@ -642,7 +642,7 @@ public class BasicGraphicsUtils fmet = g.getFontMetrics(); g.fillRect( /* x */ x + fmet.stringWidth(text.substring(0, underlinedIndex)), - /* y */ y + fmet.getDescent() - 1, + /* y */ y + 1, /* width */ fmet.charWidth(text.charAt(underlinedIndex)), /* height */ 1); } diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java index ae992594d6b..045740df609 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java @@ -59,7 +59,6 @@ import javax.swing.JLabel; import javax.swing.KeyStroke; import javax.swing.LookAndFeel; import javax.swing.SwingUtilities; -import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.LabelUI; import javax.swing.text.View; diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java index 3952ea18d17..1c28a5f961d 100644 --- a/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java +++ b/libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java @@ -279,14 +279,6 @@ public class BasicTreeUI static Icon nullIcon; /** - * The special value of the mouse event is sent indicating that this is not - * just the mouse click, but the mouse click on the selected node. Sending - * such event forces to start the cell editing session. - */ - static final MouseEvent EDIT = new MouseEvent(new Label(), 7, 7, 7, 7, 7, 7, - false); - - /** * Creates a new BasicTreeUI object. */ public BasicTreeUI() diff --git a/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java b/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java index a55dc091665..8678f680d33 100644 --- a/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java +++ b/libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java @@ -38,7 +38,6 @@ exception statement from your version. */ package javax.swing.plaf.metal; -import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Rectangle; diff --git a/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java b/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java index a9bbe9a7848..7fecefe0b4c 100644 --- a/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java +++ b/libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java @@ -43,7 +43,6 @@ import java.awt.Component; import java.awt.Rectangle; import java.io.Serializable; -import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.UIManager; diff --git a/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java b/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java index e4e7201b184..717ea98684a 100644 --- a/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java +++ b/libjava/classpath/javax/swing/table/DefaultTableColumnModel.java @@ -243,7 +243,7 @@ public class DefaultTableColumnModel int columnCount = tableColumns.size(); for (int i = 0; i < columnCount; i++) { - TableColumn tc = (TableColumn) tableColumns.get(i); + TableColumn tc = tableColumns.get(i); if (identifier.equals(tc.getIdentifier())) return i; } @@ -264,7 +264,7 @@ public class DefaultTableColumnModel */ public TableColumn getColumn(int columnIndex) { - return (TableColumn) tableColumns.get(columnIndex); + return tableColumns.get(columnIndex); } /** @@ -299,7 +299,7 @@ public class DefaultTableColumnModel { for (int i = 0; i < tableColumns.size(); ++i) { - int w = ((TableColumn) tableColumns.get(i)).getWidth(); + int w = (tableColumns.get(i)).getWidth(); if (0 <= x && x < w) return i; else @@ -654,7 +654,7 @@ public class DefaultTableColumnModel totalColumnWidth = 0; for (int i = 0; i < tableColumns.size(); ++i) { - totalColumnWidth += ((TableColumn) tableColumns.get(i)).getWidth(); + totalColumnWidth += tableColumns.get(i).getWidth(); } } } diff --git a/libjava/classpath/javax/swing/text/DefaultStyledDocument.java b/libjava/classpath/javax/swing/text/DefaultStyledDocument.java index 4ed8aa2d264..341579e3df8 100644 --- a/libjava/classpath/javax/swing/text/DefaultStyledDocument.java +++ b/libjava/classpath/javax/swing/text/DefaultStyledDocument.java @@ -1158,6 +1158,9 @@ public class DefaultStyledDocument extends AbstractDocument implements private void insertElement(ElementSpec spec) { + if (elementStack.isEmpty()) + return; + Edit edit = (Edit) elementStack.peek(); switch (spec.getType()) { diff --git a/libjava/classpath/javax/swing/text/GlyphView.java b/libjava/classpath/javax/swing/text/GlyphView.java index 1e418d2e06a..6bc2a382c52 100644 --- a/libjava/classpath/javax/swing/text/GlyphView.java +++ b/libjava/classpath/javax/swing/text/GlyphView.java @@ -736,7 +736,6 @@ public class GlyphView extends View implements TabableView, Cloneable if (bg != null) { g.setColor(bg); - System.err.println("fill background: " + bg); g.fillRect(r.x, r.y, r.width, r.height); } diff --git a/libjava/classpath/javax/swing/text/ParagraphView.java b/libjava/classpath/javax/swing/text/ParagraphView.java index fb4ac65d835..f2795e2c38a 100644 --- a/libjava/classpath/javax/swing/text/ParagraphView.java +++ b/libjava/classpath/javax/swing/text/ParagraphView.java @@ -38,9 +38,6 @@ exception statement from your version. */ package javax.swing.text; -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Rectangle; import java.awt.Shape; import javax.swing.SizeRequirements; diff --git a/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java b/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java index d42951a05ec..acb2c04acc2 100644 --- a/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java +++ b/libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java @@ -321,7 +321,7 @@ public class MinimalHTMLWriter extends AbstractWriter } else { // What else to do here? - Style s = (Style)doc.getStyle("default"); + Style s = doc.getStyle("default"); if(s != null) writeStyle( s ); } diff --git a/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java b/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java index 619c24e477c..637ece15149 100644 --- a/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java +++ b/libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java @@ -38,7 +38,6 @@ exception statement from your version. */ package javax.swing.text.html; -import javax.swing.ButtonGroup; import javax.swing.JToggleButton.ToggleButtonModel; class ResetableToggleButtonModel diff --git a/libjava/classpath/javax/swing/text/html/parser/DTD.java b/libjava/classpath/javax/swing/text/html/parser/DTD.java index ae3c184f153..09b50fee7de 100644 --- a/libjava/classpath/javax/swing/text/html/parser/DTD.java +++ b/libjava/classpath/javax/swing/text/html/parser/DTD.java @@ -181,7 +181,7 @@ public class DTD public static DTD getDTD(String name) throws IOException { - DTD d = (DTD) dtdHash.get(name); + DTD d = dtdHash.get(name); if (d == null) { @@ -210,7 +210,7 @@ public class DTD */ public Element getElement(int index) { - return (Element) elements.get(index); + return elements.get(index); } /** @@ -235,7 +235,7 @@ public class DTD */ public Entity getEntity(String entity_name) { - return (Entity) entityHash.get(entity_name); + return entityHash.get(entity_name); } /** diff --git a/libjava/classpath/javax/swing/text/html/parser/Entity.java b/libjava/classpath/javax/swing/text/html/parser/Entity.java index cf294c748db..1d59df237b8 100644 --- a/libjava/classpath/javax/swing/text/html/parser/Entity.java +++ b/libjava/classpath/javax/swing/text/html/parser/Entity.java @@ -41,8 +41,6 @@ package javax.swing.text.html.parser; import gnu.javax.swing.text.html.parser.support.gnuStringIntMapper; -import java.io.Serializable; - /** * <p>Stores information, obtained by parsing SGML DTL * <!ENTITY % .. > tag.</p> diff --git a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java index 9f587946fc2..a1afe781324 100644 --- a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java +++ b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java @@ -202,7 +202,7 @@ public class DefaultMutableTreeNode */ public void remove(int index) { - MutableTreeNode child = (MutableTreeNode) children.remove(index); + MutableTreeNode child = children.remove(index); child.setParent(null); } @@ -553,7 +553,7 @@ public class DefaultMutableTreeNode { node = node.getParent(); size = node.getChildCount(); - index = ((Integer) stack.pop()).intValue() + 1; + index = stack.pop().intValue() + 1; current--; } while (index >= size @@ -1052,10 +1052,10 @@ public class DefaultMutableTreeNode /** Provides an enumeration of a tree in breadth-first traversal * order. */ - static class BreadthFirstEnumeration implements Enumeration + static class BreadthFirstEnumeration implements Enumeration<TreeNode> { - LinkedList queue = new LinkedList(); + LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); BreadthFirstEnumeration(TreeNode node) { @@ -1067,14 +1067,16 @@ public class DefaultMutableTreeNode return !queue.isEmpty(); } - public Object nextElement() + @SuppressWarnings("unchecked") + public TreeNode nextElement() { if (queue.isEmpty()) throw new NoSuchElementException("No more elements left."); - TreeNode node = (TreeNode) queue.removeFirst(); + TreeNode node = queue.removeFirst(); - Enumeration children = node.children(); + Enumeration<TreeNode> children = + (Enumeration<TreeNode>) node.children(); while (children.hasMoreElements()) queue.add(children.nextElement()); @@ -1085,16 +1087,18 @@ public class DefaultMutableTreeNode /** Provides an enumeration of a tree traversing it * preordered. */ - static class PreorderEnumeration implements Enumeration + static class PreorderEnumeration implements Enumeration<TreeNode> { TreeNode next; - Stack childrenEnums = new Stack(); + Stack<Enumeration<TreeNode>> childrenEnums = + new Stack<Enumeration<TreeNode>>(); + @SuppressWarnings("unchecked") PreorderEnumeration(TreeNode node) { next = node; - childrenEnums.push(node.children()); + childrenEnums.push((Enumeration<TreeNode>) node.children()); } public boolean hasMoreElements() @@ -1102,14 +1106,14 @@ public class DefaultMutableTreeNode return next != null; } - public Object nextElement() + public TreeNode nextElement() { if (next == null) throw new NoSuchElementException("No more elements left."); - Object current = next; + TreeNode current = next; - Enumeration children = (Enumeration) childrenEnums.peek(); + Enumeration<TreeNode> children = childrenEnums.peek(); // Retrieves the next element. next = traverse(children); @@ -1117,13 +1121,14 @@ public class DefaultMutableTreeNode return current; } - private TreeNode traverse(Enumeration children) + @SuppressWarnings("unchecked") + private TreeNode traverse(Enumeration<TreeNode> children) { // If more children are available step down. if (children.hasMoreElements()) { - TreeNode child = (TreeNode) children.nextElement(); - childrenEnums.push(child.children()); + TreeNode child = children.nextElement(); + childrenEnums.push((Enumeration<TreeNode>) child.children()); return child; } @@ -1137,7 +1142,7 @@ public class DefaultMutableTreeNode return null; else { - return traverse((Enumeration) childrenEnums.peek()); + return traverse(childrenEnums.peek()); } } } @@ -1145,16 +1150,18 @@ public class DefaultMutableTreeNode /** Provides an enumeration of a tree traversing it * postordered (= depth-first). */ - static class PostorderEnumeration implements Enumeration + static class PostorderEnumeration implements Enumeration<TreeNode> { Stack<TreeNode> nodes = new Stack<TreeNode>(); - Stack childrenEnums = new Stack(); + Stack<Enumeration<TreeNode>> childrenEnums = + new Stack<Enumeration<TreeNode>>(); + @SuppressWarnings("unchecked") PostorderEnumeration(TreeNode node) { nodes.push(node); - childrenEnums.push(node.children()); + childrenEnums.push((Enumeration<TreeNode>) node.children()); } public boolean hasMoreElements() @@ -1162,24 +1169,26 @@ public class DefaultMutableTreeNode return !nodes.isEmpty(); } - public Object nextElement() + public TreeNode nextElement() { if (nodes.isEmpty()) throw new NoSuchElementException("No more elements left!"); - Enumeration children = (Enumeration) childrenEnums.peek(); + Enumeration<TreeNode> children = childrenEnums.peek(); return traverse(children); } - private Object traverse(Enumeration children) + @SuppressWarnings("unchecked") + private TreeNode traverse(Enumeration<TreeNode> children) { if (children.hasMoreElements()) { - TreeNode node = (TreeNode) children.nextElement(); + TreeNode node = children.nextElement(); nodes.push(node); - Enumeration newChildren = node.children(); + Enumeration<TreeNode> newChildren = + (Enumeration<TreeNode>) node.children(); childrenEnums.push(newChildren); return traverse(newChildren); @@ -1190,7 +1199,7 @@ public class DefaultMutableTreeNode // Returns the node whose children // have all been visited. (= postorder) - Object next = nodes.peek(); + TreeNode next = nodes.peek(); nodes.pop(); return next; diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java b/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java index 4c10bfe1af2..04897986d49 100644 --- a/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java +++ b/libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java @@ -306,13 +306,7 @@ public class DefaultTreeCellEditor * Font to paint with, null indicates font of renderer is to be used. */ protected Font font; - - /** - * Helper field used to save the last path seen while the timer was - * running. - */ - private TreePath tPath; - + /** * Constructs a DefaultTreeCellEditor object for a JTree using the * specified renderer and a default editor. (Use this constructor @@ -347,38 +341,6 @@ public class DefaultTreeCellEditor Color c = UIManager.getColor("Tree.editorBorderSelectionColor"); setBorderSelectionColor(c); } - - /** - * Configures the editing component whenever it is null. - * - * @param tree the tree to configure to component for. - * @param renderer the renderer used to set up the nodes - * @param editor the editor used - */ - private void configureEditingComponent(JTree tree, - DefaultTreeCellRenderer renderer, - TreeCellEditor editor) - { - if (tree != null && lastPath != null) - { - Object val = lastPath.getLastPathComponent(); - boolean isLeaf = tree.getModel().isLeaf(val); - boolean expanded = tree.isExpanded(lastPath); - determineOffset(tree, val, true, expanded, isLeaf, lastRow); - - // set up icon - if (isLeaf) - renderer.setIcon(renderer.getLeafIcon()); - else if (expanded) - renderer.setIcon(renderer.getOpenIcon()); - else - renderer.setIcon(renderer.getClosedIcon()); - editingIcon = renderer.getIcon(); - - editingComponent = getTreeCellEditorComponent(tree, val, true, - expanded, isLeaf, lastRow); - } - } /** * writeObject diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java b/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java index 3766485abdb..b9c84013d16 100644 --- a/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java +++ b/libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java @@ -42,18 +42,14 @@ import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Font; -import java.awt.FontMetrics; import java.awt.Graphics; -import java.awt.Insets; import java.awt.Rectangle; import javax.swing.Icon; import javax.swing.JLabel; import javax.swing.JTree; import javax.swing.LookAndFeel; -import javax.swing.SwingUtilities; import javax.swing.UIManager; -import javax.swing.border.Border; import javax.swing.plaf.UIResource; /** @@ -515,7 +511,6 @@ public class DefaultTreeCellRenderer int xOffset = -1; if (bgColor != null) { - Icon i = getIcon(); xOffset = getXOffset(); g.setColor(bgColor); g.fillRect(xOffset, 0, getWidth() - xOffset, getHeight()); diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java b/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java index 3d9c67728bd..2bb0d0045a6 100644 --- a/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java +++ b/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java @@ -164,7 +164,7 @@ public class DefaultTreeSelectionModel * @see #removeSelectionPaths(TreePath[]) * @see #setSelectionPaths(TreePath[]) */ - private transient HashSet selectedPaths; + private transient HashSet<TreePath> selectedPaths; /** * A supporting datastructure that is used in addSelectionPaths() and @@ -174,7 +174,7 @@ public class DefaultTreeSelectionModel * @see #removeSelectionPaths(TreePath[]) * @see #setSelectionPaths(TreePath[]) */ - private transient HashSet tmpPaths; + private transient HashSet<TreePath> tmpPaths; /** * Constructs a new DefaultTreeSelectionModel. @@ -185,8 +185,8 @@ public class DefaultTreeSelectionModel listSelectionModel = new DefaultListSelectionModel(); listenerList = new EventListenerList(); leadIndex = -1; - tmpPaths = new HashSet(); - selectedPaths = new HashSet(); + tmpPaths = new HashSet<TreePath>(); + selectedPaths = new HashSet<TreePath>(); } /** @@ -206,8 +206,8 @@ public class DefaultTreeSelectionModel cloned.listenerList = new EventListenerList(); cloned.listSelectionModel = (DefaultListSelectionModel) listSelectionModel.clone(); - cloned.selectedPaths = new HashSet(); - cloned.tmpPaths = new HashSet(); + cloned.selectedPaths = new HashSet<TreePath>(); + cloned.tmpPaths = new HashSet<TreePath>(); return cloned; } @@ -394,7 +394,7 @@ public class DefaultTreeSelectionModel newLength = 1; } // Find new paths. - Vector changedPaths = null; + Vector<PathPlaceHolder> changedPaths = null; tmpPaths.clear(); int validPaths = 0; TreePath oldLeadPath = leadPath; @@ -407,7 +407,7 @@ public class DefaultTreeSelectionModel if (! selectedPaths.contains(paths[i])) { if (changedPaths == null) - changedPaths = new Vector(); + changedPaths = new Vector<PathPlaceHolder>(); changedPaths.add(new PathPlaceHolder(paths[i], true)); } leadPath = paths[i]; @@ -422,10 +422,10 @@ public class DefaultTreeSelectionModel // Some of the paths are already selected, put together // the new selection carefully. newSelection = new TreePath[validPaths]; - Iterator newPaths = tmpPaths.iterator(); + Iterator<TreePath> newPaths = tmpPaths.iterator(); validPaths = 0; for (int i = 0; newPaths.hasNext(); i++) - newSelection[i] = (TreePath) newPaths.next(); + newSelection[i] = newPaths.next(); } else { @@ -440,14 +440,14 @@ public class DefaultTreeSelectionModel if (selection[i] != null && ! tmpPaths.contains(selection[i])) { if (changedPaths == null) - changedPaths = new Vector(); + changedPaths = new Vector<PathPlaceHolder>(); changedPaths.add(new PathPlaceHolder(selection[i], false)); } } // Perform changes and notification. selection = newSelection; - HashSet tmp = selectedPaths; + HashSet<TreePath> tmp = selectedPaths; selectedPaths = tmpPaths; tmpPaths = tmp; tmpPaths.clear(); @@ -505,7 +505,7 @@ public class DefaultTreeSelectionModel } else { - Vector changedPaths = null; + Vector<PathPlaceHolder> changedPaths = null; tmpPaths.clear(); int validPaths = 0; TreePath oldLeadPath = leadPath; @@ -521,7 +521,7 @@ public class DefaultTreeSelectionModel { validPaths++; if (changedPaths == null) - changedPaths = new Vector(); + changedPaths = new Vector<PathPlaceHolder>(); changedPaths.add(new PathPlaceHolder(paths[i], true)); selectedPaths.add(paths[i]); tmpPaths.add(paths[i]); @@ -538,11 +538,11 @@ public class DefaultTreeSelectionModel { // Some of the paths are already selected, put together // the new selection carefully. - Iterator newPaths = tmpPaths.iterator(); + Iterator<TreePath> newPaths = tmpPaths.iterator(); i = oldPaths; while (newPaths.hasNext()) { - newSelection[i] = (TreePath) newPaths.next(); + newSelection[i] = newPaths.next(); i++; } } @@ -589,13 +589,13 @@ public class DefaultTreeSelectionModel clearSelection(); else { - Vector pathsToRemove = null; + Vector<PathPlaceHolder> pathsToRemove = null; for (int i = paths.length - 1; i >= 0; i--) { if (paths[i] != null && selectedPaths.contains(paths[i])) { if (pathsToRemove == null) - pathsToRemove = new Vector(); + pathsToRemove = new Vector<PathPlaceHolder>(); selectedPaths.remove(paths[i]); pathsToRemove.add(new PathPlaceHolder(paths[i], false)); @@ -610,9 +610,9 @@ public class DefaultTreeSelectionModel else { selection = new TreePath[selection.length - numRemove]; - Iterator keep = selectedPaths.iterator(); + Iterator<TreePath> keep = selectedPaths.iterator(); for (int valid = 0; keep.hasNext(); valid++) - selection[valid] = (TreePath) keep.next(); + selection[valid] = keep.next(); } // Update lead path. if (leadPath != null && ! selectedPaths.contains(leadPath)) @@ -1120,7 +1120,7 @@ public class DefaultTreeSelectionModel || selectionMode == DISCONTIGUOUS_TREE_SELECTION) return true; - HashSet set = new HashSet(); + HashSet<TreePath> set = new HashSet<TreePath>(); for (int i = 0; i < selection.length; i++) set.add(selection[i]); @@ -1128,10 +1128,10 @@ public class DefaultTreeSelectionModel set.remove(paths[i]); TreePath[] remaining = new TreePath[set.size()]; - Iterator iter = set.iterator(); + Iterator<TreePath> iter = set.iterator(); for (int i = 0; i < remaining.length; i++) - remaining[i] = (TreePath) iter.next(); + remaining[i] = iter.next(); return arePathsContiguous(remaining); } @@ -1144,7 +1144,8 @@ public class DefaultTreeSelectionModel * @param vPaths the vector of the changed patches * @param oldLeadSelection the old selection index */ - protected void notifyPathChange(Vector vPaths, TreePath oldLeadSelection) + protected void notifyPathChange(Vector<PathPlaceHolder> vPaths, + TreePath oldLeadSelection) { int numChangedPaths = vPaths.size(); @@ -1152,7 +1153,7 @@ public class DefaultTreeSelectionModel TreePath[] paths = new TreePath[numChangedPaths]; for (int i = 0; i < numChangedPaths; i++) { - PathPlaceHolder p = (PathPlaceHolder) vPaths.get(i); + PathPlaceHolder p = vPaths.get(i); news[i] = p.isNew; paths[i] = p.path; } diff --git a/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java b/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java index dff9298e8f5..488809e0232 100644 --- a/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java +++ b/libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java @@ -135,7 +135,7 @@ public class FixedHeightLayoutCache } } - LinkedList lpath = new LinkedList(); + LinkedList<Object> lpath = new LinkedList<Object>(); NodeRecord rp = this; while (rp != null) { @@ -173,17 +173,17 @@ public class FixedHeightLayoutCache /** * The set of all expanded tree nodes. */ - Set expanded = new HashSet(); + Set<Object> expanded = new HashSet<Object>(); /** * Maps nodes to the row numbers. */ - Hashtable nodes = new Hashtable(); + Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>(); /** * Maps row numbers to nodes. */ - Hashtable row2node = new Hashtable(); + Hashtable<Integer,Object> row2node = new Hashtable<Integer,Object>(); /** * If true, the row map must be recomputed before using. @@ -338,7 +338,7 @@ public class FixedHeightLayoutCache if (dirty) update(); Object last = path.getLastPathComponent(); - NodeRecord r = (NodeRecord) nodes.get(last); + NodeRecord r = nodes.get(last); if (r == null) // This node is not visible. { @@ -373,7 +373,7 @@ public class FixedHeightLayoutCache return null; else { - NodeRecord r = (NodeRecord) nodes.get(last); + NodeRecord r = nodes.get(last); return r.getPath(); } } @@ -391,7 +391,7 @@ public class FixedHeightLayoutCache if (dirty) update(); - NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent()); + NodeRecord r = nodes.get(path.getLastPathComponent()); if (r == null) return - 1; else @@ -413,13 +413,13 @@ public class FixedHeightLayoutCache // As the rows have arbitrary height, we need to iterate. NodeRecord best = null; NodeRecord r; - Enumeration en = nodes.elements(); + Enumeration<NodeRecord> en = nodes.elements(); int dist = Integer.MAX_VALUE; while (en.hasMoreElements() && dist > 0) { - r = (NodeRecord) en.nextElement(); + r = en.nextElement(); if (best == null) { best = r; @@ -474,7 +474,7 @@ public class FixedHeightLayoutCache } /** - * Get the enumeration over all visible pathes that start from the given + * Get the enumeration over all visible paths that start from the given * parent path. * * @param parentPath the parent path @@ -491,7 +491,7 @@ public class FixedHeightLayoutCache for (int i = 0; i < parentPath.getPathCount(); i++) { node = parentPath.getPathComponent(i); - nr = (NodeRecord) nodes.get(node); + nr = nodes.get(node); if (nr.row >= 0) p.add(node); } @@ -583,10 +583,10 @@ public class FixedHeightLayoutCache if (dirty) update(); totalHeight = 0; - Enumeration en = nodes.elements(); + Enumeration<NodeRecord> en = nodes.elements(); while (en.hasMoreElements()) { - NodeRecord nr = (NodeRecord) en.nextElement(); + NodeRecord nr = en.nextElement(); Rectangle r = nr.getBounds(); totalHeight += r.height; } @@ -602,10 +602,10 @@ public class FixedHeightLayoutCache update(); maximalWidth = 0; - Enumeration en = nodes.elements(); + Enumeration<NodeRecord> en = nodes.elements(); while (en.hasMoreElements()) { - NodeRecord nr = (NodeRecord) en.nextElement(); + NodeRecord nr = en.nextElement(); Rectangle r = nr.getBounds(); if (r.x + r.width > maximalWidth) maximalWidth = r.x + r.width; diff --git a/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java b/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java index 8c70c13afd2..50e8e5ce92e 100644 --- a/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java +++ b/libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java @@ -138,7 +138,7 @@ public class VariableHeightLayoutCache } } - LinkedList lpath = new LinkedList(); + LinkedList<Object> lpath = new LinkedList<Object>(); NodeRecord rp = this; while (rp != null) { @@ -146,7 +146,7 @@ public class VariableHeightLayoutCache if (rp.parent != null) { Object parent = rp.parent; - rp = (NodeRecord) nodes.get(parent); + rp = nodes.get(parent); // Add the root node, even if it is not visible. if (rp == null) lpath.addFirst(parent); @@ -171,17 +171,17 @@ public class VariableHeightLayoutCache /** * The set of all expanded tree nodes. */ - Set expanded = new HashSet(); + Set<Object> expanded = new HashSet<Object>(); /** * Maps nodes to the row numbers. */ - Hashtable nodes = new Hashtable(); + Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>(); /** * Maps row numbers to nodes. */ - ArrayList row2node = new ArrayList(); + ArrayList<Object> row2node = new ArrayList<Object>(); /** * If true, the row map must be recomputed before using. @@ -292,7 +292,7 @@ public class VariableHeightLayoutCache */ public void invalidatePathBounds(TreePath path) { - NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent()); + NodeRecord r = nodes.get(path.getLastPathComponent()); if (r != null) r.bounds = null; } @@ -354,7 +354,7 @@ public class VariableHeightLayoutCache Object last = path.getLastPathComponent(); Rectangle result = null; - NodeRecord r = (NodeRecord) nodes.get(last); + NodeRecord r = nodes.get(last); if (r != null) { // The RI allows null arguments for rect, in which case a new Rectangle @@ -405,7 +405,7 @@ public class VariableHeightLayoutCache if (dirty) update(); - NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent()); + NodeRecord r = nodes.get(path.getLastPathComponent()); if (r == null) return - 1; else @@ -427,13 +427,13 @@ public class VariableHeightLayoutCache // As the rows have arbitrary height, we need to iterate. NodeRecord best = null; NodeRecord r; - Enumeration en = nodes.elements(); + Enumeration<NodeRecord> en = nodes.elements(); int dist = Integer.MAX_VALUE; while (en.hasMoreElements() && dist > 0) { - r = (NodeRecord) en.nextElement(); + r = en.nextElement(); if (best == null) { best = r; @@ -488,7 +488,7 @@ public class VariableHeightLayoutCache } /** - * Get the enumeration over all visible pathes that start from the given + * Get the enumeration over all visible paths that start from the given * parent path. * * @param parentPath the parent path @@ -505,7 +505,7 @@ public class VariableHeightLayoutCache for (int i = 0; i < parentPath.getPathCount(); i++) { node = parentPath.getPathComponent(i); - nr = (NodeRecord) nodes.get(node); + nr = nodes.get(node); if (nr != null && nr.row >= 0) p.add(node); } @@ -603,7 +603,7 @@ public class VariableHeightLayoutCache int rowCount = getRowCount(); if (rowCount > 0) { - NodeRecord last = (NodeRecord) nodes.get(row2node.get(rowCount - 1)); + NodeRecord last = nodes.get(row2node.get(rowCount - 1)); height = last.bounds.y + last.bounds.height; } return height; @@ -618,10 +618,10 @@ public class VariableHeightLayoutCache update(); maximalWidth = 0; - Enumeration en = nodes.elements(); + Enumeration<NodeRecord> en = nodes.elements(); while (en.hasMoreElements()) { - NodeRecord nr = (NodeRecord) en.nextElement(); + NodeRecord nr = en.nextElement(); if (nr != null) { Rectangle r = nr.getBounds(); diff --git a/libjava/classpath/javax/swing/undo/StateEdit.java b/libjava/classpath/javax/swing/undo/StateEdit.java index 91fc88faa60..55282ab37c8 100644 --- a/libjava/classpath/javax/swing/undo/StateEdit.java +++ b/libjava/classpath/javax/swing/undo/StateEdit.java @@ -177,8 +177,8 @@ public class StateEdit { object = obj; undoRedoName = name; - preState = new Hashtable(); - postState = new Hashtable(); + preState = new Hashtable<Object,Object>(); + postState = new Hashtable<Object,Object>(); obj.storeState(preState); } diff --git a/libjava/classpath/javax/swing/undo/UndoManager.java b/libjava/classpath/javax/swing/undo/UndoManager.java index b9e6de67576..1f47d51706e 100644 --- a/libjava/classpath/javax/swing/undo/UndoManager.java +++ b/libjava/classpath/javax/swing/undo/UndoManager.java @@ -196,7 +196,7 @@ public class UndoManager size = edits.size(); for (int i = size - 1; i >= 0; i--) - ((UndoableEdit) edits.get(i)).die(); + edits.get(i).die(); indexOfNextAdd = 0; edits.clear(); } @@ -244,7 +244,7 @@ public class UndoManager return; for (int i = to; i >= from; i--) - ((UndoableEdit) edits.get(i)).die(); + edits.get(i).die(); // Remove the range [from .. to] from edits. If from == to, which // is likely to be a very common case, we can do better than @@ -275,7 +275,7 @@ public class UndoManager for (int i = indexOfNextAdd - 1; i >= 0; i--) { - result = (UndoableEdit) edits.get(i); + result = edits.get(i); if (result.isSignificant()) return result; } @@ -298,7 +298,7 @@ public class UndoManager for (int i = indexOfNextAdd; i < edits.size(); i++) { - result = (UndoableEdit) edits.get(i); + result = edits.get(i); if (result.isSignificant()) return result; } @@ -324,7 +324,7 @@ public class UndoManager while (true) { indexOfNextAdd -= 1; - cur = (UndoableEdit) edits.get(indexOfNextAdd); + cur = edits.get(indexOfNextAdd); cur.undo(); if (cur == edit) return; @@ -348,7 +348,7 @@ public class UndoManager while (true) { - cur = (UndoableEdit) edits.get(indexOfNextAdd); + cur = edits.get(indexOfNextAdd); indexOfNextAdd += 1; cur.redo(); if (cur == edit) diff --git a/libjava/classpath/javax/tools/Diagnostic.java b/libjava/classpath/javax/tools/Diagnostic.java new file mode 100644 index 00000000000..67776e61a4f --- /dev/null +++ b/libjava/classpath/javax/tools/Diagnostic.java @@ -0,0 +1,167 @@ +/* Diagnostic.java -- + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.tools; + +import java.util.Locale; + +/** + * Encapsulates diagnostic information from a tool. This usually includes + * (but is not required) a position in a source file, line and column number + * information and a message. + * + * @author Roman Kennke (roman@kennke.org) + * + * @param <S> the type of the source object + * + * @since 1.6 + */ +public interface Diagnostic<S> +{ + /** + * The kind of diagnostic information. + */ + public static enum Kind + { + /** + * Indicates and error. + */ + ERROR, + + /** + * Indicates a warning. + */ + WARNING, + + /** + * Indicates a mandatory warning. + */ + MANDATORY_WARNING, + + /** + * Indicates a note. + */ + NOTE, + + /** + * Indicates something else. + */ + OTHER + } + + /** + * Indicates that this diagnostic object doesn't carry position information. + */ + public static final long NOPOS = -1L; + + /** + * Returns the kind of this diagnostic object. + * + * @return the kind of this diagnostic object + */ + Kind getKind(); + + /** + * Returns the source of this diagnostic object. + * + * @return the source of this diagnostic object + */ + S getSource(); + + /** + * Returns the position in the source object. This is a zero based value, + * or {@link # NOPOS}, indicating that this doesn't carry position + * information. + * + * @return the position in the source object + */ + long getPosition(); + + /** + * Returns the start position in the source object. This is a zero based + * value, or {@link #NOPOS}, indicating that this doesn't carry position + * information. + * + * @return the start position in the source object + */ + long getStartPosition(); + + /* + * Returns the end position in the source object. This is a zero based + * value, or {@link #NOPOS}, indicating that this doesn't carry position + * information. + * + * @return the end position in the source object + */ + long getEndPosition(); + + /** + * Returns the line number or {@link #NOPOS}, indicating that this doesn't + * carry position information. This is a 1-based value indicating the line + * in the source object. + * + * @return the line number + */ + long getLineNumber(); + + /** + * Returns the column number or {@link #NOPOS}, indicating that this doesn't + * carry position information. This is a 1-based value indicating the column + * in the source object. + * + * @return the column number + */ + long getColumnNumber(); + + /** + * Return a diagnostic code. This is implementation dependend and might + * be <code>null</code>. + * + * @return a diagnostic code or <code>null</code> + */ + String getCode(); + + /** + * Returns a localized message. This is implementation dependend. If + * <code>locale</code> is <code>null</code> this uses the default locale. + * + * @param locale the locale, or <code>null</code> + * + * @return a localized message + */ + String getMessage(Locale locale); +} diff --git a/libjava/classpath/javax/tools/DiagnosticListener.java b/libjava/classpath/javax/tools/DiagnosticListener.java new file mode 100644 index 00000000000..6a114f988a5 --- /dev/null +++ b/libjava/classpath/javax/tools/DiagnosticListener.java @@ -0,0 +1,61 @@ +/* DiagnosticListener.java -- + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.tools; + +/** + * Receices diagnostic notifications from tools. + * + * @author Roman Kennke (roman@kennke.org) + * + * @param <S> the type of the source object + * + * @since 1.6 + */ +public interface DiagnosticListener<S> +{ + + /** + * Receive diagnostic information from tools. + * + * @param diagnostic the diagnostic information + * + * @throws NullPointerException if <code>diagnostic</code> is + * <code>null</code> and the implemenatation can't handle this + */ + void report(Diagnostic<? extends S> diagnostic); +} diff --git a/libjava/classpath/javax/tools/FileObject.java b/libjava/classpath/javax/tools/FileObject.java new file mode 100644 index 00000000000..56ecaba6d28 --- /dev/null +++ b/libjava/classpath/javax/tools/FileObject.java @@ -0,0 +1,155 @@ +/* FileObject.java -- + Copyright (C) 2008 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package javax.tools; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.Reader; +import java.io.Writer; +import java.net.URI; + +/** + * Abstraction for all kinds of file objects used by tools, e.g. regular files, + * memory cache, or database data. + * + * @author Roman Kennke (roman@kennke.org) + * + * @since 1.6 + */ +public interface FileObject +{ + + /** + * Returns a URI that represents this file object. + * + * @return a URI that represents this file object + */ + URI toURI(); + + /** + * Returns a name for this file object. The exact name is implementation + * dependent. + * + * @return a name for this file object + */ + String getName(); + + /** + * Opens this file for reading and returns an input stream. + * + * @return an input stream to read this file object + * + * @throws IOException if an I/O error occured + * @throws IllegalStateException if this file was opened for writing and + * does not support reading + * @throws UnsupportedOperationException if this kind of file does not allow + * byte reading + */ + InputStream openInputStream() throws IOException; + + /** + * Opens this file for writing and returns an output stream. + * + * @return an output stream for writing this file object + * + * @throws IOException if an I/O error occurs + * @throws IllegalStateException if this file was opened for reading and + * does not support writing + * @throws UnsupportedOperationException if this kind of file does not allow + * byte writing + */ + OutputStream openOutputStream() throws IOException; + + /** + * Opens this file for reading and returns a reader. + * + * @return a reader for reading this file object + * + * @throws IOException if an I/O error occurs + * @throws IllegalStateException if this file was opened for writing and + * does not support reading + * @throws UnsupportedOperationException if this kind of file does not allow + * character reading + */ + Reader openReader() throws IOException; + + /** + * Returns the character content of the file, if available. Any byte + * that cannot be decoded will be replaced by the default replacement + * character. A diagnostic may be reported, unless + * <code>ignoreEncodingErrors</code> is <code>true</code>. + * + * @param ignoreEncodingErrors <code>true</code> when encoding errors should be ignored + * <code>false</code> otherwise + * @return the character content, or <code>null</code> if not available + * + * @throws IOException if an I/O error occurs + */ + CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException; + + /** + * Opens this file for writer and returns a writer. + * + * @return a writer for writing this file object + * + * @throws IOException if an I/O error occurs + * @throws IllegalStateException if this file was opened for reading and + * does not support writing + * @throws UnsupportedOperationException if this kind of file does not allow + * character writing + */ + Writer openWriter() throws IOException; + + /** + * Returns the time when the file was last modified. The time is measured + * like in <code>System.currentTimeMillis()</code>. + * + * @return the time when the file was last modified + */ + long getLastModified(); + + /** + * Deletes this file object. In case of errors this returns + * <code>false</code>. + * + * @return <code>true</code> when the file deletion was successful, + * <code>false</code> otherwise + */ + boolean delete(); +} diff --git a/libjava/classpath/javax/xml/datatype/DatatypeFactory.java b/libjava/classpath/javax/xml/datatype/DatatypeFactory.java index 14f507416ab..06f465c353e 100644 --- a/libjava/classpath/javax/xml/datatype/DatatypeFactory.java +++ b/libjava/classpath/javax/xml/datatype/DatatypeFactory.java @@ -37,11 +37,8 @@ exception statement from your version. */ package javax.xml.datatype; -import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; import java.math.BigDecimal; import java.math.BigInteger; import java.util.GregorianCalendar; diff --git a/libjava/classpath/javax/xml/namespace/QName.java b/libjava/classpath/javax/xml/namespace/QName.java index edc6678e350..18dee79bbff 100644 --- a/libjava/classpath/javax/xml/namespace/QName.java +++ b/libjava/classpath/javax/xml/namespace/QName.java @@ -146,6 +146,9 @@ public class QName implements Serializable public static QName valueOf(String qNameAsString) { + if (qNameAsString == null) + throw new IllegalArgumentException("qNameAsString can't be null"); + String namespaceUri = "", prefix = null; int start = qNameAsString.indexOf('{'); int end = qNameAsString.indexOf('}'); diff --git a/libjava/classpath/javax/xml/stream/XMLEventFactory.java b/libjava/classpath/javax/xml/stream/XMLEventFactory.java index ee47af2a90d..cb850baaec8 100644 --- a/libjava/classpath/javax/xml/stream/XMLEventFactory.java +++ b/libjava/classpath/javax/xml/stream/XMLEventFactory.java @@ -43,7 +43,6 @@ import java.io.FileInputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; -import java.io.Reader; import java.util.Iterator; import java.util.Properties; import javax.xml.namespace.NamespaceContext; diff --git a/libjava/classpath/javax/xml/stream/XMLInputFactory.java b/libjava/classpath/javax/xml/stream/XMLInputFactory.java index 4dfd1203a70..f88451e54bf 100644 --- a/libjava/classpath/javax/xml/stream/XMLInputFactory.java +++ b/libjava/classpath/javax/xml/stream/XMLInputFactory.java @@ -44,7 +44,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.IOException; import java.io.Reader; -import java.io.Writer; import java.util.Properties; import javax.xml.stream.util.XMLEventAllocator; import javax.xml.transform.Source; diff --git a/libjava/classpath/javax/xml/stream/events/Attribute.java b/libjava/classpath/javax/xml/stream/events/Attribute.java index cf471137484..6e6d0274c4a 100644 --- a/libjava/classpath/javax/xml/stream/events/Attribute.java +++ b/libjava/classpath/javax/xml/stream/events/Attribute.java @@ -59,7 +59,7 @@ public interface Attribute /** * Returns the type of this attribute. */ - QName getDTDType(); + String getDTDType(); /** * Indicates whether this attribute was specified in the input source, or diff --git a/libjava/classpath/lib/Makefile.am b/libjava/classpath/lib/Makefile.am index 926c94a8711..74ddaf84829 100644 --- a/libjava/classpath/lib/Makefile.am +++ b/libjava/classpath/lib/Makefile.am @@ -5,28 +5,11 @@ JAVA_DEPEND = java.dep ## this file and restart the make process again sinclude $(JAVA_DEPEND) -compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER) +compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER) # handling source to bytecode compiler programs like gcj, jikes and kjc -if FOUND_GCJ -## See the compile-classes target. -## There's no point in warning, and we always want debug info. -## GCJ LOCAL: use srcdir -JCOMPILER = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes -else -if FOUND_JIKES -JCOMPILER = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes -else -if FOUND_KJC -## FIXME: from what I can tell, kjc does not support a -encoding option. -JCOMPILER = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes -else -if FOUND_ECJ -JCOMPILER = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes -endif # FOUND_ECJ -endif # FOUND_KJC -endif # FOUND_GCJ -endif # FOUND_JIKES +## GCJ LOCAL: use srcdir, don't pass $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 +JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes if CREATE_COLLECTIONS COLLECTIONS = collections.jar @@ -35,7 +18,7 @@ collections.jar: mkcollections.pl ./mkcollections.pl $(top_srcdir) $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print` if test "$(FASTJAR)" != ""; then \ - $(FASTJAR) cf $@ $(COLLECTIONS_PREFIX); \ + "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \ else \ echo "fastjar not found" > collections.jar; \ fi @@ -56,7 +39,7 @@ endif # BUILD_CLASS_FILES if INSTALL_CLASS_FILES install-data-local: genclasses compile-classes - -$(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir) + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) cp -R gnu $(DESTDIR)$(pkgdatadir) cp -R java $(DESTDIR)$(pkgdatadir) cp -R javax $(DESTDIR)$(pkgdatadir) @@ -86,7 +69,7 @@ else glibj.zip: classes compile-classes resources if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi - if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org sun META-INF; fi + if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi endif # USE_PREBUILT_GLIBJ_ZIP @@ -154,7 +137,7 @@ endif touch compile-classes # endif -EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh +EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip CLEANFILES = compile-classes resources classes \ glibj.zip classes.1 classes.2 Makefile.deps \ $(top_builddir)/gnu/java/locale/LocaleData.java \ @@ -181,3 +164,4 @@ dist-hook: rm -f $(distdir)/../gnu/classpath/Configuration.java rm -f $(distdir)/../gnu/java/security/Configuration.java rm -f $(distdir)/../gnu/java/locale/LocaleData.java + rm -f $(distdir)/glibj.zip diff --git a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in index bbd8a960a62..d0f2304bbe3 100644 --- a/libjava/classpath/lib/Makefile.in +++ b/libjava/classpath/lib/Makefile.in @@ -52,6 +52,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -134,7 +136,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -146,19 +147,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -190,15 +180,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -246,10 +233,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -322,17 +307,14 @@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ JAVA_DEPEND = java.dep -compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER) -@FOUND_ECJ_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JCOMPILER = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes -@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_TRUE@JCOMPILER = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes -@FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JCOMPILER = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes +compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER) # handling source to bytecode compiler programs like gcj, jikes and kjc -@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes +JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes @CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar @BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources # endif -EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh +EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip CLEANFILES = compile-classes resources classes \ glibj.zip classes.1 classes.2 Makefile.deps \ $(top_builddir)/gnu/java/locale/LocaleData.java \ @@ -520,13 +502,13 @@ sinclude $(JAVA_DEPEND) @CREATE_COLLECTIONS_TRUE@ ./mkcollections.pl $(top_srcdir) @CREATE_COLLECTIONS_TRUE@ $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print` @CREATE_COLLECTIONS_TRUE@ if test "$(FASTJAR)" != ""; then \ -@CREATE_COLLECTIONS_TRUE@ $(FASTJAR) cf $@ $(COLLECTIONS_PREFIX); \ +@CREATE_COLLECTIONS_TRUE@ "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \ @CREATE_COLLECTIONS_TRUE@ else \ @CREATE_COLLECTIONS_TRUE@ echo "fastjar not found" > collections.jar; \ @CREATE_COLLECTIONS_TRUE@ fi @INSTALL_CLASS_FILES_TRUE@install-data-local: genclasses compile-classes -@INSTALL_CLASS_FILES_TRUE@ -$(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir) +@INSTALL_CLASS_FILES_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @INSTALL_CLASS_FILES_TRUE@ cp -R gnu $(DESTDIR)$(pkgdatadir) @INSTALL_CLASS_FILES_TRUE@ cp -R java $(DESTDIR)$(pkgdatadir) @INSTALL_CLASS_FILES_TRUE@ cp -R javax $(DESTDIR)$(pkgdatadir) @@ -550,7 +532,7 @@ sinclude $(JAVA_DEPEND) @USE_PREBUILT_GLIBJ_ZIP_FALSE@glibj.zip: classes compile-classes resources @USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi -@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org sun META-INF; fi +@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi resources: copy-vmresources.sh @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \ @@ -629,6 +611,7 @@ dist-hook: rm -f $(distdir)/../gnu/classpath/Configuration.java rm -f $(distdir)/../gnu/java/security/Configuration.java rm -f $(distdir)/../gnu/java/locale/LocaleData.java + rm -f $(distdir)/glibj.zip # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class Binary files differindex 89e1b94e81e..88eef1abe92 100644 --- a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class +++ b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class diff --git a/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class b/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class Binary files differindex 85adfcd3b6e..ec399198ea7 100644 --- a/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class +++ b/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class Binary files differindex c6cfcd242a2..1935411e9de 100644 --- a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class +++ b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class diff --git a/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class b/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class Binary files differindex ede296b9dd6..0b886ecfd57 100644 --- a/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class +++ b/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class Binary files differindex a2b42881116..b78d6f4e47b 100644 --- a/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class +++ b/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class Binary files differindex 56c73a613ac..48c6b331e32 100644 --- a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class +++ b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class Binary files differindex 5e7f599bef1..6bfc3e39a70 100644 --- a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class +++ b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class diff --git a/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class b/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class Binary files differindex af7cb100bc7..3b05758ef33 100644 --- a/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class +++ b/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class b/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class Binary files differindex 88201b7615d..bbb7452eebc 100644 --- a/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class +++ b/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class Binary files differindex b6eda9e7fe0..222baca1d04 100644 --- a/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class +++ b/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class diff --git a/libjava/classpath/lib/gnu/CORBA/IorDelegate.class b/libjava/classpath/lib/gnu/CORBA/IorDelegate.class Binary files differindex f7c29adc237..64d75d7046a 100644 --- a/libjava/classpath/lib/gnu/CORBA/IorDelegate.class +++ b/libjava/classpath/lib/gnu/CORBA/IorDelegate.class diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class Binary files differindex d778d558ba9..220af43ef4c 100644 --- a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class +++ b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class diff --git a/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class b/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class Binary files differindex b8b674a19e4..dfd5c641377 100644 --- a/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class +++ b/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class Binary files differindex 8881d5db133..7fd549fe35d 100644 --- a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class +++ b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class diff --git a/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class b/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class Binary files differindex bc813062b99..55ce01dc78e 100644 --- a/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class +++ b/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class diff --git a/libjava/classpath/lib/gnu/CORBA/gnuContextList.class b/libjava/classpath/lib/gnu/CORBA/gnuContextList.class Binary files differindex 11d150dbf51..ed97df78d9b 100644 --- a/libjava/classpath/lib/gnu/CORBA/gnuContextList.class +++ b/libjava/classpath/lib/gnu/CORBA/gnuContextList.class diff --git a/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class b/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class Binary files differindex 4afd4167444..614d005c696 100644 --- a/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class +++ b/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class Binary files differindex 24fd691e549..f787e7b67e0 100644 --- a/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class +++ b/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class Binary files differindex c40b1808a1d..873e8aba888 100644 --- a/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class +++ b/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest.class Binary files differindex 3333011a1ef..61633c2ce0d 100644 --- a/libjava/classpath/lib/gnu/CORBA/gnuRequest.class +++ b/libjava/classpath/lib/gnu/CORBA/gnuRequest.class diff --git a/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class b/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class Binary files differindex 01dff2d71d5..5ba2c0d8700 100644 --- a/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class +++ b/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class diff --git a/libjava/classpath/lib/gnu/classpath/ServiceFactory.class b/libjava/classpath/lib/gnu/classpath/ServiceFactory.class Binary files differindex 96ba62654c9..77f126888db 100644 --- a/libjava/classpath/lib/gnu/classpath/ServiceFactory.class +++ b/libjava/classpath/lib/gnu/classpath/ServiceFactory.class diff --git a/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class b/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class Binary files differindex 3d1680839e1..4aed261f90f 100644 --- a/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class +++ b/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class Binary files differindex c3bedb71e34..abc3f679d57 100644 --- a/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class +++ b/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class Binary files differindex 3ce2f59cd27..0f02270bc1e 100644 --- a/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class +++ b/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class Binary files differindex 00c99201a97..a50d370f78d 100644 --- a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class +++ b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class Binary files differindex 093ff57353e..c26126f06fe 100644 --- a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class +++ b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class Binary files differindex 4783f59bf80..0190c6adf8a 100644 --- a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class +++ b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class diff --git a/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class b/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class Binary files differnew file mode 100644 index 00000000000..ba1685cef87 --- /dev/null +++ b/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class diff --git a/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class b/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class Binary files differindex 4ddeff914ca..a2237951b0f 100644 --- a/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class +++ b/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class diff --git a/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class b/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class Binary files differindex 39357c5236a..08a52965c78 100644 --- a/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class +++ b/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class diff --git a/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class b/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class Binary files differindex 9f70d72c371..a33239c8162 100644 --- a/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class +++ b/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class Binary files differnew file mode 100644 index 00000000000..0ea8a6a917b --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class Binary files differnew file mode 100644 index 00000000000..982715f1981 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class Binary files differnew file mode 100644 index 00000000000..9162dad3033 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class Binary files differnew file mode 100644 index 00000000000..8539c771b0e --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class diff --git a/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class Binary files differnew file mode 100644 index 00000000000..ad1c0c22533 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class diff --git a/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class b/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class Binary files differnew file mode 100644 index 00000000000..208d59b591b --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class Binary files differindex cbbf6fd7b8c..ff4c6e491f5 100644 --- a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class +++ b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class Binary files differnew file mode 100644 index 00000000000..3305bc54fa5 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class Binary files differnew file mode 100644 index 00000000000..1bba56fc973 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class Binary files differindex d4615e82315..e3b450ed8e3 100644 --- a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class +++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class Binary files differnew file mode 100644 index 00000000000..9e67e6b257d --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class b/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class Binary files differnew file mode 100644 index 00000000000..f966155cdb6 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class Binary files differindex 6436a449296..e8b506246a7 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class Binary files differindex 49ee40561eb..9fcc24310b4 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class Binary files differindex f02fab32ce7..482c60ab749 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class Binary files differindex 0770325b444..9bde7ce1964 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class Binary files differindex 2df0587b70c..1dace9a00f1 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class Binary files differindex a20978bc996..e6495e90232 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class Binary files differindex e4dfec577ef..839acb4c958 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class Binary files differindex 6e3a11a3cf1..d9feb6be6dd 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class Binary files differindex 5806dc2f5a8..f2590b20003 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class Binary files differindex a4105ea03a9..fe6a391a33e 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class Binary files differindex 3eb57b1611f..6436b9a27a9 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class Binary files differindex 84223c8a55b..7aa9b30457d 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class Binary files differindex 53fcf3bbbcb..66d3f1f1de8 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class Binary files differindex 118b4d80866..e53fa21ce72 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class Binary files differindex a13f74232bb..eb8c279e0ca 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class Binary files differindex 97fe84a8ec8..114b8f00e57 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class Binary files differindex abf76c0d9ee..bc45490cfe9 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class Binary files differindex 45f9c47f8c6..12f5a707025 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class Binary files differindex a8334f655bc..37572654a12 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class Binary files differindex 8e9d88427b3..c3d1948c8b9 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class Binary files differindex 15180e0769b..abdb577004a 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class Binary files differindex a348cf02d4a..26550bb0e3e 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class Binary files differindex a5df713903f..13a8368cd44 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class Binary files differindex a290ef3135c..a6effe15bc3 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class Binary files differindex 7259ec2e1a3..8a026d829bd 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class Binary files differindex fce29a616f2..89d5c5173d6 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class Binary files differindex 63400301f79..39471592d1b 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class Binary files differindex 394a3acf5be..ea9d1cbf354 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class Binary files differindex cb80579e17f..4e14f3086b3 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class Binary files differindex 643ba7a05cc..5cf6ab822c5 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class Binary files differindex db2bf26d071..db5d6e7ff28 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class Binary files differindex 55eaafca06d..2335ea0dd49 100644 --- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class +++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class diff --git a/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class Binary files differindex 3fd30fabdd8..89ad94e3fbf 100644 --- a/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class +++ b/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class diff --git a/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class b/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class Binary files differindex 49bbe1c4566..e6d55258741 100644 --- a/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class +++ b/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class diff --git a/libjava/classpath/lib/gnu/java/io/PlatformHelper.class b/libjava/classpath/lib/gnu/java/io/PlatformHelper.class Binary files differindex 76e89f2ce92..9146d210901 100644 --- a/libjava/classpath/lib/gnu/java/io/PlatformHelper.class +++ b/libjava/classpath/lib/gnu/java/io/PlatformHelper.class diff --git a/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class Binary files differindex ff63fd05907..1cbf3e0d155 100644 --- a/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class +++ b/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class Binary files differindex 80aa4cf7789..f2eb3336b27 100644 --- a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class +++ b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class b/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class Binary files differindex b2fa5f27cdf..88a6dd30369 100644 --- a/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class +++ b/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class Binary files differindex 8f821023465..fac66baa2e3 100644 --- a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class +++ b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class Binary files differnew file mode 100644 index 00000000000..e98e10655f1 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class Binary files differnew file mode 100644 index 00000000000..00d0f210b5e --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class Binary files differindex 166210902d0..37c41474f05 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class Binary files differindex fed5aaf0384..4c467cba21e 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class Binary files differindex abbfcc29ec5..522e716131b 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class Binary files differnew file mode 100644 index 00000000000..27a0d839d55 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class Binary files differnew file mode 100644 index 00000000000..654da730121 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class Binary files differindex 85f73b42322..8c7cfa89f85 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class Binary files differindex 6799af3e1ea..68013652bb5 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class Binary files differindex 3dc1a6402f1..5d34ce8df1e 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class Binary files differindex d571c10661a..0f6ad7409b3 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class Binary files differindex 7196ca2de2d..dc3faddc133 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class Binary files differindex 8373403213e..523a82b65d4 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class Binary files differindex 17c1793bd75..90480934fa7 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class Binary files differindex a214f8effa3..cd7c2844480 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class Binary files differindex 8553e8d875c..666e2cff609 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class Binary files differindex 634255c87ef..462c5537759 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class Binary files differindex ef5df442108..7d89f443aba 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class Binary files differindex 0e03ff4d4b2..cce7044363e 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class Binary files differindex c982051bfb7..fed14573023 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class Binary files differindex cb82993678a..7f64054b09f 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class Binary files differindex 16ca0f4cd82..37568f0b83f 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class Binary files differindex 4b692542f23..d3e42d93e69 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class Binary files differindex 24ab44ca942..e1e2150f565 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class Binary files differindex 4e81021f07b..9464535d551 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class Binary files differnew file mode 100644 index 00000000000..1d7d76914a2 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class Binary files differnew file mode 100644 index 00000000000..a03951c9414 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class Binary files differindex 64e6768b895..10d63f4e864 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class Binary files differindex 6fe13059542..5a570105b60 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class Binary files differindex 28c62ca33ce..04d0a3770cb 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class Binary files differindex cc21df464c6..3c691872061 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class Binary files differindex 89bf8bfd60e..51ba54e904b 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class Binary files differindex 71744a0ffdd..f52316d5d25 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class Binary files differindex 807b45e816b..8c593144b20 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class Binary files differindex e4fe0185583..051cc3d3754 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class Binary files differindex 70601828b0e..ec1f56adede 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class Binary files differindex 4e7ed95828f..be1564f4713 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class Binary files differindex 11c9523c7d9..cc4e0f1e196 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class Binary files differindex 58f8954a97b..1b2892e6243 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class Binary files differindex 8c9a6fa38a2..d306a5a1e73 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class b/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class Binary files differindex 32beb9e7867..557d8a3d821 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MS874.class b/libjava/classpath/lib/gnu/java/nio/charset/MS874.class Binary files differindex 20728d0b68f..cccdca52d71 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MS874.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MS874.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class Binary files differindex 53a16c28317..be90e5a7450 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class Binary files differindex 531b25f6391..590543136c3 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class Binary files differindex 15818087052..846a7894afc 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class b/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class Binary files differindex fe35fe8e123..52e6f45bbe0 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class b/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class Binary files differindex 3e88fad3a52..d586c5595d9 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class b/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class Binary files differindex 5d72231184a..767c707b385 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class b/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class Binary files differindex 9185ccc6d81..b9d49539ea7 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class b/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class Binary files differindex ff7cd8a13c7..9749b390b49 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class b/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class Binary files differindex 16996e6ff40..ec1b6ae7732 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class b/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class Binary files differindex 92a895a7887..fdcebea05dc 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class b/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class Binary files differindex 177250741dc..4eb0780012b 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class b/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class Binary files differindex ecc9fd09e7c..8fea10f671f 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Provider.class b/libjava/classpath/lib/gnu/java/nio/charset/Provider.class Binary files differindex 52cd4e4477c..4324dce01d0 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Provider.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Provider.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class Binary files differnew file mode 100644 index 00000000000..646f96ef110 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class Binary files differnew file mode 100644 index 00000000000..25ff4119d7f --- /dev/null +++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class Binary files differindex afa2964f97e..cae4a18fc62 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class Binary files differindex 6b770a24f00..c95cd1113d5 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class Binary files differindex 7e33ad70eeb..1831af96a72 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class Binary files differindex 3cf9112ac60..a69a3a9fe97 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class Binary files differindex 55fdf449389..49f321d6bca 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class Binary files differindex 8885cd85c7b..10659edfcd3 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class Binary files differindex 522f9c3987e..7357b7c3aa5 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class Binary files differindex a254778da8b..06c622ee851 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class Binary files differindex 2326a628c88..6991f6d7379 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class Binary files differindex 132aee77931..87483fe15e1 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class Binary files differindex 9b2c6935ec3..6226c8abb8a 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class Binary files differindex dff7817b2ac..225c5d3628b 100644 --- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class +++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class Binary files differindex 1f187b76794..8acb0f86214 100644 --- a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class +++ b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class Binary files differindex 39323eb2a9d..f453e3176fb 100644 --- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class +++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class Binary files differindex fef7f673bd1..96787de186e 100644 --- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class +++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class Binary files differindex c39da5c9136..ca9e12924be 100644 --- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class +++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class Binary files differindex 88a6fdec356..6cb48a65e3e 100644 --- a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class +++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class diff --git a/libjava/classpath/lib/gnu/java/util/LRUCache.class b/libjava/classpath/lib/gnu/java/util/LRUCache.class Binary files differnew file mode 100644 index 00000000000..97b64680024 --- /dev/null +++ b/libjava/classpath/lib/gnu/java/util/LRUCache.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class Binary files differindex da1645dc711..f84e8b759e7 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class Binary files differindex 4dd3fd602f9..c4f07208943 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class Binary files differindex 8d2299f63e5..8e926135966 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class Binary files differindex b9be6348bd0..b0cbde240ab 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class Binary files differindex e7e5fac75f3..25f1aafacb4 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE.class b/libjava/classpath/lib/gnu/java/util/regex/RE.class Binary files differindex 9092caa5ffa..ff81c597875 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RE.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RE.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/REException.class b/libjava/classpath/lib/gnu/java/util/regex/REException.class Binary files differindex 03dd2facb4a..46de3c96815 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/REException.class +++ b/libjava/classpath/lib/gnu/java/util/regex/REException.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class Binary files differindex 45223b2b296..6426e92eb88 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class Binary files differindex 64eefa696ce..e9747317af1 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class Binary files differnew file mode 100644 index 00000000000..a23e960f04a --- /dev/null +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class Binary files differindex 828a02efe08..86b3605ca13 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class Binary files differindex 8b63c0b1e0c..b54a750ae82 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class Binary files differindex b288615658e..00fe6e6d4e8 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class Binary files differindex 1c7997b6544..9aa8ae42bad 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class Binary files differindex 6232c7e3213..317420b7642 100644 --- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class +++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class Binary files differindex 777d436d796..942f48b16cb 100644 --- a/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class +++ b/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class Binary files differindex 2f65103b73c..1031c659533 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class +++ b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class Binary files differindex fe373030d4f..93e697b9807 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class +++ b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class Binary files differindex 5d11e339c16..d0ef1d1340b 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class +++ b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class Binary files differindex 0ae6fd9a3fe..075004966ef 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class +++ b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class Binary files differindex 4dc722d41a9..2a3a8df1e93 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class +++ b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class Binary files differindex e5bd013ae00..77412e31cc6 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class +++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class Binary files differindex 6712c7ecacf..8d97bb355f1 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class +++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class Binary files differindex 85f16e07f3c..f1b9d6158a1 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class +++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class Binary files differindex a806c42419c..6769f1894e7 100644 --- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class +++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class Binary files differindex 66a0933e81e..0ef1b5cb028 100644 --- a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class +++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class Binary files differindex 13e6231a5ae..6081214dc6a 100644 --- a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class +++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class Binary files differindex 99d0cdcee3d..86f3ef07954 100644 --- a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class +++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class diff --git a/libjava/classpath/lib/gnu/javax/management/Server.class b/libjava/classpath/lib/gnu/javax/management/Server.class Binary files differindex 060f70738c3..c31cffe1ddb 100644 --- a/libjava/classpath/lib/gnu/javax/management/Server.class +++ b/libjava/classpath/lib/gnu/javax/management/Server.class diff --git a/libjava/classpath/lib/gnu/javax/management/Translator.class b/libjava/classpath/lib/gnu/javax/management/Translator.class Binary files differindex ea04b309b55..4572fa4fa45 100644 --- a/libjava/classpath/lib/gnu/javax/management/Translator.class +++ b/libjava/classpath/lib/gnu/javax/management/Translator.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class b/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class Binary files differindex 5c399712b0e..0af8b1353e0 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class b/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class Binary files differindex 50b76a7c281..63a4101494e 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class Binary files differindex 30130493ded..9898f9f3ab6 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class Binary files differindex 615693f3a14..9c364315302 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class Binary files differindex f4930c7d070..2bc032c5692 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class Binary files differindex c614ed58477..8e97f405053 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class Binary files differindex ae8f45ed816..229d2306318 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class Binary files differindex cdd388d0381..6085682a6a7 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class Binary files differindex 5f1a5aba13b..20ddf2940c8 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class Binary files differindex e828c1d0b69..1e344fc6206 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class Binary files differindex 43c99e03767..166fbb7a74a 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class Binary files differindex 776eb4a1898..71975e7c82d 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class Binary files differindex b4d148a45d5..2db5c71dc97 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class Binary files differindex 381d8668168..018d1d5c622 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class Binary files differindex 06559fc7184..c22cae5ed0d 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class Binary files differindex 85412abbdfa..fe1bac8f3c5 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class Binary files differindex ff278f3e56f..fc39498e5c7 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class Binary files differindex c36422821d7..a2b35ee158e 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class Binary files differindex e1943659012..356d6c499e6 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class Binary files differindex dca9cec7425..4d4b03016b5 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class Binary files differindex 94c704bde66..fb89fc3dc26 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class Binary files differindex 5a6957bfaf1..b6d10a334dc 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class Binary files differindex d8f64b27a95..7a0d9d469fc 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class Binary files differindex d938211ac99..eae778e6e8b 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class Binary files differindex 0b4f9d617e8..f6ee27ed4a6 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class Binary files differindex 31d3f3d650e..99fb8bded0f 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class Binary files differindex bdf9a8f9c11..99584f80ab7 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class Binary files differindex acfa9636cab..e73c2102da8 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class Binary files differindex 22ce76a9f51..d7dc0c32b11 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class Binary files differindex ce63025ddb2..168a4cc2495 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class Binary files differindex 496741b93b8..7da01ce5acb 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class Binary files differindex c197231aec0..ebe5d3ad289 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class Binary files differindex 63ae2b0ec7f..de8b26df8c6 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class Binary files differindex c3c254663b1..68afc6bf805 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class Binary files differindex ce7c38555d7..e64416225db 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class Binary files differindex 5a45271700a..2745b238b66 100644 --- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class +++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class diff --git a/libjava/classpath/lib/gnu/javax/security/auth/Password.class b/libjava/classpath/lib/gnu/javax/security/auth/Password.class Binary files differindex df75b3a5470..b7882b4a321 100644 --- a/libjava/classpath/lib/gnu/javax/security/auth/Password.class +++ b/libjava/classpath/lib/gnu/javax/security/auth/Password.class diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class Binary files differindex 3eae4f238da..bb6f983ab13 100644 --- a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class +++ b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class Binary files differindex 1b2798c8b6c..eb21af3cac6 100644 --- a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class +++ b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class Binary files differindex aff7264f4a3..098f70ccb2f 100644 --- a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class +++ b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class Binary files differindex 0ea0abe19ec..98308e6611c 100644 --- a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class +++ b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class Binary files differindex f074048d422..dec2b5f6682 100644 --- a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class +++ b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class Binary files differindex 1982f16ae34..963cacc96fe 100644 --- a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class +++ b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class Binary files differindex 7162632e6e7..85614a00355 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class Binary files differindex 2358516af8b..ef18f64a9b7 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class Binary files differindex aa0b71e2da6..96a83ff4c49 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class Binary files differindex 2921e8f68a0..9bf51ef4250 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class Binary files differindex 5fedce0c998..4c2a29eefd4 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class Binary files differindex ee09fb9caec..fc3c438b469 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class Binary files differindex 3adbce40d12..7ced67c621b 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class Binary files differindex 337c1182b11..5d7c6b60b09 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class Binary files differnew file mode 100644 index 00000000000..213fa6137ec --- /dev/null +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class Binary files differdeleted file mode 100644 index 0facc0d2666..00000000000 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class +++ /dev/null diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class Binary files differindex a03af0675fb..dc5fa8eaa0e 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class Binary files differindex b3843f0afd2..e7c28a455d7 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class Binary files differnew file mode 100644 index 00000000000..51a64f67742 --- /dev/null +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class Binary files differnew file mode 100644 index 00000000000..7f197f80748 --- /dev/null +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class Binary files differindex 775dd741998..460bab8fd64 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class Binary files differindex 627ba8d936e..a3556960d92 100644 --- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class +++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class Binary files differindex a847e5c8f31..bbb0027ba4e 100644 --- a/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class +++ b/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class b/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class Binary files differindex fb5de5c5040..0b380a047e0 100644 --- a/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class +++ b/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class Binary files differindex 3847b7ad719..6de4c8342fd 100644 --- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class +++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class Binary files differindex d7f253263a2..62024141a16 100644 --- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class +++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class Binary files differindex 8bb85a3f0ec..97aee7353bf 100644 --- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class +++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class Binary files differindex 9fbede093bb..e9372cd1554 100644 --- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class +++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class Binary files differindex 75be2936f7c..b694987a8db 100644 --- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class +++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class Binary files differindex 65a9cb98b3f..1a695b6823a 100644 --- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class +++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class Binary files differindex 7347af6010d..730b656ba9e 100644 --- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class +++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class Binary files differindex 56a21d2c93d..ca02bddf3e6 100644 --- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class +++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class Binary files differindex 93e0e4c798a..b7eda30fe95 100644 --- a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class +++ b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class Binary files differindex c1438b30b60..507a7fab82c 100644 --- a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class +++ b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class Binary files differindex 340066c124b..6345164cfa3 100644 --- a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class +++ b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class Binary files differindex d8006e3e3f8..3289a5969c4 100644 --- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class +++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class diff --git a/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class Binary files differindex ada998d556e..b0997cf3eb3 100644 --- a/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class +++ b/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class diff --git a/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class b/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class Binary files differindex b3ebe4577dc..af6574f11ad 100644 --- a/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class +++ b/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class diff --git a/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class b/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class Binary files differindex d017cf68b59..82f8d700e6d 100644 --- a/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class +++ b/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class diff --git a/libjava/classpath/lib/gnu/xml/stream/SAXParser.class b/libjava/classpath/lib/gnu/xml/stream/SAXParser.class Binary files differindex e3f889d90b8..4b92ca03cd8 100644 --- a/libjava/classpath/lib/gnu/xml/stream/SAXParser.class +++ b/libjava/classpath/lib/gnu/xml/stream/SAXParser.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class b/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class Binary files differindex afd44e4a074..24ba028ad10 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class +++ b/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class Binary files differindex 1a19a8f4a2a..e569c9c843e 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class Binary files differindex b6336683457..cbb14e6c529 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class Binary files differindex 187ee4f6e27..5d989edf2b7 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class Binary files differindex 517fa692f8b..af7afc820b4 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class Binary files differindex 099ec4ac773..21af8683955 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class Binary files differindex af7ce248395..7ea4289dade 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class Binary files differindex f5f1f536159..15ca13ca8a3 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class Binary files differindex c5289181000..b9a9d7db78d 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class Binary files differindex 9b457cbe0c0..277d0963109 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class Binary files differindex b3c4eed3bb3..756e3115330 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class Binary files differindex 6a3ba1e8256..1beaf13fd10 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class Binary files differindex dcb88dd2685..8921d02b9b4 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class Binary files differindex 7fb33b06247..0081e42cb02 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class Binary files differindex 70cd47ed8c4..d3614647c11 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class Binary files differindex 331704e4fc0..88a6803d94e 100644 --- a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class +++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class diff --git a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class Binary files differindex e0c7d8f90f0..406c9d5f9ce 100644 --- a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class +++ b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class diff --git a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class Binary files differindex 9f585171c02..b7f401dff94 100644 --- a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class +++ b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class Binary files differindex 65a8ec99432..b71544e16bf 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class Binary files differindex 321f8973df0..57e648415a1 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class Binary files differindex ea1d9f4d280..02dfc563794 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class Binary files differindex 371fe616877..16eca5e86cd 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class Binary files differindex 39741ba75cc..13ffbc2e037 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class Binary files differindex 9ff9248e6ef..7cdc9e0ff85 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class Binary files differindex bea3e1e0218..8768a42f8be 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class Binary files differindex 7151477bf5e..a289c649e7c 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class Binary files differindex 35cf9412357..544ea978594 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class Binary files differindex 637eb4f2500..7ca2c8e7dc6 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class Binary files differindex 6c9ee2a353e..d76494468bb 100644 --- a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class +++ b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class Binary files differindex 97dc26307f6..00392feb16d 100644 --- a/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class +++ b/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class Binary files differindex e3294ea9b69..75e70c99a1c 100644 --- a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class +++ b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class Binary files differindex 04a824ba9c0..f2cae8e4a43 100644 --- a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class +++ b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class Binary files differindex a5c892cbf50..39be8266c89 100644 --- a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class +++ b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class Binary files differindex 8be1bbc8d92..99015763c71 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class Binary files differindex 1fe427dbd35..5463ec7459e 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class Binary files differindex eb13d8206b4..def77566450 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class Binary files differindex ae12af85ade..210ac236ddb 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class Binary files differindex 563f40d74a6..cf416f56a96 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class Binary files differindex 61bb72ccb69..39660d055da 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class Binary files differindex 345c33c482f..321c5683054 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class Binary files differindex c1d94e25537..3305a4a97e6 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class Binary files differindex 1ac22ce4858..a02bc9ac723 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class Binary files differindex 66abc5a9871..c1144a39df7 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class Binary files differindex 11453366a5c..03bbb2d0fda 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class Binary files differindex b504a9ac7fd..ec9063df491 100644 --- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class +++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class b/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class Binary files differindex 7351b463307..6093a79cfa3 100644 --- a/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class +++ b/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke.class b/libjava/classpath/lib/java/awt/AWTKeyStroke.class Binary files differindex ac0f424aab1..4bafedefcee 100644 --- a/libjava/classpath/lib/java/awt/AWTKeyStroke.class +++ b/libjava/classpath/lib/java/awt/AWTKeyStroke.class diff --git a/libjava/classpath/lib/java/awt/Container.class b/libjava/classpath/lib/java/awt/Container.class Binary files differindex f6b029ec258..73f55656a0f 100644 --- a/libjava/classpath/lib/java/awt/Container.class +++ b/libjava/classpath/lib/java/awt/Container.class diff --git a/libjava/classpath/lib/java/awt/Desktop.class b/libjava/classpath/lib/java/awt/Desktop.class Binary files differindex 58071294c2e..90465648944 100644 --- a/libjava/classpath/lib/java/awt/Desktop.class +++ b/libjava/classpath/lib/java/awt/Desktop.class diff --git a/libjava/classpath/lib/java/awt/Font.class b/libjava/classpath/lib/java/awt/Font.class Binary files differindex d0df448d21b..0e99b08b3b1 100644 --- a/libjava/classpath/lib/java/awt/Font.class +++ b/libjava/classpath/lib/java/awt/Font.class diff --git a/libjava/classpath/lib/java/awt/GridBagLayout.class b/libjava/classpath/lib/java/awt/GridBagLayout.class Binary files differindex 2c406eb9978..db8fc23c826 100644 --- a/libjava/classpath/lib/java/awt/GridBagLayout.class +++ b/libjava/classpath/lib/java/awt/GridBagLayout.class diff --git a/libjava/classpath/lib/java/awt/LightweightDispatcher.class b/libjava/classpath/lib/java/awt/LightweightDispatcher.class Binary files differindex f8377f8d877..cb3d9553951 100644 --- a/libjava/classpath/lib/java/awt/LightweightDispatcher.class +++ b/libjava/classpath/lib/java/awt/LightweightDispatcher.class diff --git a/libjava/classpath/lib/java/awt/MenuShortcut.class b/libjava/classpath/lib/java/awt/MenuShortcut.class Binary files differindex 44cbb58936c..554a1b51dc7 100644 --- a/libjava/classpath/lib/java/awt/MenuShortcut.class +++ b/libjava/classpath/lib/java/awt/MenuShortcut.class diff --git a/libjava/classpath/lib/java/awt/color/ICC_Profile.class b/libjava/classpath/lib/java/awt/color/ICC_Profile.class Binary files differindex 6e698a6a889..e142ab3ceb6 100644 --- a/libjava/classpath/lib/java/awt/color/ICC_Profile.class +++ b/libjava/classpath/lib/java/awt/color/ICC_Profile.class diff --git a/libjava/classpath/lib/java/awt/event/MouseEvent.class b/libjava/classpath/lib/java/awt/event/MouseEvent.class Binary files differindex 0a7888a3cf0..2f6cffea92d 100644 --- a/libjava/classpath/lib/java/awt/event/MouseEvent.class +++ b/libjava/classpath/lib/java/awt/event/MouseEvent.class diff --git a/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class b/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class Binary files differindex 5219b788e38..db61c47e696 100644 --- a/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class +++ b/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class diff --git a/libjava/classpath/lib/java/awt/font/TextMeasurer.class b/libjava/classpath/lib/java/awt/font/TextMeasurer.class Binary files differindex dbbb2a3ad7f..746165399c0 100644 --- a/libjava/classpath/lib/java/awt/font/TextMeasurer.class +++ b/libjava/classpath/lib/java/awt/font/TextMeasurer.class diff --git a/libjava/classpath/lib/java/awt/im/InputContext.class b/libjava/classpath/lib/java/awt/im/InputContext.class Binary files differindex a954db3de99..591ced2e17f 100644 --- a/libjava/classpath/lib/java/awt/im/InputContext.class +++ b/libjava/classpath/lib/java/awt/im/InputContext.class diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class Binary files differindex 5654d4267bc..5d5a3c8e1d8 100644 --- a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class +++ b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage.class b/libjava/classpath/lib/java/awt/image/BufferedImage.class Binary files differindex d4eab3b5f5f..dc90bfc626b 100644 --- a/libjava/classpath/lib/java/awt/image/BufferedImage.class +++ b/libjava/classpath/lib/java/awt/image/BufferedImage.class diff --git a/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class b/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class Binary files differindex 9f456ec8235..6e2c4493bbc 100644 --- a/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class +++ b/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class diff --git a/libjava/classpath/lib/java/awt/image/RGBImageFilter.class b/libjava/classpath/lib/java/awt/image/RGBImageFilter.class Binary files differindex c0573de77c7..033839816ce 100644 --- a/libjava/classpath/lib/java/awt/image/RGBImageFilter.class +++ b/libjava/classpath/lib/java/awt/image/RGBImageFilter.class diff --git a/libjava/classpath/lib/java/awt/image/Raster.class b/libjava/classpath/lib/java/awt/image/Raster.class Binary files differindex 054d9b364a6..bc95252b6c3 100644 --- a/libjava/classpath/lib/java/awt/image/Raster.class +++ b/libjava/classpath/lib/java/awt/image/Raster.class diff --git a/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class b/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class Binary files differindex 6c13217644f..5c7c6f640e0 100644 --- a/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class +++ b/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class diff --git a/libjava/classpath/lib/java/beans/EventHandler.class b/libjava/classpath/lib/java/beans/EventHandler.class Binary files differindex 9e0c30b914a..7b763c6e02a 100644 --- a/libjava/classpath/lib/java/beans/EventHandler.class +++ b/libjava/classpath/lib/java/beans/EventHandler.class diff --git a/libjava/classpath/lib/java/beans/PropertyChangeSupport.class b/libjava/classpath/lib/java/beans/PropertyChangeSupport.class Binary files differindex 699186fb82b..d509bd15a5f 100644 --- a/libjava/classpath/lib/java/beans/PropertyChangeSupport.class +++ b/libjava/classpath/lib/java/beans/PropertyChangeSupport.class diff --git a/libjava/classpath/lib/java/beans/VetoableChangeSupport.class b/libjava/classpath/lib/java/beans/VetoableChangeSupport.class Binary files differindex f48cabe6849..706614f24b7 100644 --- a/libjava/classpath/lib/java/beans/VetoableChangeSupport.class +++ b/libjava/classpath/lib/java/beans/VetoableChangeSupport.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class Binary files differindex dd6ff064792..0a2c72c6996 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class Binary files differindex 53724e026a2..8e653bbf182 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class Binary files differindex 4881c940616..a4b93fd5a38 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class Binary files differindex 6fef7beb1a7..d9a621d1631 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class Binary files differindex 6ea592d4570..b8af638dc5c 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class Binary files differindex a973c8215f9..5ecc39bb60e 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class Binary files differindex eff88884037..369f5f93eaf 100644 --- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class +++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class diff --git a/libjava/classpath/lib/java/io/BufferedReader.class b/libjava/classpath/lib/java/io/BufferedReader.class Binary files differindex efe3c2caf90..8189aac893d 100644 --- a/libjava/classpath/lib/java/io/BufferedReader.class +++ b/libjava/classpath/lib/java/io/BufferedReader.class diff --git a/libjava/classpath/lib/java/io/DataInputStream.class b/libjava/classpath/lib/java/io/DataInputStream.class Binary files differindex 6730b4a9241..87ac5bd3ee0 100644 --- a/libjava/classpath/lib/java/io/DataInputStream.class +++ b/libjava/classpath/lib/java/io/DataInputStream.class diff --git a/libjava/classpath/lib/java/io/DataOutputStream.class b/libjava/classpath/lib/java/io/DataOutputStream.class Binary files differindex 228fbeb7401..b2f67208d2b 100644 --- a/libjava/classpath/lib/java/io/DataOutputStream.class +++ b/libjava/classpath/lib/java/io/DataOutputStream.class diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$1.class b/libjava/classpath/lib/java/io/ObjectInputStream$1.class Binary files differindex a871c05837b..e53b0d67025 100644 --- a/libjava/classpath/lib/java/io/ObjectInputStream$1.class +++ b/libjava/classpath/lib/java/io/ObjectInputStream$1.class diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$2.class b/libjava/classpath/lib/java/io/ObjectInputStream$2.class Binary files differindex c854e075581..45242b60b01 100644 --- a/libjava/classpath/lib/java/io/ObjectInputStream$2.class +++ b/libjava/classpath/lib/java/io/ObjectInputStream$2.class diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class Binary files differindex ae17235458e..0662f872473 100644 --- a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class +++ b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class Binary files differindex a25dab6eb7b..a95eebd471a 100644 --- a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class +++ b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class diff --git a/libjava/classpath/lib/java/io/ObjectInputStream.class b/libjava/classpath/lib/java/io/ObjectInputStream.class Binary files differindex 1840e3fc2aa..dcc37dda2b4 100644 --- a/libjava/classpath/lib/java/io/ObjectInputStream.class +++ b/libjava/classpath/lib/java/io/ObjectInputStream.class diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class Binary files differindex e1c5ee9b8d5..25403384a55 100644 --- a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class +++ b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class b/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class Binary files differindex bd154eab7fe..ebb56959a50 100644 --- a/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class +++ b/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream.class b/libjava/classpath/lib/java/io/ObjectOutputStream.class Binary files differindex 2b9d84e516e..5417d3d8541 100644 --- a/libjava/classpath/lib/java/io/ObjectOutputStream.class +++ b/libjava/classpath/lib/java/io/ObjectOutputStream.class diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass.class b/libjava/classpath/lib/java/io/ObjectStreamClass.class Binary files differindex 9767f9fc6cf..f58e7320119 100644 --- a/libjava/classpath/lib/java/io/ObjectStreamClass.class +++ b/libjava/classpath/lib/java/io/ObjectStreamClass.class diff --git a/libjava/classpath/lib/java/io/PipedInputStream.class b/libjava/classpath/lib/java/io/PipedInputStream.class Binary files differindex b2c32046a97..02ab5f87de6 100644 --- a/libjava/classpath/lib/java/io/PipedInputStream.class +++ b/libjava/classpath/lib/java/io/PipedInputStream.class diff --git a/libjava/classpath/lib/java/lang/Class$1.class b/libjava/classpath/lib/java/lang/Class$1.class Binary files differindex 9c4806c0233..09e3e86f995 100644 --- a/libjava/classpath/lib/java/lang/Class$1.class +++ b/libjava/classpath/lib/java/lang/Class$1.class diff --git a/libjava/classpath/lib/java/lang/Double.class b/libjava/classpath/lib/java/lang/Double.class Binary files differindex d6757549165..8316ce2d5e4 100644 --- a/libjava/classpath/lib/java/lang/Double.class +++ b/libjava/classpath/lib/java/lang/Double.class diff --git a/libjava/classpath/lib/java/lang/Float.class b/libjava/classpath/lib/java/lang/Float.class Binary files differindex 7565a07d535..8a47f1edf51 100644 --- a/libjava/classpath/lib/java/lang/Float.class +++ b/libjava/classpath/lib/java/lang/Float.class diff --git a/libjava/classpath/lib/java/lang/Integer.class b/libjava/classpath/lib/java/lang/Integer.class Binary files differindex 291b0d03f8c..c1d69f89494 100644 --- a/libjava/classpath/lib/java/lang/Integer.class +++ b/libjava/classpath/lib/java/lang/Integer.class diff --git a/libjava/classpath/lib/java/lang/Long.class b/libjava/classpath/lib/java/lang/Long.class Binary files differindex df9dc0ce90f..3b8b9041c54 100644 --- a/libjava/classpath/lib/java/lang/Long.class +++ b/libjava/classpath/lib/java/lang/Long.class diff --git a/libjava/classpath/lib/java/lang/StackTraceElement.class b/libjava/classpath/lib/java/lang/StackTraceElement.class Binary files differindex 623d8d9e2a9..a135946506e 100644 --- a/libjava/classpath/lib/java/lang/StackTraceElement.class +++ b/libjava/classpath/lib/java/lang/StackTraceElement.class diff --git a/libjava/classpath/lib/java/lang/Throwable.class b/libjava/classpath/lib/java/lang/Throwable.class Binary files differindex 3f3b5ffddfd..48ea0367485 100644 --- a/libjava/classpath/lib/java/lang/Throwable.class +++ b/libjava/classpath/lib/java/lang/Throwable.class diff --git a/libjava/classpath/lib/java/lang/management/ThreadInfo.class b/libjava/classpath/lib/java/lang/management/ThreadInfo.class Binary files differindex 25e861fe1b2..94282772faf 100644 --- a/libjava/classpath/lib/java/lang/management/ThreadInfo.class +++ b/libjava/classpath/lib/java/lang/management/ThreadInfo.class diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class Binary files differindex 0c833b283d1..245c4e6e5a8 100644 --- a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class +++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class Binary files differindex b31ea764f0b..97905c6c995 100644 --- a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class +++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class diff --git a/libjava/classpath/lib/java/math/BigInteger.class b/libjava/classpath/lib/java/math/BigInteger.class Binary files differindex 15a85be814f..01a604a9c8f 100644 --- a/libjava/classpath/lib/java/math/BigInteger.class +++ b/libjava/classpath/lib/java/math/BigInteger.class diff --git a/libjava/classpath/lib/java/net/DatagramSocket.class b/libjava/classpath/lib/java/net/DatagramSocket.class Binary files differindex d7e9440c458..cf367bce130 100644 --- a/libjava/classpath/lib/java/net/DatagramSocket.class +++ b/libjava/classpath/lib/java/net/DatagramSocket.class diff --git a/libjava/classpath/lib/java/net/ServerSocket.class b/libjava/classpath/lib/java/net/ServerSocket.class Binary files differindex dd942a8b002..ec6df9fc57c 100644 --- a/libjava/classpath/lib/java/net/ServerSocket.class +++ b/libjava/classpath/lib/java/net/ServerSocket.class diff --git a/libjava/classpath/lib/java/net/Socket.class b/libjava/classpath/lib/java/net/Socket.class Binary files differindex 75b3cd6fa97..d0084213b21 100644 --- a/libjava/classpath/lib/java/net/Socket.class +++ b/libjava/classpath/lib/java/net/Socket.class diff --git a/libjava/classpath/lib/java/net/URI.class b/libjava/classpath/lib/java/net/URI.class Binary files differindex be72cf438de..c44d2235e47 100644 --- a/libjava/classpath/lib/java/net/URI.class +++ b/libjava/classpath/lib/java/net/URI.class diff --git a/libjava/classpath/lib/java/net/URLClassLoader.class b/libjava/classpath/lib/java/net/URLClassLoader.class Binary files differindex 8ec9a2d572a..80a5e081bc1 100644 --- a/libjava/classpath/lib/java/net/URLClassLoader.class +++ b/libjava/classpath/lib/java/net/URLClassLoader.class diff --git a/libjava/classpath/lib/java/net/URLEncoder.class b/libjava/classpath/lib/java/net/URLEncoder.class Binary files differindex 4beca0018fb..d573af85be7 100644 --- a/libjava/classpath/lib/java/net/URLEncoder.class +++ b/libjava/classpath/lib/java/net/URLEncoder.class diff --git a/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class b/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class Binary files differindex 4d885f09d59..6efc840755f 100644 --- a/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class +++ b/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class diff --git a/libjava/classpath/lib/java/security/SecureClassLoader.class b/libjava/classpath/lib/java/security/SecureClassLoader.class Binary files differindex 384d80e4171..539d9d79c0e 100644 --- a/libjava/classpath/lib/java/security/SecureClassLoader.class +++ b/libjava/classpath/lib/java/security/SecureClassLoader.class diff --git a/libjava/classpath/lib/java/security/Security.class b/libjava/classpath/lib/java/security/Security.class Binary files differindex 33419eb80c5..c36911e73c3 100644 --- a/libjava/classpath/lib/java/security/Security.class +++ b/libjava/classpath/lib/java/security/Security.class diff --git a/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class b/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class Binary files differindex 955a1f3db72..65043ff2fa4 100644 --- a/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class +++ b/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class diff --git a/libjava/classpath/lib/java/security/VMSecureRandom.class b/libjava/classpath/lib/java/security/VMSecureRandom.class Binary files differindex 08a44d63f80..8e0a093de1b 100644 --- a/libjava/classpath/lib/java/security/VMSecureRandom.class +++ b/libjava/classpath/lib/java/security/VMSecureRandom.class diff --git a/libjava/classpath/lib/java/security/cert/CertificateFactory.class b/libjava/classpath/lib/java/security/cert/CertificateFactory.class Binary files differindex 8b0973e2b73..192a302a4df 100644 --- a/libjava/classpath/lib/java/security/cert/CertificateFactory.class +++ b/libjava/classpath/lib/java/security/cert/CertificateFactory.class diff --git a/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class b/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class Binary files differindex 302add6f2c6..c8562f7af03 100644 --- a/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class +++ b/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class diff --git a/libjava/classpath/lib/java/text/ChoiceFormat.class b/libjava/classpath/lib/java/text/ChoiceFormat.class Binary files differindex 68a81e5eb4b..77d704b730a 100644 --- a/libjava/classpath/lib/java/text/ChoiceFormat.class +++ b/libjava/classpath/lib/java/text/ChoiceFormat.class diff --git a/libjava/classpath/lib/java/text/CollationElementIterator.class b/libjava/classpath/lib/java/text/CollationElementIterator.class Binary files differindex ba383a850ba..23e55d78f90 100644 --- a/libjava/classpath/lib/java/text/CollationElementIterator.class +++ b/libjava/classpath/lib/java/text/CollationElementIterator.class diff --git a/libjava/classpath/lib/java/text/DecimalFormat.class b/libjava/classpath/lib/java/text/DecimalFormat.class Binary files differindex 17695da8693..ad90313d82b 100644 --- a/libjava/classpath/lib/java/text/DecimalFormat.class +++ b/libjava/classpath/lib/java/text/DecimalFormat.class diff --git a/libjava/classpath/lib/java/text/MessageFormat.class b/libjava/classpath/lib/java/text/MessageFormat.class Binary files differindex 12f9465a707..35ac131e24c 100644 --- a/libjava/classpath/lib/java/text/MessageFormat.class +++ b/libjava/classpath/lib/java/text/MessageFormat.class diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator.class b/libjava/classpath/lib/java/text/RuleBasedCollator.class Binary files differindex e15199eefb3..b11b44cfa4a 100644 --- a/libjava/classpath/lib/java/text/RuleBasedCollator.class +++ b/libjava/classpath/lib/java/text/RuleBasedCollator.class diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class Binary files differindex 559c5ce9dfe..500c6f2918e 100644 --- a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class +++ b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat.class b/libjava/classpath/lib/java/text/SimpleDateFormat.class Binary files differindex 08ac4f3f050..443bb4359d3 100644 --- a/libjava/classpath/lib/java/text/SimpleDateFormat.class +++ b/libjava/classpath/lib/java/text/SimpleDateFormat.class diff --git a/libjava/classpath/lib/java/util/AbstractMap.class b/libjava/classpath/lib/java/util/AbstractMap.class Binary files differindex 739ed73f709..77e9a2566a2 100644 --- a/libjava/classpath/lib/java/util/AbstractMap.class +++ b/libjava/classpath/lib/java/util/AbstractMap.class diff --git a/libjava/classpath/lib/java/util/Calendar.class b/libjava/classpath/lib/java/util/Calendar.class Binary files differindex 1743652bff9..5f32ee15a9c 100644 --- a/libjava/classpath/lib/java/util/Calendar.class +++ b/libjava/classpath/lib/java/util/Calendar.class diff --git a/libjava/classpath/lib/java/util/Date.class b/libjava/classpath/lib/java/util/Date.class Binary files differindex 4bdae065926..422dcb54498 100644 --- a/libjava/classpath/lib/java/util/Date.class +++ b/libjava/classpath/lib/java/util/Date.class diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class Binary files differindex 6ba870b1050..4e33c8f715e 100644 --- a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class +++ b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class Binary files differindex 3a9ed2c24fb..e1331ae23d3 100644 --- a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class +++ b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class Binary files differindex 8ba2ab97678..0a396cb0bf6 100644 --- a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class +++ b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class Binary files differindex 3b8332c3584..53ab7e1872d 100644 --- a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class +++ b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class diff --git a/libjava/classpath/lib/java/util/Hashtable.class b/libjava/classpath/lib/java/util/Hashtable.class Binary files differindex 49850b0908c..6ffdf57d096 100644 --- a/libjava/classpath/lib/java/util/Hashtable.class +++ b/libjava/classpath/lib/java/util/Hashtable.class diff --git a/libjava/classpath/lib/java/util/Locale.class b/libjava/classpath/lib/java/util/Locale.class Binary files differindex 32bc023b9d5..3ea366f8b2e 100644 --- a/libjava/classpath/lib/java/util/Locale.class +++ b/libjava/classpath/lib/java/util/Locale.class diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class Binary files differnew file mode 100644 index 00000000000..d92a7e97255 --- /dev/null +++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class Binary files differnew file mode 100644 index 00000000000..6989e8ae4d7 --- /dev/null +++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class Binary files differnew file mode 100644 index 00000000000..46735777f12 --- /dev/null +++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class Binary files differnew file mode 100644 index 00000000000..83fd284ec57 --- /dev/null +++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class Binary files differnew file mode 100644 index 00000000000..20dd205caa1 --- /dev/null +++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class Binary files differindex 151c514b344..0e7bd0f5aee 100644 --- a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class +++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class diff --git a/libjava/classpath/lib/java/util/zip/ZipEntry.class b/libjava/classpath/lib/java/util/zip/ZipEntry.class Binary files differindex dc9b197e812..045a90f56be 100644 --- a/libjava/classpath/lib/java/util/zip/ZipEntry.class +++ b/libjava/classpath/lib/java/util/zip/ZipEntry.class diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleAction.class b/libjava/classpath/lib/javax/accessibility/AccessibleAction.class Binary files differindex 149eef17101..0c096f088dc 100644 --- a/libjava/classpath/lib/javax/accessibility/AccessibleAction.class +++ b/libjava/classpath/lib/javax/accessibility/AccessibleAction.class diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class b/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class Binary files differindex 2bd35220370..f8e3ef58930 100644 --- a/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class +++ b/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleRole.class b/libjava/classpath/lib/javax/accessibility/AccessibleRole.class Binary files differindex d05eefb9166..f5dbfb99e51 100644 --- a/libjava/classpath/lib/javax/accessibility/AccessibleRole.class +++ b/libjava/classpath/lib/javax/accessibility/AccessibleRole.class diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class b/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class Binary files differindex b0fd35da23e..99fa6829f73 100644 --- a/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class +++ b/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class Binary files differindex e4259856bd6..e4525c4a98b 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class Binary files differindex 8da0e36d9cf..475c20de75a 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class Binary files differindex b6111e2aa5b..92b21a1e800 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class Binary files differindex acadd96ee5c..5a2059ea672 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class Binary files differindex a488e1076ff..2bd05a08dd2 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class Binary files differindex c6ddf8ed845..9d770744dea 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class Binary files differindex 44648d6f263..8a9bc135cba 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class Binary files differindex 7acc42e7243..3c3964bb5a2 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class Binary files differindex 542176895b2..4dd59ff1b0c 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class Binary files differindex 7a9fdff3b96..2c80f9d68a3 100644 --- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class +++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class diff --git a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class Binary files differindex 57dc68de425..7a37f9579c9 100644 --- a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class +++ b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class diff --git a/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class b/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class Binary files differindex 8a18372f34c..b9ba526dc3c 100644 --- a/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class +++ b/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class diff --git a/libjava/classpath/lib/javax/management/ObjectName.class b/libjava/classpath/lib/javax/management/ObjectName.class Binary files differindex 99df669d32d..55cb11360f6 100644 --- a/libjava/classpath/lib/javax/management/ObjectName.class +++ b/libjava/classpath/lib/javax/management/ObjectName.class diff --git a/libjava/classpath/lib/javax/management/StandardMBean.class b/libjava/classpath/lib/javax/management/StandardMBean.class Binary files differindex ca59e8f7303..8a454a156c5 100644 --- a/libjava/classpath/lib/javax/management/StandardMBean.class +++ b/libjava/classpath/lib/javax/management/StandardMBean.class diff --git a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class Binary files differindex 112ba8bb556..fe1fdfa512a 100644 --- a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class +++ b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class diff --git a/libjava/classpath/lib/javax/management/remote/NotificationResult.class b/libjava/classpath/lib/javax/management/remote/NotificationResult.class Binary files differnew file mode 100644 index 00000000000..75e1f89c96b --- /dev/null +++ b/libjava/classpath/lib/javax/management/remote/NotificationResult.class diff --git a/libjava/classpath/lib/javax/management/remote/TargetedNotification.class b/libjava/classpath/lib/javax/management/remote/TargetedNotification.class Binary files differnew file mode 100644 index 00000000000..050dbe416d4 --- /dev/null +++ b/libjava/classpath/lib/javax/management/remote/TargetedNotification.class diff --git a/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class b/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class Binary files differnew file mode 100644 index 00000000000..56a629de6ea --- /dev/null +++ b/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class diff --git a/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class b/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class Binary files differnew file mode 100644 index 00000000000..22afd3ae162 --- /dev/null +++ b/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class diff --git a/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class b/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class Binary files differindex d531508bb79..3350b80ef7c 100644 --- a/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class +++ b/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class Binary files differindex 9098cf72a79..f9cc7b3e866 100644 --- a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class +++ b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class diff --git a/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class b/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class Binary files differindex 4ba2d6fa060..6bad624cd58 100644 --- a/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class +++ b/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class diff --git a/libjava/classpath/lib/javax/swing/JFrame.class b/libjava/classpath/lib/javax/swing/JFrame.class Binary files differindex 828e84b040a..4d9e344a457 100644 --- a/libjava/classpath/lib/javax/swing/JFrame.class +++ b/libjava/classpath/lib/javax/swing/JFrame.class diff --git a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class Binary files differindex 25387601917..249c1334259 100644 --- a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class +++ b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class diff --git a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class Binary files differindex 17ccff4f009..9b93045fb25 100644 --- a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class +++ b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class diff --git a/libjava/classpath/lib/javax/swing/RepaintManager.class b/libjava/classpath/lib/javax/swing/RepaintManager.class Binary files differindex 3e2ff61b4e7..c26f6226175 100644 --- a/libjava/classpath/lib/javax/swing/RepaintManager.class +++ b/libjava/classpath/lib/javax/swing/RepaintManager.class diff --git a/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class b/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class Binary files differindex 9dee2f30eda..1a45c9637d3 100644 --- a/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class +++ b/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class Binary files differindex a4d80b5a9d3..124f1b8b758 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class Binary files differindex 4a5483b66d1..2e9ff39324c 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class Binary files differindex b36b60abfb6..b1a98484d53 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class Binary files differindex df8c3d573d4..46f14baeb48 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class Binary files differindex 8ca7e20f85f..829dc6b35e7 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class Binary files differindex 73241f21572..2e32596d38f 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class Binary files differindex 094561bacda..2b354bb468e 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class Binary files differindex f62de1736c9..2e83ae986c0 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class Binary files differindex 1634c3b5eb3..a863e5efe91 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class Binary files differindex 058f9488e75..fddf378707b 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class Binary files differindex ea8ebb0c309..f075a987d8d 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class Binary files differindex 1e87303914e..0187bc8344b 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class Binary files differindex ddfb4358996..576842627ab 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class Binary files differindex ac37a3c03d5..6120071df4a 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class Binary files differindex a1b88613a46..df337fcfc82 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class Binary files differindex ae608e08742..9a2197be08b 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class Binary files differindex 3f7f6494ffe..038f1c8579c 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class Binary files differindex 877860bb320..204829b6e40 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class Binary files differindex d7cb6ce5a45..b4026606b3d 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class Binary files differindex b98d9dc5a65..345724e355a 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class Binary files differindex ea9d2675361..6799d071339 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class Binary files differindex 988cfd35a2d..47c42a3c4d3 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class Binary files differindex ee2d8850023..6ff06a0162d 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class Binary files differindex 8fd02ee81f4..1ab723d80f7 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class Binary files differindex 3958c1a9490..59d5b384cc6 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class Binary files differindex 3357831e450..881d8ed6991 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class Binary files differindex b631da1f36f..f02d43849ed 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class Binary files differindex e99e40816ba..2066c99d40e 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class Binary files differindex 6f1e98c8b3b..28a5f7948af 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class Binary files differindex 0ad38c4c290..c5e521274e2 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class Binary files differindex d34480324f6..702b10803e8 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class Binary files differindex bc92c59ed3a..1bde00409af 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class Binary files differindex 94a4001313b..b4b505bb6b4 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class Binary files differindex 1dc563f6d57..b5b5b66a08e 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class Binary files differindex 897ff794392..06751dd9922 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class Binary files differindex 55843927a58..0b4758ed8c4 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class Binary files differindex fbf43c4d089..52f1d75d5c9 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class Binary files differindex 1d3be171ead..57cd62c2cda 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class Binary files differindex a32d1dc4895..7cf5420e190 100644 --- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class +++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class Binary files differindex 84f5c6487d9..085811a3336 100644 --- a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class +++ b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class Binary files differindex 59a68ae75c1..f26fe7e4fd8 100644 --- a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class +++ b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class Binary files differindex 500f418190d..d89c2dceecf 100644 --- a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class +++ b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class Binary files differindex ea3f5a50700..8cfb9d984fa 100644 --- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class +++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class Binary files differindex e93478185e7..fdf2590afd9 100644 --- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class +++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class Binary files differindex 0c12f0c8385..d22f506395c 100644 --- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class +++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class Binary files differindex defb925e3ba..0418b79e5a1 100644 --- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class +++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class diff --git a/libjava/classpath/lib/javax/swing/text/GlyphView.class b/libjava/classpath/lib/javax/swing/text/GlyphView.class Binary files differindex 0581bde6b24..611c734f9b2 100644 --- a/libjava/classpath/lib/javax/swing/text/GlyphView.class +++ b/libjava/classpath/lib/javax/swing/text/GlyphView.class diff --git a/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class b/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class Binary files differindex ab9c2654c5d..907c1dd498d 100644 --- a/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class +++ b/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class diff --git a/libjava/classpath/lib/javax/swing/text/ParagraphView.class b/libjava/classpath/lib/javax/swing/text/ParagraphView.class Binary files differindex 6a3391ed0d9..ac3b9c05998 100644 --- a/libjava/classpath/lib/javax/swing/text/ParagraphView.class +++ b/libjava/classpath/lib/javax/swing/text/ParagraphView.class diff --git a/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class b/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class Binary files differindex 8b838bbb9da..4a32bcc18de 100644 --- a/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class +++ b/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class b/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class Binary files differindex 1e7467e4436..562c4c044e4 100644 --- a/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class +++ b/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class b/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class Binary files differindex ae8e13f3ac7..d6b03ca7c0e 100644 --- a/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class +++ b/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class Binary files differindex d07fce4d2da..6f23724597d 100644 --- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class +++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class Binary files differindex 5f645d64dc9..7917c51e95a 100644 --- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class +++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class Binary files differindex 2f343c8de98..891da01ae65 100644 --- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class +++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class Binary files differindex 2ea56b2723e..6a0c995ae3f 100644 --- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class +++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class Binary files differindex 2bb65379580..feb720fd23b 100644 --- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class +++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class Binary files differindex e62123a128b..c87947509a3 100644 --- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class +++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class diff --git a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class Binary files differindex cb3ea86b321..cf1a20a4b79 100644 --- a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class +++ b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class diff --git a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class Binary files differindex 56ffb9a9990..7bb67005cf5 100644 --- a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class +++ b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class diff --git a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class Binary files differindex 1d95a1927dd..f227924c9cd 100644 --- a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class +++ b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class diff --git a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class Binary files differindex 39763091fcb..607238c1744 100644 --- a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class +++ b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class diff --git a/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class b/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class Binary files differnew file mode 100644 index 00000000000..95f7e0d56a2 --- /dev/null +++ b/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class diff --git a/libjava/classpath/lib/javax/tools/Diagnostic.class b/libjava/classpath/lib/javax/tools/Diagnostic.class Binary files differnew file mode 100644 index 00000000000..204a03b7c67 --- /dev/null +++ b/libjava/classpath/lib/javax/tools/Diagnostic.class diff --git a/libjava/classpath/lib/javax/tools/DiagnosticListener.class b/libjava/classpath/lib/javax/tools/DiagnosticListener.class Binary files differnew file mode 100644 index 00000000000..a910a6c8f96 --- /dev/null +++ b/libjava/classpath/lib/javax/tools/DiagnosticListener.class diff --git a/libjava/classpath/lib/javax/tools/FileObject.class b/libjava/classpath/lib/javax/tools/FileObject.class Binary files differnew file mode 100644 index 00000000000..39db6c56f84 --- /dev/null +++ b/libjava/classpath/lib/javax/tools/FileObject.class diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class Binary files differindex 00b5df1affb..1d3209f009b 100644 --- a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class +++ b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class diff --git a/libjava/classpath/lib/javax/xml/namespace/QName.class b/libjava/classpath/lib/javax/xml/namespace/QName.class Binary files differindex c5f6eebc3cc..9c101dec842 100644 --- a/libjava/classpath/lib/javax/xml/namespace/QName.class +++ b/libjava/classpath/lib/javax/xml/namespace/QName.class diff --git a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class Binary files differindex 3c4fbd41581..ec7264a1980 100644 --- a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class +++ b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class diff --git a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class Binary files differindex 66894397c53..670d77cb8a9 100644 --- a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class +++ b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class diff --git a/libjava/classpath/lib/javax/xml/stream/events/Attribute.class b/libjava/classpath/lib/javax/xml/stream/events/Attribute.class Binary files differindex 58f2af2966a..cdddb4ad053 100644 --- a/libjava/classpath/lib/javax/xml/stream/events/Attribute.class +++ b/libjava/classpath/lib/javax/xml/stream/events/Attribute.class diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class Binary files differindex 5fbb45f95af..03cc2bfac88 100644 --- a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class +++ b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class diff --git a/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class b/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class Binary files differindex 7773618aacd..894ec25f6ca 100644 --- a/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class +++ b/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class diff --git a/libjava/classpath/ltmain.sh b/libjava/classpath/ltmain.sh index a3c55f9a751..9d844185620 100644 --- a/libjava/classpath/ltmain.sh +++ b/libjava/classpath/ltmain.sh @@ -1,10 +1,12 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun ltconfig. -# -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# +# Generated from ltmain.m4sh; do not edit by hand + +# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a +# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -24,19 +26,483 @@ # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. -# Check that we have a working $echo. +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print informational messages (default) +# --version print version information +# -h, --help print short or long help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to <bug-libtool@gnu.org>. + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=2.1a +TIMESTAMP=" 1.2435 2007/03/18 18:44:42" +package_revision=1.2435 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# NLS nuisances: We save the old values to restore during execute mode. +# Only set LANG and LC_ALL to C if already set. +# These must not be set unconditionally because not all systems understand +# e.g. LANG=C (notably SCO). +for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + fi" +done + +$lt_unset CDPATH + + + + + +: ${CP="cp -f"} +: ${ECHO="echo"} +: ${EGREP="/bin/grep -E"} +: ${FGREP="/bin/grep -F"} +: ${GREP="/bin/grep"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SED="/bin/sed"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# The name of this program: +# In the unlikely event $progname began with a '-', it would play havoc with +# func_echo (imagine progname=-n), so we prepend ./ in that case: +progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'` + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"` + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=: + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname${mode+: }$mode: "${1+"$@"} +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + done + my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "X$my_tmpdir" | $Xsed +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "X$1" | $Xsed \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + + + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $SED -n '/^# Usage:/,/# -h/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + $ECHO + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help +# Echo long help message to standard output and exit. +func_help () +{ + $SED -n '/^# Usage:/,/# Report bugs to/ { + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ + p + }' < "$progpath" + exit $? +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + func_error "missing argument for $1" + exit_cmd=exit +} + +exit_cmd=: + + + + + +# Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : -elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then - # Yippee, $echo works! +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then + # Yippee, $ECHO works! : else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} + # Restart under the correct shell, and then maybe $ECHO will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then @@ -45,426 +511,1190 @@ if test "X$1" = X--fallback-echo; then cat <<EOF $* EOF - exit 0 + exit $EXIT_SUCCESS fi -# The name of this program. -progname=`$echo "$0" | sed 's%^.*/%%'` -modename="$progname" - -# Constants. -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=1.4a-GCC3.0 -TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)" - -default_mode= -help="Try \`$progname --help' for more information." magic="%%%MAGIC variable%%%" -mkdir="mkdir" -mv="mv -f" -rm="rm -f" -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' -sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' -SP2NL='tr \040 \012' -NL2SP='tr \015\012 \040\040' - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -# We save the old values to restore during execute mode. -if test "${LC_ALL+set}" = set; then - save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL -fi -if test "${LANG+set}" = set; then - save_LANG="$LANG"; LANG=C; export LANG -fi - -if test "$LTCONFIG_VERSION" != "$VERSION"; then - echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - echo "$modename: not configured to build any kind of library" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi # Global variables. -mode=$default_mode +# $mode is unset nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= execute_dlfiles= +preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" -taglist= - -# Parse our command line options once, thoroughly. -while test $# -gt 0 -do - arg="$1" - shift - - case $arg in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac +extracted_archives= +extracted_serial=0 - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case $prev in - execute_dlfiles) - execute_dlfiles="$execute_dlfiles $arg" - ;; - tag) - tagname="$arg" +opt_dry_run=false +opt_duplicate_deps=false +opt_silent=false +opt_debug=: - # Check whether tagname contains only valid characters - case $tagname in - *[!-_A-Za-z0-9,/]*) - echo "$progname: invalid tag name: $tagname" 1>&2 - exit 1 - ;; - esac +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= - case $tagname in - CC) - # Don't test for the "default" C tag, as we know, it's there, but - # not specially marked. - taglist="$taglist $tagname" - ;; - *) - if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then - taglist="$taglist $tagname" - # Evaluate the configuration. - eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" - else - echo "$progname: ignoring unknown tag $tagname" 1>&2 - fi - ;; - esac - ;; - *) - eval "$prev=\$arg" - ;; - esac +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} - prev= - prevopt= - continue - fi - # Have we seen a non-optional argument yet? - case $arg in - --help) - show_help=yes - ;; +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' - --version) - echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" - exit 0 - ;; + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" - --config) - sed -n -e '/^### BEGIN LIBTOOL CONFIG/,/^### END LIBTOOL CONFIG/p' < "$0" # Now print the configurations for the tags. for tagname in $taglist; do - sed -n -e "/^### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done - exit 0 - ;; - --debug) - echo "$progname: enabling shell trace mode" - set -x - ;; - - --dry-run | -n) - run=: - ;; + exit $? +} - --features) - echo "host: $host" +# func_features +# Display the features supported by this script. +func_features () +{ + $ECHO "host: $host" if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" + $ECHO "enable shared libraries" else - echo "disable shared libraries" + $ECHO "disable shared libraries" fi if test "$build_old_libs" = yes; then - echo "enable static libraries" + $ECHO "enable static libraries" else - echo "disable static libraries" + $ECHO "disable static libraries" fi - exit 0 - ;; - --finish) mode="finish" ;; + exit $? +} - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac - --quiet | --silent) - show=: - ;; + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" - --tag) prevopt="--tag" prev=tag ;; - --tag=*) - set tag "$optarg" ${1+"$@"} - shift - prev=tag - ;; + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; +func_mode_help () +{ + # We need to display help for each of the modes. + case $mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; - *) - nonopt="$arg" - break + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$mode'" + ;; + esac + + $ECHO + $ECHO "Try \`$progname --help' for more information about other modes." + + exit $? +} + +# Generated shell functions inserted here. + + +# Parse options once, thoroughly. This comes as soon as possible in +# the script to make things like `libtool --version' happen quickly. +{ + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac -done -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 -fi + # Parse non-mode specific arguments: + while test "$#" -gt 0; do + opt="$1" + shift -# If this variable is set in any of the actions, the command in it -# will be execed at the end. This prevents here-documents from being -# left over by shells. -exec_cmd= + case $opt in + --config) func_config ;; + + --debug) preserve_args="$preserve_args $opt" + func_echo "enabling shell trace mode" + opt_debug='set -x' + $opt_debug + ;; + + -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break + execute_dlfiles="$execute_dlfiles $1" + shift + ;; + + --dry-run | -n) opt_dry_run=: ;; + --features) func_features ;; + --finish) mode="finish" ;; + + --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break + case $1 in + # Valid mode arguments: + clean) ;; + compile) ;; + execute) ;; + finish) ;; + install) ;; + link) ;; + relink) ;; + uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; + esac + + mode="$1" + shift + ;; + + --preserve-dup-deps) + opt_duplicate_deps=: ;; + + --quiet|--silent) preserve_args="$preserve_args $opt" + opt_silent=: + ;; + + --verbose| -v) preserve_args="$preserve_args $opt" + opt_silent=false + ;; + + --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break + preserve_args="$preserve_args $opt $1" + func_enable_tag "$1" # tagname is set here + shift + ;; + + # Separate optargs to long options: + -dlopen=*|--mode=*|--tag=*) + func_opt_split "$opt" + set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} + shift + ;; + + -\?|-h) func_usage ;; + --help) opt_help=: ;; + --version) func_version ;; + + -*) func_fatal_help "unrecognized option \`$opt'" ;; + + *) nonopt="$opt" + break + ;; + esac + done -if test -z "$show_help"; then + # Now that we've collected a possible --mode arg, show help if necessary + $opt_help && func_mode_help - # Infer the operation mode. - if test -z "$mode"; then - case $nonopt in - *cc | *++ | gcc* | *-gcc*) - mode=link - for arg - do - case $arg in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: ;; *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute + opt_duplicate_compiler_generated_deps=$opt_duplicate_deps + ;; + esac - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi + # Having warned about all mis-specified options, bail out if + # anything was wrong. + $exit_cmd $EXIT_FAILURE +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF fi - ;; - esac + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +## ----------- ## +## Main. ## +## ----------- ## + +{ + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" fi + test -z "$mode" && func_fatal_error "error: you must specify a MODE." + + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit 1 + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." + help="Try \`$progname --help --mode=$mode' for more information." +} - # These modes are in order of execution frequency so that they run quickly. - case $mode in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - prev= - lastarg= - srcfile="$nonopt" - suppress_output= - user_target=no - for arg - do - case $prev in - "") ;; - xcompiler) - # Aesthetically quote the previous argument. - prev= - lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} - case $arg in - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -r "$1" && exec 5<&1 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 1<&5 5<&- + fi + test "$lalib_p" = yes +} - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_lalib_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_quote_for_eval "$arg" + CC_quoted="$CC_quoted $func_quote_for_eval_result" + done + case "$@ " in + " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" fi - continue ;; esac + fi +} - # Accept any command-line options. - case $arg in - -o) - if test "$user_target" != "no"; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_echo "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_echo "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_echo "extracting global C symbols from \`$progfile'" + $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin | *mingw* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi fi - user_target=next - ;; - -static) - build_old_libs=yes - continue - ;; + for dlprefile in $dlprefiles; do + func_echo "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + done - -prefer-pic) - pic_mode=yes - continue - ;; + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" - -prefer-non-pic) - pic_mode=no - continue - ;; + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi - -Xcompiler) - prev=xcompiler - continue - ;; + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 </dev/null >/dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi - -Wc,*) - args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` - lastarg= - IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' - for arg in $args; do - IFS="$save_ifs" + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" + $ECHO >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +" + case $host in + *cygwin* | *mingw* ) + $ECHO >> "$output_objdir/$my_dlsyms" "\ +/* DATA imports from DLLs on WIN32 con't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs. */" + lt_dlsym_const= ;; + *osf5*) + echo >> "$output_objdir/$my_dlsyms" "\ +/* This system does not cope well with relocations in const data */" + lt_dlsym_const= ;; + *) + lt_dlsym_const=const ;; + esac + + $ECHO >> "$output_objdir/$my_dlsyms" "\ +extern $lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +$lt_dlsym_const lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + + $ECHO >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi ;; esac - lastarg="$lastarg $arg" + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) symtab_cflags="$symtab_cflags $arg" ;; + esac done - IFS="$save_ifs" - lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` - # Add the arguments to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - continue + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. - case $user_target in - next) - # The next one is the -o target name - user_target=yes - continue + # Nullify the symbol file. + compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi +} + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" 'exit $?' + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + extracted_serial=`expr $extracted_serial + 1` + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_echo "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename $darwin_archive` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_echo "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run ;; - yes) - # We got the output file - user_target=set + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T <<EOF +# $write_libobj - a libtool object file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object=$write_lobj + +# Name of the non-PIC object +non_pic_object=$write_oldobj + +EOF + mv -f "${write_libobj}T" "${write_libobj}" + } +} + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) libobj="$arg" + arg_mode=normal continue ;; - esac - # Accept the current argument as the source file. - lastarg="$srcfile" - srcfile="$arg" + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; - # Aesthetically quote the previous argument. + -pie | -fpie | -fPIE) + pie_flag="$pie_flag $arg" + continue + ;; - # Backslashify any backslashes, double quotes, and dollar signs. - # These are the only characters that are still specially - # interpreted inside of double-quoted scrings. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + -shared | -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - case $lastarg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - lastarg="\"$lastarg\"" + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_quote_for_eval "$arg" + lastarg="$lastarg $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg ;; - esac + esac # case $arg_mode - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - done + # Aesthetically quote the previous argument. + func_quote_for_eval "$lastarg" + base_compile="$base_compile $func_quote_for_eval_result" + done # for arg - case $user_target in - set) + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" ;; - no) - # Get the name of the library object. - libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + target) + func_fatal_error "you must specify a target with \`-o'" ;; *) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSfmso]' + xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; @@ -472,82 +1702,66 @@ if test -z "$show_help"; then *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; + *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; + *.[fF][09]?) xform='[fF][09].' ;; *.for) xform=for ;; *.java) xform=java ;; + *.obj) xform=obj ;; esac - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 + func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base compile - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - "$CC "*) ;; - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when ltconfig was run. - "`$echo $CC` "*) ;; - *) - for z in $available_tags; do - if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case $base_compile in - "$CC "*) - # The compiler in the base compile command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - "`$echo $CC` "*) - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - echo "$modename: unable to infer tagged configuration" - echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# echo "$modename: using $tagname tagged configuration" - fi + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue ;; esac - fi + done - objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir= - else - xdir=$xdir/ - fi + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_basename "$obj" + objname="$func_basename_result" + func_dirname "$obj" "/" "" + xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then @@ -556,8 +1770,8 @@ if test -z "$show_help"; then removelist="$lobj $libobj ${libobj}T" fi - $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 + $opt_dry_run || $RM $removelist + trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in @@ -565,7 +1779,7 @@ if test -z "$show_help"; then pic_mode=default ;; esac - if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi @@ -573,10 +1787,10 @@ if test -z "$show_help"; then # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 + trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15 else output_obj= need_locks=no @@ -586,13 +1800,13 @@ if test -z "$show_help"; then # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then - until $run ln "$0" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then - echo "\ + $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` @@ -603,29 +1817,19 @@ repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." - $run $rm $removelist - exit 1 + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE fi - echo $srcfile > "$lockfile" + $ECHO "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result - $run $rm "$libobj" "${libobj}T" - - # Create a libtool object file (analogous to a ".la" file), - # but don't create it if we're doing a dry run. - test -z "$run" && cat > ${libobj}T <<EOF -# $libobj - a libtool object file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# Name of the PIC object. -EOF + $opt_dry_run || $RM "$libobj" "${libobj}T" # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then @@ -633,38 +1837,27 @@ EOF fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then - command="$base_compile $srcfile $pic_flag" + command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code - command="$base_compile $srcfile" + command="$base_compile $qsrcfile" fi - if test ! -d ${xdir}$objdir; then - $show "$mkdir ${xdir}$objdir" - $run $mkdir ${xdir}$objdir - status=$? - if test $status -ne 0 && test ! -d ${xdir}$objdir; then - exit $status - fi - fi + func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then - # Place PIC objects in $objdir - command="$command -o $lobj" + # Place PIC objects in $objdir + command="$command -o $lobj" fi - $run $rm "$lobj" "$output_obj" + $opt_dry_run || $RM "$lobj" "$output_obj" - $show "$command" - if $run eval "$command"; then : - else - test -n "$output_obj" && $run $rm $removelist - exit 1 - fi + func_show_eval "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && - test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then - echo "\ + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` @@ -678,45 +1871,29 @@ repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." - $run $rm $removelist - exit 1 + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one - if test -n "$output_obj" && test "x$output_obj" != "x$lobj"; then - $show "$mv $output_obj $lobj" - if $run $mv $output_obj $lobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi - # Append the name of the PIC object to the libtool object file. - test -z "$run" && cat >> ${libobj}T <<EOF -pic_object='$objdir/$objname' - -EOF - # Allow error messages only from the first compilation. - suppress_output=' >/dev/null 2>&1' - else - # No PIC object so indicate it doesn't exist in the libtool - # object file. - test -z "$run" && cat >> ${libobj}T <<EOF -pic_object=none - -EOF + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code - command="$base_compile $srcfile" + command="$base_compile $qsrcfile$pie_flag" else - command="$base_compile $srcfile $pic_flag" + command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" @@ -724,17 +1901,13 @@ EOF # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" - $run $rm "$obj" "$output_obj" - $show "$command" - if $run eval "$command"; then : - else - $run $rm $removelist - exit 1 - fi + $opt_dry_run || $RM "$obj" "$output_obj" + func_show_eval "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && - test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then - echo "\ + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` @@ -748,57 +1921,684 @@ repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." - $run $rm $removelist - exit 1 + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE fi # Just move the object if needed - if test -n "$output_obj" && test "x$output_obj" != "x$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +test "$mode" = compile && func_mode_compile ${1+"$@"} + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" else - error=$? - $run $rm $removelist - exit $error + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_p "$file"; then + func_source "$file" + + # Transform arg to wrapped name. + file="$progdir/$program" fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_quote_for_eval "$file" + args="$args $func_quote_for_eval_result" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" fi - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <<EOF -# Name of the non-PIC object. -non_pic_object='$objname' + # Restore saved environment variables + for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done -EOF + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" else - # Append the name of the non-PIC object the libtool object file. - # Only append if the libtool object file exists. - test -z "$run" && cat >> ${libobj}T <<EOF -# Name of the non-PIC object. -non_pic_object=none + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + $ECHO "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} -EOF +test "$mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done fi - $run $mv "${libobj}T" "${libobj}" + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - $run $rm "$lockfile" + $ECHO "X----------------------------------------------------------------------" | $Xsed + $ECHO "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + $ECHO + $ECHO "If you ever happen to want to link against installed libraries" + $ECHO "in a given directory, LIBDIR, you must either use libtool, and" + $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" + $ECHO "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" + $ECHO " during execution" fi + if test -n "$runpath_var"; then + $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" + $ECHO " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" - exit 0 - ;; + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $ECHO - # libtool link mode - link | relink) - modename="$modename: link" + $ECHO "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" + $ECHO "pages." + ;; + *) + $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + $ECHO "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS +} + +test "$mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $ECHO "X$nonopt" | $GREP shtool >/dev/null; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + install_prog="$install_prog$func_quote_for_eval_result" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + install_prog="$install_prog $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname "$dest" "" "." + destdir="$func_dirname_result" + func_basename "$dest" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$mode" = install && func_mode_install ${1+"$@"} + + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra - # flag for every libtool invokation. + # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying @@ -812,10 +2612,10 @@ EOF allow_undefined=yes ;; esac - libtool_args="$nonopt" - base_compile="$nonopt" - compile_command="$nonopt" - finalize_command="$nonopt" + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt compile_rpath= finalize_rpath= @@ -830,6 +2630,7 @@ EOF dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= + new_inherited_linker_flags= avoid_version=no dlfiles= @@ -845,6 +2646,7 @@ EOF no_install=no objs= non_pic_objects= + precious_files_regex= prefer_static_libs=no preload=no prev= @@ -856,27 +2658,50 @@ EOF temp_rpath= thread_safe=no vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in - -all-static | -static) - if test "X$arg" = "X-all-static"; then + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 + func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" fi - else + prefer_static_libs=yes + ;; + -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi - fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac build_libtool_libs=no build_old_libs=yes - prefer_static_libs=yes break ;; esac @@ -886,24 +2711,19 @@ EOF test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. - while test $# -gt 0; do + while test "$#" -gt 0; do arg="$1" - base_compile="$base_compile $arg" shift - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test - ;; - *) qarg=$arg ;; - esac - libtool_args="$libtool_args $qarg" + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" ;; esac @@ -911,8 +2731,8 @@ EOF dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in @@ -950,10 +2770,8 @@ EOF ;; expsyms) export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit 1 - fi + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; @@ -962,125 +2780,127 @@ EOF prev= continue ;; - inst_prefix) - inst_prefix_dir="$arg" + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) deplibs="$deplibs $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac prev= continue ;; - release) - release="-$arg" + inst_prefix) + inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then - save_arg=$arg + save_arg=$arg moreargs= - for fil in `cat $save_arg` + for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" - arg=$fil - # A libtool-controlled object. + arg=$fil + # A libtool-controlled object. # Check to see that this really is a libtool object. - if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 - fi - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. - pic_object="$xdir$pic_object" - - if test "$prev" = dlfiles; then - if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles $pic_object" - prev= - fi - - # A PIC object. - libobjs="$libobjs $pic_object" - arg="$pic_object" - fi - - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. - non_pic_object="$xdir$non_pic_object" - - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 - else - # Dry-run case. - - # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi fi done else - $echo "$modename: link input file \`$save_arg' does not exist" - exit 1 + func_fatal_error "link input file \`$arg' does not exist" fi - arg=$save_arg + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" prev= continue ;; @@ -1089,8 +2909,7 @@ EOF case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then @@ -1107,32 +2926,37 @@ EOF prev= continue ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + weak_libs="$weak_libs $arg" + prev= + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= - compile_command="$compile_command $qarg" - finalize_command="$finalize_command $qarg" + func_append compile_command " $qarg" + func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= - compile_command="$compile_command $wl$qarg" - finalize_command="$finalize_command $wl$qarg" - continue - ;; - framework) - case $host in - *-*-darwin*) - case "$deplibs " in - *" $qarg.framework "*) ;; - *) deplibs="$deplibs $qarg.framework" # this is fixed later - ;; - esac - ;; - esac - prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" continue ;; *) @@ -1141,23 +2965,19 @@ EOF continue ;; esac - fi # test -n $prev + fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi + # The effects of -all-static are defined in a previous loop. continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue + func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) @@ -1182,8 +3002,7 @@ EOF -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: more than one -exported-symbols argument is not allowed" - exit 1 + func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms @@ -1193,6 +3012,11 @@ EOF continue ;; + -framework) + prev=framework + continue + ;; + -inst-prefix-dir) prev=inst_prefix continue @@ -1202,25 +3026,24 @@ EOF # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in - no/*-*-irix*) - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" ;; esac continue ;; -L*) - dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + func_stripname '-L' '' "$arg" + dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 - fi + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac @@ -1233,10 +3056,15 @@ EOF esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac continue @@ -1245,15 +3073,39 @@ EOF -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-pw32* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; - *-*-mingw* | *-*-os2*) + *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac fi deplibs="$deplibs $arg" continue @@ -1264,6 +3116,33 @@ EOF continue ;; + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + -no-fast-install) fast_install=no continue @@ -1274,8 +3153,8 @@ EOF *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) # The PATH hackery in wrapper scripts is required on Windows # in order for the loader to find any dlls it needs. - $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 - $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; @@ -1295,6 +3174,11 @@ EOF -o) prev=output ;; + -precious-files-regex) + prev=precious_regex + continue + ;; + -release) prev=release continue @@ -1311,13 +3195,13 @@ EOF ;; -R*) - dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + func_stripname '-R' '' "$arg" + dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) - $echo "$modename: only absolute run-paths are allowed" 1>&2 - exit 1 + func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in @@ -1327,7 +3211,17 @@ EOF continue ;; - -static) + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects @@ -1346,41 +3240,48 @@ EOF continue ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + -Wc,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result arg= - IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' + save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $flag" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + func_stripname ' ' '' "$arg" + arg=$func_stripname_result ;; -Wl,*) - args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result arg= - IFS="${IFS= }"; save_ifs="$IFS"; IFS=',' + save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" - case $flag in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - flag="\"$flag\"" - ;; - esac - arg="$arg $wl$flag" - compiler_flags="$compiler_flags $wl$flag" - linker_flags="$linker_flags $flag" + func_quote_for_eval "$flag" + arg="$arg $wl$func_quote_for_eval_result" + compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" + linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" - arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + func_stripname ' ' '' "$arg" + arg=$func_stripname_result ;; -Xcompiler) @@ -1392,21 +3293,36 @@ EOF prev=xlinker continue ;; - -framework) - prev=framework + + -XCClinker) + prev=xcclinker continue ;; + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -F/path gives path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + # Some other compiler flag. -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" ;; *.$objext) @@ -1418,97 +3334,82 @@ EOF # A libtool-controlled object. # Check to see that this really is a libtool object. - if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - pic_object= - non_pic_object= - - # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - if test -z "$pic_object" || \ - test -z "$non_pic_object" || - test "$pic_object" = none && \ - test "$non_pic_object" = none; then - $echo "$modename: cannot find name of object for \`$arg'" 1>&2 - exit 1 - fi + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" - if test "$pic_object" != none; then - # Prepend the subdirectory the object is found in. + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then - dlfiles="$dlfiles $pic_object" - prev= - continue + dlfiles="$dlfiles $pic_object" + prev= + continue else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama - if test "$prev" = dlprefiles; then + if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= - fi + fi - # A PIC object. - libobjs="$libobjs $pic_object" + # A PIC object. + func_append libobjs " $pic_object" arg="$pic_object" - fi + fi - # Non-PIC object. - if test "$non_pic_object" != none; then - # Prepend the subdirectory the object is found in. + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" - # A standard non-PIC object - non_pic_objects="$non_pic_objects $non_pic_object" - if test -z "$pic_object" || test "$pic_object" = none ; then - arg="$non_pic_object" - fi + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi - else - # Only an error if not doing a dry-run. - if test -z "$run"; then - $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 - exit 1 - else - # Dry-run case. - + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then # Extract subdirectory from the argument. - xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$arg"; then - xdir= - else - xdir="$xdir/" - fi - - pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` - non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` - libobjs="$libobjs $pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - fi + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi fi ;; @@ -1540,113 +3441,51 @@ EOF *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - arg="\"$arg\"" - ;; - esac + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" fi done # argument parsing loop - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Infer tagged configuration to use if any are available and - # if one wasn't chosen via the "--tag" command line option. - # Only attempt this if the compiler in the base link - # command doesn't match the default compiler. - if test -n "$available_tags" && test -z "$tagname"; then - case $base_compile in - "$CC "*) ;; - # Blanks in the command may have been stripped by the calling shell, - # but not from the CC environment variable when ltconfig was run. - "`$echo $CC` "*) ;; - *) - for z in $available_tags; do - if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then - # Evaluate the configuration. - eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" - case $base_compile in - "$CC "*) - # The compiler in $compile_command matches - # the one in the tagged configuration. - # Assume this is the tagged configuration we want. - tagname=$z - break - ;; - "`$echo $CC` "*) - tagname=$z - break - ;; - esac - fi - done - # If $tagname still isn't set, then no tagged configuration - # was found and let the user know that the "--tag" command - # line option must be used. - if test -z "$tagname"; then - echo "$modename: unable to infer tagged configuration" - echo "$modename: specify a tag with \`--tag'" 1>&2 - exit 1 -# else -# echo "$modename: using $tagname tagged configuration" - fi - ;; - esac - fi + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" fi + oldlibs= # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + func_basename "$output" + outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" # Create the object directory. - if test ! -d $output_objdir; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test $status -ne 0 && test ! -d $output_objdir; then - exit $status - fi - fi + func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit 1 + func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; @@ -1655,29 +3494,34 @@ EOF esac specialdeplibs= + libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do - case "$libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac + if $opt_duplicate_deps ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi libs="$libs $deplib" done - if test $linkmode = lib; then + if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= - for pre_post_dep in $predeps $postdeps; do - case "$pre_post_deps " in - *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; - esac - pre_post_deps="$pre_post_deps $pre_post_dep" - done + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi pre_post_deps= fi @@ -1687,15 +3531,15 @@ EOF need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries + case $linkmode in lib) - passes="conv link" + passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) - $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 - exit 1 + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done @@ -1711,40 +3555,98 @@ EOF *) passes="conv" ;; esac + for pass in $passes; do - if test $linkmode = prog; then - # Determine which files to process + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then case $pass in - dlopen) - libs="$dlfiles" - save_deplibs="$deplibs" # Collect dlpreopened libraries - deplibs= - ;; + dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + case $lib in + *.la) func_source "$lib" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + case " $weak_libs " in + *" $deplib_base "*) ;; + *) deplibs="$deplibs $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do lib= found=no case $deplib in - -l*) - if test $linkmode = oldlib && test $linkmode = obj; then - $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 - continue + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi fi - if test $pass = conv; then - deplibs="$deplib $deplibs" + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" continue fi - name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + func_stripname '-l' '' "$deplib" + name=$func_stripname_result for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do - # Search the libtool library - lib="$searchdir/lib${name}.la" - if test -f "$lib"; then - found=yes - break - fi + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library @@ -1753,41 +3655,91 @@ EOF finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" - test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi fi ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; + esac + fi + fi + continue + ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" - test $pass = conv && continue + test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) - if test $pass = conv; then + if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi - if test $pass = scan; then + if test "$pass" = scan; then deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi + func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) - $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 + func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) - if test $pass = link; then - dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; @@ -1799,28 +3751,51 @@ EOF ;; *.la) lib="$deplib" ;; *.$libext) - if test $pass = conv; then + if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) - if test "$deplibs_check_method" != pass_all; then - echo - echo "*** Warning: This library needs some functionality provided by $deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - else - echo - echo "*** Warning: Linking the shared library $output against the" - echo "*** static library $deplib is not portable!" - deplibs="$deplib $deplibs" - fi + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $ECHO + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because the file extensions .$libext of this argument makes me believe" + $ECHO "*** that it is just a static archive that I should not use here." + else + $ECHO + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac continue ;; prog) - if test $pass != link; then + if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" @@ -1831,14 +3806,18 @@ EOF esac # linkmode ;; # *.$libext *.lo | *.$objext) - if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then - # If there is no dlopen support or we're linking statically, - # we need to preload. - newdlprefiles="$newdlprefiles $deplib" - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - newdlfiles="$newdlfiles $deplib" + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi fi continue ;; @@ -1847,21 +3826,18 @@ EOF continue ;; esac # case $deplib - if test $found = yes || test -f "$lib"; then : + + if test "$found" = yes || test -f "$lib"; then : else - $echo "$modename: cannot find the library \`$lib'" 1>&2 - exit 1 + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. - if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" - ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` - test "X$ladir" = "X$lib" && ladir="." + func_dirname "$lib" "" "." + ladir="$func_dirname_result" dlname= dlopen= @@ -1869,77 +3845,90 @@ EOF libdir= library_names= old_library= + inherited_linker_flags= # If the library was installed with an old release of libtool, - # it will not redefine variable installed. + # it will not redefine variables installed, or shouldnotlink installed=yes + shouldnotlink=no + avoidtemprpath= - # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - - case $host in - *-*-darwin*) - # Convert "-framework foo" to "foo.framework" in dependency_libs - test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.framework/g'` - ;; - esac + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags $inherited_linker_flags" + fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || - { test $linkmode = oldlib && test $linkmode = obj; }; then - # Add dl[pre]opened files of deplib + { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi - if test $pass = conv; then + if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac - tmp_libs="$tmp_libs $deplib" - done - elif test $linkmode != prog && test $linkmode != lib; then - $echo "$modename: \`$lib' is not a convenience library" 1>&2 - exit 1 - fi + fi + tmp_libs="$tmp_libs $deplib" + done continue fi # $pass = conv + # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 - exit 1 + func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. - if test $pass = dlopen; then + if test "$pass" = dlopen; then if test -z "$libdir"; then - $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 - exit 1 + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi - if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking - # statically, we need to preload. - dlprefiles="$dlprefiles $lib" + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi @@ -1952,18 +3941,19 @@ EOF *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 - $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac - laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + func_basename "$lib" + laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then - $echo "$modename: warning: library \`$lib' was moved." 1>&2 + func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" @@ -1971,24 +3961,36 @@ EOF dir="$libdir" absdir="$libdir" fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi fi # $installed = yes - name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result # This library was specified with -dlpreopen. - if test $pass = dlpreopen; then - if test -z "$libdir"; then - $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 - exit 1 + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" @@ -1999,18 +4001,19 @@ EOF if test -z "$libdir"; then # Link the convenience library - if test $linkmode = lib; then + if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else - deplibs="$lib $deplibs" + deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi - if test $linkmode = prog && test $pass != link; then + + if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" @@ -2023,31 +4026,42 @@ EOF tmp_libs= for deplib in $dependency_libs; do case $deplib in - -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + -L*) func_stripname '-L' '' "$deplib" + newlib_search_path="$newlib_search_path $func_stripname_result" + ;; esac # Need to link against all dependency_libs? - if test $linkalldeplibs = yes; then + if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... - link_static=no # Whether the deplib will be linked statically - if test -n "$library_names" && - { test "$prefer_static_libs" = no || test -z "$old_library"; }; then - # Link against this shared library + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) temp_rpath="$temp_rpath$absdir:" ;; + esac + fi - if test "$linkmode,$pass" = "prog,link" || - { test $linkmode = lib && test $hardcode_into_libs = yes; }; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. @@ -2069,17 +4083,6 @@ EOF esac ;; esac - if test $linkmode = prog; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - fi fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && @@ -2089,25 +4092,87 @@ EOF # We only need to search for static libraries continue fi + fi - if test "$installed" = no; then - notinst_deplibs="$notinst_deplibs $lib" - need_relink=yes + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw*) + # No point in relinking DLLs because paths are not encoded + notinst_deplibs="$notinst_deplibs $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + $ECHO + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names - realname="$2" - shift; shift - libname=`eval \\$echo \"$libname_spec\"` + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin*) + *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; @@ -2119,43 +4184,29 @@ EOF # Make a new name for the extract_expsyms_cmds to use soroot="$soname" - soname=`echo $soroot | sed -e 's/^.*\///'` - newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else - $show "extracting exported symbol list from \`$soname'" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - cmds=$extract_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" + func_echo "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else - $show "generating import library for \`$soname'" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - cmds=$old_archive_from_expsyms_cmds - for cmd in $cmds; do - IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" + func_echo "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib - fi # test -n $old_archive_from_expsyms_cmds + fi # test -n "$old_archive_from_expsyms_cmds" - if test $linkmode = prog || test "$mode" != relink; then + if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= @@ -2164,6 +4215,30 @@ EOF immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $ECHO + $ECHO "*** And there doesn't seem to be a static archive available" + $ECHO "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; @@ -2178,13 +4253,14 @@ EOF fi ;; relink) - if test "$hardcode_direct" = yes; then + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then - case "$libdir" in + case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; @@ -2202,8 +4278,7 @@ EOF esac if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 + func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then @@ -2212,14 +4287,14 @@ EOF *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi - if test $linkmode = prog; then + if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" - if test "$hardcode_direct" != yes && \ - test "$hardcode_minus_L" != yes && \ + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; @@ -2229,12 +4304,13 @@ EOF fi fi - if test $linkmode = prog || test "$mode" = relink; then + if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" @@ -2245,12 +4321,19 @@ EOF *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then - case "$libdir" in + case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; @@ -2259,7 +4342,7 @@ EOF add="-l$name" fi - if test $linkmode = prog; then + if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else @@ -2267,16 +4350,7 @@ EOF test -n "$add" && deplibs="$add $deplibs" fi fi - elif test $linkmode = prog; then - if test "$alldeplibs" = yes && - { test "$deplibs_check_method" = pass_all || - { test "$build_libtool_libs" = yes && - test -n "$library_names"; }; }; then - # We only need to search for static libraries - continue - fi - - # Try to link the static library + elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. @@ -2296,45 +4370,46 @@ EOF # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. - echo - echo "*** Warning: This library needs some functionality provided by $lib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + $ECHO + $ECHO "*** Warning: This system can not link to static lib archive $lib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - echo "*** Therefore, libtool will create a static module, that should work " - echo "*** as long as the dlopening application is linked with the -dlopen flag." + $ECHO "*** But as you try to build a module library, libtool will still create " + $ECHO "*** a static module, that should work as long as the dlopening application" + $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + $ECHO + $ECHO "*** However, this would only work if libtool was able to extract symbol" + $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" + $ECHO "*** not find such a program. So, this module is probably useless." + $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then - build_libtool_libs=module - build_old_libs=yes + build_libtool_libs=module + build_old_libs=yes else - build_libtool_libs=no + build_libtool_libs=no fi fi else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? - if test $linkmode = lib; then + if test "$linkmode" = lib; then if test -n "$dependency_libs" && - { test $hardcode_into_libs != yes || test $build_old_libs = yes || - test $link_static = yes; }; then + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in - -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; @@ -2352,46 +4427,70 @@ EOF tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" - case "$tmp_libs " in - *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; - esac + if $opt_duplicate_deps ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi tmp_libs="$tmp_libs $deplib" done - if test $link_all_deplibs != no; then + if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) - dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$deplib" && dir="." + func_dirname "$deplib" "" "." + dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then - $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac - if grep "^installed=no" $deplib > /dev/null; then + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'` + darwin_install_name=`$ECHO $darwin_install_name` + if test -z "$darwin_install_name"; then + darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'` + darwin_install_name=`$ECHO $darwin_install_name` + fi + compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) path="-L$absdir/$objdir" + ;; + esac else - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi - if test "$absdir" != "$libdir"; then - $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 - fi + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + path="-L$absdir" fi ;; - *) continue ;; esac case " $deplibs " in *" $path "*) ;; @@ -2401,15 +4500,15 @@ EOF fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs - if test $pass = dlpreopen; then + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi - if test $pass != dlopen; then - test $pass != scan && dependency_libs="$newdependency_libs" - if test $pass != conv; then + if test "$pass" != dlopen; then + if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do @@ -2431,9 +4530,30 @@ EOF eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) @@ -2461,42 +4581,52 @@ EOF eval $var=\"$tmp_libs\" done # for var fi - if test "$pass" = "conv" && - { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then - libs="$deplibs" # reset libs - deplibs= - fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs done # for pass - if test $linkmode = prog; then + if test "$linkmode" = prog; then dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + func_warning "\`-dlopen' is ignored for archives" fi - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi + test -n "$deplibs" && \ + func_warning "\`-l' and \`-L' are ignored for archives" - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 - fi - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 - fi + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" - if test -n "$export_symbols" || test -n "$export_symbols_regex"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no @@ -2508,117 +4638,146 @@ EOF # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval shared_ext=\"$shrext\" + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) - if test "$module" = no; then - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` - eval shared_ext=\"$shrext\" + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else - libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 - exit 1 + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else - echo - echo "*** Warning: Linking the shared library $output against the non-libtool" - echo "*** objects $objs is not portable!" + $ECHO + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi - if test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 - fi + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath - if test $# -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so - # convenience libraries should have the same extension an - # archive normally would. + # convenience libraries should have the same extension an + # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 - fi + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. - IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' + save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 + shift IFS="$save_ifs" - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - current="$2" - revision="$3" - age="$4" + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor - 1` + age="$number_minor" + revision="$number_minor" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac # Check that each of the things are valid numbers. case $current in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in - 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" ;; esac - if test $age -gt $current; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. @@ -2645,19 +4804,24 @@ EOF freebsd-elf) major=".$current" - versuffix=".$current"; + versuffix=".$current" ;; - irix) + irix | nonstopux) major=`expr $current - $age + 1` - verstring="sgi$major.$revision" + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision - while test $loop != 0; do + while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` - verstring="sgi$major.$iface:$verstring" + verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. @@ -2677,7 +4841,7 @@ EOF # Add in all the interfaces that we are compatible with. loop=$age - while test $loop != 0; do + while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" @@ -2687,6 +4851,11 @@ EOF verstring="$verstring:${current}.0" ;; + qnx) + major=".$current" + versuffix=".$current" + ;; + sunos) major=".$current" versuffix=".$current.$revision" @@ -2700,9 +4869,7 @@ EOF ;; *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 + func_fatal_configuration "unknown library version type \`$version_type'" ;; esac @@ -2736,7 +4903,7 @@ EOF # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi @@ -2744,27 +4911,36 @@ EOF # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi + fi + func_generate_dlsyms "$libname" "$libname" "yes" + libobjs="$libobjs $symfileobj" + test "X$libobjs" = "X " && libobjs= + if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they - # may have been created when compiling PIC objects. - removelist= - tempremovelist=`echo "$output_objdir/*"` + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do - case $p in - *.$objext) - ;; - $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) - removelist="$removelist $p" - ;; - *) ;; - esac - done - if test -n "$removelist"; then - $show "${rm}r $removelist" - $run ${rm}r $removelist - fi + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. @@ -2772,15 +4948,15 @@ EOF oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. - for path in $notinst_path; do - lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'` - deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'` - dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'` - done + #for path in $notinst_path; do + # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` + # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` + # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. @@ -2792,7 +4968,7 @@ EOF *) finalize_rpath="$finalize_rpath $libdir" ;; esac done - if test $hardcode_into_libs != yes || test $build_old_libs = yes; then + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi @@ -2825,14 +5001,23 @@ EOF ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework - deplibs="$deplibs -framework System" + deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; - *) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) # Add libc to deplibs on all other systems if necessary. - if test $build_libtool_need_lc = "yes"; then + if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; @@ -2859,7 +5044,7 @@ EOF # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behaviour. + # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) @@ -2867,69 +5052,90 @@ EOF # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. - $rm conftest.c + $opt_dry_run || $RM conftest.c cat > conftest.c <<EOF int main() { return 0; } EOF - $rm conftest - $LTCC -o conftest conftest.c $deplibs - if test $? -eq 0 ; then + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then ldd_output=`ldd conftest` for i in $deplibs; do - name="`expr $i : '-l\(.*\)'`" + name=`expr $i : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - libname=`eval \\$echo \"$libname_spec\"` - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $i." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$newdeplibs $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$newdeplibs $i" + else + droppeddeps=yes + $ECHO + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which I believe you do not have" + $ECHO "*** because a test_compile did reveal that the linker did not use it for" + $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + fi fi else newdeplibs="$newdeplibs $i" fi done else - # Error occured in the first compile. Let's try to salvage the situation: - # Compile a seperate program for each library. + # Error occurred in the first compile. Let's try to salvage + # the situation: Compile a separate program for each library. for i in $deplibs; do - name="`expr $i : '-l\(.*\)'`" - # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - $rm conftest - $LTCC -o conftest conftest.c $i - # Did it work? - if test $? -eq 0 ; then + name=`expr $i : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test "$name" != "" && test "$name" != "0"; then + $opt_dry_run || $RM conftest + if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` - libname=`eval \\$echo \"$libname_spec\"` - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then - newdeplibs="$newdeplibs $i" - else - droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $i." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $i "*) + newdeplibs="$newdeplibs $i" + i="" + ;; + esac + fi + if test -n "$i" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + set dummy $deplib_matches; shift + deplib_match=$1 + if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then + newdeplibs="$newdeplibs $i" + else + droppeddeps=yes + $ECHO + $ECHO "*** Warning: dynamic linker does not accept needed library $i." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because a test_compile did reveal that the linker did not use this one" + $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + fi fi else droppeddeps=yes - echo - echo "*** Warning! Library $i is needed by this library but I was not able to" - echo "*** make it link in! You will probably need to install it or some" - echo "*** library that it depends on before this library will be fully" - echo "*** functional. Installing it before continuing would be even better." + $ECHO + $ECHO "*** Warning! Library $i is needed by this library but I was not able to" + $ECHO "*** make it link in! You will probably need to install it or some" + $ECHO "*** library that it depends on before this library will be fully" + $ECHO "*** functional. Installing it before continuing would be even better." fi else newdeplibs="$newdeplibs $i" @@ -2938,19 +5144,28 @@ EOF fi ;; file_magic*) - set dummy $deplibs_check_method - file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + set dummy $deplibs_check_method; shift + file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" + name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. - if test -n "$name" && test "$name" != "0"; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do + if test "$name" != "" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do # Follow soft links. - if ls -lLd "$potent_lib" 2>/dev/null \ - | grep " -> " >/dev/null; then + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an @@ -2960,28 +5175,36 @@ EOF # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do - potliblink=`ls -ld $potlib | sed 's/.* -> //'` + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ - | sed 10q \ - | egrep "$file_magic_regex" > /dev/null; then + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi - done - done + done + done + fi if test -n "$a_deplib" ; then droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi fi else # Add a -L argument. @@ -2990,32 +5213,49 @@ EOF done # Gone through all deplibs. ;; match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do - name="`expr $a_deplib : '-l\(.*\)'`" + name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then - libname=`eval \\$echo \"$libname_spec\"` - for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do - potential_libs=`ls $i/$libname[.-]* 2>/dev/null` - for potent_lib in $potential_libs; do - if eval echo \"$potent_lib\" 2>/dev/null \ - | sed 10q \ - | egrep "$match_pattern_regex" > /dev/null; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done done - done + fi if test -n "$a_deplib" ; then droppeddeps=yes - echo - echo "*** Warning: This library needs some functionality provided by $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." + $ECHO + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + $ECHO "*** I have the capability to make that library automatically link in when" + $ECHO "*** you link to this library. But I can only do this if you have a" + $ECHO "*** shared version of the library, which you do not appear to have" + $ECHO "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi fi else # Add a -L argument. @@ -3025,16 +5265,23 @@ EOF ;; none | unknown | *) newdeplibs="" - if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ - -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | - grep . >/dev/null; then - echo + tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ + -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + done + fi + if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | + $GREP . >/dev/null; then + $ECHO if test "X$deplibs_check_method" = "Xnone"; then - echo "*** Warning: inter-library dependencies are not supported in this platform." + $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else - echo "*** Warning: inter-library dependencies are not known to be supported." + $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi - echo "*** All declared inter-library dependencies are being dropped." + $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; @@ -3047,24 +5294,24 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) - # On Rhapsody replace the C library is the System framework - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then - echo - echo "*** Warning: libtool could not satisfy all declared inter-library" - echo "*** dependencies of module $libname. Therefore, libtool will create" - echo "*** a static module, that should work as long as the dlopening" - echo "*** application is linked with the -dlopen flag." + $ECHO + $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + $ECHO "*** a static module, that should work as long as the dlopening" + $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then - echo - echo "*** However, this would only work if libtool was able to extract symbol" - echo "*** lists from a program, using \`nm' or equivalent, but libtool could" - echo "*** not find such a program. So, this module is probably useless." - echo "*** \`nm' from GNU binutils and a full rebuild may help." + $ECHO + $ECHO "*** However, this would only work if libtool was able to extract symbol" + $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" + $ECHO "*** not find such a program. So, this module is probably useless." + $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" @@ -3074,16 +5321,16 @@ EOF build_libtool_libs=no fi else - echo "*** The inter-library dependencies that have been dropped here will be" - echo "*** automatically added whenever a program is linked with this library" - echo "*** or is declared to -dlopen it." - - if test $allow_undefined = no; then - echo - echo "*** Since this library must not contain undefined symbols," - echo "*** because either the platform does not support them or" - echo "*** it was explicitly requested with -no-undefined," - echo "*** libtool will only create a static version of it." + $ECHO "*** The inter-library dependencies that have been dropped here will be" + $ECHO "*** automatically added whenever a program is linked with this library" + $ECHO "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $ECHO + $ECHO "*** Since this library must not contain undefined symbols," + $ECHO "*** because either the platform does not support them or" + $ECHO "*** it was explicitly requested with -no-undefined," + $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module @@ -3094,17 +5341,44 @@ EOF fi fi fi - # Time to change all our "foo.framework" stuff back to "-framework foo" - case $host in - *-*-darwin*) - newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'` - dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'` - ;; - esac - # Done checking deplibs! # Done checking deplibs! deplibs=$newdeplibs fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= @@ -3113,7 +5387,7 @@ EOF # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then - if test $hardcode_into_libs = yes; then + if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= @@ -3149,7 +5423,11 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - eval dep_rpath=\"$hardcode_libdir_flag_spec\" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. @@ -3169,110 +5447,142 @@ EOF fi # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" - eval shared_ext=\"$shrext\" set dummy $library_names - realname="$2" - shift; shift + shift + realname="$1" + shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi - test -z "$dlname" && dlname=$soname + if test -z "$dlname"; then + dlname=$soname + fi lib="$output_objdir/$realname" + linknames= for link do linknames="$linknames $link" done -# # Ensure that we have .o objects for linkers which dislike .lo -# # (e.g. aix) in case we are running --disable-static -# for obj in $libobjs; do -# xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` -# if test "X$xdir" = "X$obj"; then -# xdir="." -# else -# xdir="$xdir" -# fi -# baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` -# oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` -# if test ! -f $xdir/$oldobj && test "$baseobj" != "$oldobj"; then -# $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" -# $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? -# fi -# done - # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + delfiles="$delfiles $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then - $show "generating symbol list for \`$libname.la'" + func_echo "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" - $run $rm $export_symbols - eval cmds=\"$export_symbols_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? + eval cmd=\"$cmd\" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + else + # The command line is too long to execute in one step. + func_echo "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi done IFS="$save_ifs" - if test -n "$export_symbols_regex"; then - $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" - $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' - $show "$mv \"${export_symbols}T\" \"$export_symbols\"" - $run eval '$mv "${export_symbols}T" "$export_symbols"' + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then - $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_echo "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= fi fi @@ -3283,22 +5593,36 @@ EOF # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" - cmds=$archive_expsym_cmds + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi else - eval test_cmds=\"$archive_cmds\" - cmds=$archive_cmds + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi fi - if len=`expr "X$test_cmds" : ".*"` && - test $len -le $max_cmd_len; then - : - else - # The command line is too long to link in one step, link piecewise. + + if test "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we @@ -3311,93 +5635,154 @@ EOF if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi - save_output=$output - output_la=`$echo "X$output" | $Xsed -e "s,^.*/,,"` + save_output=$output + output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. - test_cmds= - concat_cmds= - objlist= - delfiles= - last_robj= - k=1 - - if test "$with_gnu_ld" = yes; then + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript - $echo "creating GNU ld script: $output" - $echo 'INPUT (' > $output + func_echo "creating GNU ld script: $output" + $ECHO 'INPUT (' > $output for obj in $save_libobjs do - $echo \""$obj"\" >> $output + $ECHO "$obj" >> $output done - $echo ')' >> $output + $ECHO ')' >> $output delfiles="$delfiles $output" - elif test "X$file_list_spec" != X; then + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk - $echo "creating linker input file list: $output" + func_echo "creating linker input file list: $output" : > $output - for obj in $save_libobjs + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj do - $echo "$obj" >> $output + $ECHO "$obj" >> $output done delfiles="$delfiles $output" - output=\"$file_list_spec$output\" + output=$firstobj\"$file_list_spec$output\" else - $echo "creating reloadable object files..." - output=$output_objdir/$save_output-${k}.$objext - # Loop over the list of objects to be linked. - for obj in $save_libobjs - do - eval test_cmds=\"$reload_cmds $objlist $last_robj\" - if test "X$objlist" = X || - { len=`expr "X$test_cmds" : ".*"` && - test $len -le $max_cmd_len; }; then - objlist="$objlist $obj" - else - # The command $test_cmds is almost too long, add a - # command to the queue. - if test $k -eq 1 ; then - # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + if test -n "$save_libobjs"; then + func_echo "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" else - # All subsequent reloadable object files will link in - # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + len=1 fi - last_robj=$output_objdir/$save_output-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$save_output-${k}.$objext - objlist=$obj - len=1 - fi - done - # Handle the remaining objects by creating one last - # reloadable object file. All subsequent reloadable object - # files will link in the last one created. - test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" - - # Set up a command to remove the reloadale object files - # after they are used. - i=0 - while test $i -lt $k - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" - done + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + # Set up a command to remove the reloadable object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" + done + else + output= + fi + + if ${skipped_export-false}; then + func_echo "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + fi - $echo "creating a temporary reloadable object file: $output" + test -n "$save_libobjs" && + func_echo "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" - eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } done IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_echo "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi fi libobjs=$output @@ -3406,41 +5791,82 @@ EOF if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - cmds=$archive_expsym_cmds + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi else - cmds=$archive_cmds + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" - # Append the command to remove the reloadable object files - # to the just-reset $cmds. - eval cmds=\"\$cmds~$rm $delfiles\" + func_extract_archives $gentop $dlprefiles + libobjs="$libobjs $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= fi - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' + + save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" - $show "$cmd" - $run eval "$cmd" || exit $? + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? - exit 0 + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done @@ -3453,38 +5879,33 @@ EOF ;; obj) - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + func_warning "\`-dlopen' is ignored for objects" fi - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi + test -n "$deplibs" && \ + func_warning "\`-l' and \`-L' are ignored for objects" - if test -n "$xrpath"; then - $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 - fi + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" case $output in *.lo) - if test -n "$objs$old_deplibs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result ;; *) libobj= @@ -3493,7 +5914,7 @@ EOF esac # Delete the old objects. - $run $rm $obj $libobj + $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create @@ -3502,161 +5923,136 @@ EOF reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of - # -Wl from whole_archive_flag_spec + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then - eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - for xlib in $convenience; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. - reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" - eval cmds=\"$reload_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" + func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop + func_show_eval '${RM}r "$gentop"' fi - exit 0 + exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop + func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" - # $run eval "echo timestamp > $libobj" || exit $? - exit 0 + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" - eval cmds=\"$reload_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" -# else -# # Just create a symlink. -# $show $rm $libobj -# $run $rm $libobj -# xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` -# if test "X$xdir" = "X$libobj"; then -# xdir="." -# else -# xdir="$xdir" -# fi -# baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` -# oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` -# $show "(cd $xdir && $LN_S $oldobj $baseobj)" -# $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? + func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then - $show "${rm}r $gentop" - $run ${rm}r $gentop + func_show_eval '${RM}r "$gentop"' fi - exit 0 + exit $EXIT_SUCCESS ;; prog) case $host in - *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;; + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; esac - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" - if test "$preload" = yes; then - if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && - test "$dlopen_self_static" = unknown; then - $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." - fi - fi + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) - # Don't allow lazy linking, it breaks C++ global constructors + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + ;; + esac fi - # Time to change all our "foo.framework" stuff back to "-framework foo" - compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'` - finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'` + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" @@ -3674,7 +6070,7 @@ EOF # Now hardcode the library paths rpath= hardcode_libdirs= - for libdir in $compile_rpath; do + for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then @@ -3701,10 +6097,15 @@ EOF fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac done @@ -3752,233 +6153,47 @@ EOF fi finalize_rpath="$rpath" - dlsyms= - if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then - if test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - fi + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi - if test -n "$dlsyms"; then - case $dlsyms in - "") ;; - *.c) - # Discover the nlist of each of the dlfiles. - nlist="$output_objdir/${outputname}.nm" - - $show "$rm $nlist ${nlist}S ${nlist}T" - $run $rm "$nlist" "${nlist}S" "${nlist}T" - - # Parse the name list into a source file. - $show "creating $output_objdir/$dlsyms" - - test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define lt_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test "$dlself" = yes; then - $show "generating symbol list for \`$output'" - - test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" - - # Add our own program objects to the symbol list. - progfiles="$objs$old_deplibs" - for arg in $progfiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -n "$exclude_expsyms"; then - $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - if test -n "$export_symbols_regex"; then - $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' - $run eval '$mv "$nlist"T "$nlist"' - fi - - # Prepare the list of exported symbols - if test -z "$export_symbols"; then - export_symbols="$output_objdir/$output.exp" - $run $rm $export_symbols - $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - else - $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' - $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - fi - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - name=`echo "$arg" | sed -e 's%^.*/%%'` - $run eval 'echo ": $name " >> "$nlist"' - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # Make sure we have at least an empty file. - test -f "$nlist" || : > "$nlist" - - if test -n "$exclude_expsyms"; then - egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T - $mv "$nlist"T "$nlist" - fi - - # Try sorting and uniquifying the output. - if grep -v "^: " < "$nlist" | - if sort -k 3 </dev/null >/dev/null 2>&1; then - sort -k 3 - else - sort +2 - fi | - uniq > "$nlist"S; then - : - else - grep -v "^: " < "$nlist" > "$nlist"S - fi - - if test -f "$nlist"S; then - eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' - else - echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef lt_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define lt_ptr_t void * -#else -# define lt_ptr_t char * -# define const -#endif - -/* The mapping between symbol names and symbols. */ -const struct { - const char *name; - lt_ptr_t address; -} -lt_preloaded_symbols[] = -{\ -" - - sed -n -e 's/^: \([^ ]*\) $/ {\"\1\", (lt_ptr_t) 0},/p' \ - -e 's/^. \([^ ]*\) \([^ ]*\)$/ {"\2", (lt_ptr_t) \&\2},/p' \ - < "$nlist" >> "$output_objdir/$dlsyms" + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" - $echo >> "$output_objdir/$dlsyms" "\ - {0, (lt_ptr_t) 0} -}; - -/* This works around a problem in FreeBSD linker */ -#ifdef FREEBSD_WORKAROUND -static const void *lt_preloaded_setup() { - return lt_preloaded_symbols; -} -#endif - -#ifdef __cplusplus -} -#endif\ -" - fi - - pic_flag_for_symtable= - case $host in - # compiling the symbol table file with pic_flag works around - # a FreeBSD bug that causes programs to crash when -lm is - # linked before any other PIC object. But we must not use - # pic_flag when linking with -static. The problem exists in - # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. - *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; - esac;; - *-*-hpux*) - case "$compile_command " in - *" -static "*) ;; - *) pic_flag_for_symtable=" $pic_flag";; - esac - esac - - # Now compile the dynamic symbol file. - $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? - - # Clean up the generated files. - $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" - $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 - ;; - esac - else - # We keep going just in case the user didn't refer to - # lt_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' fi - if test $need_relink = no || test "$build_libtool_libs" != yes; then + wrappers_required=yes + case $host in + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - status=$? + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. - if test -n "$dlsyms"; then - $show "$rm $output_objdir/${outputname}S.${objext}" - $run $rm "$output_objdir/${outputname}S.${objext}" + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi - exit $status - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case $dir in - [\\/]* | [A-Za-z]:[\\/]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" + exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then @@ -4013,13 +6228,12 @@ static const void *lt_preloaded_setup() { # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. - $run $rm $output + $opt_dry_run || $RM $output # Link the executable and exit - $show "$link_command" - $run eval "$link_command" || exit $? - exit 0 + func_show_eval "$link_command" 'exit $?' + exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then @@ -4027,13 +6241,13 @@ static const void *lt_preloaded_setup() { link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" - $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= @@ -4045,65 +6259,427 @@ static const void *lt_preloaded_setup() { fi # Replace the output file specification. - link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. - $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname - $show "$link_command" - $run eval "$link_command" || exit $? + func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. - $show "creating $output" + func_echo "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done - relink_command="cd `pwd`; $relink_command" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case $0 in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + # Quote $ECHO for shipping. + if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi - # Only actually do things if our run command is non-null. - if test -z "$run"; then + # Only actually do things if not in dry run mode. + $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in - *.exe) output=`echo $output|sed 's,.exe$,,'` ;; + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in - *cygwin*) exeext=.exe ;; + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; *) exeext= ;; esac - $rm $output - trap "$rm $output; exit 1" 1 2 15 + case $host in + *cygwin* | *mingw* ) + output_name=`basename $output` + output_path=`dirname $output` + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + cat > $cwrappersource <<EOF + +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname + Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION + + The $output program cannot be directly executed until all the libtool + libraries that it depends on are installed. + + This wrapper executable should never be moved out of the build directory. + If it is, it will not operate correctly. + + Currently, it simply execs the wrapper *script* "/bin/sh $output", + but could eventually absorb all of the scripts functionality and + exec $objdir/$outputname directly. +*/ +EOF + cat >> $cwrappersource<<"EOF" +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <malloc.h> +#include <stdarg.h> +#include <assert.h> +#include <string.h> +#include <ctype.h> +#include <sys/stat.h> + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <<EOF + newargz[0] = (char *) xstrdup("$SHELL"); +EOF + + cat >> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; + + for (i=0; i<argc+1; i++) + { + DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]); + ; + } + +EOF + + case $host_os in + mingw*) + cat >> $cwrappersource <<EOF + execv("$SHELL",(char const **)newargz); +EOF + ;; + *) + cat >> $cwrappersource <<EOF + execv("$SHELL",newargz); +EOF + ;; + esac + + cat >> $cwrappersource <<"EOF" + return 127; +} - $echo > $output "\ +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char)name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable(const char * path) +{ + struct stat st; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ +char * +find_executable (const char* wrapper) +{ + int has_slash = 0; + const char* p; + const char* p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char* path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char* q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR(*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + return NULL; +} + +char * +strendzap(char *str, const char *pat) +{ + size_t len, patlen; + + assert(str != NULL); + assert(pat != NULL); + + len = strlen(str); + patlen = strlen(pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $opt_dry_run || $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + $ECHO > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. @@ -4113,47 +6689,62 @@ static const void *lt_preloaded_setup() { # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. -Xsed='sed -e 1s/^X//' +Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variable: + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else - # When we are sourced in execute mode, \$file and \$echo are already set. + # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then - echo=\"$qecho\" + ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! + elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$ECHO works! : else - # Restart under the correct shell, and then maybe \$echo will work. + # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " - $echo >> $output "\ + $ECHO >> $output "\ # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then @@ -4163,8 +6754,8 @@ else esac fi - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` + file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. @@ -4173,59 +6764,59 @@ else " if test "$fast_install" = yes; then - echo >> $output "\ + $ECHO >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" - if test ! -f \"\$progdir/\$program\" || \\ - { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\ + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then - $mkdir \"\$progdir\" + $MKDIR \"\$progdir\" else - $rm \"\$progdir/\$file\" + $RM \"\$progdir/\$file\" fi" - echo >> $output "\ + $ECHO >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else - $echo \"\$relink_command_output\" >&2 - $rm \"\$progdir/\$file\" + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" exit 1 fi fi - $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || - { $rm \"\$progdir/\$program\"; - $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } - $rm \"\$progdir/\$file\" + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" fi" else - echo >> $output "\ + $ECHO >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi - echo >> $output "\ + $ECHO >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ + $ECHO >> $output "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " @@ -4233,58 +6824,46 @@ else # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then - $echo >> $output "\ + $ECHO >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi - $echo >> $output "\ + $ECHO >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in - # win32 systems need to use the prog path for dll - # lookup to work - *-*-cygwin* | *-*-pw32*) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} -" - ;; - # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) - $echo >> $output "\ - exec \$progdir\\\\\$program \${1+\"\$@\"} + $ECHO >> $output "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) - $echo >> $output "\ - # Export the path to the program. - PATH=\"\$progdir:\$PATH\" - export PATH - - exec \$program \${1+\"\$@\"} + $ECHO >> $output "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac - $echo >> $output "\ - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" + $ECHO >> $output "\ + \$ECHO \"\$0: cannot exec \$program \$*\" exit 1 fi else # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - echo \"See the $PACKAGE documentation for more information.\" 1>&2 + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " chmod +x $output - fi - exit 0 + } + exit $EXIT_SUCCESS ;; esac @@ -4292,7 +6871,7 @@ fi\ for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs_save" + oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else @@ -4300,69 +6879,35 @@ fi\ oldobjs="$libobjs_save" build_libtool_libs=no else - oldobjs="$objs$old_deplibs $non_pic_objects" + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + oldobjs="$oldobjs $symfileobj" + fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - case $xlib in - [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; - *) xabs=`pwd`"/$xlib" ;; - esac - xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` - xdir="$gentop/$xlib" - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "$mkdir $xdir" - $run $mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x $xabs)" - $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? - - oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print | $NL2SP` - done + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" + cmds=$old_archive_from_new_cmds else -# # Ensure that we have .o objects in place in case we decided -# # not to build a shared library, and have fallen back to building -# # static libs even though --disable-static was passed! -# for oldobj in $oldobjs; do -# if test ! -f $oldobj; then -# xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` -# if test "X$xdir" = "X$oldobj"; then -# xdir="." -# else -# xdir="$xdir" -# fi -# baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` -# obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` -# $show "(cd $xdir && ${LN_S} $obj $baseobj)" -# $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? -# fi -# done + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $dlprefiles + oldobjs="$oldobjs $func_extract_archives_result" + fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we @@ -4370,134 +6915,123 @@ fi\ # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). - if (for obj in $oldobjs + if (for obj in $oldobjs do - $echo "X$obj" | $Xsed -e 's%^.*/%%' + func_basename "$obj" + $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else - $echo "copying selected object files to avoid basename conflicts..." - - if test -z "$gentop"; then - gentop="$output_objdir/${outputname}x" - - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi - generated="$generated $gentop" - fi - + $ECHO "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do - objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + func_basename "$obj" + objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. - newobj=lt$counter-$objbase - counter=`expr $counter + 1` + newobj=lt$counter-$objbase + counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done - $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - $run ln "$obj" "$gentop/$newobj" || - $run cp "$obj" "$gentop/$newobj" + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi + eval cmds=\"$old_archive_cmds\" - eval cmds=\"$old_archive_cmds\" - - if len=`expr "X$cmds" : ".*"` && - test $len -le $max_cmd_len; then - : - else - # the command line is too long to link in one step, link in parts - $echo "using piecewise archive linking..." + if len=`expr "X$cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: - objlist= - concat_cmds= - save_oldobjs=$oldobjs - - for obj in $save_oldobjs - do - oldobjs="$objlist $obj" - objlist="$objlist $obj" - eval test_cmds=\"$old_archive_cmds\" - if len=`expr "X$test_cmds" : ".*"` && - test $len -le $max_cmd_len; then - : - else - # the above command should be used before it gets too long - oldobjs=$objlist + objlist= + concat_cmds= + save_oldobjs=$oldobjs + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" - objlist= - fi - done + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done RANLIB=$save_RANLIB - oldobjs=$objlist - eval cmds=\"\$concat_cmds~$old_archive_cmds\" - fi + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi fi - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" + func_execute_cmds "$cmds" 'exit $?' done - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi + test -n "$generated" && \ + func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "creating $output" + func_echo "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then - relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` - relink_command="$var=\"$var_value\"; export $var; $relink_command" + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. - tagopts= - for tag in $taglist; do - tagopts="$tagopts --tag $tag" - done - relink_command="(cd `pwd`; $SHELL $0$tagopts --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi # Only create the output if not a dry run. - if test -z "$run"; then + $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then @@ -4509,12 +7043,11 @@ fi\ for deplib in $dependency_libs; do case $deplib in *.la) - name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` - if test -z "$libdir"; then - $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 - exit 1 - fi + func_basename "$deplib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; @@ -4522,37 +7055,68 @@ fi\ done dependency_libs="$newdependency_libs" newdlfiles= + for lib in $dlfiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlfiles="$newdlfiles $libdir/$name" + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlfiles="$newdlfiles $libdir/$name" + ;; + *) newdlfiles="$newdlfiles $lib" ;; + esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do - name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` - eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib` - if test -z "$libdir"; then - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - exit 1 - fi - newdlprefiles="$newdlprefiles $libdir/$name" + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + newdlprefiles="$newdlprefiles $libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi - $rm $output + $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac - $echo > $output "\ + $ECHO > $output "\ # $outputname - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. @@ -4566,9 +7130,15 @@ library_names='$library_names' # The name of the static archive. old_library='$old_library' +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + # Libraries that this one depends upon. dependency_libs='$dependency_libs' +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + # Version information for $libname. current=$current age=$age @@ -4577,713 +7147,39 @@ revision=$revision # Is this an already installed library? installed=$installed +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" - if test "$installed" = no && test $need_relink = yes; then - $echo >> $output "\ + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done - fi + } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" - $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? - ;; - esac - exit 0 - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || - # Allow the use of GNU shtool's install command. - $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case $arg in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case $arg in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit 1 - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test $# -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - fi - case $destdir in - [\\/]* | [A-Za-z]:[\\/]*) ;; - *) - for file in $files; do - case $file in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - done + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac + exit $EXIT_SUCCESS +} - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case $file in - *.$libext) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - library_names= - old_library= - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - if test -n "$relink_command"; then - # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"` - - # Don't allow the user to place us outside of our expected - # location b/c this prevents finding dependent libraries that - # are installed to the same prefix. - # At present, this check doesn't affect windows .dll's that - # are installed into $libdir/../bin (currently, that works fine) - # but it's something to keep an eye on. - if test "$inst_prefix_dir" = "$destdir"; then - $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 - exit 1 - fi - - if test -n "$inst_prefix_dir"; then - # Stick the inst_prefix_dir data into the link command. - relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` - else - relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"` - fi - - $echo "$modename: warning: relinking \`$file'" 1>&2 - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - exit 1 - fi - fi - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - srcname="$realname" - test -n "$relink_command" && srcname="$realname"T - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$srcname $destdir/$realname" - $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? - if test -n "$stripme" && test -n "$striplib"; then - $show "$striplib $destdir/$realname" - $run eval "$striplib $destdir/$realname" || exit $? - fi - - if test $# -gt 0; then - # Delete the old symlinks, and create new ones. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - fi - done - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case $destfile in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.$objext) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit 0 - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - notinst_deplibs= - relink_command= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Check the variables that should have been set. - if test -z "$notinst_deplibs"; then - $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 - exit 1 - fi - - finalize=yes - for lib in $notinst_deplibs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir="/tmp" - test -n "$TMPDIR" && tmpdir="$TMPDIR" - tmpdir="$tmpdir/libtool-$$" - if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : - else - $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 - continue - fi - file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` - - $show "$relink_command" - if $run eval "$relink_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - ${rm}r "$tmpdir" - continue - fi - file="$outputname" - else - $echo "$modename: warning: cannot relink \`$file'" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - - # remove .exe since cygwin /usr/bin/install will append another - # one anyways - case $install_prog,$host in - */usr/bin/install*,*cygwin*) - case $file:$destfile in - *.exe:*.exe) - # this is ok - ;; - *.exe:*) - destfile=$destfile.exe - ;; - *:*.exe) - destfile=`echo $destfile | sed -e 's,.exe$,,'` - ;; - esac - ;; - esac - - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - test -n "$outputname" && ${rm}r "$tmpdir" - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - if test -n "$stripme" && test -n "$striplib"; then - $show "$old_striplib $oldlib" - $run eval "$old_striplib $oldlib" || exit $? - fi - - # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec_cmd='$SHELL $0 --finish$current_libdirs' - else - exit 0 - fi - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = ":" && exit 0 - - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - echo " $libdir" - done - echo - echo "If you ever happen to want to link against installed libraries" - echo "in a given directory, LIBDIR, you must either use libtool, and" - echo "specify the full pathname of the library, or use the \`-LLIBDIR'" - echo "flag during linking and do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - echo " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - echo "See any operating system documentation about shared libraries for" - echo "more information, such as the ld(1) and ld.so(8) manual pages." - echo "----------------------------------------------------------------------" - exit 0 - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit 1 - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - dir= - case $file in - *.la) - # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case $file in - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - if test -n "$shlibpath_var"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - fi - - # Restore saved enviroment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi +{ test "$mode" = link || test "$mode" = relink; } && + func_mode_link ${1+"$@"} - # Now prepare to actually exec the command. - exec_cmd='"$cmd"$args' - else - # Display what would be done. - if test -n "$shlibpath_var"; then - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - fi - $echo "$cmd$args" - exit 0 - fi - ;; - # libtool clean and uninstall mode - clean | uninstall) - modename="$modename: $mode" - rm="$nonopt" +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" files= rmforce= exit_status=0 @@ -5295,33 +7191,32 @@ relink_command=\"$relink_command\"" for arg do case $arg in - -f) rm="$rm $arg"; rmforce=yes ;; - -*) rm="$rm $arg" ;; + -f) RM="$RM $arg"; rmforce=yes ;; + -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" rmdirs= + origobjdir="$objdir" for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$file"; then - dir=. - objdir="$objdir" + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + objdir="$origobjdir" else - objdir="$dir/$objdir" + objdir="$dir/$origobjdir" fi - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - test $mode = uninstall && objdir="$dir" + func_basename "$file" + name="$func_basename_result" + test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates - if test $mode = clean; then + if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; @@ -5329,15 +7224,15 @@ relink_command=\"$relink_command\"" fi # Don't error if the file doesn't exist and rm -f was used. - if (test -L "$file") >/dev/null 2>&1 \ - || (test -h "$file") >/dev/null 2>&1 \ - || test -f "$file"; then - : + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : elif test -d "$file"; then - exit_status=1 + exit_status=1 continue elif test "$rmforce" = yes; then - continue + continue fi rmfiles="$file" @@ -5345,312 +7240,125 @@ relink_command=\"$relink_command\"" case $name in *.la) # Possibly a libtool archive, so verify it. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name + if func_lalib_p "$file"; then + func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - if test $mode = uninstall; then + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test $? != 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - if test $? != 0 && test "$rmforce" != yes; then - exit_status=1 - fi - done - IFS="$save_ifs" + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. - fi + ;; + esac fi ;; *.lo) # Possibly a libtool object, so verify it. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + if func_lalib_p "$file"; then - # Read the .lo file - . $dir/$name + # Read the .lo file + func_source $dir/$name # Add PIC object to the list of files to remove. - if test -n "$pic_object" \ - && test "$pic_object" != none; then + if test -n "$pic_object" && + test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" - fi + fi # Add non-PIC object to the list of files to remove. - if test -n "$non_pic_object" \ - && test "$non_pic_object" != none; then + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" - fi + fi fi ;; *) - # Do a test to see if this is a libtool program. - if test $mode = clean && - (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - relink_command= - . $dir/$file + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + relink_command= + func_source $dir/$noexename - rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" - if test "$fast_install" = yes && test -n "$relink_command"; then - rmfiles="$rmfiles $objdir/lt-$name" + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi fi fi ;; esac - $show "$rm $rmfiles" - $run $rm $rmfiles || exit_status=1 + func_show_eval "$RM $rmfiles" 'exit_status=1' done + objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then - $show "rmdir $dir" - $run rmdir $dir >/dev/null 2>&1 + func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status - ;; +} - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - ;; - esac +{ test "$mode" = uninstall || test "$mode" = clean; } && + func_mode_uninstall ${1+"$@"} - if test -z "$exec_cmd"; then - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - fi -fi # test -z "$show_help" +test -z "$mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then - eval exec $exec_cmd - exit 1 + eval exec "$exec_cmd" + exit $EXIT_FAILURE fi -# We need to display help for each of the modes. -case $mode in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --tag=TAG use configuration variables from tag TAG - --version print version information - -MODE must be one of the following: - - clean remove files from the build directory - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE." - exit 0 - ;; - -clean) - $echo \ -"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... - -Remove files from the build directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, object or program, all the files associated -with it are deleted. Otherwise, only FILE itself is deleted using RM." - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -o OUTPUT-FILE set the output file name to OUTPUT-FILE - -prefer-pic try to building PIC objects only - -prefer-non-pic try to building non-PIC objects only - -static always build a \`.o' file suitable for static linking - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. +exit $exit_status -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -avoid-version do not add a version suffix if possible - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -export-symbols SYMFILE - try to export only the symbols listed in SYMFILE - -export-symbols-regex REGEX - try to export only the symbols matching REGEX - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -module build a library that can dlopened - -no-fast-install disable the fast-install mode - -no-install link a not-installable executable - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -objectlist FILE Use a list of object files found in FILE to specify objects - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, -only library objects (\`.lo' files) may be specified, and \`-rpath' is -required, except when creating a convenience library. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo \ -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; -esac - -echo -$echo "Try \`$modename --help' for more information about other modes." - -exit 0 # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting @@ -5663,16 +7371,19 @@ exit 0 # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. -### BEGIN LIBTOOL TAG CONFIG: disable-shared +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes -### END LIBTOOL TAG CONFIG: disable-shared +# ### END LIBTOOL TAG CONFIG: disable-shared -### BEGIN LIBTOOL TAG CONFIG: disable-static +# ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` -### END LIBTOOL TAG CONFIG: disable-static +# ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: +# vi:sw=2 + + diff --git a/libjava/classpath/m4/ac_prog_javac.m4 b/libjava/classpath/m4/ac_prog_javac.m4 new file mode 100644 index 00000000000..869c1942f2c --- /dev/null +++ b/libjava/classpath/m4/ac_prog_javac.m4 @@ -0,0 +1,51 @@ +dnl @synopsis AC_PROG_JAVAC +dnl +dnl AC_PROG_JAVAC tests an existing Java compiler. It uses the +dnl environment variable JAVAC then tests in sequence various common +dnl Java compilers. For political reasons, it starts with the free +dnl ones. +dnl +dnl If you want to force a specific compiler: +dnl +dnl - at the configure.in level, set JAVAC=yourcompiler before calling +dnl AC_PROG_JAVAC +dnl +dnl - at the configure level, setenv JAVAC +dnl +dnl You can use the JAVAC variable in your Makefile.in, with @JAVAC@. +dnl +dnl *Warning*: its success or failure can depend on a proper setting of +dnl the CLASSPATH env. variable. +dnl +dnl TODO: allow to exclude compilers (rationale: most Java programs +dnl cannot compile with some compilers like guavac). +dnl +dnl Note: This is part of the set of autoconf M4 macros for Java +dnl programs. It is VERY IMPORTANT that you download the whole set, +dnl some macros depend on other. Unfortunately, the autoconf archive +dnl does not support the concept of set of macros, so I had to break it +dnl for submission. The general documentation, as well as the sample +dnl configure.in, is included in the AC_PROG_JAVA macro. +dnl +dnl @category Java +dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> +dnl @version 2000-07-19 +dnl @license GPLWithACException +dnl +dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11 + +AC_DEFUN([AC_PROG_JAVAC],[ +AC_REQUIRE([AC_EXEEXT])dnl +if test "x$JAVAPREFIX" = x; then + test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C") +else + test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C", $JAVAPREFIX) +fi +test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH]) +dnl GCJ LOCAL +if test "$enable_java_maintainer_mode" = yes; then +AC_PROG_JAVAC_WORKS +fi +dnl END GCJ LOCAL +AC_PROVIDE([$0])dnl +]) diff --git a/libjava/classpath/m4/ac_prog_javac_works.m4 b/libjava/classpath/m4/ac_prog_javac_works.m4 new file mode 100644 index 00000000000..827ecc9bbdf --- /dev/null +++ b/libjava/classpath/m4/ac_prog_javac_works.m4 @@ -0,0 +1,45 @@ +dnl @synopsis AC_PROG_JAVAC_WORKS +dnl +dnl Internal use ONLY. +dnl +dnl Note: This is part of the set of autoconf M4 macros for Java +dnl programs. It is VERY IMPORTANT that you download the whole set, +dnl some macros depend on other. Unfortunately, the autoconf archive +dnl does not support the concept of set of macros, so I had to break it +dnl for submission. The general documentation, as well as the sample +dnl configure.in, is included in the AC_PROG_JAVA macro. +dnl +dnl @category Java +dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr> +dnl @version 2000-07-19 +dnl @license GPLWithACException +dnl +dnl Modified to test for 1.5 by Andrew John Hughes on 2008-02-11 + +AC_DEFUN([AC_PROG_JAVAC_WORKS],[ +AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [ +JAVA_TEST=Object.java +CLASS_TEST=Object.class +cat << \EOF > $JAVA_TEST +/* [#]line __oline__ "configure" */ +package java.lang; + +public class Object +{ + static <T> void doStuff() + { + } +} +EOF +dnl GCJ LOCAL: don't call JAVAC with $JAVACFLAGS -source 1.5 -target 1.5 +if AC_TRY_COMMAND($JAVAC $JAVA_TEST) >/dev/null 2>&1; then + ac_cv_prog_javac_works=yes +else + AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)]) + echo "configure: failed program was:" >&AC_FD_CC + cat $JAVA_TEST >&AC_FD_CC +fi +rm -f $JAVA_TEST $CLASS_TEST +]) +AC_PROVIDE([$0])dnl +]) diff --git a/libjava/classpath/m4/acinclude.m4 b/libjava/classpath/m4/acinclude.m4 index e61ddd8038c..6c4eacda486 100644 --- a/libjava/classpath/m4/acinclude.m4 +++ b/libjava/classpath/m4/acinclude.m4 @@ -1,194 +1,6 @@ dnl Used by aclocal to generate configure dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_FIND_JAVAC], -[ - user_specified_javac= - - CLASSPATH_WITH_GCJ - CLASSPATH_WITH_JIKES - CLASSPATH_WITH_KJC - CLASSPATH_WITH_ECJ - CLASSPATH_WITH_JAVAC - - if test "x${user_specified_javac}" = x; then - AM_CONDITIONAL(FOUND_GCJ, test "x${GCJ}" != x) - AM_CONDITIONAL(FOUND_JIKES, test "x${JIKES}" != x) - AM_CONDITIONAL(FOUND_ECJ, test "x${ECJ}" != x) - AM_CONDITIONAL(FOUND_JAVAC, test "x${JAVAC}" != x) - else - AM_CONDITIONAL(FOUND_GCJ, test "x${user_specified_javac}" = xgcj) - AM_CONDITIONAL(FOUND_JIKES, test "x${user_specified_javac}" = xjikes) - AM_CONDITIONAL(FOUND_ECJ, test "x${user_specified_javac}" = xecj) - AM_CONDITIONAL(FOUND_JAVAC, test "x${user_specified_javac}" = xjavac) - fi - AM_CONDITIONAL(FOUND_KJC, test "x${user_specified_javac}" = xkjc) - - ## GCJ LOCAL - if test "x${GCJ}" = x && test "x${JIKES}" = x && test "x${ECJ}" = x \ - && test "x${JAVAC}" = x && test "x${user_specified_javac}" != xkjc - then - AC_MSG_ERROR([cannot find javac, try --with-ecj]) - fi - ## END GCJ LOCAL -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_WITH_GCJ], -[ - AC_ARG_WITH([gcj], - [AS_HELP_STRING(--with-gcj,bytecode compilation with gcj)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - CLASSPATH_CHECK_GCJ(${withval}) - else - if test "x${withval}" != xno; then - CLASSPATH_CHECK_GCJ - fi - fi - user_specified_javac=gcj - ], - [ - CLASSPATH_CHECK_GCJ - ]) - AC_SUBST(GCJ) -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_CHECK_GCJ], -[ - if test "x$1" != x; then - if test -f "$1"; then - GCJ="$1" - else - AC_PATH_PROG(GCJ, "$1") - fi - else - AC_PATH_PROG(GCJ, "gcj") - fi - dnl Test the given GCJ, but use it as C (!) compiler to check version - if test "x$GCJ" != x; then - AC_MSG_CHECKING([gcj version 4.0]) - AC_LANG_PUSH([C]) - AC_LANG_CONFTEST( - [[#if __GNUC__ <= 3 - #error GCJ 4.0.0 or higher is required - #endif - ]]) - $GCJ -E conftest.c > /dev/null - gcj_4_result=$? - if test "x$gcj_4_result" = "x0"; then - AC_MSG_RESULT([4.0 or higher found]) - else - AC_MSG_WARN([4.0 or higher required]) - fi - AC_LANG_POP - fi -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_WITH_JIKES], -[ - AC_ARG_WITH([jikes], - [AS_HELP_STRING(--with-jikes,bytecode compilation with jikes)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - CLASSPATH_CHECK_JIKES(${withval}) - else - if test "x${withval}" != xno; then - CLASSPATH_CHECK_JIKES - fi - fi - user_specified_javac=jikes - ], - [ - CLASSPATH_CHECK_JIKES - ]) - AC_SUBST(JIKES) -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_CHECK_JIKES], -[ - if test "x$1" != x; then - if test -f "$1"; then - JIKES="$1" - else - AC_PATH_PROG(JIKES, "$1") - fi - else - AC_PATH_PROG(JIKES, "jikes") - fi - if test "x$JIKES" != "x"; then - dnl Require at least version 1.19 - AC_MSG_CHECKING(jikes version) - JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5` - JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1` - JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2` - if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then - if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then - JIKES="" - fi - fi - if test "x$JIKES" != "x"; then - AC_MSG_RESULT($JIKES_VERSION) - else - AC_MSG_WARN($JIKES_VERSION: jikes 1.19 or higher required) - fi - - JIKESENCODING= - if test -n "`$JIKES --help 2>&1 | grep encoding`"; then - JIKESENCODING='-encoding UTF-8' - fi - AC_SUBST(JIKESENCODING) - - JIKESWARNINGS="+Pno-switchcheck" - if test "x$JIKES_VERSION_MAJOR" = x"1" ; then - if ! test "x$JIKES_VERSION_MINOR" = x"19"; then - JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow" - fi - fi - AC_SUBST(JIKESWARNINGS) - - fi -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_WITH_KJC], -[ - AC_ARG_WITH([kjc], - [AS_HELP_STRING(--with-kjc,bytecode compilation with kjc)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - CLASSPATH_CHECK_KJC(${withval}) - else - if test "x${withval}" != xno; then - CLASSPATH_CHECK_KJC - fi - fi - user_specified_javac=kjc - ], - [ - CLASSPATH_CHECK_KJC - ]) - AC_SUBST(KJC) -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_CHECK_KJC], -[ - if test "x$1" != x; then - if test -f "$1"; then - KJC="$1" - else - AC_PATH_PROG(KJC, "$1") - fi - else - AC_PATH_PROG(KJC, "kJC") - fi -]) - -dnl ----------------------------------------------------------- AC_DEFUN([CLASSPATH_WITH_JAVAH], [ AC_ARG_WITH([javah], @@ -218,7 +30,7 @@ AC_DEFUN([CLASSPATH_CHECK_JAVAH], AC_PATH_PROG(USER_JAVAH, "$1") fi else - AC_PATH_PROGS([USER_JAVAH],[gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah]) + AC_PATH_PROGS([USER_JAVAH],[gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah]) fi if test "x${USER_JAVAH}" = x; then @@ -231,28 +43,6 @@ dnl CLASSPATH_WITH_CLASSLIB - checks for user specified classpath additions dnl ----------------------------------------------------------- AC_DEFUN([CLASSPATH_WITH_CLASSLIB], [ - AC_ARG_WITH([classpath], - [AS_HELP_STRING(--with-classpath,specify path to a classes.zip like file)], - [ - if test "x${withval}" = xyes; then - # set user classpath to CLASSPATH from env - AC_MSG_CHECKING(for classlib) - USER_CLASSLIB=${CLASSPATH} - AC_SUBST(USER_CLASSLIB) - AC_MSG_RESULT(${USER_CLASSLIB}) - conditional_with_classlib=true - elif test "x${withval}" != x && test "x${withval}" != xno; then - # set user classpath to specified value - AC_MSG_CHECKING(for classlib) - USER_CLASSLIB=${withval} - AC_SUBST(USER_CLASSLIB) - AC_MSG_RESULT(${withval}) - conditional_with_classlib=true - fi - ], - [ conditional_with_classlib=false ]) - AM_CONDITIONAL(USER_SPECIFIED_CLASSLIB, test "x${conditional_with_classlib}" = xtrue) - AC_ARG_WITH([vm-classes], [AS_HELP_STRING(--with-vm-classes,specify path to VM override source files)], [vm_classes="$with_vm_classes"], [vm_classes='${top_srcdir}/vm/reference']) @@ -272,7 +62,7 @@ AC_DEFUN([CLASSPATH_WITH_GLIBJ], FASTJAR=${withval} AC_MSG_RESULT([${FASTJAR}]) ], - [AC_PATH_PROG(FASTJAR, fastjar)]) + [AC_PATH_PROGS([FASTJAR], [fastjar gjar jar])]) dnl We disable ZIP by default if we find fastjar. if test x"${FASTJAR}" != x; then ZIP="" @@ -325,6 +115,19 @@ dnl We disable ZIP by default if we find fastjar. EXAMPLESDIR="" fi AC_SUBST(EXAMPLESDIR) + + AC_ARG_ENABLE([tools], + [AS_HELP_STRING(--enable-tools,enable build of the tools [default=yes])], + [case "${enableval}" in + yes) TOOLSDIR="tools" ;; + no) TOOLSDIR="" ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;; + esac], + [TOOLSDIR="tools"]) + if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then + TOOLSDIR="" + fi + AC_SUBST(TOOLSDIR) ]) dnl ----------------------------------------------------------- @@ -363,63 +166,44 @@ dnl ----------------------------------------------------------- AC_DEFUN([REGEN_WITH_JAY], [ AC_ARG_WITH([jay], - [AS_HELP_STRING(--with-jay,Regenerate the parsers with jay must be given the path to the jay executable)], + [AS_HELP_STRING(--with-jay[=DIR|PATH],Regenerate the parsers with jay)], [ - if test -d "${withval}"; then + AC_MSG_CHECKING([whether to regenerate parsers with jay]) + JAY_FOUND=no + JAY_DIR_PATH= + if test "x${withval}" = xno; then + AC_MSG_RESULT(no) + elif test "x${withval}" = xyes; then + AC_MSG_RESULT(yes) + JAY_DIR_PATH="/usr/share/jay" + elif test -d "${withval}"; then + AC_MSG_RESULT(yes) JAY_DIR_PATH="${withval}" - AC_PATH_PROG(JAY, jay, "no", ${JAY_DIR_PATH}) - if test "x${JAY}" = xno; then - AC_MSG_ERROR("jay executable not found"); - fi - else + elif test -f "${withval}"; then + AC_MSG_RESULT(yes) JAY_DIR_PATH=`dirname "${withval}"` JAY="${withval}" - AC_SUBST(JAY) + else + AC_MSG_ERROR(jay not found at ${withval}) fi - JAY_SKELETON="${JAY_DIR_PATH}/skeleton" - AC_CHECK_FILE(${JAY_SKELETON}, AC_SUBST(JAY_SKELETON), - AC_MSG_ERROR("Expected skeleton file in `dirname ${withval}`")) - JAY_FOUND=yes - ], - [ - JAY_FOUND=no - ]) - AM_CONDITIONAL(REGEN_PARSERS, test "x${JAY_FOUND}" = xyes) -]) -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_WITH_ECJ], -[ - AC_ARG_WITH([ecj], - [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - CLASSPATH_CHECK_ECJ(${withval}) - else - if test "x${withval}" != xno; then - CLASSPATH_CHECK_ECJ + if test "x${JAY_DIR_PATH}" != x; then + AC_PATH_PROG(JAY, jay, "no", ${JAY_DIR_PATH}:${PATH}) + if test "x${JAY}" = xno; then + AC_MSG_ERROR(jay executable not found); fi + JAY_SKELETON="${JAY_DIR_PATH}/skeleton" + AC_CHECK_FILE(${JAY_SKELETON}, AC_SUBST(JAY_SKELETON), + AC_MSG_ERROR(Expected skeleton file in ${JAY_DIR_PATH})) + JAY_FOUND=yes fi - user_specified_javac=ecj ], - [ - CLASSPATH_CHECK_ECJ + [ + AC_MSG_CHECKING([whether to regenerate parsers with jay]) + AC_MSG_RESULT(no) + JAY_FOUND=no ]) - AC_SUBST(ECJ) -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_CHECK_ECJ], -[ - if test "x$1" != x; then - if test -f "$1"; then - ECJ="$1" - else - AC_PATH_PROG(ECJ, "$1") - fi - else - AC_PATH_PROG(ECJ, "ecj") - fi + AM_CONDITIONAL(REGEN_PARSERS, test "x${JAY_FOUND}" = xyes) ]) dnl ----------------------------------------------------------- @@ -436,32 +220,29 @@ AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR], ]) dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_WITH_JAVAC], -[ - AC_ARG_WITH([javac], - [AS_HELP_STRING(--with-javac,bytecode compilation with javac)], - [ - if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then - CLASSPATH_CHECK_JAVAC(${withval}) - else - if test "x${withval}" != xno; then - CLASSPATH_CHECK_JAVAC - fi - fi - user_specified_javac=javac - ], - [ - CLASSPATH_CHECK_JAVAC - ]) - AC_SUBST(JAVAC) -]) - -dnl ----------------------------------------------------------- -AC_DEFUN([CLASSPATH_CHECK_JAVAC], -[ - if test "x$1" != x; then - JAVAC="$1" +AC_DEFUN([CLASSPATH_JAVAC_MEM_CHECK], +[ + JAVA_TEST=Test.java + CLASS_TEST=Test.class + cat << \EOF > $JAVA_TEST + /* [#]line __oline__ "configure" */ + public class Test + { + public static void main(String[] args) + { + System.out.println("Hello World"); + } + } +EOF + AC_MSG_CHECKING([whether javac supports -J]) + $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST + javac_result=$? + if test "x$javac_result" = "x0"; then + AC_MSG_RESULT([yes]) + JAVAC_MEM_OPT="-J-Xmx768M" else - AC_PATH_PROG(JAVAC, "javac") + AC_MSG_RESULT([no]) fi + rm -f $JAVA_TEST $CLASS_TEST + AC_SUBST(JAVAC_MEM_OPT) ]) diff --git a/libjava/classpath/missing b/libjava/classpath/missing index 894e786e16c..1c8ff7049d8 100755 --- a/libjava/classpath/missing +++ b/libjava/classpath/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2005-06-08.21 +scriptversion=2006-05-10.23 -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. @@ -33,6 +33,8 @@ if test $# -eq 0; then fi run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. @@ -44,7 +46,7 @@ fi msg="missing on your system" -case "$1" in +case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= @@ -77,6 +79,7 @@ Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c @@ -106,7 +109,7 @@ esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). -case "$1" in +case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; @@ -135,7 +138,7 @@ esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. -case "$1" in +case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if @@ -164,7 +167,7 @@ WARNING: \`$1' is $msg. You should only need it if test -z "$files" && files="config.h" touch_files= for f in $files; do - case "$f" in + case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; @@ -192,8 +195,8 @@ WARNING: \`$1' is needed, but is $msg. You can get \`$1' as part of \`Autoconf' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else @@ -214,25 +217,25 @@ WARNING: \`$1' $msg. You should only need it if in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi - if [ ! -f y.tab.h ]; then + if test ! -f y.tab.h; then echo >y.tab.h fi - if [ ! -f y.tab.c ]; then + if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; @@ -244,18 +247,18 @@ WARNING: \`$1' is $msg. You should only need it if in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi - if [ ! -f lex.yy.c ]; then + if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; @@ -267,11 +270,9 @@ WARNING: \`$1' is $msg. You should only need it if \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then touch $file else test -z "$file" || exec >$file @@ -289,11 +290,17 @@ WARNING: \`$1' is $msg. You should only need it if DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi @@ -317,13 +324,13 @@ WARNING: \`$1' is $msg. You should only need it if fi firstarg="$1" if shift; then - case "$firstarg" in + case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac - case "$firstarg" in + case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 diff --git a/libjava/classpath/native/Makefile.in b/libjava/classpath/native/Makefile.in index ab3004a464a..7e7c4f2e3db 100644 --- a/libjava/classpath/native/Makefile.in +++ b/libjava/classpath/native/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -137,7 +139,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -149,19 +150,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -193,15 +183,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -249,10 +236,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/fdlibm/Makefile.in b/libjava/classpath/native/fdlibm/Makefile.in index 998ba8420d6..dc4c34f342d 100644 --- a/libjava/classpath/native/fdlibm/Makefile.in +++ b/libjava/classpath/native/fdlibm/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -156,7 +158,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -168,19 +169,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -212,15 +202,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -268,10 +255,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/fdlibm/dtoa.c b/libjava/classpath/native/fdlibm/dtoa.c index e710d96deae..458e629d349 100644 --- a/libjava/classpath/native/fdlibm/dtoa.c +++ b/libjava/classpath/native/fdlibm/dtoa.c @@ -26,9 +26,10 @@ dmg@research.att.com or research!dmg */ -#include "mprec.h" #include <string.h> #include <stdlib.h> +#include "mprec.h" +#include <stdlib.h> static int _DEFUN (quorem, diff --git a/libjava/classpath/native/fdlibm/fdlibm.h b/libjava/classpath/native/fdlibm/fdlibm.h index bf9f5699107..112504e4cc4 100644 --- a/libjava/classpath/native/fdlibm/fdlibm.h +++ b/libjava/classpath/native/fdlibm/fdlibm.h @@ -13,9 +13,12 @@ #ifndef __CLASSPATH_FDLIBM_H__ #define __CLASSPATH_FDLIBM_H__ -/* AIX needs _XOPEN_SOURCE */ +/* + * On AIX we need _ALL_SOURCE defined to compile/configure native-lib, but can't + * have it defined to compile fdlibm. UGH. + */ #ifdef _AIX -#define _XOPEN_SOURCE +#undef _ALL_SOURCE #endif #include <config.h> diff --git a/libjava/classpath/native/fdlibm/ieeefp.h b/libjava/classpath/native/fdlibm/ieeefp.h index 1a9740f66dd..c230bbb3c72 100644 --- a/libjava/classpath/native/fdlibm/ieeefp.h +++ b/libjava/classpath/native/fdlibm/ieeefp.h @@ -87,6 +87,10 @@ #define __IEEE_LITTLE_ENDIAN #endif +#ifdef __AVR32__ +#define __IEEE_BIG_ENDIAN +#endif + #ifdef __MIPSEL__ #define __IEEE_LITTLE_ENDIAN #endif diff --git a/libjava/classpath/native/fdlibm/mprec.h b/libjava/classpath/native/fdlibm/mprec.h index 0efa2d98904..1139b72f1ff 100644 --- a/libjava/classpath/native/fdlibm/mprec.h +++ b/libjava/classpath/native/fdlibm/mprec.h @@ -294,7 +294,9 @@ struct _Jv_Bigint #define _SIGNED signed #define _DOTS , ... #define _VOID void +#ifndef _EXFUN #define _EXFUN(name, proto) name proto +#endif /* !EXFUN */ #define _DEFUN(name, arglist, args) name(args) #define _DEFUN_VOID(name) name(_NOARGS) #define _CAST_VOID (void) diff --git a/libjava/classpath/native/jawt/Makefile.in b/libjava/classpath/native/jawt/Makefile.in index 90a0f8671b1..662881b303a 100644 --- a/libjava/classpath/native/jawt/Makefile.in +++ b/libjava/classpath/native/jawt/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -156,7 +158,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -168,19 +169,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -212,15 +202,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -268,10 +255,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/Makefile.am b/libjava/classpath/native/jni/Makefile.am index b820fe745d2..f37e7386480 100644 --- a/libjava/classpath/native/jni/Makefile.am +++ b/libjava/classpath/native/jni/Makefile.am @@ -40,4 +40,4 @@ DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \ midi-dssi native-lib all-local: - cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh + $(SHELL) $(top_builddir)/scripts/check_jni_methods.sh diff --git a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in index 4b71496a56f..b3dafbce4ae 100644 --- a/libjava/classpath/native/jni/Makefile.in +++ b/libjava/classpath/native/jni/Makefile.in @@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -137,7 +139,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -149,19 +150,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -193,15 +183,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -249,10 +236,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -650,7 +635,7 @@ uninstall-info: uninstall-info-recursive all-local: - cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh + $(SHELL) $(top_builddir)/scripts/check_jni_methods.sh # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in index c20cf87fe9b..cde67a51ce4 100644 --- a/libjava/classpath/native/jni/classpath/Makefile.in +++ b/libjava/classpath/native/jni/classpath/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -147,7 +149,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -159,19 +160,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -203,15 +193,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -259,10 +246,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/gconf-peer/Makefile.in b/libjava/classpath/native/jni/gconf-peer/Makefile.in index 9c0a4c33107..ffdc4e40e98 100644 --- a/libjava/classpath/native/jni/gconf-peer/Makefile.in +++ b/libjava/classpath/native/jni/gconf-peer/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -156,7 +158,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -168,19 +169,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -212,15 +202,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -268,10 +255,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.am b/libjava/classpath/native/jni/gstreamer-peer/Makefile.am index 45c91d13c2d..d15f0a2addb 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/Makefile.am +++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.am @@ -1,10 +1,15 @@ nativeexeclib_LTLIBRARIES = libgstreamerpeer.la -libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \ - gstinputstream.c \ - gstclasspathsrc.c \ - gstclasspathsrc.h \ - gstinputstream.h +libgstreamerpeer_la_SOURCES = gst_peer.c \ + gstreamer_io_peer.c \ + gst_native_data_line.c \ + gst_input_stream.c \ + gst_native_pipeline.c \ + gst_classpath_src.c \ + gst_peer.h \ + gst_classpath_src.h \ + gst_input_stream.h \ + gst_native_pipeline.h libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo @@ -17,7 +22,8 @@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ # We cannot use -Wwrite-strings and the strict flags since # gstreamer contain broken prototypes (by design). -AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings -Wno-missing-field-initializers \ +AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings \ + -Wno-missing-field-initializers \ @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \ @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@ \ @EXTRA_CFLAGS@ diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in index 4942b2d004d..be6f3362371 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in +++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -74,8 +76,9 @@ nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libgstreamerpeer_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo -am_libgstreamerpeer_la_OBJECTS = GStreamerIOPeer.lo gstinputstream.lo \ - gstclasspathsrc.lo +am_libgstreamerpeer_la_OBJECTS = gst_peer.lo gstreamer_io_peer.lo \ + gst_native_data_line.lo gst_input_stream.lo \ + gst_native_pipeline.lo gst_classpath_src.lo libgstreamerpeer_la_OBJECTS = $(am_libgstreamerpeer_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/../../depcomp @@ -157,7 +160,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -169,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -213,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -269,10 +257,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -345,11 +331,16 @@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libgstreamerpeer.la -libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \ - gstinputstream.c \ - gstclasspathsrc.c \ - gstclasspathsrc.h \ - gstinputstream.h +libgstreamerpeer_la_SOURCES = gst_peer.c \ + gstreamer_io_peer.c \ + gst_native_data_line.c \ + gst_input_stream.c \ + gst_native_pipeline.c \ + gst_classpath_src.c \ + gst_peer.h \ + gst_classpath_src.h \ + gst_input_stream.h \ + gst_native_pipeline.h libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo libgstreamerpeer_la_LDFLAGS = $(AM_LDFLAGS) @GST_PLUGIN_LDFLAGS@ -avoid-version @@ -360,7 +351,8 @@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ # We cannot use -Wwrite-strings and the strict flags since # gstreamer contain broken prototypes (by design). -AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings -Wno-missing-field-initializers \ +AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings \ + -Wno-missing-field-initializers \ @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \ @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@ \ @EXTRA_CFLAGS@ @@ -434,9 +426,12 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GStreamerIOPeer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstclasspathsrc.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstinputstream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_classpath_src.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_input_stream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_native_data_line.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_native_pipeline.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_peer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstreamer_io_peer.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c index afce1f1d4c2..80c6795928c 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c @@ -59,8 +59,8 @@ exception statement from your version. */ #include <gdk/gdk.h> -#include "gstclasspathsrc.h" -#include "gstinputstream.h" +#include "gst_classpath_src.h" +#include "gst_input_stream.h" GST_DEBUG_CATEGORY_STATIC (gst_classpath_src_debug); #define GST_CAT_DEFAULT gst_classpath_src_debug @@ -71,6 +71,12 @@ enum ARG_INPUTSTREAM }; +struct _GstClasspathSrcPrivate +{ + GstInputStream *istream; + GstCaps *caps; +}; + static const GstElementDetails gst_classpath_src_details = GST_ELEMENT_DETAILS ("ClasspathSrc", "Source/Network", @@ -107,7 +113,7 @@ GST_PLUGIN_DEFINE_STATIC (GST_VERSION_MAJOR, "classpathsrc", "Java InputStream Reader", plugin_init, CLASSPATH_GST_PLUGIN_VERSION, - GST_LICENSE_UNKNOWN, + GST_LICENSE_UNKNOWN, /* GPL + Exception */ "Classpath", "http://www.classpath.org/") /* ***** public class methods ***** */ @@ -124,6 +130,8 @@ static void gst_classpath_src_get_property (GObject *object, static void gst_classpath_src_finalize (GObject *object); +static GstCaps *gst_classpath_src_getcaps (GstBaseSrc *basesrc); + static gboolean gst_classpath_src_start (GstBaseSrc *basesrc); static gboolean gst_classpath_src_stop (GstBaseSrc *basesrc); @@ -131,6 +139,13 @@ static gboolean gst_classpath_src_stop (GstBaseSrc *basesrc); static GstFlowReturn gst_classpath_src_create (GstPushSrc *src, GstBuffer **buffer); +static GstFlowReturn +gst_classpath_src_create_stream (GstClasspathSrc *src, GstBuffer **buffer); + +static GstFlowReturn +check_read (GstClasspathSrc *src, int read, int buffer_size, + GstBuffer **buffer); + /* ***** public class methods: end ***** */ static void @@ -159,6 +174,8 @@ gst_classpath_src_class_init (GstClasspathSrcClass *klass) gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); + g_type_class_add_private (klass, sizeof (GstClasspathSrcPrivate)); + /* getter and setters */ gobject_class->set_property = gst_classpath_src_set_property; @@ -174,6 +191,7 @@ gst_classpath_src_class_init (GstClasspathSrcClass *klass) /* register callbacks */ gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_classpath_src_finalize); + gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_classpath_src_getcaps); gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_classpath_src_start); gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_classpath_src_stop); @@ -186,8 +204,11 @@ static void gst_classpath_src_init (GstClasspathSrc *src, GstClasspathSrcClass * g_class __attribute__ ((unused))) { - src->istream = NULL; - src->read_position = 0; + src->priv = G_TYPE_INSTANCE_GET_PRIVATE (src, GST_TYPE_CLASSPATH_SRC, + GstClasspathSrcPrivate); + + src->priv->istream = NULL; + src->priv->caps = NULL; } static void @@ -222,21 +243,15 @@ gst_classpath_src_set_property (GObject *object, if (state != GST_STATE_READY && state != GST_STATE_NULL) { - GST_DEBUG_OBJECT (src, "setting location in wrong state"); + GST_DEBUG_OBJECT (src, "setting reader in wrong state"); GST_STATE_UNLOCK (src); break; } } GST_STATE_UNLOCK (src); - if (GST_IS_INPUT_STREAM (g_value_get_pointer (value))) - { - src->istream = g_value_get_pointer (value); - } - else - { - GST_INFO_OBJECT (src, "invalid instance of GstInputStream"); - } + /* FIXME: check if this is a valid instance of GstInputStream */ + src->priv->istream = g_value_get_pointer (value); } break; @@ -254,53 +269,102 @@ gst_classpath_src_get_property (GObject *object, GParamSpec *pspec __attribute__ ((unused))) { /* TODO */ - G_OBJECT_CLASS (parent_class)->finalize (object); } /* ************************************************************************** */ -static GstFlowReturn -gst_classpath_src_create (GstPushSrc *basesrc, - GstBuffer **buffer) +static GstCaps *gst_classpath_src_getcaps (GstBaseSrc *basesrc) { GstClasspathSrc *src; - int read = -1; - + GstCaps *caps = NULL; + src = GST_CLASSPATH_SRC (basesrc); + + if (src->priv->caps) + caps = gst_caps_copy (src->priv->caps); + else + caps = gst_caps_new_any (); - /* create the buffer */ - *buffer = gst_buffer_new_and_alloc (2048); + GST_DEBUG_OBJECT (src, "returning caps %" GST_PTR_FORMAT, caps); + g_assert (GST_IS_CAPS (caps)); + + return caps; +} + +static GstFlowReturn +gst_classpath_src_create_stream (GstClasspathSrc *src, GstBuffer **buffer) +{ + int buffer_size = 2048; + int read = -1; + + buffer_size = gst_input_stream_available (src->priv->istream); + if (buffer_size < 0) + return GST_FLOW_ERROR; + else if (buffer_size == 0) + return GST_FLOW_WRONG_STATE; + + *buffer = gst_buffer_new_and_alloc (buffer_size); if (*buffer == NULL) { return GST_FLOW_ERROR; } - GST_BUFFER_SIZE (*buffer) = 0; - - GST_OBJECT_LOCK (src); - read = gst_input_stream_read (src->istream, (int *) GST_BUFFER_DATA (*buffer), 0, - 2048); - GST_OBJECT_UNLOCK (src); + read = gst_input_stream_read (src->priv->istream, + (int *) GST_BUFFER_DATA (*buffer), + 0, + buffer_size); + return check_read (src, read, buffer_size, buffer); +} + +GstFlowReturn +check_read (GstClasspathSrc *src, int read, int buffer_size, GstBuffer **buffer) +{ if (G_UNLIKELY (read < 0)) { + g_warning("GST_FLOW_UNEXPECTED (read < 0)"); + + gst_buffer_unref (*buffer); + *buffer = NULL; + + return GST_FLOW_ERROR; + } + else if (G_UNLIKELY (read == 0)) + { + g_warning("GST_FLOW_WRONG_STATE (read == 0)"); + gst_buffer_unref (*buffer); - return GST_FLOW_UNEXPECTED; + *buffer = NULL; + + return GST_FLOW_WRONG_STATE; } - - GST_OBJECT_LOCK (src); - + else if (G_UNLIKELY (read < buffer_size)) + { + g_warning("shorter read"); + gst_buffer_unref (*buffer); + *buffer = NULL; + + return GST_FLOW_ERROR; + } + GST_BUFFER_SIZE (*buffer) = read; - GST_BUFFER_OFFSET (*buffer) = src->read_position; - GST_BUFFER_OFFSET_END (*buffer) = src->read_position + read; - - src->read_position += read; + gst_buffer_set_caps (*buffer, src->priv->caps); - GST_OBJECT_UNLOCK (src); + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_classpath_src_create (GstPushSrc *basesrc, GstBuffer **buffer) +{ + GstClasspathSrc *src = NULL; + GstFlowReturn ret = GST_FLOW_OK; - gst_buffer_set_caps (*buffer, GST_PAD_CAPS (GST_BASE_SRC_PAD (src))); + src = GST_CLASSPATH_SRC (basesrc); + + /* create the buffer */ + ret = gst_classpath_src_create_stream (src, buffer); - return GST_FLOW_OK; + return ret; } static gboolean @@ -310,23 +374,35 @@ gst_classpath_src_start (GstBaseSrc *basesrc) src = GST_CLASSPATH_SRC (basesrc); - if (src->istream == NULL) + if (src->priv->istream == NULL) { + g_warning("GstInputStream is still null. You need to " \ + "pass a valid InputStream object"); + GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL), - ("GstInputStream is still null. you need to pass a valid InputStream")); - + ("GstInputStream is still null. You need to " \ + "pass a valid InputStream")); return FALSE; } - GST_OBJECT_LOCK (src); - src->read_position = 0; - GST_OBJECT_UNLOCK (src); - + return TRUE; } static gboolean -gst_classpath_src_stop (GstBaseSrc *basesrc __attribute__ ((unused))) +gst_classpath_src_stop (GstBaseSrc *basesrc) { - /* nothing to do */ + GstClasspathSrc *src; + + src = GST_CLASSPATH_SRC (basesrc); + + /* clean the stream */ + if (src->priv->istream != NULL) + gst_input_stream_clean (src->priv->istream); + + if (src->priv->caps) { + gst_caps_unref (src->priv->caps); + src->priv->caps = NULL; + } + return TRUE; } diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.h index f5fa6c83d4f..9e2acb0f256 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.h @@ -41,7 +41,7 @@ exception statement from your version. */ #include <gst/gst.h> #include <gst/base/gstpushsrc.h> -#include "gstinputstream.h" +#include "gst_input_stream.h" G_BEGIN_DECLS @@ -59,7 +59,8 @@ G_BEGIN_DECLS #define GST_IS_CLASSPATH_SRC_CLASS(klass) \ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CLASSPATH_SRC)) - + +typedef struct _GstClasspathSrcPrivate GstClasspathSrcPrivate; typedef struct _GstClasspathSrc GstClasspathSrc; typedef struct _GstClasspathSrcClass GstClasspathSrcClass; @@ -67,9 +68,8 @@ struct _GstClasspathSrc { GstPushSrc element; - /* TODO: move in a private structure */ - GstInputStream *istream; - int read_position; + /* instance members */ + GstClasspathSrcPrivate *priv; }; struct _GstClasspathSrcClass diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c b/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c new file mode 100644 index 00000000000..c5e51295432 --- /dev/null +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c @@ -0,0 +1,290 @@ +/*GstInputStream.c - Header file for the GstClasspathPlugin + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +#include <jni.h> +#include <jcl.h> + +#include <string.h> +#include <stdlib.h> + +#include <gdk/gdk.h> + +#include <glib.h> + +#include "gst_peer.h" + +#include "gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h" +#include "gst_input_stream.h" + +/* for caching */ +static jmethodID readID = NULL; +static jmethodID pointerConstructorID = NULL; +static jmethodID availableID = NULL; + +static jfieldID streamID = NULL; +static jfieldID pointerDataID = NULL; + +struct _GstInputStreamPrivate +{ + JavaVM *vm; + jclass readerClass; + jclass pointerClass; + + jobject reader; +}; + +/* ************************************************************************** */ + +static void init_pointer_IDs (JNIEnv* env); + +/* ************************************************************************** */ + +/* JNI Methods */ + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1id_1cache + (JNIEnv *env, jclass clazz) +{ + readID = (*env)->GetMethodID(env, clazz, "read", "([BII)I"); + availableID = (*env)->GetMethodID(env, clazz, "available", "()I"); + + streamID = (*env)->GetFieldID(env, clazz, "gstInputStream", + "Lgnu/classpath/Pointer;"); + init_pointer_IDs(env); +} + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1instance + (JNIEnv *env, jobject reader) +{ + GstInputStream *istream = NULL; + + jclass localReader = NULL; + jclass localPointer = NULL; + jobject _pointer = NULL; + + istream = (GstInputStream *) JCL_malloc (env, sizeof (GstInputStream)); + if (istream == NULL) + return; + + istream->priv = (GstInputStreamPrivate *) + JCL_malloc (env, sizeof (GstInputStreamPrivate)); + if (istream->priv == NULL) + { + JCL_free (env, istream); + return; + } + + /* get a local references first */ + localReader = (*env)->GetObjectClass(env, reader); + if (localReader == NULL) + { + JCL_free (env, istream->priv); + JCL_free (env, istream); + JCL_ThrowException (env, "java/lang/InternalError", + "Class Initialization failed."); + + return; + } + +#if SIZEOF_VOID_P == 8 + localPointer = JCL_FindClass (env, "gnu/classpath/Pointer64"); +#else +# if SIZEOF_VOID_P == 4 + localPointer = JCL_FindClass (env, "gnu/classpath/Pointer32"); +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ + + if (localReader == NULL || localPointer == NULL) + { + JCL_free (env, istream->priv); + JCL_free (env, istream); + JCL_ThrowException (env, "java/lang/InternalError", + "Class Initialization failed."); + return; + } + + /* fill out our structure */ + istream->priv->readerClass = (*env)->NewGlobalRef(env, localReader); + istream->priv->pointerClass = (*env)->NewGlobalRef(env, localPointer); + (*env)->GetJavaVM(env, &istream->priv->vm); + istream->priv->reader = (*env)->NewGlobalRef(env, reader); + + _pointer = (*env)->GetObjectField(env, reader, streamID); + + /* this should be always null */ + if (_pointer == NULL) + { +#if SIZEOF_VOID_P == 8 + _pointer = (*env)->NewObject(env, istream->priv->pointerClass, + pointerConstructorID, (jlong) istream); +#else + _pointer = (*env)->NewObject(env, istream->priv->pointerClass, + pointerConstructorID, (jint) istream); +#endif + } + else + { +#if SIZEOF_VOID_P == 8 + (*env)->SetLongField(env, reader, streamID, (jlong) istream); +#else + (*env)->SetIntField(env, reader, streamID, (jint) istream); +#endif + } + + /* store back our pointer into the calling class */ + (*env)->SetObjectField(env, reader, streamID, _pointer); +} + +/* exported library functions */ + +void +gst_input_stream_clean (GstInputStream *self) +{ + JNIEnv *env = NULL; + + env = gst_get_jenv (self->priv->vm); + + (*env)->DeleteGlobalRef (env, self->priv->reader); + (*env)->DeleteGlobalRef (env, self->priv->readerClass); + (*env)->DeleteGlobalRef (env, self->priv->pointerClass); + + JCL_free (env, self->priv); + JCL_free (env, self); +} + +int +gst_input_stream_available (GstInputStream *self) +{ + JNIEnv *env = NULL; + + if (self == NULL || self->priv == NULL || + self->priv->vm == NULL || self->priv->reader == NULL) + { + return -1; + } + + env = gst_get_jenv (self->priv->vm); + if (env == NULL) + { + g_warning("GstInputStream::gst_input_stream_available " \ + "failed to get java env"); + return -1; + } + + return (*env)->CallIntMethod (env, self->priv->reader, availableID); +} + +int +gst_input_stream_read (GstInputStream *self, int *data, int offset, + int length) +{ + JNIEnv *env = NULL; + + int ret = -1; + jbyteArray buffer; + jbyte *bytes = NULL; + + if (self == NULL || self->priv == NULL || + self->priv->vm == NULL || self->priv->reader == NULL) + { + return -1; + } + + env = gst_get_jenv (self->priv->vm); + if (env == NULL) + { + g_warning("GstInputStream::gst_input_stream_read failed to get java env"); + return -1; + } + + buffer = (*env)->NewByteArray (env, length); + if (buffer == NULL) + { + g_warning ("GstInputStream::gst_input_stream_read called, failed"); + return -1; + } + + ret = (*env)->CallIntMethod (env, self->priv->reader, readID, buffer, 0, + length); + if (ret < 0) + { + (*env)->DeleteLocalRef(env, buffer); + return ret; + } + + bytes = (*env)->GetByteArrayElements (env, buffer, NULL); + + /* copy bytes and release */ + memcpy (data + offset, bytes, ret); + + (*env)->ReleaseByteArrayElements (env, buffer, bytes, 0); + (*env)->DeleteLocalRef (env, buffer); + + return ret; +} + +/* private functions */ + +static void init_pointer_IDs (JNIEnv* env) +{ + jclass pointerClass = NULL; + +#if SIZEOF_VOID_P == 8 + pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); + if (pointerClass != NULL) + { + pointerDataID = (*env)->GetFieldID (env, pointerClass, "data", "J"); + pointerConstructorID = (*env)->GetMethodID (env, pointerClass, "<init>", + "(J)V"); + } +#else +# if SIZEOF_VOID_P == 4 + pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); + if (pointerClass != NULL) + { + pointerDataID = (*env)->GetFieldID(env, pointerClass, "data", "I"); + pointerConstructorID = (*env)->GetMethodID(env, pointerClass, + "<init>", "(I)V"); + } +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ +} diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h b/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.h index 1930412fe16..8e9d3cf4237 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.h @@ -38,62 +38,34 @@ exception statement from your version. */ #ifndef __GST_INPUT_STREAM_H__ #define __GST_INPUT_STREAM_H__ -#include <glib-object.h> - -/* TODO: is a gobject overkill for that? */ - -G_BEGIN_DECLS - -/* #defines don't like whitespacey bits */ -#define GST_TYPE_INPUT_STREAM (gst_input_stream_get_type()) - -#define GST_INPUT_STREAM(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INPUT_STREAM,GstInputStream)) - -#define GST_INPUT_STREAM_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INPUT_STREAM,GstInputStreamClass)) - -#define GST_IS_INPUT_STREAM(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INPUT_STREAM)) - -#define GST_IS_INPUT_STREAM_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INPUT_STREAM)) - typedef struct _GstInputStream GstInputStream; -typedef struct _GstInputStreamClass GstInputStreamClass; typedef struct _GstInputStreamPrivate GstInputStreamPrivate; struct _GstInputStream { - GObject parent; - /* instance members */ GstInputStreamPrivate *priv; }; -struct _GstInputStreamClass -{ - GObjectClass parent_class; -}; - -GType gst_input_stream_get_type (void); - +/** + * Clean the given instance of GstInputStream so that the garbage + * collector can collect the cached Java classes. + * Call this fuction when you don't need anymore to use this instance of + * GstInputStream. Note that failure to call this routine will result in + * memroy leaks. + */ +void gst_input_stream_clean (GstInputStream *self); + +/** + * Perform the "read" operation on this GstInputStream. + */ int gst_input_stream_read (GstInputStream *self, int *data, int offset, int length); - -gboolean gst_input_stream_available (GstInputStream *self, guint64 *size); - -gboolean gst_input_stream_can_seek (GstInputStream *self); - -long gst_input_stream_skip (GstInputStream *self, long size); - -void gst_input_stream_reset (GstInputStream *self); - -/* exported properties */ - -#define GST_ISTREAM_JVM "vm" -#define GST_ISTREAM_READER "reader" -G_END_DECLS +/** + * Returns the number of byte currently available for read in this + * GstInputStream. + */ +int gst_input_stream_available (GstInputStream *self); #endif /* __GST_INPUT_STREAM_H__ */ diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c b/libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c new file mode 100644 index 00000000000..84e76a1dcbf --- /dev/null +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c @@ -0,0 +1,251 @@ +/*gst_native_data_line.c - Implements the native methods of GstNativeDataLine + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +#include <jni.h> + +#include <gst/gst.h> + +#include "jcl.h" +#include "gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h" + +#include "gst_peer.h" +#include "gst_classpath_src.h" +#include "gst_native_pipeline.h" + +static jfieldID pointerDataFID = NULL; + +/* ************************************************************************** */ + +static GstElement *setup_pipeline (GstNativePipeline *jpipeline, int fd); +static void +gst_newpad (GstElement *decodebin, GstPad *pad, gboolean last, gpointer data); + +/* ************************************************************************** */ + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_init_1id_1cache + (JNIEnv *env __attribute__ ((unused)), jclass clazz __attribute__ ((unused))) +{ + jclass pointerClass = NULL; + +#if SIZEOF_VOID_P == 8 + pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); + if (pointerClass != NULL) + { + pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "J"); + } +#else +# if SIZEOF_VOID_P == 4 + pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); + if (pointerClass != NULL) + { + pointerDataFID = (*env)->GetFieldID(env, pointerClass, "data", "I"); + } +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ +} + +JNIEXPORT jboolean JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_setup_1sink_1pipeline + (JNIEnv *env, jclass clazz __attribute__ ((unused)), + jobject pointer) +{ + GstNativePipeline *jpipeline = NULL; + + GstElement *pipeline = NULL; + GstElement *sink = NULL; + GstElement *audioconv= NULL; + GstElement *resample = NULL; + GstElement *audio = NULL; + GstElement *decodebin = NULL; + + GstPad *audiopad = NULL; + + gst_init (NULL, NULL); + + /* get the pipeline from the pointer, then create it if needed */ + jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer, + pointerDataFID); + if (jpipeline == NULL) + return JNI_FALSE; + + pipeline = setup_pipeline (jpipeline, + gst_native_pipeline_get_pipeline_fd (jpipeline)); + if (pipeline == NULL) + return JNI_FALSE; + + /* add the audio sink to the pipeline */ + /* TODO: hardcoded values */ + sink = gst_element_factory_make ("autoaudiosink", "alsa-output"); + if (sink == NULL) + { + gst_object_unref(GST_OBJECT(pipeline)); + gst_object_unref(GST_OBJECT(sink)); + + g_warning ("unable to create sink\n"); + return JNI_FALSE; + } + + audioconv = gst_element_factory_make ("audioconvert", "aconv"); + if (audioconv == NULL) + { + gst_object_unref(GST_OBJECT(pipeline)); + gst_object_unref(GST_OBJECT(sink)); + gst_object_unref(GST_OBJECT(decodebin)); + + g_warning ("unable to create audioconv\n"); + return JNI_FALSE; + } + + audio = gst_bin_new ("audiobin"); + if (audio == NULL) + { + gst_object_unref(GST_OBJECT(pipeline)); + gst_object_unref(GST_OBJECT(sink)); + gst_object_unref(GST_OBJECT(decodebin)); + + g_warning ("unable to create audioconv\n"); + return JNI_FALSE; + } + + resample = gst_element_factory_make ("audioresample", "audioresample"); + if (audioconv == NULL) + { + gst_object_unref(GST_OBJECT(pipeline)); + gst_object_unref(GST_OBJECT(sink)); + gst_object_unref(GST_OBJECT(decodebin)); + gst_object_unref(GST_OBJECT(audio)); + + g_warning ("unable to create resample\n"); + return JNI_FALSE; + } + + audiopad = gst_element_get_pad (audioconv, "sink"); + gst_bin_add_many (GST_BIN (audio), audioconv, resample, sink, NULL); + gst_element_link (audioconv, sink); + + gst_element_add_pad (audio, gst_ghost_pad_new ("sink", audiopad)); + + gst_object_unref (audiopad); + gst_bin_add (GST_BIN (pipeline), audio); + + decodebin = gst_bin_get_by_name (GST_BIN (pipeline), "decodebin"); + g_signal_connect (decodebin, "new-decoded-pad", G_CALLBACK (gst_newpad), + audio); + + gst_native_pipeline_set_pipeline (jpipeline, pipeline); + + return JNI_TRUE; +} + +/* ************************************************************************** */ + +static GstElement *setup_pipeline (GstNativePipeline *jpipeline, int fd) +{ + GstElement *decodebin = NULL; + GstElement *source = NULL; + + GstElement *pipeline = NULL; + + if (fd < 0) + return NULL; + + pipeline = gst_pipeline_new ("java sound pipeline"); + if (pipeline == NULL) + return NULL; + + decodebin = gst_element_factory_make ("decodebin", "decodebin"); + if (decodebin == NULL) + { + gst_object_unref(GST_OBJECT(pipeline)); + gst_object_unref(GST_OBJECT(source)); + + g_warning ("unable to create decodebin\n"); + return NULL; + } + + source = gst_element_factory_make ("fdsrc", "source"); + if (source == NULL) + { + gst_object_unref(GST_OBJECT(pipeline)); + gst_object_unref(GST_OBJECT(source)); + gst_object_unref(GST_OBJECT(decodebin)); + + g_warning ("unable to create a source"); + return JNI_FALSE; + } + g_object_set (G_OBJECT (source), "fd", fd, NULL); + + gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL); + gst_element_link (source, decodebin); + + return pipeline; +} + +static void +gst_newpad (GstElement *decodebin, GstPad *pad, gboolean last, gpointer data) +{ + GstCaps *caps; + GstStructure *str; + GstPad *audiopad; + + GstElement *audio = (GstElement *) data; + + /* only link once */ + audiopad = gst_element_get_pad (audio, "sink"); + if (GST_PAD_IS_LINKED (audiopad)) + { + g_object_unref (audiopad); + return; + } + + /* check media type */ + caps = gst_pad_get_caps (pad); + str = gst_caps_get_structure (caps, 0); + if (!g_strrstr (gst_structure_get_name (str), "audio")) + { + gst_caps_unref (caps); + gst_object_unref (audiopad); + return; + } + gst_caps_unref (caps); + + /* link'n'play */ + gst_pad_link (pad, audiopad); +} diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c new file mode 100644 index 00000000000..3e325689746 --- /dev/null +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c @@ -0,0 +1,611 @@ +/*gst_native_pipeline.c - Header file for the GstClasspathPlugin + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +#include <jni.h> +#include <jcl.h> + +#include <string.h> +#include <stdlib.h> + +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/wait.h> + +#include <unistd.h> + +#ifdef HAVE_FCNTL_H +#include <fcntl.h> +#endif /* HAVE_FCNTL_H */ + +#if defined(HAVE_SYS_IOCTL_H) +#define BSD_COMP /* Get FIONREAD on Solaris2 */ +#include <sys/ioctl.h> +#endif +#if defined(HAVE_SYS_FILIO_H) /* Get FIONREAD on Solaris 2.5 */ +#include <sys/filio.h> +#endif + +#include <gdk/gdk.h> +#include <glib.h> + +#include <gst/gst.h> + +#include "cpio.h" +#include "gst_peer.h" + +#include "gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h" +#include "gst_native_pipeline.h" + +static jmethodID pointerConstructorMID = NULL; + +static jfieldID pipelineFID = NULL; +static jfieldID pointerDataFID = NULL; +static jfieldID nameFID = NULL; +static jfieldID capacityFID = NULL; + +/* + * Needed to compute the size of the data still available for processing in the + * pipeline. We give a default here but this will be overwritten by the + * detection routines. + */ +static long GST_DETECTED_PIPE_CAPACITY = 65536; + +/* + * Note: the Java code uses enum classes, these are not mapped into constants + * by the javah tool, changes to these values should be reflected in the Java + * side. + */ +enum +{ + PLAY, + PAUSE, + STOP +}; + +/* + * Defined as constants in the Java code, hence mapped by javah. + */ +enum +{ + READ = gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_READ, + WRITE = gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_WRITE +}; + +struct _GstNativePipelinePrivate +{ + JavaVM *vm; + jclass GstPipelineClass; + jclass PointerClass; + + jobject jni_pipeline; + + char *name; + int fd; + + GstElement *pipeline; +}; + +/* ************************************************************************** */ +/* +static void gst_native_pipeline_clean (GstNativePipeline *self);*/ +static char *create_name (void); +static void init_pointer_IDs (JNIEnv* env); +static jint get_free_space (int fd); +static void detect_pipe_max (void); + +/* ************************************************************************** */ + +/* JNI Methods */ + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1id_1cache + (JNIEnv *env, jclass clazz) +{ + pipelineFID = (*env)->GetFieldID (env, clazz, "pipeline", + "Lgnu/classpath/Pointer;"); + nameFID = (*env)->GetFieldID (env, clazz, "name", "Ljava/lang/String;"); + capacityFID = (*env)->GetFieldID (env, clazz, "capacity", "J"); + + init_pointer_IDs (env); +} + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance + (JNIEnv *env, jobject pipeline) +{ + GstNativePipeline *_pipeline = NULL; + + jclass localGstPipelineClass = NULL; + jclass localPointerClass = NULL; + jobject _pointer = NULL; + + _pipeline = + (GstNativePipeline *) JCL_malloc (env, sizeof (GstNativePipeline)); + if (_pipeline == NULL) + return; + + _pipeline->priv = (GstNativePipelinePrivate *) + JCL_malloc (env, sizeof (GstNativePipelinePrivate)); + if (_pipeline->priv == NULL) + { + JCL_free (env, _pipeline); + return; + } + +#if SIZEOF_VOID_P == 8 + localPointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); +#else +# if SIZEOF_VOID_P == 4 + localPointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ + + localGstPipelineClass = (*env)->GetObjectClass(env, pipeline); + if (localGstPipelineClass == NULL || localGstPipelineClass == NULL) + { + JCL_free (env, _pipeline->priv); + JCL_free (env, _pipeline); + JCL_ThrowException (env, "java/lang/InternalError", + "Class Initialization failed."); + return; + } + + GST_DETECTED_PIPE_CAPACITY = (long) (*env)->GetLongField(env, pipeline, + capacityFID); + + /* fill the object */ + (*env)->GetJavaVM(env, &_pipeline->priv->vm); + _pipeline->priv->jni_pipeline = (*env)->NewGlobalRef(env, pipeline); + _pipeline->priv->GstPipelineClass = + (*env)->NewGlobalRef(env, localGstPipelineClass); + _pipeline->priv->PointerClass = (*env)->NewGlobalRef(env, localPointerClass); + _pipeline->priv->pipeline = NULL; + + _pointer = (*env)->GetObjectField(env, pipeline, pipelineFID); + + if (_pointer == NULL) + { +#if SIZEOF_VOID_P == 8 + _pointer = (*env)->NewObject(env, _pipeline->priv->PointerClass, + pointerConstructorMID, (jlong) _pipeline); +#else + _pointer = (*env)->NewObject(env, _pipeline->priv->PointerClass, + pointerConstructorMID, (jint) _pipeline); +#endif + } + else + { +#if SIZEOF_VOID_P == 8 + (*env)->SetLongField(env, pipeline, pipelineFID, (jlong) _pipeline); +#else + (*env)->SetIntField(env, pipeline, pipelineFID, (jint) _pipeline); +#endif + } + + /* store back our pointer into the calling class */ + (*env)->SetObjectField(env, pipeline, pipelineFID, _pointer); +} + +JNIEXPORT jboolean JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_set_1state + (JNIEnv *env, jclass clazz, jobject pointer, jint state) +{ + GstNativePipeline *jpipeline = NULL; + jboolean result = JNI_FALSE; + + if (pointer == NULL) + { + JCL_ThrowException (env, "javax/sound/sampled/LineUnavailableException", + "Can't change pipeline state: " \ + "pipeline not initialized"); + return result; + } + + jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer, + pointerDataFID); + if (jpipeline == NULL) + return JNI_FALSE; + + switch (state) + { + case (PLAY): + gst_element_set_state(GST_ELEMENT(jpipeline->priv->pipeline), + GST_STATE_PLAYING); + result = JNI_TRUE; + break; + + case (PAUSE): + gst_element_set_state(GST_ELEMENT(jpipeline->priv->pipeline), + GST_STATE_PAUSED); + result = JNI_TRUE; + break; + + case (STOP): +#ifndef WITHOUT_FILESYSTEM + /* clean the pipeline and kill named pipe */ + if (jpipeline->priv->name) + { + cpio_removeFile (jpipeline->priv->name); + g_free (jpipeline->priv->name); + jpipeline->priv->name = NULL; + } +#endif /* WITHOUT_FILESYSTEM */ + + if (jpipeline->priv->pipeline != NULL) + gst_object_unref (GST_OBJECT(jpipeline->priv->pipeline)); + result = JNI_TRUE; + break; + + default: + /* nothing */ + result = JNI_FALSE; + break; + } + + return result; +} + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_open_1native_1pipe + (JNIEnv *env, jclass clazz, jobject pointer, jint mode) +{ + GstNativePipeline *jpipeline = NULL; + + jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer, + pointerDataFID); + switch (mode) + { + case (READ): + jpipeline->priv->fd = + open (jpipeline->priv->name, O_RDONLY | O_NONBLOCK); + break; + + case (WRITE): + /* TODO: no-op currently */ + break; + } +} + +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_close_1native_1pipe + (JNIEnv *env, jclass clazz, jobject pointer) +{ +#ifndef WITHOUT_FILESYSTEM + GstNativePipeline *jpipeline = NULL; + jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer, + pointerDataFID); + /* kill the named pipe */ + if (jpipeline->priv->name) + { + cpio_removeFile (jpipeline->priv->name); + g_free (jpipeline->priv->name); + jpipeline->priv->name = NULL; + } +#endif /* WITHOUT_FILESYSTEM */ +} + +JNIEXPORT jboolean JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_create_1named_1pipe + (JNIEnv *env, jobject GstPipeline, jobject pointer) +{ +#ifndef WITHOUT_FILESYSTEM + /* + * We get a temp name for the named pipe, create the named pipe and then + * set the relative field in the java class. + */ + GstNativePipeline *jpipeline = NULL; + jstring *name = NULL; + + jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer, + pointerDataFID); + if (jpipeline == NULL) + return JNI_FALSE; + + jpipeline->priv->name = create_name (); + if (jpipeline->priv->name == NULL) + return JNI_FALSE; + + if (mkfifo (jpipeline->priv->name, 0600) < 0) + { + if (jpipeline->priv->name != NULL) + free (jpipeline->priv->name); + return JNI_FALSE; + } + + /* now set the String field */ + name = (*env)->NewStringUTF(env, jpipeline->priv->name); + if (name == NULL) + { + cpio_removeFile (jpipeline->priv->name); + if (jpipeline->priv->name != NULL) + free (jpipeline->priv->name); + + return JNI_FALSE; + } + + (*env)->SetObjectField(env, GstPipeline, nameFID, name); + + return JNI_TRUE; + +#else /* not WITHOUT_FILESYSTEM */ + return JNI_FALSE; +#endif /* not WITHOUT_FILESYSTEM */ +} + +JNIEXPORT jint JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_available + (JNIEnv *env, jclass clazz, jobject pointer, jint mode) +{ + jint result = -1; + +#ifndef WITHOUT_FILESYSTEM + + GstNativePipeline *jpipeline = NULL; + jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer, + pointerDataFID); + + if (mode == READ) + { + result = get_free_space (jpipeline->priv->fd); + } + else + { +# if defined (FIONREAD) + if (ioctl (jpipeline->priv->fd, FIONREAD, &result) == -1) + g_warning("IMPLEMENT ME: ioctl failed"); + +# else /* not defined (FIONREAD) */ + g_warning("IMPLEMENT ME: !defined (FIONREAD"); +# endif /* defined (FIONREAD) */ + + } /* if (mode == READ) */ + +#endif /* not WITHOUT_FILESYSTEM */ + + return result; +} + +JNIEXPORT jlong JNICALL +Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_detect_1pipe_1size + (JNIEnv *env, jobject GstPipeline) +{ + detect_pipe_max (); + + return GST_DETECTED_PIPE_CAPACITY; +} + +/* exported library functions */ +/* +static void gst_native_pipeline_clean (GstNativePipeline *self) +{ + JNIEnv *env = NULL; + + env = gst_get_jenv (self->priv->vm); + + (*env)->DeleteGlobalRef (env, self->priv->jni_pipeline); + (*env)->DeleteGlobalRef (env, self->priv->GstPipelineClass); + (*env)->DeleteGlobalRef (env, self->priv->PointerClass); + + if (self->priv->pipeline != NULL) + gst_object_unref (GST_OBJECT (self->priv->pipeline)); + + if (self->priv->name) + { + cpio_removeFile (self->priv->name); + g_free (self->priv->name); + self->priv->name = NULL; + } + + JCL_free (env, self->priv); + JCL_free (env, self); +} +*/ +void gst_native_pipeline_set_pipeline (GstNativePipeline *self, + GstElement *pipeline) +{ + if (self->priv->pipeline != NULL) + gst_object_unref (GST_OBJECT (self->priv->pipeline)); + + self->priv->pipeline = pipeline; +} + +GstElement *gst_native_pipeline_get_pipeline (GstNativePipeline *self) +{ + return self->priv->pipeline; +} + +char *gst_native_pipeline_get_pipeline_name (GstNativePipeline *self) +{ + return self->priv->name; +} + +int gst_native_pipeline_get_pipeline_fd (GstNativePipeline *self) +{ + return self->priv->fd; +} + +/* private functions */ + +static void init_pointer_IDs (JNIEnv* env) +{ + jclass PointerClass = NULL; + +#if SIZEOF_VOID_P == 8 + PointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); + if (PointerClass != NULL) + { + pointerDataFID = (*env)->GetFieldID (env, PointerClass, "data", "J"); + pointerConstructorMID = (*env)->GetMethodID (env, PointerClass, "<init>", + "(J)V"); + } +#else +# if SIZEOF_VOID_P == 4 + PointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); + if (PointerClass != NULL) + { + pointerDataFID = (*env)->GetFieldID(env, PointerClass, "data", "I"); + pointerConstructorMID = (*env)->GetMethodID(env, PointerClass, + "<init>", "(I)V"); + } +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ +} + +static jint get_free_space (int fd) +{ + jint result = -1; + +#if defined (FIONSPACE) + + if (ioctl (fd, FIONSPACE, &result) == -1) + { + g_warning("IMPLEMENT ME: ioctl failed"); + } + +#elif defined (FIONREAD) + + if (ioctl (fd, FIONREAD, &result) == -1) + { + g_warning("IMPLEMENT ME: ioctl failed"); + } + + result = GST_DETECTED_PIPE_CAPACITY - result; + +#elif + g_warning("IMPLEMENT ME!!! - !defined (FIONSPACE), !defined (FIONREAD"); + +#endif + + return result; +} + +static char *create_name (void) +{ + char *buffer = NULL; + char *tmp = NULL; + + buffer = (char *) g_malloc0 (_GST_MALLOC_SIZE_); + if (buffer == NULL) + { + /* huston, we have a problem... */ + return NULL; + } + + tmp = tempnam (NULL, _GST_PIPELINE_PREFIX_); + if (tmp == NULL) + { + g_free (buffer); + return NULL; + } + + g_snprintf (buffer, _GST_MALLOC_SIZE_, "%s%s", tmp, _GST_PIPELINE_SUFFIX_); + g_free (tmp); + + return buffer; +} + +static void detect_pipe_max (void) +{ + int read_fd; + int write_fd; + + /* can be anything! */ + char *character = "a"; + char *pipe = NULL; + + gboolean available = TRUE; + int w = 0; + long wrote = 0; + + pipe = create_name (); + if (pipe == NULL) + { + g_warning ("can't create test pipe name"); + return; + } + + if (mkfifo (pipe, 0600) < 0) + { + g_warning ("unable to create test pipe..."); + g_free (pipe); + + return; + } + + /* open both end of the pipe */ + read_fd = open (pipe, O_RDONLY | O_NONBLOCK); + if (read_fd < 0) + { + cpio_removeFile (pipe); + g_free (pipe); + + return; + } + + write_fd = open (pipe, O_WRONLY | O_NONBLOCK); + if (write_fd < 0) + { + cpio_closeFile (write_fd); + cpio_removeFile (pipe); + g_free (pipe); + + return; + } + + while (available) + { + w = 0; + + cpio_write (write_fd, character, 1, &w); + if (w < 0) + available = FALSE; + else + wrote += w; + } + + GST_DETECTED_PIPE_CAPACITY = wrote; + + cpio_closeFile (write_fd); + cpio_closeFile (read_fd); + cpio_removeFile (pipe); + + g_free (pipe); +} diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h new file mode 100644 index 00000000000..b5a45b40ad1 --- /dev/null +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h @@ -0,0 +1,63 @@ +/*gst_native_pipeline.h - Header file for the GstClasspathPlugin + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +#ifndef __GST_NATIVE_PIPELINE_H__ +#define __GST_NATIVE_PIPELINE_H__ + +#include <glib.h> + +#include <gst/gst.h> + +typedef struct _GstNativePipeline GstNativePipeline; +typedef struct _GstNativePipelinePrivate GstNativePipelinePrivate; + +struct _GstNativePipeline +{ + /* instance members */ + GstNativePipelinePrivate *priv; +}; + +void gst_native_pipeline_set_pipeline (GstNativePipeline *self, + GstElement *pipeline); + +GstElement *gst_native_pipeline_get_pipeline (GstNativePipeline *self); + +char *gst_native_pipeline_get_pipeline_name (GstNativePipeline *self); + +int gst_native_pipeline_get_pipeline_fd (GstNativePipeline *self); + +#endif /* __GST_NATIVE_PIPELINE_H__ */ diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_peer.c b/libjava/classpath/native/jni/gstreamer-peer/gst_peer.c new file mode 100644 index 00000000000..da83b006bec --- /dev/null +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_peer.c @@ -0,0 +1,83 @@ +/*gst_peer.c - Common utility functions for the native peer. + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +#include <glib.h> + +#include <jni.h> +#include "jcl.h" + +#include "gst_peer.h" + +JNIEnv *gst_get_jenv (JavaVM *vm) +{ + void *env = NULL; + + if ((*vm)->GetEnv(vm, &env, JNI_VERSION_1_2) != JNI_OK) + { + if ((*vm)->AttachCurrentThreadAsDaemon(vm, &env, NULL) < 0) + { + g_warning ("GstNativePipeline:- env not attached"); + return NULL; + } + } + + return (JNIEnv *) env; +} + +void * +get_object_from_pointer (JNIEnv *env, jobject pointer, jfieldID pointerDataFID) +{ + void *_object = NULL; + + if (env == NULL) + return NULL; + + if ((*env)->IsSameObject(env, pointer, NULL) == JNI_TRUE) + return NULL; + +#if SIZEOF_VOID_P == 8 + _object = (void *) (*env)->GetLongField(env, pointer, pointerDataFID); +#else +# if SIZEOF_VOID_P == 4 + _object = (void *) (*env)->GetIntField(env, pointer, pointerDataFID); +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ + + return _object; +} diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_peer.h b/libjava/classpath/native/jni/gstreamer-peer/gst_peer.h new file mode 100644 index 00000000000..4500001b028 --- /dev/null +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_peer.h @@ -0,0 +1,59 @@ +/*gst_peer.h - Common utility functions for the native peer. + Copyright (C) 2007 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +#include <jni.h> +#include "jcl.h" + +#ifdef MAXPATHLEN +# define _GST_MALLOC_SIZE_ MAXPATHLEN +#else +# define _GST_MALLOC_SIZE_ 1024 +#endif + +#define _GST_PIPELINE_PREFIX_ "cp-" +#define _GST_PIPELINE_SUFFIX_ "-classpath-gst-audio" + +/** + * Return a reference to the object stored in this Pointer. + */ +void * +get_object_from_pointer (JNIEnv *env, jobject pointer, jfieldID pointerDataFID); + +/** + * Return the JNIEnv valid under the current thread context. + */ +JNIEnv *gst_get_jenv (JavaVM *vm); diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c deleted file mode 100644 index eb4969682f8..00000000000 --- a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c +++ /dev/null @@ -1,494 +0,0 @@ -/*gstinputstream.c - Header file for the GstClasspathPlugin - Copyright (C) 2007 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -#include <jni.h> -#include <jcl.h> - -#include <string.h> -#include <stdlib.h> - -#include <gdk/gdk.h> - -#include <glib.h> -#include <glib/gprintf.h> - -#include "gstinputstream.h" - -struct _GstInputStreamPrivate -{ - JavaVM *vm; - jobject *reader; - - gboolean eof; - guint8 *buffer; - long size; - long length; - - gboolean disposed; -}; - -#define INPUT_STREAM_GET_PRIVATE(o) \ - (G_TYPE_INSTANCE_GET_PRIVATE ((o), GST_TYPE_INPUT_STREAM, GstInputStreamPrivate)) - -/* properties */ - -enum -{ - ARG_0, - ARG_JVM, - ARG_READER -}; - -/* ***** */ - -static JNIEnv *gst_input_stream_get_jenv(GstInputStream *self); - -static void gst_input_stream_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec); - -static void gst_input_stream_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec); - -static void gst_input_stream_instance_init (GTypeInstance *instance, - gpointer g_class); - -static void gst_input_stream_class_init (gpointer g_class, - gpointer g_class_data); - -static GObject * -gst_input_stream_constructor (GType type, guint n_construct_properties, - GObjectConstructParam *construct_properties); - -static void -gst_input_stream_dispose (GObject *obj); - -static void -gst_input_stream_finalize (GObject *obj); - -/* ************************************************************************** */ - -/* class methods */ - -int -gst_input_stream_read (GstInputStream *self, int *data, int offset, - int length) -{ - /* TODO: cache */ - jmethodID _readID = NULL; - jclass InputStream = NULL; - - JNIEnv *env = NULL; - - int ret = -1; - jbyteArray buffer; - jbyte *bytes = NULL; - - if (self->priv->disposed || self->priv->vm == NULL || - self->priv->reader == NULL) - { - return -1; - } - - env = gst_input_stream_get_jenv (self); - if (env == NULL) - { - g_warning("GstInputStream::gst_input_stream_read failed to get java env"); - return -1; - } - - buffer = (*env)->NewByteArray (env, length); - if (buffer == NULL) - { - g_warning ("GstInputStream::gst_input_stream_read called, failed"); - return -1; - } - - InputStream = (*env)->GetObjectClass(env, self->priv->reader); - _readID = (*env)->GetMethodID(env, InputStream, "read", "([BII)I"); - if (_readID == NULL) - { - (*env)->DeleteLocalRef(env, buffer); - return -1; - } - - ret = (*env)->CallIntMethod (env, self->priv->reader, _readID, buffer, 0, - length); - if (ret == -1) - { - (*env)->DeleteLocalRef(env, buffer); - return ret; - } - - bytes = (*env)->GetByteArrayElements (env, buffer, NULL); - - /* copy bytes and release */ - memcpy (data + offset, bytes, ret); - - (*env)->ReleaseByteArrayElements (env, buffer, bytes, 0); - (*env)->DeleteLocalRef (env, buffer); - - return ret; -} - -gboolean -gst_input_stream_available (GstInputStream *self, guint64 *size) -{ - /* TODO: caching */ - - jmethodID _availableID = NULL; - jclass InputStream = NULL; - JNIEnv *env = NULL; - - if (self->priv->disposed || self->priv->vm == NULL || - self->priv->reader == NULL) - { - return FALSE; - } - - env = gst_input_stream_get_jenv(self); - if (env == NULL) - { - g_warning("GstInputStream::gst_input_stream_available failed to get java env"); - return FALSE; - } - - InputStream = (*env)->GetObjectClass(env, self->priv->reader); - _availableID = (*env)->GetMethodID(env, InputStream, "available", "()I"); - if (_availableID == NULL) - { - return FALSE; - } - - *size = (*env)->CallIntMethod (env, self->priv->reader, _availableID); - - return TRUE; -} - -void gst_input_stream_reset (GstInputStream *self) -{ - jmethodID _resetID = NULL; - jclass InputStream = NULL; - JNIEnv *env = NULL; - - if (self->priv->disposed || self->priv->vm == NULL || - self->priv->reader == NULL) - { - return; - } - - env = gst_input_stream_get_jenv(self); - if (env == NULL) - { - g_warning("GstInputStream::gst_input_stream_reset failed to get java env"); - return; - } - - InputStream = (*env)->GetObjectClass(env, self->priv->reader); - _resetID = (*env)->GetMethodID(env, InputStream, "reset", "()V"); - if (_resetID == NULL) - { - return; - } - - (*env)->CallVoidMethod (env, self->priv->reader, _resetID); -} - -long gst_input_stream_skip (GstInputStream *self, long size) -{ - jmethodID _seekID = NULL; - jclass InputStream = NULL; - JNIEnv *env = NULL; - - long skipped = -1; - - if (self->priv->disposed || self->priv->vm == NULL || - self->priv->reader == NULL) - { - return skipped; - } - - env = gst_input_stream_get_jenv(self); - if (env == NULL) - { - g_warning("GstInputStream::gst_input_stream_skip failed to get java env"); - return size; - } - - InputStream = (*env)->GetObjectClass(env, self->priv->reader); - _seekID = (*env)->GetMethodID(env, InputStream, "skip", "(J)J"); - if (_seekID == NULL) - { - return skipped; - } - - size = (*env)->CallIntMethod (env, self->priv->reader, _seekID, size); - if (size != 0) - { - return skipped; - } - - return skipped; -} - -gboolean gst_input_stream_can_seek (GstInputStream *self) -{ - if (gst_input_stream_skip(self, 0) != 0) - { - g_warning ("GstInputStream::gst_input_stream_can_seek CANNOT seek"); - return FALSE; - } - - return TRUE; -} - -/* ************************************************************************** */ - -/* getter and setter */ - -static void -gst_input_stream_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - GstInputStream *self = GST_INPUT_STREAM (object); - - switch (property_id) - { - case ARG_JVM: - { - self->priv->vm = g_value_get_pointer(value); - } - break; - - case ARG_READER: - { - self->priv->reader = g_value_get_pointer(value); - } - break; - - default: - /* We don't have any other property... */ - G_OBJECT_WARN_INVALID_PROPERTY_ID(object,property_id,pspec); - break; - } /* switch */ -} - -static void -gst_input_stream_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - GstInputStream *self = GST_INPUT_STREAM (object); - - switch (property_id) - { - case ARG_JVM: - { - g_value_set_pointer (value, self->priv->vm); - } - break; - - case ARG_READER: - { - g_value_set_pointer (value, self->priv->reader); - } - break; - - default: - /* We don't have any other property... */ - G_OBJECT_WARN_INVALID_PROPERTY_ID(object,property_id,pspec); - break; - } /* switch */ -} - -/* ************************************************************************** */ - -static void -gst_input_stream_instance_init (GTypeInstance *instance, - gpointer g_class __attribute__ ((unused))) -{ - GstInputStream *self = GST_INPUT_STREAM (instance); - - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_INPUT_STREAM, - GstInputStreamPrivate); - - self->priv->vm = NULL; - self->priv->reader = NULL; - self->priv->disposed = FALSE; - self->priv->eof = FALSE; - self->priv->buffer = NULL; - self->priv->size = 0; - self->priv->length = 0; -} - -static void -gst_input_stream_class_init (gpointer g_class, - gpointer g_class_data __attribute__ ((unused))) -{ - GObjectClass *gobject_class; - GstInputStreamClass *klass; - GObjectClass *parent_class; - - GParamSpec *pspec; - - gobject_class = G_OBJECT_CLASS (g_class); - klass = GST_INPUT_STREAM_CLASS (g_class); - gobject_class = G_OBJECT_CLASS (g_class); - - g_type_class_add_private (klass, sizeof (GstInputStreamPrivate)); - - gobject_class->set_property = gst_input_stream_set_property; - gobject_class->get_property = gst_input_stream_get_property; - gobject_class->dispose = gst_input_stream_dispose; - gobject_class->finalize = gst_input_stream_finalize; - gobject_class->constructor = gst_input_stream_constructor; - - parent_class = g_type_class_peek_parent (klass); - - /* register properties */ - pspec = g_param_spec_pointer (GST_ISTREAM_JVM, - "Set the java environment property", - "Set the java environment property", - G_PARAM_READWRITE); - g_object_class_install_property (gobject_class, ARG_JVM, pspec); - - pspec = g_param_spec_pointer (GST_ISTREAM_READER, - "Set the java reader property", - "Set the java reader property", - G_PARAM_READWRITE); - g_object_class_install_property (gobject_class, ARG_READER, pspec); - -} - -/* class constructors */ - -static GObject * -gst_input_stream_constructor (GType type, guint n_construct_properties, - GObjectConstructParam *construct_properties) -{ - GObject *obj; - GObjectClass *parent_class; - - /* parent */ - GstInputStreamClass *klass; - klass = GST_INPUT_STREAM_CLASS (g_type_class_peek (GST_TYPE_INPUT_STREAM)); - parent_class = g_type_class_peek_parent (klass); - obj = parent_class->constructor (type, n_construct_properties, - construct_properties); - return obj; -} - -static void -gst_input_stream_dispose (GObject *obj) -{ - GObjectClass *parent_class; - GstInputStream *self = GST_INPUT_STREAM (obj); - if (self->priv->disposed) - { - /* If dispose did already run, return. */ - return; - } - - /* Make sure dispose does not run twice. */ - self->priv->disposed = TRUE; - - if (self->priv->buffer != NULL) - g_free(self->priv->buffer); - - /* Chain up to the parent class */ - parent_class = g_type_class_peek_parent (GST_INPUT_STREAM_CLASS (obj)); - G_OBJECT_CLASS (parent_class)->dispose (obj); -} - -static void -gst_input_stream_finalize (GObject *obj) -{ - /* nothing else to do */ - GObjectClass *parent_class = - g_type_class_peek_parent (GST_INPUT_STREAM_CLASS (obj)); - G_OBJECT_CLASS (parent_class)->finalize (obj); -} - -static JNIEnv * -gst_input_stream_get_jenv(GstInputStream *self) -{ - void *env = NULL; - - if ((*self->priv->vm)->GetEnv(self->priv->vm, &env, JNI_VERSION_1_2) != JNI_OK) - { - if ((*self->priv->vm)->AttachCurrentThreadAsDaemon(self->priv->vm, - &env, NULL) < 0) - { - g_warning ("GstInputStream:- env not attached"); - return NULL; - } - } - - return (JNIEnv *) env; -} - -GType gst_input_stream_get_type (void) -{ - static GType type = 0; - - if (type == 0) - { - static const GTypeInfo info = { - sizeof (GstInputStreamClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - gst_input_stream_class_init, /* class_init */ - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (GstInputStream), - 0, /* n_preallocs */ - gst_input_stream_instance_init /* instance_init */ - }; - - type = g_type_register_static (G_TYPE_OBJECT, - "GstInputStreamType", - &info, 0); - } - - return type; -} diff --git a/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c b/libjava/classpath/native/jni/gstreamer-peer/gstreamer_io_peer.c index f5d52e8a4b4..7e38b91f8ad 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c +++ b/libjava/classpath/native/jni/gstreamer-peer/gstreamer_io_peer.c @@ -1,4 +1,5 @@ -/* GStreamerIOPeer.c -- Implements native methods for class GStreamerNativePeer +/* gstreamer_io_peer.c -- Implements native methods for class + GStreamerNativePeer Copyright (C) 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,12 +50,29 @@ #include "jcl.h" -#include "gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h" +#include "gst_peer.h" -#include "gstclasspathsrc.h" -#include "gstinputstream.h" +#include "gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h" -#define _GST_MALLOC_SIZE_ 256 +#include "gst_classpath_src.h" +#include "gst_input_stream.h" + +/* for caching */ +static jfieldID fileFID = NULL; +static jfieldID pointerDataID = NULL; + +static jfieldID mimetypeFID = NULL; +static jfieldID endiannessFID = NULL; +static jfieldID channelsFID = NULL; +static jfieldID rateFID = NULL; +static jfieldID widthFID = NULL; +static jfieldID depthFID = NULL; +static jfieldID isSignedFID = NULL; +static jfieldID nameFID = NULL; +static jfieldID layerFID = NULL; +static jfieldID bitrateFID = NULL; +static jfieldID framedFID = NULL; +static jfieldID typeFID = NULL; typedef struct _AudioProperties AudioProperties; struct _AudioProperties @@ -116,14 +134,12 @@ struct _AudioProperties const char *type; gboolean done; - }; /* ***** PRIVATE FUNCTIONS DECLARATION ***** */ static gboolean -set_strings (JNIEnv *env, const jclass GstHeader, - const AudioProperties *properties, jobject header); +set_strings (JNIEnv *env, const AudioProperties *properties, jobject header); static gboolean typefind_callback(GstElement *typefind, guint probability, const GstCaps *caps, @@ -134,7 +150,7 @@ element_added (GstBin *bin, GstElement *element, gpointer data); static void new_decoded_pad (GstElement *decoder, GstPad *pad, - gboolean last, GstElement *pipeline); + gboolean last, gpointer data); static gboolean fill_info (GstElement *decoder, AudioProperties *properties); @@ -146,8 +162,8 @@ static gchar * get_boolean_property (const GstStructure *structure, const gchar *property); static gboolean -set_string (JNIEnv *env, const jclass GstHeader, jobject header, - const char *field, const gchar *property); +set_string (JNIEnv *env, jobject header, jfieldID fieldID, + const gchar *property); static void free_properties (AudioProperties *properties); @@ -155,136 +171,97 @@ free_properties (AudioProperties *properties); static void reset_properties (AudioProperties *properties); +static jboolean process_audio (GstElement *source, JNIEnv *env, jobject header); + /* ***** END: PRIVATE FUNCTIONS DECLARATION ***** */ /* ***** NATIVE FUNCTIONS ***** */ -JNIEXPORT jboolean JNICALL -Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream - (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header __attribute__ ((unused)), - jobject jstream __attribute__ ((unused))) +JNIEXPORT void JNICALL +Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_init_1id_1cache + (JNIEnv *env, jclass clazz __attribute__ ((unused))) { - GstInputStream *istream = NULL; - JavaVM *vm = NULL; + jclass pointerClass = NULL; jclass GstHeader = NULL; + + GstHeader = JCL_FindClass(env, "gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader"); + fileFID = (*env)->GetFieldID(env, GstHeader, "file", "Ljava/lang/String;"); + + mimetypeFID = (*env)->GetFieldID(env, GstHeader, "mimetype", + "Ljava/lang/String;"); + endiannessFID = (*env)->GetFieldID(env, GstHeader, "endianness", + "Ljava/lang/String;"); + channelsFID = (*env)->GetFieldID(env, GstHeader, "channels", + "Ljava/lang/String;"); + rateFID = (*env)->GetFieldID(env, GstHeader, "rate", "Ljava/lang/String;"); + widthFID = (*env)->GetFieldID(env, GstHeader, "width", "Ljava/lang/String;"); + depthFID = (*env)->GetFieldID(env, GstHeader, "depth", "Ljava/lang/String;"); + isSignedFID = (*env)->GetFieldID(env, GstHeader, "isSigned", + "Ljava/lang/String;"); + nameFID = (*env)->GetFieldID(env, GstHeader, "name", "Ljava/lang/String;"); + layerFID = (*env)->GetFieldID(env, GstHeader, "layer", "Ljava/lang/String;"); + bitrateFID = (*env)->GetFieldID(env, GstHeader, "bitrate", + "Ljava/lang/String;"); + framedFID = (*env)->GetFieldID(env, GstHeader, "framed", + "Ljava/lang/String;"); + typeFID = (*env)->GetFieldID(env, GstHeader, "type", "Ljava/lang/String;"); + +#if SIZEOF_VOID_P == 8 + pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64"); + if (pointerClass != NULL) + { + pointerDataID = (*env)->GetFieldID (env, pointerClass, "data", "J"); + } +#else +# if SIZEOF_VOID_P == 4 + pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); + if (pointerClass != NULL) + { + pointerDataID = (*env)->GetFieldID(env, pointerClass, "data", "I"); + } +# else +# error "Pointer size is not supported." +# endif /* SIZEOF_VOID_P == 4 */ +#endif /* SIZEOF_VOID_P == 8 */ - GstElement *pipeline = NULL; +} - GstElement *typefind = NULL; - GstElement *decodebin = NULL; +JNIEXPORT jboolean JNICALL +Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream + (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header, + jobject pointer) +{ + GstInputStream *istream = NULL; GstElement *source = NULL; - - AudioProperties *properties = NULL; - - jboolean result = JNI_FALSE; - - GstHeader = (*env)->GetObjectClass(env, header); - + gboolean result = JNI_FALSE; + + if (header == NULL) + return JNI_FALSE; + + if (pointer == NULL) + return JNI_FALSE; + + gst_init (NULL, NULL); + + istream = (GstInputStream *) get_object_from_pointer (env, pointer, + pointerDataID); + if (istream == NULL) + return JNI_FALSE; + + /* init gstreamer */ gst_init (NULL, NULL); - properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties)); - if (properties == NULL) - { - g_warning ("unable to allocate memory for properties"); - return JNI_FALSE; - } - - /* create the GstInputStream object */ - istream = g_object_new (GST_TYPE_INPUT_STREAM, NULL); - if (istream == NULL) - { - free_properties (properties); - - g_warning ("unable to create an istream"); - return JNI_FALSE; - } - + /* SOURCE */ source = gst_element_factory_make ("classpathsrc", "source"); if (source == NULL) { - free_properties (properties); - g_free ((gpointer) istream); - g_warning ("unable to create a source"); return JNI_FALSE; } - - /* store the vm and the input stream in the gstinputstream class */ - (*env)->GetJavaVM(env, &vm); - g_object_set (G_OBJECT (istream), GST_ISTREAM_JVM, vm, - GST_ISTREAM_READER, jstream, - NULL); g_object_set (G_OBJECT (source), GST_CLASSPATH_SRC_ISTREAM, istream, NULL); - - pipeline = gst_pipeline_new ("pipe"); - if (pipeline == NULL) - { - gst_object_unref (GST_OBJECT (source)); - g_free ((gpointer) istream); - free_properties (properties); - - g_warning ("unable to create the pipeline"); - return JNI_FALSE; - } - decodebin = gst_element_factory_make ("decodebin", "decodebin"); - if (decodebin == NULL) - { - gst_object_unref (GST_OBJECT (source)); - - g_free ((gpointer) istream); - free_properties(properties); - - gst_object_unref(GST_OBJECT(pipeline)); - - g_warning ("unable to create decodebin"); - return JNI_FALSE; - } - - g_signal_connect (decodebin, "new-decoded-pad", G_CALLBACK (new_decoded_pad), - pipeline); - - gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL); - gst_element_link (source, decodebin); - - typefind = gst_bin_get_by_name (GST_BIN (decodebin), "typefind"); - if (typefind == NULL) - { - g_free ((gpointer) istream); - free_properties(properties); - - gst_object_unref(GST_OBJECT(pipeline)); - - g_warning ("unable to create decodebin"); - return JNI_FALSE; - } - - g_signal_connect (G_OBJECT (typefind), "have-type", - G_CALLBACK (typefind_callback), properties); - - gst_element_set_state (GST_ELEMENT(pipeline), GST_STATE_PLAYING); - if (gst_element_get_state (pipeline, NULL, NULL, 100000) == - GST_STATE_CHANGE_FAILURE) - { - g_free ((gpointer) istream); - free_properties(properties); - gst_object_unref(GST_OBJECT(pipeline)); - - g_warning ("Failed to go into PLAYING state"); - return JNI_FALSE; - } - - result = JNI_FALSE; - if (fill_info (decodebin, properties)) - { - result = set_strings (env, GstHeader, properties, header); - } + result = process_audio (source, env, header); - gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL); - - gst_object_unref (GST_OBJECT(pipeline)); - free_properties (properties); - return result; } @@ -292,67 +269,71 @@ JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header) { - /* will contain the properties we need to put into the given GstHeader */ - AudioProperties *properties = NULL; - /* source file */ const char *file = NULL; /* GStreamer elements */ - GstElement *pipeline = NULL; GstElement *source = NULL; - GstElement *decoder = NULL; - - GstElement *typefind = NULL; - - GstStateChangeReturn res; jboolean result = JNI_FALSE; /* java fields */ - jfieldID _fid = NULL; - jclass GstHeader = NULL; jstring _file = NULL; - GstHeader = (*env)->GetObjectClass(env, header); - _fid = (*env)->GetFieldID(env, GstHeader, "file", "Ljava/lang/String;"); - if (_fid == NULL) - { - return JNI_FALSE; /* failed to find the field */ - } - - _file = (*env)->GetObjectField(env, header, _fid); + _file = (*env)->GetObjectField(env, header, fileFID); file = JCL_jstring_to_cstring (env, _file); if (file == NULL) { return JNI_FALSE; } - - gst_init (NULL, NULL); - - properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties)); - if (properties == NULL) - { - free_properties (properties); - JCL_free_cstring (env, _file, file); - return JNI_FALSE; - } - - /* this is not really needed */ - reset_properties(properties); + gst_init (NULL, NULL); + /* create the source element, will be used to read the file */ source = gst_element_factory_make ("filesrc", "source"); if (source == NULL) { - free_properties (properties); JCL_free_cstring (env, _file, file); return JNI_FALSE; } /* set the file name */ g_object_set (G_OBJECT (source), "location", file, NULL); + + result = process_audio (source, env, header); + + /* free stuff */ + JCL_free_cstring (env, _file, file); + + return result; +} + +/* ***** END: NATIVE FUNCTIONS ***** */ + +/* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */ + +static jboolean process_audio (GstElement *source, JNIEnv *env, jobject header) +{ + /* will contain the properties we need to put into the given GstHeader */ + AudioProperties *properties = NULL; + + /* GStreamer elements */ + GstElement *pipeline = NULL; + GstElement *decoder = NULL; + + GstElement *typefind = NULL; + + GstStateChangeReturn res; + + jboolean result = JNI_FALSE; + properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties)); + if (properties == NULL) + { + return result; + } + reset_properties(properties); + /* * create the decoder element, this will decode the stream and retrieve * its properties. @@ -363,30 +344,23 @@ Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer decoder = gst_element_factory_make ("decodebin", "decoder"); if (decoder == NULL) { - gst_object_unref (GST_OBJECT (source)); free_properties(properties); - - JCL_free_cstring (env, _file, file); - return JNI_FALSE; + return result; } - g_signal_connect (decoder, "new-decoded-pad", G_CALLBACK (new_decoded_pad), - pipeline); - g_signal_connect (G_OBJECT (decoder), "element-added", - G_CALLBACK (element_added), properties); - /* now, we create a pipeline and fill it with the other elements */ pipeline = gst_pipeline_new ("pipeline"); if (pipeline == NULL) { - gst_object_unref (GST_OBJECT (source)); gst_object_unref (GST_OBJECT (decoder)); - - free_properties(properties); - - JCL_free_cstring (env, _file, file); - return JNI_FALSE; + free_properties(properties); + return result; } + + g_signal_connect (decoder, "new-decoded-pad", G_CALLBACK (new_decoded_pad), + pipeline); + g_signal_connect (G_OBJECT (decoder), "element-added", + G_CALLBACK (element_added), properties); /* * we get the typefind from the decodebin to catch the additional properties @@ -412,58 +386,51 @@ Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer * now, we set the pipeline playing state to pause and traverse it * to get the info we need. */ - + res = gst_element_set_state (pipeline, GST_STATE_PAUSED); if (res == GST_STATE_CHANGE_FAILURE) { - JCL_free_cstring (env, _file, file); gst_element_set_state (pipeline, GST_STATE_NULL); gst_object_unref (GST_OBJECT (pipeline)); free_properties(properties); - return JNI_FALSE; + return result; } - /* (GstClockTime) 300000000 ? */ res = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE); if (res != GST_STATE_CHANGE_SUCCESS) { - JCL_free_cstring (env, _file, file); gst_element_set_state (pipeline, GST_STATE_NULL); gst_object_unref (GST_OBJECT (pipeline)); free_properties(properties); - return JNI_FALSE; + return result; } - result = JNI_FALSE; if (fill_info (decoder, properties)) { - result = set_strings (env, GstHeader, properties, header); + result = set_strings (env, properties, header); } - + /* free stuff */ - JCL_free_cstring (env, _file, file); gst_element_set_state (pipeline, GST_STATE_NULL); + + free_properties (properties); gst_object_unref (GST_OBJECT (pipeline)); - - free_properties (properties); - + return result; } -/* ***** END: NATIVE FUNCTIONS ***** */ -/* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */ static gboolean typefind_callback(GstElement *typefind __attribute__ ((unused)), guint probability __attribute__ ((unused)), const GstCaps *caps, gpointer data) { - GstStructure *structure = NULL; + GstStructure *structure = NULL; AudioProperties *properties = NULL; const char *mpeg = NULL; @@ -494,14 +461,21 @@ static void new_decoded_pad (GstElement *decoder __attribute__ ((unused)), GstPad *pad, gboolean last __attribute__ ((unused)), - GstElement *pipeline) + gpointer data) { + GstElement *pipeline = NULL; GstElement *fakesink = NULL; GstPad *sinkpad = NULL; + pipeline = (GstElement *) data; + if (pipeline == NULL) + return; + fakesink = gst_element_factory_make ("fakesink", NULL); + if (fakesink == NULL) + return; + gst_bin_add (GST_BIN (pipeline), fakesink); - sinkpad = gst_element_get_pad (fakesink, "sink"); if (GST_PAD_LINK_FAILED (gst_pad_link (pad, sinkpad))) { @@ -514,8 +488,7 @@ new_decoded_pad (GstElement *decoder __attribute__ ((unused)), } static gboolean -set_strings (JNIEnv *env, const jclass GstHeader, - const AudioProperties *properties, jobject header) +set_strings (JNIEnv *env, const AudioProperties *properties, jobject header) { gboolean result = FALSE; @@ -525,34 +498,34 @@ set_strings (JNIEnv *env, const jclass GstHeader, */ /* now, map our properties to the java class */ - set_string (env, GstHeader, header, "mimetype", properties->mimetype); + set_string (env, header, mimetypeFID, properties->mimetype); - if (set_string (env, GstHeader, header, "endianness", - properties->endianness)) result = JNI_TRUE; + if (set_string (env, header, endiannessFID, properties->endianness)) + result = JNI_TRUE; - if (set_string (env, GstHeader, header, "channels", - properties->channels)) result = JNI_TRUE; + if (set_string (env, header, channelsFID, properties->channels)) + result = JNI_TRUE; - if (set_string (env, GstHeader, header, "rate", - properties->rate)) result = JNI_TRUE; + if (set_string (env, header, rateFID, properties->rate)) + result = JNI_TRUE; - if (set_string (env, GstHeader, header, "width", - properties->width)) result = JNI_TRUE; + if (set_string (env, header, widthFID, properties->width)) + result = JNI_TRUE; - if (set_string (env, GstHeader, header, "depth", - properties->depth)) result = JNI_TRUE; + if (set_string (env, header, depthFID, properties->depth)) + result = JNI_TRUE; - if (set_string (env, GstHeader, header, "isSigned", - properties->signess)) result = JNI_TRUE; + if (set_string (env, header, isSignedFID, properties->signess)) + result = JNI_TRUE; - if (set_string (env, GstHeader, header, "name", - properties->name)) result = JNI_TRUE; + if (set_string (env, header, nameFID, properties->name)) + result = JNI_TRUE; /* non primary properties */ - set_string (env, GstHeader, header, "layer", properties->layer); - set_string (env, GstHeader, header, "bitrate", properties->bitrate); - set_string (env, GstHeader, header, "framed", properties->framed); - set_string (env, GstHeader, header, "type", properties->type); + set_string (env, header, layerFID, properties->layer); + set_string (env, header, bitrateFID, properties->bitrate); + set_string (env, header, framedFID, properties->framed); + set_string (env, header, typeFID, properties->type); return result; } @@ -562,7 +535,7 @@ static gboolean fill_info (GstElement *decoder, AudioProperties *properties) GstIterator *it = NULL; gpointer data = NULL; gboolean result = FALSE; - + it = gst_element_iterate_src_pads (decoder); while (gst_iterator_next (it, &data) == GST_ITERATOR_OK) { @@ -638,12 +611,15 @@ static gboolean fill_info (GstElement *decoder, AudioProperties *properties) gst_caps_unref (caps); gst_object_unref (pad); } - + return result; } -static void free_properties (AudioProperties *properties) +static void +free_properties (AudioProperties *properties __attribute__ ((unused))) { + /* FIXME this causes a segfault, a string not allocated by us? double free? */ + /* if (properties->name != NULL) g_free((gpointer) properties->name); if (properties->endianness != NULL) g_free((gpointer) properties->endianness); if (properties->channels != NULL) g_free((gpointer) properties->channels); @@ -655,6 +631,7 @@ static void free_properties (AudioProperties *properties) if (properties->framed != NULL) g_free((gpointer) properties->framed); if (properties != NULL) g_free ((gpointer) properties); + */ } static void reset_properties (AudioProperties *properties) @@ -730,38 +707,28 @@ static gchar *get_boolean_property (const GstStructure *structure, return result; } -static gboolean set_string (JNIEnv *env, const jclass GstHeader, - jobject header, - const char *field, +static gboolean set_string (JNIEnv *env, jobject header, jfieldID fieldID, const gchar *property) -{ - jfieldID _fid = NULL; +{ jstring property_string_field = NULL; - if (property == NULL || field == NULL || header == NULL || GstHeader == NULL) + if (property == NULL || header == NULL) { return JNI_FALSE; } - _fid = (*env)->GetFieldID(env, GstHeader, field, "Ljava/lang/String;"); - if (_fid == NULL) - { - return JNI_FALSE; /* failed to find the field */ - } - property_string_field = (*env)->NewStringUTF(env, property); if (property_string_field == NULL) { return JNI_FALSE; } - (*env)->SetObjectField(env, header, _fid, property_string_field); + (*env)->SetObjectField(env, header, fieldID, property_string_field); return JNI_TRUE; } -static void -element_added (GstBin *bin, GstElement *element, gpointer data) +static void element_added (GstBin *bin, GstElement *element, gpointer data) { GstElementFactory *factory; diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in index 337b6761757..29c57adeea2 100644 --- a/libjava/classpath/native/jni/gtk-peer/Makefile.in +++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -194,7 +196,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -206,19 +207,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -250,15 +240,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -306,10 +293,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c index 141e83792d2..2689e37c21f 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c @@ -41,10 +41,8 @@ exception statement from your version. */ #include "gnu_java_awt_peer_gtk_CairoGraphics2D.h" #include <gdk/gdktypes.h> #include <gdk/gdkprivate.h> -#include <gdk/gdkx.h> #include <cairo-ft.h> -#include <cairo-xlib.h> #include <stdio.h> #include <stdlib.h> diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c index 839153a1513..23340fb5b95 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c @@ -37,8 +37,6 @@ exception statement from your version. */ #include "jcl.h" #include "gtkpeer.h" -#include <cairo-xlib.h> -#include <gdk/gdkx.h> #include "gnu_java_awt_peer_gtk_CairoSurface.h" #include "cairographics2d.h" diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c index 9de0d7b95f1..3364640a00c 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c @@ -37,21 +37,22 @@ exception statement from your version. */ #include "jcl.h" #include "gtkpeer.h" -#include <cairo-xlib.h> #include <gdk/gdktypes.h> #include <gdk/gdkprivate.h> -#include <gdk/gdkx.h> -#include <X11/extensions/Xrender.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixdata.h> #include <cairo-ft.h> -#include <cairo-xlib.h> #include <stdio.h> #include <stdlib.h> +#if HAVE_XRENDER +#include <gdk/gdkx.h> +#include <X11/extensions/Xrender.h> +#endif + #include "gnu_java_awt_peer_gtk_ComponentGraphics.h" #include "cairographics2d.h" @@ -62,7 +63,7 @@ static gboolean flush (gpointer data __attribute__((unused))) { gdk_threads_enter (); - XFlush (GDK_DISPLAY ()); + gdk_display_flush (gdk_display_get_default ()); flush_scheduled = 0; gdk_threads_leave (); @@ -107,7 +108,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender { #if HAVE_XRENDER int ev = 0, err = 0; - if( XRenderQueryExtension (GDK_DISPLAY (), &ev, &err) ) + if( XRenderQueryExtension (GDK_DISPLAY(), &ev, &err) ) return JNI_TRUE; #endif return JNI_FALSE; @@ -118,13 +119,8 @@ JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState (JNIEnv *env, jobject obj __attribute__ ((unused)), jobject peer) { - Drawable draw; - Display * dpy; - Visual * vis; GdkDrawable *drawable; - cairo_surface_t *surface; - GdkWindow *win; - GtkWidget *widget = NULL; + GtkWidget *widget; int width, height; cairo_t *cr; void *ptr; @@ -137,29 +133,15 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState widget = GTK_WIDGET (ptr); g_assert (widget != NULL); - cp_gtk_grab_current_drawable (widget, &drawable, &win); + drawable = widget->window; g_assert (drawable != NULL); width = widget->allocation.width; height = widget->allocation.height; - g_assert (drawable != NULL); + cr = gdk_cairo_create(drawable); - draw = gdk_x11_drawable_get_xid(drawable); - g_assert (draw != (XID) 0); - - dpy = gdk_x11_drawable_get_xdisplay(drawable); - g_assert (dpy != NULL); - - vis = gdk_x11_visual_get_xvisual(gdk_drawable_get_visual(drawable)); - g_assert (vis != NULL); - - surface = cairo_xlib_surface_create (dpy, draw, vis, width, height); - g_assert (surface != NULL); - - cr = cairo_create (surface); g_assert(cr != NULL); - cairo_surface_destroy(surface); gdk_threads_leave(); @@ -169,13 +151,9 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)), - jlong ptr, jint width, jint height) + jlong ptr) { - Drawable draw; - Display * dpy; - Visual * vis; GdkDrawable *drawable; - cairo_surface_t *surface; cairo_t *cr; gdk_threads_enter(); @@ -183,21 +161,8 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile drawable = JLONG_TO_PTR(GdkDrawable, ptr); g_assert (drawable != NULL); - draw = gdk_x11_drawable_get_xid(drawable); - g_assert (draw != (XID) 0); - - dpy = gdk_x11_drawable_get_xdisplay(drawable); - g_assert (dpy != NULL); - - vis = gdk_x11_visual_get_xvisual(gdk_drawable_get_visual(drawable)); - g_assert (vis != NULL); - - surface = cairo_xlib_surface_create (dpy, draw, vis, width, height); - g_assert (surface != NULL); - - cr = cairo_create (surface); + cr = gdk_cairo_create (drawable); g_assert(cr != NULL); - cairo_surface_destroy(surface); gdk_threads_leave(); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c index 7ce93b0a7a5..df700f55952 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c @@ -37,16 +37,13 @@ exception statement from your version. */ #include "jcl.h" #include "gtkpeer.h" -#include <cairo-xlib.h> #include <gdk/gdktypes.h> #include <gdk/gdkprivate.h> -#include <gdk/gdkx.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixdata.h> #include <cairo-ft.h> -#include <cairo-xlib.h> #include <stdio.h> #include <stdlib.h> diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c index 7389fa3a460..4240f112e30 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c @@ -37,8 +37,13 @@ exception statement from your version. */ #include "gtkpeer.h" #include "gnu_java_awt_peer_gtk_GdkRobotPeer.h" + +#ifdef HAVE_XTEST #include <gdk/gdkx.h> #include <X11/extensions/XTest.h> +#endif + +#ifdef HAVE_XTEST static int awt_button_mask_to_num (int buttons) @@ -56,10 +61,15 @@ awt_button_mask_to_num (int buttons) return 0; } +#endif + JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_initXTest (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused))) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; int event_basep; @@ -82,12 +92,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_initXTest gdk_threads_leave (); return result; + +#else + + return JNI_FALSE; + +#endif + } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint x, jint y) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; int result; @@ -104,12 +124,23 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove XFlush (xdisplay); gdk_threads_leave (); + +#else + + (void) x; // Unused. + (void) y; // Unused. + +#endif + } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; int result; @@ -126,12 +157,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress XFlush (xdisplay); gdk_threads_leave (); + +#else + + (void) buttons; // Unused. + +#endif + } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; int result; @@ -148,12 +189,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease XFlush (xdisplay); gdk_threads_leave (); + +#else + + (void) buttons; // Unused. + +#endif + } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseWheel (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint wheelAmt) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; int i = 0; @@ -187,12 +238,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseWheel XFlush (xdisplay); gdk_threads_leave (); + +#else + + (void) wheelAmt; // Unused. + +#endif + } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; GdkKeymapKey *keymap_keys = NULL; @@ -232,12 +293,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress XFlush (xdisplay); gdk_threads_leave (); + +#else + + (void) keycode; // Unused. + +#endif + } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode) { + +#ifdef HAVE_XTEST + GdkDisplay *display; Display *xdisplay; GdkKeymapKey *keymap_keys = NULL; @@ -277,6 +348,13 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease XFlush (xdisplay); gdk_threads_leave (); + +#else + + (void) keycode; // Unused. + +#endif + } JNIEXPORT jintArray JNICALL @@ -284,6 +362,9 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_nativeGetRGBPixels (JNIEnv *env, jobject obj __attribute__((unused)), jint x, jint y, jint width, jint height) { + +#ifdef HAVE_XTEST + jint stride_bytes, stride_pixels, n_channels, n_pixels; jintArray jpixels; jint *java_pixels; @@ -334,4 +415,16 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_nativeGetRGBPixels gdk_threads_leave (); return jpixels; + +#else + + (void) env; + (void) x; + (void) y; + (void) width; + (void) height; + return NULL; + +#endif + } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c index 8dbf25a5ae7..5de5d82a6c1 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c @@ -517,19 +517,27 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen (JNIEnv * env, jobject obj, jintArray jpoint) { + gdk_threads_enter(); + + Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked + (env, obj, jpoint); + + gdk_threads_leave(); + +} +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked + (JNIEnv * env, jobject obj, jintArray jpoint) +{ void *ptr; jint *point; - gdk_threads_enter (); - ptr = gtkpeer_get_widget (env, obj); point = (*env)->GetIntArrayElements (env, jpoint, 0); gdk_window_get_root_origin (get_widget(GTK_WIDGET (ptr))->window, point, point+1); (*env)->ReleaseIntArrayElements(env, jpoint, point, 0); - - gdk_threads_leave (); } /* @@ -539,12 +547,22 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen (JNIEnv * env, jobject obj, jintArray jpoint) { + gdk_threads_enter(); + + Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked + (env, obj, jpoint); + + gdk_threads_leave(); +} + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked + (JNIEnv * env, jobject obj, jintArray jpoint) +{ void *ptr; jint *point; GtkWidget *widget; - gdk_threads_enter (); - ptr = gtkpeer_get_widget (env, obj); point = (*env)->GetIntArrayElements (env, jpoint, 0); @@ -557,8 +575,6 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen *(point+1) += GTK_WIDGET(ptr)->allocation.y; (*env)->ReleaseIntArrayElements(env, jpoint, point, 0); - - gdk_threads_leave (); } /* diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c index ae7027e76fb..c2fbba21283 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c @@ -37,8 +37,6 @@ exception statement from your version. */ #include "jcl.h" #include "gtkpeer.h" -#include <cairo-xlib.h> -#include <gdk/gdkx.h> #include "gnu_java_awt_peer_gtk_GtkImage.h" diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c index 1186f659c15..b2097970cb6 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c @@ -40,7 +40,6 @@ exception statement from your version. */ #include "gtkpeer.h" #include "gnu_java_awt_peer_gtk_GtkToolkit.h" #include "jcl.h" -#include <gdk/gdkx.h> #define RC_FILE ".classpath-gtkrc" @@ -184,10 +183,6 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env, gtk_widget_set_default_colormap (gdk_rgb_get_colormap ()); - /* Make sure queued calls don't get sent to GTK/GDK while - we're shutting down. */ - atexit (gdk_threads_enter); - if ((homedir = getenv ("HOME"))) { rcpath = (char *) g_malloc (strlen (homedir) + strlen (RC_FILE) + 2); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c index e3edf1fb542..50197cab07e 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c @@ -37,10 +37,8 @@ exception statement from your version. */ #include "jcl.h" #include "gtkpeer.h" -#include <gdk/gdkx.h> #include <gdk/gdktypes.h> #include <gdk/gdkprivate.h> -#include <gdk/gdkx.h> #include <gdk-pixbuf/gdk-pixbuf.h> #include <gdk-pixbuf/gdk-pixdata.h> diff --git a/libjava/classpath/native/jni/gtk-peer/gtkpeer.c b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c index c99fc48f90f..b57626e94e5 100644 --- a/libjava/classpath/native/jni/gtk-peer/gtkpeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c @@ -102,11 +102,13 @@ void gtkpeer_init_pointer_IDs(JNIEnv* env) #else #if SIZEOF_VOID_P == 4 pointerClass = (*env)->FindClass(env, "gnu/classpath/Pointer32"); - pointerDataFID = (*env)->GetFieldID(env, pointerClass, "data", "I"); - - /* Find the Pointer32 constructor. */ - pointerConstructorMID = (*env)->GetMethodID(env, pointerClass, "<init>", - "(I)V"); + if (pointerClass != NULL) + { + pointerClass = (*env)->NewGlobalRef (env, pointerClass); + pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "I"); + pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>", + "(I)V"); + } #else #error "Pointer size is not supported." #endif /* SIZEOF_VOID_P == 4 */ diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in index 04bf44dab0c..89708d922ff 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.in +++ b/libjava/classpath/native/jni/java-io/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -158,7 +160,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -170,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -214,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -270,10 +257,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/java-io/java_io_VMFile.c b/libjava/classpath/native/jni/java-io/java_io_VMFile.c index 2882075bb09..e79704fa672 100644 --- a/libjava/classpath/native/jni/java-io/java_io_VMFile.c +++ b/libjava/classpath/native/jni/java-io/java_io_VMFile.c @@ -334,6 +334,94 @@ Java_java_io_VMFile_setExecutable (JNIEnv *env, return set_file_permissions (env, name, executable, ownerOnly, CPFILE_FLAG_EXEC); } + +/*************************************************************************/ + +JNIEXPORT jlong JNICALL +Java_java_io_VMFile_getTotalSpace (JNIEnv *env, + jclass clazz __attribute__ ((__unused__)), + jstring path) +{ +#ifndef WITHOUT_FILESYSTEM + + jlong result; + const char *_path = NULL; + + _path = (*env)->GetStringUTFChars (env, path, 0); + if (_path == NULL) + { + return 0L; + } + + result = cpio_df (_path, TOTAL); + + (*env)->ReleaseStringUTFChars (env, path, _path); + + return result; + +#else /* not WITHOUT_FILESYSTEM */ + return 0L; +#endif /* not WITHOUT_FILESYSTEM */ +} + +/*************************************************************************/ + +JNIEXPORT jlong JNICALL +Java_java_io_VMFile_getFreeSpace (JNIEnv *env, + jclass clazz __attribute__ ((__unused__)), + jstring path) +{ +#ifndef WITHOUT_FILESYSTEM + + jlong result; + const char *_path = NULL; + + _path = (*env)->GetStringUTFChars (env, path, 0); + if (_path == NULL) + { + return 0L; + } + + result = cpio_df (_path, FREE); + + (*env)->ReleaseStringUTFChars (env, path, _path); + + return result; + +#else /* not WITHOUT_FILESYSTEM */ + return 0L; +#endif /* not WITHOUT_FILESYSTEM */ +} + +/*************************************************************************/ + +JNIEXPORT jlong JNICALL +Java_java_io_VMFile_getUsableSpace (JNIEnv *env, + jclass clazz __attribute__ ((__unused__)), + jstring path) +{ +#ifndef WITHOUT_FILESYSTEM + + jlong result; + const char *_path = NULL; + + _path = (*env)->GetStringUTFChars (env, path, 0); + if (_path == NULL) + { + return 0L; + } + + result = cpio_df (_path, USABLE); + + (*env)->ReleaseStringUTFChars (env, path, _path); + + return result; + +#else /* not WITHOUT_FILESYSTEM */ + return 0L; +#endif /* not WITHOUT_FILESYSTEM */ +} + /*************************************************************************/ /* diff --git a/libjava/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c b/libjava/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c index 8c2556bcf30..f5d785ecdbc 100644 --- a/libjava/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c +++ b/libjava/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c @@ -175,7 +175,7 @@ getFieldReference (JNIEnv * env, jobject field, const char *type) * If it isn't an array class then the actual field type descriptor * starts with 'L', ends with ';' and has '/' instead of '.'. */ - type_len = strlen ((char *) type_name); + type_len = strlen (type_name); if (type_name[0] != '[') { /* XXX - FIXME - should not use dynamic allocation in core lib. */ diff --git a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in index daaf9d00abf..aa3196a8aa4 100644 --- a/libjava/classpath/native/jni/java-lang/Makefile.in +++ b/libjava/classpath/native/jni/java-lang/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -172,7 +174,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -184,19 +185,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -228,15 +218,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -284,10 +271,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c b/libjava/classpath/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c index 68e89b36abb..d6f99ae9f82 100644 --- a/libjava/classpath/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c +++ b/libjava/classpath/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c @@ -37,7 +37,12 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ #include <config.h> + +#if defined HAVE_SYS_LOADAVG_H /* Get getloadavg() on Solaris 9 */ +#include <sys/loadavg.h> +#else #include <stdlib.h> +#endif #include "gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h" diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c b/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c index 723f0903221..e915a3089a0 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c @@ -112,16 +112,15 @@ Java_java_lang_VMDouble_initIDs (JNIEnv * env, jclass cls __attribute__ ((__unus /* * Class: java_lang_VMDouble - * Method: doubleToLongBits + * Method: doubleToRawLongBits * Signature: (D)J */ JNIEXPORT jlong JNICALL -Java_java_lang_VMDouble_doubleToLongBits +Java_java_lang_VMDouble_doubleToRawLongBits (JNIEnv * env __attribute__ ((__unused__)), jclass cls __attribute__ ((__unused__)), jdouble doubleValue) { jvalue val; - jlong e, f; val.d = doubleValue; @@ -135,33 +134,6 @@ Java_java_lang_VMDouble_doubleToLongBits val.j = SWAP_DOUBLE(val.j); #endif - e = val.j & 0x7ff0000000000000LL; - f = val.j & 0x000fffffffffffffLL; - - if (e == 0x7ff0000000000000LL && f != 0L) - val.j = 0x7ff8000000000000LL; - - return val.j; -} - -/* - * Class: java_lang_VMDouble - * Method: doubleToRawLongBits - * Signature: (D)J - */ -JNIEXPORT jlong JNICALL -Java_java_lang_VMDouble_doubleToRawLongBits - (JNIEnv * env __attribute__ ((__unused__)), - jclass cls __attribute__ ((__unused__)), jdouble doubleValue) -{ - jvalue val; - - val.d = doubleValue; - -#if defined(__IEEE_BYTES_LITTLE_ENDIAN) - val.j = SWAP_DOUBLE(val.j); -#endif - return val.j; } @@ -468,7 +440,7 @@ Java_java_lang_VMDouble_parseDouble return val; } - buf = (char *) (*env)->GetStringUTFChars (env, str, &isCopy); + buf = (*env)->GetStringUTFChars (env, str, &isCopy); if (buf == NULL) { /* OutOfMemoryError already thrown */ diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMFloat.c b/libjava/classpath/native/jni/java-lang/java_lang_VMFloat.c index 7bff629fc89..acd07ffa534 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMFloat.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMFloat.c @@ -42,28 +42,6 @@ exception statement from your version. */ /* * Class: java_lang_VMFloat - * Method: floatToIntBits - * Signature: (F)I - */ -JNIEXPORT jint JNICALL -Java_java_lang_VMFloat_floatToIntBits - (JNIEnv * env __attribute__ ((__unused__)), - jclass cls __attribute__ ((__unused__)), jfloat value) -{ - jvalue u; - jint e, f; - u.f = value; - e = u.i & 0x7f800000; - f = u.i & 0x007fffff; - - if (e == 0x7f800000 && f != 0) - u.i = 0x7fc00000; - - return u.i; -} - -/* - * Class: java_lang_VMFloat * Method: floatToRawIntBits * Signature: (F)I */ diff --git a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in index 16c386ee241..a4f09e9981b 100644 --- a/libjava/classpath/native/jni/java-net/Makefile.in +++ b/libjava/classpath/native/jni/java-net/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -168,7 +170,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -180,19 +181,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -224,15 +214,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -280,10 +267,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c index a59604c04af..c9620a4e766 100644 --- a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c +++ b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c @@ -51,7 +51,9 @@ exception statement from your version. */ #endif #include <netinet/in.h> #include <netinet/tcp.h> +#ifdef HAVE_NET_IF_H #include <net/if.h> +#endif #include <errno.h> #include <stdlib.h> #include <stdio.h> @@ -416,7 +418,7 @@ Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env, #ifdef HAVE_INET6 int result; const char *str_ifname = JCL_jstring_to_cstring (env, ifname); - u_int if_index; + unsigned int if_index; if ((*env)->ExceptionOccurred (env)) { @@ -433,7 +435,7 @@ Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env, } result = setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF, - (u_int *) &if_index, sizeof(if_index)); + (unsigned int *) &if_index, sizeof(if_index)); JCL_free_cstring(env, ifname, str_ifname); diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c index f2b2f8e63b8..288653d51f0 100644 --- a/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c +++ b/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c @@ -35,8 +35,9 @@ this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ - +#ifndef _GNU_SOURCE #define _GNU_SOURCE +#endif #include "config.h" diff --git a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c index 43f2d9146dd..6ee7773b839 100644 --- a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c +++ b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c @@ -225,7 +225,7 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env, result = cpnet_getHostByName (env, hostname, &addresses, &addresses_count); if (result != CPNATIVE_OK || addresses_count == 0) { - JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, (char *) hostname); + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, hostname); return (jobjectArray) NULL; } (*env)->ReleaseStringUTFChars (env, host, hostname); diff --git a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in index 561c04b0aec..14bee4f1201 100644 --- a/libjava/classpath/native/jni/java-nio/Makefile.in +++ b/libjava/classpath/native/jni/java-nio/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -166,7 +168,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -178,19 +179,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -222,15 +212,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -278,10 +265,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c index d794e6d9fea..39161d68e3c 100644 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c @@ -44,6 +44,8 @@ exception statement from your version. */ #include <sys/epoll.h> #endif /* HAVE_SYS_EPOLL_H */ +#include <config-int.h> + #include <gnu_java_nio_EpollSelectorImpl.h> #include <jcl.h> #include <errno.h> diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c index a5bbd71262c..7899f0b9407 100644 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c @@ -43,7 +43,9 @@ exception statement from your version. */ #include <config-int.h> #include <sys/types.h> +#ifdef HAVE_SYS_MMAN_H #include <sys/mman.h> +#endif #include <sys/socket.h> #include <sys/stat.h> #include <sys/uio.h> diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c index 74a408c7572..19a6f244de0 100644 --- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c +++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c @@ -41,8 +41,9 @@ exception statement from your version. */ #if defined(HAVE_SYS_TYPES_H) #include <sys/types.h> #endif - +#if defined(HAVE_SYS_SELECT_H) #include <sys/select.h> +#endif #include <sys/time.h> #include <string.h> diff --git a/libjava/classpath/native/jni/java-nio/javanio.c b/libjava/classpath/native/jni/java-nio/javanio.c index 09806f8bad4..a7018b347e1 100644 --- a/libjava/classpath/native/jni/java-nio/javanio.c +++ b/libjava/classpath/native/jni/java-nio/javanio.c @@ -45,7 +45,9 @@ exception statement from your version. */ #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> +#ifdef HAVE_SYS_SELECT_H #include <sys/select.h> +#endif #include <sys/uio.h> CPNIO_EXPORT ssize_t diff --git a/libjava/classpath/native/jni/java-nio/javanio.h b/libjava/classpath/native/jni/java-nio/javanio.h index bdd11055ea8..cc31cf3c1e3 100644 --- a/libjava/classpath/native/jni/java-nio/javanio.h +++ b/libjava/classpath/native/jni/java-nio/javanio.h @@ -39,6 +39,8 @@ exception statement from your version. */ #ifndef __JAVANIO_H__ #define __JAVANIO_H__ +#include <sys/time.h> + /** * This header defines functions that are called by our JNI reference * implementation of java.nio.*. In our reference implementation, these diff --git a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in index 3d52893c4cc..c71dc8ba004 100644 --- a/libjava/classpath/native/jni/java-util/Makefile.in +++ b/libjava/classpath/native/jni/java-util/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -155,7 +157,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -167,19 +168,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -211,15 +201,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -267,10 +254,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in index 3b5f5092f5d..0c3af666863 100644 --- a/libjava/classpath/native/jni/midi-alsa/Makefile.in +++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -158,7 +160,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -170,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -214,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -270,10 +257,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in index 6412ac7e855..160d769df88 100644 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.in +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -158,7 +160,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -170,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -214,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -270,10 +257,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/native-lib/Makefile.am b/libjava/classpath/native/jni/native-lib/Makefile.am index 59be5ce7475..0de723eb1f5 100644 --- a/libjava/classpath/native/jni/native-lib/Makefile.am +++ b/libjava/classpath/native/jni/native-lib/Makefile.am @@ -7,7 +7,7 @@ libclasspathnative_la_SOURCES = cpnet.c \ cpproc.h \ cpproc.c -AM_LDFLAGS = @CLASSPATH_MODULE@ +AM_LDFLAGS = @CLASSPATH_CONVENIENCE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ \ @EXTRA_CFLAGS@ diff --git a/libjava/classpath/native/jni/native-lib/Makefile.in b/libjava/classpath/native/jni/native-lib/Makefile.in index d356d69a834..54b5bf045b4 100644 --- a/libjava/classpath/native/jni/native-lib/Makefile.in +++ b/libjava/classpath/native/jni/native-lib/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -147,7 +149,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -159,19 +160,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -203,15 +193,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -259,10 +246,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -343,7 +328,7 @@ libclasspathnative_la_SOURCES = cpnet.c \ cpproc.h \ cpproc.c -AM_LDFLAGS = @CLASSPATH_MODULE@ +AM_LDFLAGS = @CLASSPATH_CONVENIENCE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ \ @EXTRA_CFLAGS@ diff --git a/libjava/classpath/native/jni/native-lib/cpio.c b/libjava/classpath/native/jni/native-lib/cpio.c index 743968bd36c..d8523680af3 100644 --- a/libjava/classpath/native/jni/native-lib/cpio.c +++ b/libjava/classpath/native/jni/native-lib/cpio.c @@ -71,6 +71,10 @@ exception statement from your version. */ #include <sys/select.h> #endif +#if defined(HAVE_STATVFS) +#include <sys/statvfs.h> +#endif + #include <utime.h> #include "cpnative.h" @@ -345,9 +349,11 @@ int cpio_setFileReadonly (const char *filename) if (stat(filename, &statbuf) < 0) return errno; - + +#ifdef S_IWRITE if (chmod(filename, statbuf.st_mode & ~(S_IWRITE | S_IWGRP | S_IWOTH)) < 0) return errno; +#endif return 0; } @@ -395,6 +401,44 @@ int cpio_chmod (const char *filename, int permissions) return 0; } +JNIEXPORT long long +cpio_df (__attribute__((unused)) const char *path, + __attribute__((unused)) CPFILE_DF_TYPE type) +{ + long long result = 0L; + +#if defined(HAVE_STATVFS) + + long long scale_factor = 0L; + struct statvfs buf; + + if (statvfs (path, &buf) < 0) + return 0L; + + /* f_blocks, f_bfree and f_bavail are defined in terms of f_frsize */ + scale_factor = (long long) (buf.f_frsize); + + switch (type) + { + case TOTAL: + result = (long long) (buf.f_blocks * scale_factor); + break; + case FREE: + result = (long long) (buf.f_bfree * scale_factor); + break; + case USABLE: + result = (long long) (buf.f_bavail * scale_factor); + break; + default: + result = 0L; + break; + } + +#endif + + return result; +} + int cpio_checkAccess (const char *filename, unsigned int flag) { struct stat statbuf; @@ -520,16 +564,10 @@ int cpio_closeDir (void *handle) int cpio_readDir (void *handle, char *filename) { -#ifdef HAVE_READDIR_R - struct dirent dent; -#endif /* HAVE_READDIR_R */ struct dirent *dBuf; -#ifdef HAVE_READDIR_R - readdir_r ((DIR *) handle, &dent, &dBuf); -#else + errno = 0; dBuf = readdir((DIR *)handle); -#endif /* HAVE_READDIR_R */ if (dBuf == NULL) { @@ -540,11 +578,10 @@ int cpio_readDir (void *handle, char *filename) return errno; } - strncpy (filename, dBuf->d_name, FILENAME_MAX); + strncpy (filename, dBuf->d_name, FILENAME_MAX - 1); return 0; } - int cpio_closeOnExec(int fd) { diff --git a/libjava/classpath/native/jni/native-lib/cpio.h b/libjava/classpath/native/jni/native-lib/cpio.h index 259fc62cf79..a42fe62dbb6 100644 --- a/libjava/classpath/native/jni/native-lib/cpio.h +++ b/libjava/classpath/native/jni/native-lib/cpio.h @@ -83,6 +83,15 @@ JNIEXPORT int cpio_removeFile (const char *filename); JNIEXPORT int cpio_mkdir (const char *filename); JNIEXPORT int cpio_rename (const char *old_name, const char *new_name); +/* to be used with cpio_df */ +typedef enum { + TOTAL = 0, + FREE, + USABLE +} CPFILE_DF_TYPE; + +JNIEXPORT long long cpio_df (const char *path, CPFILE_DF_TYPE type); + JNIEXPORT int cpio_openDir (const char *dirname, void **handle); JNIEXPORT int cpio_closeDir (void *handle); JNIEXPORT int cpio_readDir (void *handle, char *filename); diff --git a/libjava/classpath/native/jni/native-lib/cpnet.h b/libjava/classpath/native/jni/native-lib/cpnet.h index 72850b4c8c6..979c363c23d 100644 --- a/libjava/classpath/native/jni/native-lib/cpnet.h +++ b/libjava/classpath/native/jni/native-lib/cpnet.h @@ -44,9 +44,13 @@ exception statement from your version. */ #include <sys/types.h> #include <sys/socket.h> +#ifdef HAVE_NETINET_IN_SYSTM_H #include <netinet/in_systm.h> +#endif /* HAVE_NETINET_IN_SYSTM_H */ #include <netinet/in.h> +#ifdef HAVE_NETINET_IP_H #include <netinet/ip.h> +#endif /* HAVE_NETINET_IP_H */ typedef struct { jint len; diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in index 0cce3b9b4ac..b64b1f56caa 100644 --- a/libjava/classpath/native/jni/qt-peer/Makefile.in +++ b/libjava/classpath/native/jni/qt-peer/Makefile.in @@ -53,6 +53,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -173,7 +175,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -185,19 +186,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -229,15 +219,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -285,10 +272,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in index d4e491f8965..d7c3447c1f6 100644 --- a/libjava/classpath/native/jni/xmlj/Makefile.in +++ b/libjava/classpath/native/jni/xmlj/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -157,7 +159,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -169,19 +170,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -213,15 +203,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -269,10 +256,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/native/plugin/Makefile.in b/libjava/classpath/native/plugin/Makefile.in index a5aa360bc6b..8669bf16f98 100644 --- a/libjava/classpath/native/plugin/Makefile.in +++ b/libjava/classpath/native/plugin/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -155,7 +157,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -167,19 +168,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -211,15 +201,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -267,10 +254,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/org/ietf/jgss/GSSContext.java b/libjava/classpath/org/ietf/jgss/GSSContext.java index 6f469e235a3..c3962214519 100644 --- a/libjava/classpath/org/ietf/jgss/GSSContext.java +++ b/libjava/classpath/org/ietf/jgss/GSSContext.java @@ -562,7 +562,7 @@ public interface GSSContext * @param inStream Input stream containing the message to generate * the MIC over. * @param outStream Output stream to write the GSS-API output token to. - * @param msgProp Instance of MessageProp that is used by the + * @param mgProp Instance of MessageProp that is used by the * application to set the desired QOP. Set the desired * QOP to 0 in msgProp to request the default QOP. * Alternatively pass in <code>null</code> for msgProp diff --git a/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java b/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java index 213acafc7e5..e665197b107 100644 --- a/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java +++ b/libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java @@ -128,7 +128,7 @@ public abstract class PolicyErrorHelper public static PolicyError read(InputStream input) { // Read the exception repository id. - String id = input.read_string(); + input.read_string(); PolicyError value = new PolicyError(); value.reason = input.read_short(); @@ -147,4 +147,4 @@ public abstract class PolicyErrorHelper output.write_string(id()); output.write_short(value.reason); } -}
\ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHelper.java b/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHelper.java index 0ca50cb88c2..086641e5c82 100644 --- a/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHelper.java +++ b/libjava/classpath/org/omg/CORBA/UnknownUserExceptionHelper.java @@ -127,7 +127,7 @@ public abstract class UnknownUserExceptionHelper public static UnknownUserException read(InputStream input) { // Read the exception repository id. - String id = input.read_string(); + input.read_string(); UnknownUserException value = new UnknownUserException(); value.except = input.read_any(); @@ -146,4 +146,4 @@ public abstract class UnknownUserExceptionHelper output.write_string(id()); output.write_any(value.except); } -}
\ No newline at end of file +} diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java b/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java index cf5d7b3d808..f3c93aab344 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java @@ -84,7 +84,7 @@ public abstract class NamingContextExtPOA /** @inheritDoc */ public OutputStream _invoke(String method, InputStream in, ResponseHandler rh) { - Integer call_method = (Integer) _NamingContextExtImplBase._methods.get(method); + Integer call_method = _NamingContextExtImplBase._methods.get(method); if (call_method == null) // The older methods are handled separately. @@ -189,7 +189,7 @@ public abstract class NamingContextExtPOA OutputStream super_invoke(String method, InputStream in, ResponseHandler rh) { OutputStream out = null; - Integer call_method = (Integer) _NamingContextImplBase.methods.get(method); + Integer call_method = _NamingContextImplBase.methods.get(method); if (call_method == null) throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE); diff --git a/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java b/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java index a9788827642..a4f8b1cb6d9 100644 --- a/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java +++ b/libjava/classpath/org/omg/CosNaming/NamingContextPOA.java @@ -92,7 +92,7 @@ public abstract class NamingContextPOA public OutputStream _invoke(String method, InputStream in, ResponseHandler rh) { OutputStream out = null; - Integer call_method = (Integer) _NamingContextImplBase.methods.get(method); + Integer call_method = _NamingContextImplBase.methods.get(method); if (call_method == null) throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE); diff --git a/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java b/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java index 617f7aec4ab..387e27e6894 100644 --- a/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java +++ b/libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java @@ -96,7 +96,7 @@ public abstract class _NamingContextExtImplBase public OutputStream _invoke(String method, InputStream in, ResponseHandler rh) { - Integer call_method = (Integer) _methods.get(method); + Integer call_method = _methods.get(method); if (call_method == null) @@ -206,7 +206,7 @@ public abstract class _NamingContextExtImplBase { Streamable result = null; - Integer call_method = (Integer) _methods.get(request.operation()); + Integer call_method = _methods.get(request.operation()); if (call_method == null) { diff --git a/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java b/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java index 1c2a56be60a..115ef74c361 100644 --- a/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java +++ b/libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java @@ -123,7 +123,7 @@ public abstract class _NamingContextImplBase public OutputStream _invoke(String method, InputStream in, ResponseHandler rh) { OutputStream out = null; - Integer call_method = (Integer) methods.get(method); + Integer call_method = methods.get(method); if (call_method == null) throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE); @@ -389,7 +389,7 @@ public abstract class _NamingContextImplBase Streamable result = null; // The server request contains no required result type. - Integer call_method = (Integer) methods.get(request.operation()); + Integer call_method = methods.get(request.operation()); if (call_method == null) throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE); diff --git a/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java b/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java index 55090c74673..bc4445fcd57 100644 --- a/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java +++ b/libjava/classpath/org/omg/IOP/TaggedComponentHelper.java @@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted; import org.omg.CORBA.Any; import org.omg.CORBA.BAD_OPERATION; -import org.omg.CORBA.MARSHAL; import org.omg.CORBA.ORB; import org.omg.CORBA.StructMember; import org.omg.CORBA.TCKind; @@ -51,8 +50,6 @@ import org.omg.CORBA.TypeCode; import org.omg.CORBA.portable.InputStream; import org.omg.CORBA.portable.OutputStream; -import java.io.IOException; - /** * A helper operations for the {@link TaggedComponent}. * diff --git a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java index 2d9740a855e..37d66a6d75f 100644 --- a/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java +++ b/libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java @@ -123,7 +123,7 @@ public abstract class DuplicateNameHelper public static DuplicateName read(InputStream input) { // Read the exception repository id. - String id = input.read_string(); + input.read_string(); DuplicateName value = new DuplicateName(); value.name = input.read_string(); @@ -142,4 +142,4 @@ public abstract class DuplicateNameHelper output.write_string(id()); output.write_string(value.name); } -}
\ No newline at end of file +} diff --git a/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java b/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java index d5d5751b9e7..0ebbc7e41b1 100644 --- a/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java +++ b/libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java @@ -114,7 +114,7 @@ public abstract class ForwardRequestHelper public static ForwardRequest read(InputStream input) { // Read the exception repository id. - String id = input.read_string(); + input.read_string(); ForwardRequest value = new ForwardRequest(); value.forward_reference = input.read_Object(); @@ -151,4 +151,4 @@ public abstract class ForwardRequestHelper output.write_string(id()); output.write_Object(value.forward_reference); } -}
\ No newline at end of file +} diff --git a/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java b/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java index 32ddae8586f..cb3c6702442 100644 --- a/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java +++ b/libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java @@ -136,7 +136,7 @@ public abstract class InvalidPolicyHelper public static InvalidPolicy read(InputStream input) { // Read the exception repository id. - String id = input.read_string(); + input.read_string(); InvalidPolicy value = new InvalidPolicy(); value.index = input.read_short(); @@ -155,4 +155,4 @@ public abstract class InvalidPolicyHelper output.write_string(id()); output.write_short(value.index); } -}
\ No newline at end of file +} diff --git a/libjava/classpath/resource/Makefile.in b/libjava/classpath/resource/Makefile.in index 5f531e8777f..af0439856ad 100644 --- a/libjava/classpath/resource/Makefile.in +++ b/libjava/classpath/resource/Makefile.in @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -140,7 +142,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -152,19 +153,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -196,15 +186,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -252,10 +239,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ diff --git a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties deleted file mode 100644 index 902166d5fdb..00000000000 --- a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties +++ /dev/null @@ -1,33 +0,0 @@ -# default locale messages for gnu.classpath.tools.jarsigner package - -Main.7=jarsigner: -Main.9=jarsigner error: -Main.70=JAR file [{0}] is NOT a file object -Main.72=JAR file [{0}] is NOT readable -#Main.85=Option '-keystore' is not defined or is an empty string, and 'user.home' is unknown -Main.85=Unable to locate a valid key store -Main.92=Enter key store password: -Main.6=Designated alias [{0}] MUST be known to the key store in use -Main.95=Designated alias [{0}] MUST be an Alias of a Key Entry -Main.97=Enter key password for <{0}>: -Main.99=Key associated with [{0}] MUST be a private key - -JarSigner.1=\ \ signing: -JarSigner.2=\ updating: -JarSigner.8=\ \ \ adding: -JarSigner.11=\ \ \ adding: -JarSigner.14=jar signed. - -JarVerifier.2=jar is not signed.--no signature files found. -JarVerifier.3=jar verification failed. -JarVerifier.4=jar partially verified --{0,numer} of {1,number} signers. -JarVerifier.7=jar verified --{0,number} signer(s). -JarVerifier.13=Signature Block missing for {0} -JarVerifier.14=At least one SignerInfo element MUST be present in a Signature Block (.DSA file) -JarVerifier.16=Missing EncryptedDigest in Signature Block (.DSA file) first SignerInfo element - -SFHelper.1=Helper is NOT finished -SFHelper.4=.SF file has NOT been generated -SFHelper.6=Unknown or unsupported private key algorithm -SFHelper.9=Helper is NOT ready -SFHelper.10=Helper is NOT started diff --git a/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties deleted file mode 100644 index 2dd3ce2fc67..00000000000 --- a/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties +++ /dev/null @@ -1,95 +0,0 @@ -# default locale messages for gnu.classpath.tools.keytool package - -Main.6=keytool: -Main.8=keytool error: - -Command.19=Failed creating new file at {0} -Command.20=Unable to find a suitable signature algorithm named {0}, although we found a key-pair generation algorithm named {1} -Command.21=Enter key password for <{0}>: -Command.23=A correct key password MUST be provided -Command.24=Enter key store password: -#Command.36=Option '-keystore' is undefined, or is an empty string, and 'user.home' is unknown -Command.36=Unable to locate a valid key store -Command.40=Provider fully qualified class name: -Command.42=File object [{0}] exists but is NOT a file -Command.44=File [{0}] exists but is NOT writable -Command.46=File object [{0}] MUST be an existing readable file -Command.48=Signature algorithm is missing and private key is of unknown or unsupported type -Command.51=Validity period MUST be greater than zero -Command.52=Unable to get signature algorithm name -Command.60=Unknown or unsupported signature algorithm: {0} -Command.63=Saving key store at {0} -Command.66=Owner: {0} -Command.67=Issuer: {0} -Command.68=Serial number: {0,number} -Command.69=Valid from: {0,date,full} - {0,time,full} -Command.70=\ \ \ \ \ until: {0,date,full} - {0,time,full} -Command.71=Certificate fingerprints -Command.72=\ \ \ \ \ \ MD5: {0} -Command.73=\ \ SHA-160: {0} -Command.75=Alias [{0}] MUST be knwon to the key store -Command.77=Alias [{0}] MUST be associated with a Key Entry - -CertReqCmd.27=Certification request stored in {0} -CertReqCmd.28=Submit this to your CA - -DeleteCmd.19=Enter the Alias to delete: -DeleteCmd.20=Alias MUST NOT be null or an empty string - -GenKeyCmd.0=\nYou are about to enter information that will be incorporated into\n\ -your certificate request. This information is what is called a\n\ -Distinguished Name or DN. There are quite a few fields but you\n\ -can use supplied default values, displayed between brackets, by just\n\ -hitting <Enter>, or blank the field by entering the <.> character\n\ -before hitting <Enter>.\n\n -GenKeyCmd.6=The Sample Company -GenKeyCmd.7=Sydney -GenKeyCmd.8=NSW -GenKeyCmd.9=AU -GenKeyCmd.10=Common Name (hostname, IP, or your name): -GenKeyCmd.11=Organization Name (company) [{0}]: -GenKeyCmd.13=Organizational Unit Name (department, division): -GenKeyCmd.14=Locality Name (city, district) [{0}]: -GenKeyCmd.16=State or Province Name (full name) [{0}]: -GenKeyCmd.18=Country Name (2 letter code) [{0}]: -GenKeyCmd.54=Key size MUST be greater than zero - -StorePasswdCmd.19=Too many failed attempts -StorePasswdCmd.20=Enter new key store password: -StorePasswdCmd.21=Password MUST be at least 6 characters. -StorePasswdCmd.22=New password MUST be different than the old one. -StorePasswdCmd.23=Re-enter new key store password: -StorePasswdCmd.24=Passwords MUST be the same in both attempts. - -KeyPasswdCmd.24=Enter new key password for <{0}>: -KeyPasswdCmd.28=Re-enter new key password for <{0}>: - -KeyCloneCmd.23=Destination Alias MUST NOT exist in key store -KeyCloneCmd.26=Enter destination alias: -KeyCloneCmd.27=Destination alias MUST NOT be null nor empty -KeyCloneCmd.28=Enter new key password for <{0}> [{1}]: - -ListCmd.21=Key store type: {0} -ListCmd.22=Key store provider: {0} -ListCmd.24=Key store contains {0,number} entry(ies) -ListCmd.30=Alias name: {0} -ListCmd.31=Creation timestamp: {0,date,full} - {0,time,full} -ListCmd.32=Entry type: trusted-certificate -ListCmd.33=Entry type: key-entry -ListCmd.34=Alias [{0}] is unknown to the key store -ListCmd.38=Certificate chain length: {0,number} -ListCmd.39=Certificate[1]: -ListCmd.40=Certificate[{0,number}]: -ListCmd.42=******************************************* -ListCmd.43=-----BEGIN CERTIFICATE----- -ListCmd.44=-----END CERTIFICATE----- -ListCmd.45=Certificate fingerprint (MD5): {0} - -ImportCmd.34=Failed to establish chain-of-trust from reply -ImportCmd.37=Unable to find anchor certificate for {0} -ImportCmd.38=Public keys, in key store and certificate, MUST be of the same type -ImportCmd.32=Can this certificate be trusted? -ImportCmd.40=Key entry associated with {0} has an unknown or unsupported public key type {1} -ImportCmd.41=Public keys, in key store and certificate, MUST be the same -ImportCmd.29=Certificate was added to the key store -ImportCmd.28=Certificate was not added to the key store diff --git a/libjava/classpath/resource/gnu/java/awt/font/fonts.properties b/libjava/classpath/resource/gnu/java/awt/font/fonts.properties new file mode 100644 index 00000000000..4fc0b10b89d --- /dev/null +++ b/libjava/classpath/resource/gnu/java/awt/font/fonts.properties @@ -0,0 +1,59 @@ +# fonts.properties +# Copyright (C) 2007 Free Software Foundation, Inc. +# +# This file is part of GNU Classpath. +# +# GNU Classpath is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Classpath is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Classpath; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301 USA. +# +# Linking this library statically or dynamically with other modules is +# making a combined work based on this library. Thus, the terms and +# conditions of the GNU General Public License cover the whole +# combination. +# +# As a special exception, the copyright holders of this library give you +# permission to link this library with independent modules to produce an +# executable, regardless of the license terms of these independent +# modules, and to copy and distribute the resulting executable under +# terms of your choice, provided that you also meet, for each linked +# independent module, the terms and conditions of the license of that +# module. An independent module is a module which is not derived from +# or based on this library. If you modify this library, you may extend +# this exception to your version of the library, but you are not +# obligated to do so. If you do not wish to do so, delete this +# exception statement from your version. + +# List of available fonts. +FreeMono/p=/usr/share/fonts/truetype/freefont/FreeMono.ttf +FreeMono/b=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf +FreeMono/bi=/usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf +FreeMono/i=/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf + +FreeSans/p=/usr/share/fonts/truetype/freefont/FreeSans.ttf +FreeSans/b=/usr/share/fonts/truetype/freefont/FreeSansBold.ttf +FreeSans/bi=/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf +FreeSans/i=/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf + +FreeSerif/p=/usr/share/fonts/truetype/freefont/FreeSerif.ttf +FreeSerif/b=/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf +FreeSerif/bi=/usr/share/fonts/truetype/freefont/FreeSerifBoldOblique.ttf +FreeSerif/i=/usr/share/fonts/truetype/freefont/FreeSerifOblique.ttf + +# List of aliases. +Dialog/a=FreeSans +DialogInput/a=FreeSans +Serif/a=FreeSerif +SansSerif/a=FreeSans +Monospaced/a=FreeMono diff --git a/libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties b/libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties new file mode 100644 index 00000000000..2c8755ceb3c --- /dev/null +++ b/libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties @@ -0,0 +1,25 @@ + +serif.plain=-adobe-times-medium-r-normal--%d-*-*-*-p-*-iso8859-1 +serif.bold=-adobe-times-bold-r-normal--%d-*-*-*-p-*-iso8859-1 +serif.italic=-adobe-times-medium-o-normal--%d-*-*-*-p-*-iso8859-1 +serif.bolditalic=-adobe-times-bold-o-normal--%d-*-*-*-p-*-iso8859-1 + +sansserif.plain=-adobe-helvetica-medium-r-normal--%d-*-*-*-p-*-iso8859-1 +sansserif.bold=-adobe-helvetica-bold-r-normal--%d-*-*-*-p-*-iso8859-1 +sansserif.italic=-adobe-helvetica-medium-o-normal--%d-*-*-*-p-*-iso8859-1 +sansserif.bolditalic=-adobe-helvetica-bold-o-normal--%d-*-*-*-p-*-iso8859-1 + +monospaced.plain=-adobe-courier-medium-r-normal--%d-*-*-*-p-*-iso8859-1 +monospaced.bold=-adobe-courier-bold-r-normal--%d-*-*-*-p-*-iso8859-1 +monospaced.italic=-adobe-courier-medium-o-normal--%d-*-*-*-p-*-iso8859-1 +monospaced.bolditalic=-adobe-courier-bold-o-normal--%d-*-*-*-p-*-iso8859-1 + +dialog.plain=-adobe-helvetica-medium-r-normal--%d-*-*-*-p-*-iso8859-1 +dialog.bold=-adobe-helvetica-bold-r-normal--%d-*-*-*-p-*-iso8859-1 +dialog.italic=-adobe-helvetica-medium-o-normal--%d-*-*-*-p-*-iso8859-1 +dialog.bolditalic=-adobe-helvetica-bold-o-normal--%d-*-*-*-p-*-iso8859-1 + +dialoginput.plain=-adobe-helvetica-medium-r-normal--%d-*-*-*-p-*-iso8859-1 +dialoginput.bold=-adobe-helvetica-bold-r-normal--%d-*-*-*-p-*-iso8859-1 +dialoginput.italic=-adobe-helvetica-medium-o-normal--%d-*-*-*-p-*-iso8859-1 +dialoginput.bolditalic=-adobe-helvetica-bold-o-normal--%d-*-*-*-p-*-iso8859-1 diff --git a/libjava/classpath/scripts/Makefile.am b/libjava/classpath/scripts/Makefile.am index 43378401812..9d80ba067d1 100644 --- a/libjava/classpath/scripts/Makefile.am +++ b/libjava/classpath/scripts/Makefile.am @@ -1,2 +1,2 @@ -EXTRA_DIST = check_jni_methods.sh generate-locale-list.sh import-cacerts.sh +EXTRA_DIST = generate-locale-list.sh import-cacerts.sh diff --git a/libjava/classpath/scripts/Makefile.in b/libjava/classpath/scripts/Makefile.in index 1a38b53c469..c2835143575 100644 --- a/libjava/classpath/scripts/Makefile.in +++ b/libjava/classpath/scripts/Makefile.in @@ -38,7 +38,7 @@ host_triplet = @host@ target_triplet = @target@ subdir = scripts DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/classpath.spec.in + $(srcdir)/check_jni_methods.sh.in $(srcdir)/classpath.spec.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ @@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -62,7 +64,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs CONFIG_HEADER = $(top_builddir)/include/config.h -CONFIG_CLEAN_FILES = classpath.spec +CONFIG_CLEAN_FILES = classpath.spec check_jni_methods.sh SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -130,7 +132,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -142,19 +143,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -186,15 +176,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -242,10 +229,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -317,7 +302,7 @@ target_os = @target_os@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ -EXTRA_DIST = check_jni_methods.sh generate-locale-list.sh import-cacerts.sh +EXTRA_DIST = generate-locale-list.sh import-cacerts.sh all: all-am .SUFFIXES: @@ -352,6 +337,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh classpath.spec: $(top_builddir)/config.status $(srcdir)/classpath.spec.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +check_jni_methods.sh: $(top_builddir)/config.status $(srcdir)/check_jni_methods.sh.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo diff --git a/libjava/classpath/scripts/check_jni_methods.sh b/libjava/classpath/scripts/check_jni_methods.sh.in index 90a7735baf8..2a114d340b7 100755..100644 --- a/libjava/classpath/scripts/check_jni_methods.sh +++ b/libjava/classpath/scripts/check_jni_methods.sh.in @@ -9,20 +9,20 @@ TMPFILE3=/tmp/check-jni-methods.$$.3 # Find all methods defined in the header files generated # from the java source files. -grep -h '^JNIEXPORT .* Java_' include/*.h | \ +grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h @abs_top_srcdir@/include/*.h | \ LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \ - sort > $TMPFILE + sort -u > $TMPFILE # Find all methods in the JNI C source files. -find native/jni -name \*.c | \ +find @abs_top_srcdir@/native/jni -name \*.c | \ xargs grep -h '^Java_' | \ LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE2 # Or in the the C++ files. (Note that cpp doesn't follow gnu conventions atm) # So we try to match both GNU style and some other style. -find native/jni -name \*.cpp | \ +find @abs_top_srcdir@/native/jni -name \*.cpp | \ xargs grep -h '^Java_' | \ LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2 -find native/jni -name \*.cpp | \ +find @abs_top_srcdir@/native/jni -name \*.cpp | \ xargs egrep -h '^(JNIEXPORT .* JNICALL )?Java_' | \ cut -f4 -d\ | \ LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2 diff --git a/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java b/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java index 8edb361533c..97556c71051 100644 --- a/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java +++ b/libjava/classpath/sun/reflect/annotation/ExceptionProxy.java @@ -38,8 +38,6 @@ exception statement from your version. */ package sun.reflect.annotation; -import gnu.classpath.NotImplementedException; - public class ExceptionProxy { diff --git a/libjava/classpath/tools/Makefile.am b/libjava/classpath/tools/Makefile.am index 773157d91eb..94228271e93 100755 --- a/libjava/classpath/tools/Makefile.am +++ b/libjava/classpath/tools/Makefile.am @@ -2,23 +2,12 @@ ## GCJ LOCAL: use srcdir to find core classes. GLIBJ_BOOTCLASSPATH='$(top_srcdir)/lib' -GLIBJ_CLASSPATH=$(srcdir)/asm +GLIBJ_CLASSPATH=.:$(srcdir)/asm ## END GCJ LOCAL # Setup the compiler to use the GNU Classpath library we just build -if FOUND_GCJ -JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH):. -else -if FOUND_ECJ -JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH) -else -if FOUND_JAVAC -JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH) -else -error dunno how to setup the JCOMPILER and compile -endif # FOUND_JAVAC -endif # FOUND_ECJ -endif # FOUND_GCJ +## GCJ LOCAL: don't pass $(JAVACFLAGS) -source 1.5 -target 1.5 +JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH) if CREATE_WRAPPERS bin_SCRIPTS = @@ -136,17 +125,35 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \ $(srcdir)/external/asm/org/objectweb/asm/util/attrs/*.java \ $(srcdir)/external/asm/org/objectweb/asm/xml/*.java +# Properties files that must be included in the generated zip file. +PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.properties \ + $(srcdir)/resource/com/sun/tools/javac/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/jar/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/orbd/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/rmic/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/rmid/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/serialver/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/common/Messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/getopt/Messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \ + $(srcdir)/resource/sun/rmi/rmic/messages.properties + +# RMIC templates that must be included in the generated zip file. +RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav + # The zip files with classes we want to produce. TOOLS_ZIP = tools.zip # Extra objects that will not exist until configure-time BUILT_SOURCES = $(TOOLS_ZIP) -# RMIC templates that must be included in the generated zip file. -RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmic/templates/*.jav - # All the files we find "interesting" -ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) +ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) # Some architecture independent data to be installed. # GCJ LOCAL: do not install this. @@ -173,7 +180,7 @@ dist-hook: # the class files. Always regenerate all .class files and remove them # immediately. And copy the template files we use to the classes dir # so they get also included. -$(TOOLS_ZIP): $(TOOLS_JAVA_FILES) +$(TOOLS_ZIP): $(ALL_TOOLS_FILES) ## GCJ LOCAL: put classes in srcdir ## @rm -rf classes asm ## mkdir classes asm @@ -200,14 +207,13 @@ if JAVA_MAINTAINER_MODE $$AC -g -w -d $(srcdir)/asm @asm.lst $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst ## Copy over tools resource files. - @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \ - com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \ - sun/rmi/rmic -name \*.properties -print`; \ + @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \ + sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \ for p in $$list; do \ dirname=classes/`dirname $$p`; \ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \ - echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \ - cp $(top_srcdir)/resource/$$p classes/$$p; \ + echo " cp $(srcdir)resource/$$p classes/$$p"; \ + cp $(srcdir)/resource/$$p classes/$$p; \ done endif ## Copy over rmic template files. @@ -224,12 +230,12 @@ endif ## First add classpath tools stuff. (cd classes; \ if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \ - if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \ cd ..) ## Now add ASM classes. (cd asm; \ if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \ - if test "$(FASTJAR)" != ""; then $(FASTJAR) uf ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \ cd ..) rm -rf asm classes classes.lst asm.lst diff --git a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in index 25c56e94c5e..d853d7e8d54 100644 --- a/libjava/classpath/tools/Makefile.in +++ b/libjava/classpath/tools/Makefile.in @@ -65,6 +65,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../ltoptions.m4 \ $(top_srcdir)/../../ltsugar.m4 \ $(top_srcdir)/../../ltversion.m4 \ + $(top_srcdir)/m4/ac_prog_javac.m4 \ + $(top_srcdir)/m4/ac_prog_javac_works.m4 \ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \ $(top_srcdir)/m4/acinclude.m4 \ $(top_srcdir)/m4/ax_create_stdint_h.m4 \ @@ -232,7 +234,6 @@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ -ECJ = @ECJ@ ECJ_JAR = @ECJ_JAR@ EGREP = @EGREP@ ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ @@ -244,19 +245,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ FASTJAR = @FASTJAR@ FGREP = @FGREP@ FIND = @FIND@ -FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@ -FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@ -FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@ -FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@ -FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@ -FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@ -FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@ -FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@ -FOUND_KJC_FALSE = @FOUND_KJC_FALSE@ -FOUND_KJC_TRUE = @FOUND_KJC_TRUE@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ -GCJ = @GCJ@ GCONF_CFLAGS = @GCONF_CFLAGS@ GCONF_LIBS = @GCONF_LIBS@ GDK_CFLAGS = @GDK_CFLAGS@ @@ -288,15 +278,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ JAVAC = @JAVAC@ +JAVAC_MEM_OPT = @JAVAC_MEM_OPT@ JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@ JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@ JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@ JAY = @JAY@ JAY_SKELETON = @JAY_SKELETON@ -JIKES = @JIKES@ -JIKESENCODING = @JIKESENCODING@ -JIKESWARNINGS = @JIKESWARNINGS@ -KJC = @KJC@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBDEBUG = @LIBDEBUG@ @@ -344,10 +331,8 @@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@ STRIP = @STRIP@ -USER_CLASSLIB = @USER_CLASSLIB@ +TOOLSDIR = @TOOLSDIR@ USER_JAVAH = @USER_JAVAH@ -USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ -USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USE_ESCHER_FALSE = @USE_ESCHER_FALSE@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@ USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ @@ -420,12 +405,10 @@ target_vendor = @target_vendor@ toolexeclibdir = @toolexeclibdir@ vm_classes = @vm_classes@ GLIBJ_BOOTCLASSPATH = '$(top_srcdir)/lib' -GLIBJ_CLASSPATH = $(srcdir)/asm -@FOUND_ECJ_FALSE@@FOUND_GCJ_FALSE@@FOUND_JAVAC_TRUE@JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH) -@FOUND_ECJ_TRUE@@FOUND_GCJ_FALSE@JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH) +GLIBJ_CLASSPATH = .:$(srcdir)/asm # Setup the compiler to use the GNU Classpath library we just build -@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH):. +JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH) @CREATE_WRAPPERS_TRUE@bin_SCRIPTS = @CREATE_WRAPPERS_TRUE@AM_CPPFLAGS = -Wall \ @CREATE_WRAPPERS_TRUE@ -I$(top_srcdir)/include \ @@ -522,17 +505,36 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \ $(srcdir)/external/asm/org/objectweb/asm/xml/*.java +# Properties files that must be included in the generated zip file. +PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.properties \ + $(srcdir)/resource/com/sun/tools/javac/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/jar/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/orbd/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/rmic/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/rmid/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/serialver/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/common/Messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/getopt/Messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \ + $(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \ + $(srcdir)/resource/sun/rmi/rmic/messages.properties + + +# RMIC templates that must be included in the generated zip file. +RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav + # The zip files with classes we want to produce. TOOLS_ZIP = tools.zip # Extra objects that will not exist until configure-time BUILT_SOURCES = $(TOOLS_ZIP) -# RMIC templates that must be included in the generated zip file. -RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmic/templates/*.jav - # All the files we find "interesting" -ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) +ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) # Some architecture independent data to be installed. # GCJ LOCAL: do not install this. @@ -1094,7 +1096,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ pdf pdf-am ps ps-am tags uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am -@FOUND_ECJ_FALSE@@FOUND_GCJ_FALSE@@FOUND_JAVAC_FALSE@error dunno how to setup the JCOMPILER and compile @CREATE_WRAPPERS_FALSE@gappletviewer: gappletviewer.in @CREATE_WRAPPERS_FALSE@gjarsigner: gjarsigner.in @CREATE_WRAPPERS_FALSE@gkeytool: gkeytool.in @@ -1126,7 +1127,7 @@ dist-hook: # the class files. Always regenerate all .class files and remove them # immediately. And copy the template files we use to the classes dir # so they get also included. -$(TOOLS_ZIP): $(TOOLS_JAVA_FILES) +$(TOOLS_ZIP): $(ALL_TOOLS_FILES) find $(srcdir)/external/asm -name '*.java' -print > asm.lst find $(srcdir)/gnu/classpath/tools \ $(srcdir)/com/sun/javadoc \ @@ -1147,14 +1148,13 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES) @JAVA_MAINTAINER_MODE_TRUE@ AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \ @JAVA_MAINTAINER_MODE_TRUE@ $$AC -g -w -d $(srcdir)/asm @asm.lst @JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst -@JAVA_MAINTAINER_MODE_TRUE@ @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \ -@JAVA_MAINTAINER_MODE_TRUE@ com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \ -@JAVA_MAINTAINER_MODE_TRUE@ sun/rmi/rmic -name \*.properties -print`; \ +@JAVA_MAINTAINER_MODE_TRUE@ @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \ +@JAVA_MAINTAINER_MODE_TRUE@ sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \ @JAVA_MAINTAINER_MODE_TRUE@ for p in $$list; do \ @JAVA_MAINTAINER_MODE_TRUE@ dirname=classes/`dirname $$p`; \ @JAVA_MAINTAINER_MODE_TRUE@ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \ -@JAVA_MAINTAINER_MODE_TRUE@ echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \ -@JAVA_MAINTAINER_MODE_TRUE@ cp $(top_srcdir)/resource/$$p classes/$$p; \ +@JAVA_MAINTAINER_MODE_TRUE@ echo " cp $(srcdir)resource/$$p classes/$$p"; \ +@JAVA_MAINTAINER_MODE_TRUE@ cp $(srcdir)/resource/$$p classes/$$p; \ @JAVA_MAINTAINER_MODE_TRUE@ done @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \ for p in $$list; do \ @@ -1167,11 +1167,11 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES) cp -pR $(srcdir)/classes . (cd classes; \ if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \ - if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \ cd ..) (cd asm; \ if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \ - if test "$(FASTJAR)" != ""; then $(FASTJAR) uf ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \ cd ..) rm -rf asm classes classes.lst asm.lst diff --git a/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class Binary files differindex ac08078c38e..c3b8636aad7 100644 --- a/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class +++ b/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class Binary files differindex 5b11bc7b564..be365d4064c 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class Binary files differindex 9f7dbedc538..f57650d487a 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class Binary files differindex 4fa23ee8570..ad05cfd5eb4 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class Binary files differindex ca776ddc5f5..d1d8c3ca41c 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class Binary files differindex 6ac29ced2ba..68b0a10085b 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class Binary files differindex 6883585acc7..b49c112dcd9 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class Binary files differindex d45c2e85408..f2b1412d157 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class Binary files differindex e8e6794a99d..ba6c44cc999 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class Binary files differindex 801b866c643..e06bc000c80 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class Binary files differindex 1dcc16eb254..0edf26bff0f 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class Binary files differindex 86e363a136b..b357b78514e 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class Binary files differindex 3bf54aa891b..7e71885c8d7 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class Binary files differindex cbf44dda47d..de7dd49e1f9 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class Binary files differnew file mode 100644 index 00000000000..edb80fba2c6 --- /dev/null +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class Binary files differnew file mode 100644 index 00000000000..96677cc81a5 --- /dev/null +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class Binary files differindex 59bbacaa979..36bc25fb198 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class Binary files differindex 9cc6b62186e..1f06b6f12c2 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class Binary files differindex 8a03266f885..eed12630967 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class Binary files differindex 8ed8f9884c9..932b5301f22 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class Binary files differindex 07e4ee7209b..0d27a4fabf2 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class Binary files differindex e131d685b1d..5f86431c389 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class Binary files differindex dff8052dd56..6d4aa7619ac 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class Binary files differindex 5e1c36ef2e1..b05c00bd16c 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class Binary files differindex 7dff19b788e..e50787652f4 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class Binary files differindex 10524df4e81..c8eb12d073f 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class Binary files differindex 08bcc36cc04..6cbf96959f5 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class Binary files differindex b6cf38c9660..88522107388 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class Binary files differindex 1733e76eee3..901cc7b173e 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class Binary files differindex cba7266dd9f..1b602fae91f 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class Binary files differindex d1cdece3a84..8edc8b425e5 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class Binary files differindex 59015b15bdb..5450d28f6cd 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class Binary files differindex 589e70c1748..d56362361eb 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class Binary files differindex 8a94096ddc1..2359cc86a99 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class Binary files differindex 082d58fccaf..2309169eb19 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class Binary files differindex d64dbd116e6..b6636062819 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class Binary files differindex ded3b3accf4..edd30ed0c18 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class Binary files differindex 690b2b932dc..ad9a2877f9d 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class Binary files differindex 19631e5bdb2..0795aca8736 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class Binary files differindex 9a4ad43f8f8..40c1ad48304 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class Binary files differindex a26f5f5aa60..fd5942fbf98 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class Binary files differindex 5d130e31467..327ac9d481c 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class Binary files differindex 039f675ba56..cfdb3b5610f 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class Binary files differindex 199aea14fce..8408ea56735 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class Binary files differindex b0314c189d5..c1342179835 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class Binary files differindex 38f142595ba..19f5673882e 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class Binary files differindex 9bff18b4768..57cff5dc2e5 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class Binary files differindex 655ed007654..f6e8bd16f18 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class Binary files differindex f85d91fb7cf..fdfa2fb5f17 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class Binary files differindex 5a9ea71e1fd..1f0d64330d2 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class Binary files differindex 05c3c2f622f..1dfc79e6f18 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class Binary files differindex f3b55226a10..89d3cb2f078 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class Binary files differindex 33d52480fde..546555baa1a 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class Binary files differindex 0c0215310d5..a2e7eeeb39a 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class Binary files differindex 4fa26d976ee..f7c264b2d86 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class Binary files differindex f79e88cf049..8877bc5af20 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class Binary files differindex 61588f51a1c..8d1e58f5acc 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class Binary files differindex 038ec53d87a..6212b295707 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class Binary files differindex 21be0abf04f..6f39b37fce0 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class Binary files differindex 40071d8966b..f542246f024 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class Binary files differindex b00042c688a..a558b70a9ec 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class Binary files differindex db0a068cae0..6f5febd0be8 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class Binary files differindex 58c55b926a2..5406d014b5c 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class Binary files differindex 186a954479b..77d54397c5a 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class Binary files differindex 43a8000db80..9dd21c218de 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class Binary files differindex 1f13243b64a..20029a8ced5 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class Binary files differindex 297717bdbf0..73ab89a6d76 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class Binary files differindex 84e2e4a6f2d..879fb4cafed 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class Binary files differindex 7ddc8df1781..709014cb407 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class Binary files differindex dfa67eb9e31..75f47e8315c 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class Binary files differindex b4837a430f4..643588f1580 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class Binary files differindex 82258e7c300..71ec94148a2 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class Binary files differindex 9c116ee8665..04de1d5cf5e 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class Binary files differindex 0c89c4a1c1c..9650d16eee6 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class Binary files differindex b962cb2667f..2aa7d318e7b 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class Binary files differindex 6185bdd85aa..f715c1786d9 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class Binary files differindex 90aa0ddea41..6f55542506f 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class Binary files differindex 6b2b3c9e5a8..dcbfbf30852 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class Binary files differindex 8344aebd00b..5e4d6717f05 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class Binary files differindex 9567ff25128..67898ec4cab 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class Binary files differindex 1197723e1b5..87fa82b7884 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class Binary files differindex 8be88b04747..24cefbce14d 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class Binary files differindex a828ac70881..5e51a69f054 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class Binary files differindex 761b86d1885..269602e54b6 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class Binary files differindex baaa3f54e66..11e61e6b036 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class Binary files differindex 88c56325260..f09eb77db66 100644 --- a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class +++ b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class diff --git a/libjava/classpath/tools/com/sun/tools/javac/Main.java b/libjava/classpath/tools/com/sun/tools/javac/Main.java index f67a2d7286f..5c5bc2f25ee 100644 --- a/libjava/classpath/tools/com/sun/tools/javac/Main.java +++ b/libjava/classpath/tools/com/sun/tools/javac/Main.java @@ -139,8 +139,11 @@ public class Main new PrintWriter(System.err), Boolean.FALSE }); + String[] runArgs = new String[args.length + 1]; + runArgs[0] = "-1.5"; + System.arraycopy(args, 0, runArgs, 1, args.length); return ((Boolean) ecjMethod.invoke(ecjInstance, new Object[] - { args })).booleanValue() ? 0 : -1; + { runArgs })).booleanValue() ? 0 : -1; } public static int compile(String[] args) throws Exception diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties new file mode 100644 index 00000000000..868780bdd2d --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties @@ -0,0 +1,225 @@ +# class mappings + +#org/objectweb/asm/Edge=org/objectweb/asm/a +#org/objectweb/asm/Item=org/objectweb/asm/b +#org/objectweb/asm/FieldWriter=org/objectweb/asm/c +#org/objectweb/asm/MethodWriter=org/objectweb/asm/d +#org/objectweb/asm/AnnotationWriter=org/objectweb/asm/e + +# field mappings + +org/objectweb/asm/AnnotationWriter.cw=a +org/objectweb/asm/AnnotationWriter.size=b +org/objectweb/asm/AnnotationWriter.named=c +org/objectweb/asm/AnnotationWriter.bv=d +org/objectweb/asm/AnnotationWriter.parent=e +org/objectweb/asm/AnnotationWriter.offset=f +org/objectweb/asm/AnnotationWriter.next=g +org/objectweb/asm/AnnotationWriter.prev=h + +org/objectweb/asm/Attribute.next=a +org/objectweb/asm/Attribute.value=b + +org/objectweb/asm/ByteVector.data=a +org/objectweb/asm/ByteVector.length=b + +org/objectweb/asm/ClassReader.items=a +org/objectweb/asm/ClassReader.strings=c +org/objectweb/asm/ClassReader.maxStringLength=d +#org/objectweb/asm/ClassReader.header=e + +org/objectweb/asm/ClassWriter.TYPE=a +org/objectweb/asm/ClassWriter.version=b +org/objectweb/asm/ClassWriter.index=c +org/objectweb/asm/ClassWriter.pool=d +org/objectweb/asm/ClassWriter.items=e +org/objectweb/asm/ClassWriter.threshold=f +org/objectweb/asm/ClassWriter.key=g +org/objectweb/asm/ClassWriter.key2=h +org/objectweb/asm/ClassWriter.key3=i +org/objectweb/asm/ClassWriter.access=j +org/objectweb/asm/ClassWriter.name=k +org/objectweb/asm/ClassWriter.signature=l +org/objectweb/asm/ClassWriter.superName=m +org/objectweb/asm/ClassWriter.interfaceCount=n +org/objectweb/asm/ClassWriter.interfaces=o +org/objectweb/asm/ClassWriter.sourceFile=p +org/objectweb/asm/ClassWriter.sourceDebug=q +org/objectweb/asm/ClassWriter.enclosingMethodOwner=r +org/objectweb/asm/ClassWriter.enclosingMethod=s +org/objectweb/asm/ClassWriter.anns=t +org/objectweb/asm/ClassWriter.ianns=u +org/objectweb/asm/ClassWriter.attrs=v +org/objectweb/asm/ClassWriter.innerClassesCount=w +org/objectweb/asm/ClassWriter.innerClasses=x +org/objectweb/asm/ClassWriter.firstField=y +org/objectweb/asm/ClassWriter.lastField=z +org/objectweb/asm/ClassWriter.firstMethod=A +org/objectweb/asm/ClassWriter.lastMethod=B +org/objectweb/asm/ClassWriter.computeMaxs=C +org/objectweb/asm/ClassWriter.cr=D + +org/objectweb/asm/Edge.stackSize=a +org/objectweb/asm/Edge.successor=b +org/objectweb/asm/Edge.next=c + +org/objectweb/asm/Handler.start=a +org/objectweb/asm/Handler.end=b +org/objectweb/asm/Handler.handler=c +org/objectweb/asm/Handler.desc=d +org/objectweb/asm/Handler.type=e +org/objectweb/asm/Handler.next=f + +org/objectweb/asm/FieldWriter.next=a +org/objectweb/asm/FieldWriter.cw=b +org/objectweb/asm/FieldWriter.access=c +org/objectweb/asm/FieldWriter.name=d +org/objectweb/asm/FieldWriter.desc=e +org/objectweb/asm/FieldWriter.signature=f +org/objectweb/asm/FieldWriter.value=g +org/objectweb/asm/FieldWriter.anns=h +org/objectweb/asm/FieldWriter.ianns=i +org/objectweb/asm/FieldWriter.attrs=j + +org/objectweb/asm/Item.index=a +org/objectweb/asm/Item.type=b +org/objectweb/asm/Item.intVal=c +org/objectweb/asm/Item.longVal=d +org/objectweb/asm/Item.floatVal=e +org/objectweb/asm/Item.doubleVal=f +org/objectweb/asm/Item.strVal1=g +org/objectweb/asm/Item.strVal2=h +org/objectweb/asm/Item.strVal3=i +org/objectweb/asm/Item.hashCode=j +org/objectweb/asm/Item.next=k + +org/objectweb/asm/Label.resolved=a +org/objectweb/asm/Label.position=b +org/objectweb/asm/Label.resized=c +org/objectweb/asm/Label.referenceCount=d +org/objectweb/asm/Label.srcAndRefPositions=e +org/objectweb/asm/Label.beginStackSize=f +org/objectweb/asm/Label.maxStackSize=g +org/objectweb/asm/Label.successors=h +org/objectweb/asm/Label.next=i +org/objectweb/asm/Label.pushed=j +org/objectweb/asm/Label.line=k + +org/objectweb/asm/MethodWriter.next=a +org/objectweb/asm/MethodWriter.cw=b +org/objectweb/asm/MethodWriter.access=c +org/objectweb/asm/MethodWriter.name=d +org/objectweb/asm/MethodWriter.desc=e +org/objectweb/asm/MethodWriter.descriptor=f +org/objectweb/asm/MethodWriter.signature=g +org/objectweb/asm/MethodWriter.exceptionCount=h +org/objectweb/asm/MethodWriter.exceptions=i +org/objectweb/asm/MethodWriter.annd=j +org/objectweb/asm/MethodWriter.anns=k +org/objectweb/asm/MethodWriter.ianns=l +org/objectweb/asm/MethodWriter.panns=m +org/objectweb/asm/MethodWriter.ipanns=n +org/objectweb/asm/MethodWriter.attrs=o +org/objectweb/asm/MethodWriter.code=p +org/objectweb/asm/MethodWriter.maxStack=q +org/objectweb/asm/MethodWriter.maxLocals=r +org/objectweb/asm/MethodWriter.catchCount=s +org/objectweb/asm/MethodWriter.catchTable=t +org/objectweb/asm/MethodWriter.localVarCount=u +org/objectweb/asm/MethodWriter.localVar=v +org/objectweb/asm/MethodWriter.localVarTypeCount=w +org/objectweb/asm/MethodWriter.localVarType=x +org/objectweb/asm/MethodWriter.lineNumberCount=y +org/objectweb/asm/MethodWriter.lineNumber=z +org/objectweb/asm/MethodWriter.cattrs=A +org/objectweb/asm/MethodWriter.resize=B +org/objectweb/asm/MethodWriter.computeMaxs=C +org/objectweb/asm/MethodWriter.stackSize=D +org/objectweb/asm/MethodWriter.maxStackSize=E +org/objectweb/asm/MethodWriter.currentBlock=F +org/objectweb/asm/MethodWriter.blockStack=G +org/objectweb/asm/MethodWriter.SIZE=H +org/objectweb/asm/MethodWriter.classReaderOffset=I +org/objectweb/asm/MethodWriter.classReaderLength=J +org/objectweb/asm/MethodWriter.lastHandler=K + +org/objectweb/asm/Type.sort=a +org/objectweb/asm/Type.buf=b +org/objectweb/asm/Type.off=c +org/objectweb/asm/Type.len=d + +org/objectweb/asm/signature/SignatureReader.signature=a + +org/objectweb/asm/signature/SignatureWriter.buf=a +org/objectweb/asm/signature/SignatureWriter.hasFormals=b +org/objectweb/asm/signature/SignatureWriter.hasParameters=c +org/objectweb/asm/signature/SignatureWriter.argumentStack=d + +# method mappings + +org/objectweb/asm/AnnotationWriter.getSize()I=a +org/objectweb/asm/AnnotationWriter.put([Lorg/objectweb/asm/AnnotationWriter;Lorg/objectweb/asm/ByteVector;)V=a +org/objectweb/asm/AnnotationWriter.put(Lorg/objectweb/asm/ByteVector;)V=a + +org/objectweb/asm/Attribute.getCount()I=a +org/objectweb/asm/Attribute.getSize(Lorg/objectweb/asm/ClassWriter;[BIII)I=a +org/objectweb/asm/Attribute.put(Lorg/objectweb/asm/ClassWriter;[BIIILorg/objectweb/asm/ByteVector;)V=a + +org/objectweb/asm/ByteVector.enlarge(I)V=a +org/objectweb/asm/ByteVector.put11(II)Lorg/objectweb/asm/ByteVector;=a +org/objectweb/asm/ByteVector.put12(II)Lorg/objectweb/asm/ByteVector;=b + +org/objectweb/asm/ClassReader.copyPool(Lorg/objectweb/asm/ClassWriter;)V=a +org/objectweb/asm/ClassReader.readAnnotationValue(I[CLjava/lang/String;Lorg/objectweb/asm/AnnotationVisitor;)I=a +org/objectweb/asm/ClassReader.readAnnotationValues(I[CLorg/objectweb/asm/AnnotationVisitor;)I=a +org/objectweb/asm/ClassReader.readAttribute([Lorg/objectweb/asm/Attribute;Ljava/lang/String;II[CI[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Attribute;=a +org/objectweb/asm/ClassReader.readClass(Ljava/io/InputStream;)[B=a +org/objectweb/asm/ClassReader.readParameterAnnotations(I[CZLorg/objectweb/asm/MethodVisitor;)V=a +org/objectweb/asm/ClassReader.readUTF(II[C)Ljava/lang/String;=a + +org/objectweb/asm/ClassWriter.get(Lorg/objectweb/asm/Item;)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newClassItem(Ljava/lang/String;)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newConstItem(Ljava/lang/Object;)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newDouble(D)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newFloat(F)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newInteger(I)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newLong(J)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newMethodItem(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/objectweb/asm/Item;=a +org/objectweb/asm/ClassWriter.newString(Ljava/lang/String;)Lorg/objectweb/asm/Item;=b +org/objectweb/asm/ClassWriter.put122(III)V=a +org/objectweb/asm/ClassWriter.put(Lorg/objectweb/asm/Item;)V=b + +org/objectweb/asm/FieldWriter.getSize()I=a +org/objectweb/asm/FieldWriter.put(Lorg/objectweb/asm/ByteVector;)V=a + +org/objectweb/asm/Item.isEqualTo(Lorg/objectweb/asm/Item;)Z=a +org/objectweb/asm/Item.set(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V=a +org/objectweb/asm/Item.set(D)V=a +org/objectweb/asm/Item.set(F)V=a +org/objectweb/asm/Item.set(I)V=a +org/objectweb/asm/Item.set(J)V=a + +org/objectweb/asm/Label.addReference(II)V=a +org/objectweb/asm/Label.put(Lorg/objectweb/asm/MethodWriter;Lorg/objectweb/asm/ByteVector;IZ)V=a +org/objectweb/asm/Label.resolve(Lorg/objectweb/asm/MethodWriter;I[B)Z=a + +org/objectweb/asm/MethodWriter.addSuccessor(ILorg/objectweb/asm/Label;)V=a +org/objectweb/asm/MethodWriter.getArgumentsAndReturnSizes(Ljava/lang/String;)I=a +org/objectweb/asm/MethodWriter.getNewOffset([I[III)I=a +org/objectweb/asm/MethodWriter.getSize()I=a +org/objectweb/asm/MethodWriter.put(Lorg/objectweb/asm/ByteVector;)V=a +org/objectweb/asm/MethodWriter.readInt([BI)I=a +org/objectweb/asm/MethodWriter.readShort([BI)S=b +org/objectweb/asm/MethodWriter.readUnsignedShort([BI)I=c +org/objectweb/asm/MethodWriter.resizeInstructions([I[II)[I=a +org/objectweb/asm/MethodWriter.writeShort([BII)V=a +org/objectweb/asm/MethodWriter.getNewOffset([I[ILorg/objectweb/asm/Label;)V=a + +org/objectweb/asm/Type.getType([CI)Lorg/objectweb/asm/Type;=a +org/objectweb/asm/Type.getDescriptor(Ljava/lang/StringBuffer;)V=a +org/objectweb/asm/Type.getDescriptor(Ljava/lang/StringBuffer;Ljava/lang/Class;)V=a + +org/objectweb/asm/signature/SignatureReader.parseType(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I=a + +org/objectweb/asm/signature/SignatureWriter.endFormals()V=a +org/objectweb/asm/signature/SignatureWriter.endArguments()V=b diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java index c41ac1d7c86..24b305a224f 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java @@ -113,7 +113,7 @@ class CommonAppletStub */ public String getParameter(String name) { - return (String) tag.getParameter(name.toLowerCase()); + return tag.getParameter(name.toLowerCase()); } /** diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java index a10b889bc97..4eff8f53ebb 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java @@ -55,7 +55,6 @@ import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.ResourceBundle; class Main diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java index 283d547b801..bcf57808c01 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java @@ -61,8 +61,6 @@ import java.net.URL; import java.util.ArrayList; import java.util.HashMap; -import javax.swing.JOptionPane; - class PluginAppletWindow extends EmbeddedWindow @@ -350,7 +348,7 @@ class PluginAppletWindow * Called when the hierarchy of this component changes. Use * <code>getChangeFlags()</code> on the event to see what exactly changed. * - * @param e the event describing the change + * @param event the event describing the change */ public void hierarchyChanged(HierarchyEvent event) { diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java index 3a0a442825d..b92dc50f5eb 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java @@ -512,7 +512,7 @@ class StandaloneAppletWindow * Called when the hierarchy of this component changes. Use * <code>getChangeFlags()</code> on the event to see what exactly changed. * - * @param e the event describing the change + * @param event the event describing the change */ public void hierarchyChanged(HierarchyEvent event) { diff --git a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java index 56bb1bb87c5..c1e5cac524b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java +++ b/libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java @@ -292,7 +292,7 @@ public class TagParser /** * Parses the archive string and returns a list. * - * @param the list of archives (comma-separated) in a String. + * @param arcs the list of archives (comma-separated) in a String. */ static ArrayList parseArchives(String arcs, AppletTag t) { diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java index e44b9011cfd..b2e50872920 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java +++ b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java @@ -38,9 +38,16 @@ exception statement from your version. */ package gnu.classpath.tools.common; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.Reader; import java.text.MessageFormat; +import java.util.ArrayList; import gnu.classpath.Configuration; +import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.Parser; @@ -84,4 +91,149 @@ public class ClasspathToolParser } }); } + + public void parse(String[] inArgs, FileArgumentCallback files, + boolean handleFileLists) + { + FileArgumentCallback cb; + + if (handleFileLists) + cb = new AtFileArgumentCallback(files); + else + cb = files; + + parse(inArgs, cb); + } + + public String[] parse(String[] inArgs, boolean handleFileLists) + { + final ArrayList<String> fileResult = new ArrayList<String>(); + + final FileArgumentCallback cb = new FileArgumentCallback() + { + public void notifyFile(String fileArgument) + { + fileResult.add(fileArgument); + } + }; + + if (handleFileLists) + parse(inArgs, new AtFileArgumentCallback(cb)); + else + parse(inArgs, cb); + + return fileResult.toArray(new String[fileResult.size()]); + } + + + /** + * Simple function that takes the given {@link Reader}, treats it like + * a textfile and reads all the whitespace separated entries from it + * and adds them to the @{link FileArgumentCallback} instance. + * + * @param reader the reader to read from. + * @param cb the callback to post the filenames to. + * @throws OptionException if an error occurs reading the list. + */ + public void parseFileList(Reader reader, FileArgumentCallback cb) + throws OptionException + { + BufferedReader breader = new BufferedReader(reader); + String line = null; + + try + { + while ((line = breader.readLine()) != null) + parseLine(line, cb); + + reader.close(); + } + catch (IOException ioe) + { + throw new OptionException("I/O error while reading a file list", ioe); + } + + } + + /** + * Parses whitespace separated file entries. + * + * Note: This is not coping with whitespace in files or quoting. + * + * @param line the line of the file to parse. + * @param cb the callback to pass the parsed file to. + * @throws IOException if an I/O error occurs. + * @throws OptionException if an error occurs in the callback. + */ + private void parseLine(String line, FileArgumentCallback cb) + throws IOException, OptionException + { + final int length = line.length(); + int start = 0; + int end = 0; + + // While not reached end of line ... + while (start < length) + { + // Search for first non-whitespace character for the start of a word. + while (Character.isWhitespace(line.codePointAt(start))) + { + start++; + + if (start == length) + return; + } + + end = start + 1; + + // Search for first whitespace character for the end of a word. + while (end < length && !Character.isWhitespace(line.codePointAt(end))) + end++; + + cb.notifyFile(line.substring(start, end)); + + start = end + 1; + } + } + + /** + * Implementation of {@link FileArgumentCallback} that handles + * file arguments in {@link #notifyFile} starting with a <code>@</code> + * through {@link ClasspathToolParser#parseFileList}. + */ + class AtFileArgumentCallback extends FileArgumentCallback + { + FileArgumentCallback cb; + + AtFileArgumentCallback(FileArgumentCallback cb) + { + this.cb = cb; + } + + @Override + public void notifyFile(String fileArgument) + throws OptionException + { + if (fileArgument.codePointAt(0) == '@') + { + FileReader fr = null; + + try + { + fr = new FileReader(fileArgument.substring(1)); + } + catch (FileNotFoundException fnfe) + { + throw new OptionException("File not found: " + fileArgument.substring(1), + fnfe); + } + + ClasspathToolParser.this.parseFileList(fr, cb); + } + else + cb.notifyFile(fileArgument); + } + + } + } diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java index a09d716f424..2d7f77a5501 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java @@ -49,4 +49,10 @@ public class OptionException { super(message); } + + public OptionException(String message, Throwable cause) + { + super(message, cause); + } + } diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java index d52028fefce..e5f1a3fb1e9 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/jar/Main.java @@ -172,9 +172,9 @@ public class Main } } - private Parser initializeParser() + private ClasspathToolParser initializeParser() { - Parser p = new JarParser("jar"); //$NON-NLS-1$ + ClasspathToolParser p = new JarParser("jar"); //$NON-NLS-1$ p.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$ OptionGroup grp = new OptionGroup(Messages.getString("Main.OpMode")); //$NON-NLS-1$ @@ -265,11 +265,11 @@ public class Main private void run(String[] args) throws InstantiationException, IllegalAccessException, IOException { - Parser p = initializeParser(); + ClasspathToolParser p = initializeParser(); // Special hack to emulate old tar-style commands. if (args.length > 0 && args[0].charAt(0) != '-') args[0] = '-' + args[0]; - p.parse(args, new HandleFile()); + p.parse(args, new HandleFile(), true); if (readNamesFromStdin) readNames(); Action t = (Action) operationMode.newInstance(); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java index 445f902da48..8861541a58e 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java @@ -63,14 +63,14 @@ public class CniIncludePrinter return new PrintStream(fos); } - public void printClass(File filename, ClassWrapper klass) throws IOException + public void printClass(File file, ClassWrapper klass) throws IOException { // Never write Object or Class. This is a hack, maybe // the user would like to see what they look like... if (klass.name.equals("java/lang/Object") || klass.name.equals("java/lang/Class")) return; - PrintStream ps = getPrintStream(filename + ".h", klass); + PrintStream ps = getPrintStream(file + ".h", klass); if (ps == null) return; ps.println(); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java b/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java index 7faed1691d2..15bcec2630b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java @@ -38,10 +38,11 @@ package gnu.classpath.tools.javah; +import gnu.classpath.tools.common.ClasspathToolParser; + import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; -import gnu.classpath.tools.getopt.Parser; import java.io.IOException; import java.util.ArrayList; @@ -60,9 +61,9 @@ public class GcjhMain extends Main return "gcjh"; } - protected Parser getParser() + protected ClasspathToolParser getParser() { - Parser result = super.getParser(); + ClasspathToolParser result = super.getParser(); result.setHeader("usage: gcjh [OPTION]... CLASS..."); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java index 6c1a8e166fb..ba44a571133 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java @@ -107,15 +107,23 @@ public class JniIncludePrinter return new JniPrintStream(classpath, fos, klass); } - public void printClass(File filename, ClassWrapper klass) throws IOException + public void printClass(File file, ClassWrapper klass) throws IOException { // Note that we ignore the filename here. String xname = JniHelper.mangle(klass.name); - JniPrintStream out - = (JniPrintStream) getPrintStream(klass.name.replace('/', '_') + ".h", - klass); + + // mangle the filename a bit + String filename = klass.name; + + filename = filename.replace('/', '_'); + filename = filename.replace('$', '_'); + filename = filename + ".h"; + + JniPrintStream out = (JniPrintStream) getPrintStream(filename, klass); + if (out == null) return; + out.println(); out.print("#ifndef __"); out.print(xname); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java index 29c96cf5bba..bfca4444645 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java @@ -188,7 +188,7 @@ public class Main return "javah"; } - protected Parser getParser() + protected ClasspathToolParser getParser() { ClasspathToolParser result = new ClasspathToolParser(getName(), true); result.setHeader("usage: javah [OPTIONS] CLASS..."); @@ -324,11 +324,11 @@ public class Main while (i.hasNext()) { Map.Entry e = (Map.Entry) i.next(); - File filename = (File) e.getKey(); + File file = (File) e.getKey(); ClassWrapper klass = (ClassWrapper) e.getValue(); if (verbose) - System.err.println("[writing " + klass + " as " + filename + "]"); - printer.printClass(filename, klass); + System.err.println("[writing " + klass + " as " + file + "]"); + printer.printClass(file, klass); } } @@ -339,8 +339,8 @@ public class Main protected void run(String[] args) throws IOException { - Parser p = getParser(); - String[] classNames = p.parse(args); + ClasspathToolParser p = getParser(); + String[] classNames = p.parse(args, true); postParse(classNames); loader = classpath.getLoader(); diff --git a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java index 0667befc6c5..6bf3193fc31 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java +++ b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java @@ -101,7 +101,7 @@ public class Native2ASCII encoding = argument; } }); - result.add(new Option("reverse", Messages.getString("Native2ASCII.ReversedHelp")) //$NON-NLS-1$ //$NON-NLS-2$ + result.add(new Option("reverse", Messages.getString("Native2ASCII.ReverseHelp")) //$NON-NLS-1$ //$NON-NLS-2$ { public void parsed(String argument) throws OptionException { diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java index afb30ad7224..15f3612cc9a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java @@ -41,10 +41,8 @@ import gnu.CORBA.OrbFunctional; import gnu.CORBA.IOR; import gnu.CORBA.NamingService.Ext; import gnu.classpath.tools.common.ClasspathToolParser; -import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; -import gnu.classpath.tools.getopt.OptionGroup; import gnu.classpath.tools.getopt.Parser; import org.omg.CosNaming.NamingContextExt; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java index 9c50efa8ff9..e853a5a1b56 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java @@ -22,15 +22,11 @@ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA package gnu.classpath.tools.rmic; import gnu.java.rmi.server.RMIHashes; -import java.io.ByteArrayOutputStream; -import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import java.io.PrintWriter; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; @@ -46,13 +42,10 @@ import java.rmi.server.RemoteRef; import java.rmi.server.RemoteStub; import java.rmi.server.Skeleton; import java.rmi.server.SkeletonMismatchException; -import java.security.MessageDigest; import java.util.ArrayList; import java.util.Arrays; -import java.util.HashSet; import java.util.Iterator; import java.util.List; -import java.util.Set; import java.util.StringTokenizer; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.ClassWriter; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java index 12d1fa20eda..28f4d193144 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java @@ -22,16 +22,10 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA package gnu.classpath.tools.rmic; import gnu.classpath.tools.common.ClasspathToolParser; -import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; -import gnu.classpath.tools.getopt.OptionGroup; import gnu.classpath.tools.getopt.Parser; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; import java.util.ArrayList; /** diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java index d601b13f178..4ee079c1e5c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java @@ -39,7 +39,6 @@ package gnu.classpath.tools.rmid; import gnu.classpath.tools.rmid.ActivationSystemImpl; import gnu.classpath.tools.common.ClasspathToolParser; -import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; import gnu.classpath.tools.getopt.OptionGroup; diff --git a/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java b/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java index 460b7818532..78a8f98c4f0 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java @@ -39,10 +39,8 @@ package gnu.classpath.tools.tnameserv; import gnu.CORBA.NamingService.NamingServiceTransient; import gnu.classpath.tools.common.ClasspathToolParser; -import gnu.classpath.tools.getopt.FileArgumentCallback; import gnu.classpath.tools.getopt.Option; import gnu.classpath.tools.getopt.OptionException; -import gnu.classpath.tools.getopt.OptionGroup; import gnu.classpath.tools.getopt.Parser; /** diff --git a/libjava/classpath/resource/com/sun/tools/javac/messages.properties b/libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties index 995e871d9cf..995e871d9cf 100644 --- a/libjava/classpath/resource/com/sun/tools/javac/messages.properties +++ b/libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties index c826afa2197..c826afa2197 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties index 989fde74eee..989fde74eee 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties index a747ab4b473..a747ab4b473 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/jar/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties index a456fe2438d..a456fe2438d 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/jar/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties index d4088177c3a..d4088177c3a 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/keytool/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties index 98f4e684251..98f4e684251 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/keytool/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties index fe2d10ae3f5..f04d184f286 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties @@ -40,5 +40,5 @@ Native2ASCII.Usage=Usage: native2ascii [OPTIONS]... [INPUTFILE [OUTPUTFILE]] Native2ASCII.EncodingHelp=encoding to use Native2ASCII.EncodingArgName=NAME Native2ASCII.EncodingSpecified=encoding already specified -Native2ASCII.ReversedHelp=convert from encoding to native -Native2ASCII.ReversedHelpCompat=alias for -reverse (deprecated) +Native2ASCII.ReverseHelp=convert from encoding to native + diff --git a/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties index b427d102bf1..b427d102bf1 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties index 7be7cb0c732..7be7cb0c732 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav index aff606b90cc..aff606b90cc 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav index 371e12d4486..371e12d4486 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav index 17636deb670..17636deb670 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav index 0125a02b0a3..0125a02b0a3 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav index 1c55a059799..1c55a059799 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav index 9aaf8f5adc0..9aaf8f5adc0 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav index 860a93c8447..860a93c8447 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav index 797ae1401de..797ae1401de 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav index 493f0009b48..493f0009b48 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav index 3db17da7c84..3db17da7c84 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties index 234cea12a1e..234cea12a1e 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties index 46f7cfdb73f..46f7cfdb73f 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/serialver/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties index 8900795d4fb..8900795d4fb 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/serialver/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties diff --git a/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties index 3861e24ba08..3861e24ba08 100644 --- a/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties diff --git a/libjava/classpath/resource/sun/rmi/rmic/messages.properties b/libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties index 4c897fd5e67..4c897fd5e67 100644 --- a/libjava/classpath/resource/sun/rmi/rmic/messages.properties +++ b/libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java index 3556220ae8a..639a957194b 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java +++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java @@ -48,7 +48,6 @@ import gnu.classpath.jdwp.util.MethodResult; import gnu.classpath.jdwp.util.MonitorInfo; import gnu.classpath.jdwp.value.Value; -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Collection; diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java index 43b9ae1a100..eade26374db 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java @@ -37,8 +37,14 @@ exception statement from your version. */ package gnu.java.lang.management; +import java.lang.management.ManagementFactory; +import java.lang.management.MemoryPoolMXBean; +import java.lang.management.MemoryType; import java.lang.management.MemoryUsage; +import java.util.Iterator; +import java.util.List; + /** * Provides access to information about the memory * management of the current invocation of the virtual @@ -62,10 +68,7 @@ final class VMMemoryMXBeanImpl */ static MemoryUsage getHeapMemoryUsage() { - Runtime runtime = Runtime.getRuntime(); - long totalMem = runtime.totalMemory(); - return new MemoryUsage(-1, totalMem - runtime.freeMemory(), - totalMem, runtime.maxMemory()); + return getUsage(MemoryType.HEAP); } /** @@ -76,7 +79,10 @@ final class VMMemoryMXBeanImpl * @return an {@link java.lang.management.MemoryUsage} instance * for non-heap memory. */ - static native MemoryUsage getNonHeapMemoryUsage(); + static MemoryUsage getNonHeapMemoryUsage() + { + return getUsage(MemoryType.NON_HEAP); + } /** * Returns the number of objects ready to be garbage collected. @@ -106,4 +112,45 @@ final class VMMemoryMXBeanImpl */ static native void setVerbose(boolean verbose); + /** + * Totals the memory usage from all the pools that match + * the given type. + * + * @param type the type of memory pools to accumulate + * (heap or non-heap). + * @return the memory usage overall. + */ + private static MemoryUsage getUsage(MemoryType type) { + long init = 0, committed = 0, used = 0, max = 0; + Iterator pools = + ManagementFactory.getMemoryPoolMXBeans().iterator(); + while (pools.hasNext()) + { + MemoryPoolMXBean pool = (MemoryPoolMXBean) pools.next(); + if (pool.getType() == type) + { + MemoryUsage usage = pool.getUsage(); + if (init != -1) + { + long poolInit = usage.getInit(); + if (poolInit == -1) + init = -1; + else + init += poolInit; + } + committed += usage.getCommitted(); + used += usage.getUsed(); + if (max != -1) + { + long poolMax = usage.getMax(); + if (poolMax == -1) + max = -1; + else + max += poolMax; + } + } + } + return new MemoryUsage(init, used, committed, max); + } + } diff --git a/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java b/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java index 1f69877b6ba..a9d1452b72d 100644 --- a/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java +++ b/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java @@ -256,7 +256,6 @@ public final class VMChannel * Assumes the that buffer list constains DirectBuffers. Will perform * as gathering write. * - * @param fd * @param srcs * @param offset * @param length diff --git a/libjava/classpath/vm/reference/java/io/VMFile.java b/libjava/classpath/vm/reference/java/io/VMFile.java index 4f708a4a589..2a2751765ec 100644 --- a/libjava/classpath/vm/reference/java/io/VMFile.java +++ b/libjava/classpath/vm/reference/java/io/VMFile.java @@ -80,10 +80,10 @@ final class VMFile static native boolean create(String path) throws IOException; /* - * This native function actually produces the list of file in this + * This native function actually produces the list of files in this * directory */ - static native String[] list(String dirpath); + static native synchronized String[] list(String dirpath); /* * This native method actually performs the rename. @@ -117,6 +117,21 @@ final class VMFile static native boolean mkdir(String dirpath); /** + * Gets the total bytes of the filesystem named by path. + */ + public static native long getTotalSpace(String path); + + /** + * Gets the total free bytes of the filesystem named by path. + */ + public static native long getFreeSpace(String path); + + /** + * Gets the available bytes of the filesystem named by path. + */ + public static native long getUsableSpace(String path); + + /** * Set the read permission of the file. */ public static synchronized native boolean setReadable(String path, diff --git a/libjava/classpath/vm/reference/java/lang/VMClass.java b/libjava/classpath/vm/reference/java/lang/VMClass.java index 25965068daf..7e9620b4b59 100644 --- a/libjava/classpath/vm/reference/java/lang/VMClass.java +++ b/libjava/classpath/vm/reference/java/lang/VMClass.java @@ -43,8 +43,6 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.lang.reflect.Type; -import java.lang.reflect.TypeVariable; /* * This class is a reference version, mainly for compiling a class library @@ -298,12 +296,27 @@ final class VMClass */ static String getSimpleName(Class klass) { + if (isAnonymousClass(klass)) + return ""; if (isArray(klass)) { return getComponentType(klass).getSimpleName() + "[]"; } String fullName = getName(klass); - return fullName.substring(fullName.lastIndexOf(".") + 1); + int pos = fullName.lastIndexOf("$"); + if (pos == -1) + pos = 0; + else + { + ++pos; + while (Character.isDigit(fullName.charAt(pos))) + ++pos; + } + int packagePos = fullName.lastIndexOf(".", pos); + if (packagePos == -1) + return fullName.substring(pos); + else + return fullName.substring(packagePos + 1); } /** @@ -357,6 +370,8 @@ final class VMClass */ static String getCanonicalName(Class klass) { + if (isLocalClass(klass) || isAnonymousClass(klass)) + return null; if (isArray(klass)) { String componentName = getComponentType(klass).getCanonicalName(); @@ -368,9 +383,9 @@ final class VMClass String memberName = getDeclaringClass(klass).getCanonicalName(); if (memberName != null) return memberName + "." + getSimpleName(klass); + else + return memberName; } - if (isLocalClass(klass) || isAnonymousClass(klass)) - return null; return getName(klass); } diff --git a/libjava/classpath/vm/reference/java/lang/VMDouble.java b/libjava/classpath/vm/reference/java/lang/VMDouble.java index 8a991c9ad78..58b3b45b420 100644 --- a/libjava/classpath/vm/reference/java/lang/VMDouble.java +++ b/libjava/classpath/vm/reference/java/lang/VMDouble.java @@ -70,22 +70,6 @@ final class VMDouble * layout. Bit 63 (the most significant) is the sign bit, bits 62-52 * (masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0 * (masked by 0x000fffffffffffffL) are the mantissa. This function - * collapses all versions of NaN to 0x7ff8000000000000L. The result of this - * function can be used as the argument to - * <code>Double.longBitsToDouble(long)</code> to obtain the original - * <code>double</code> value. - * - * @param value the <code>double</code> to convert - * @return the bits of the <code>double</code> - * @see #longBitsToDouble(long) - */ - public static native long doubleToLongBits(double value); - - /** - * Convert the double to the IEEE 754 floating-point "double format" bit - * layout. Bit 63 (the most significant) is the sign bit, bits 62-52 - * (masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0 - * (masked by 0x000fffffffffffffL) are the mantissa. This function * leaves NaN alone, rather than collapsing to a canonical value. The * result of this function can be used as the argument to * <code>Double.longBitsToDouble(long)</code> to obtain the original diff --git a/libjava/classpath/vm/reference/java/lang/VMFloat.java b/libjava/classpath/vm/reference/java/lang/VMFloat.java index 15348130f10..26d89dc9d19 100644 --- a/libjava/classpath/vm/reference/java/lang/VMFloat.java +++ b/libjava/classpath/vm/reference/java/lang/VMFloat.java @@ -67,21 +67,6 @@ final class VMFloat * Convert the float to the IEEE 754 floating-point "single format" bit * layout. Bit 31 (the most significant) is the sign bit, bits 30-23 * (masked by 0x7f800000) represent the exponent, and bits 22-0 - * (masked by 0x007fffff) are the mantissa. This function collapses all - * versions of NaN to 0x7fc00000. The result of this function can be used - * as the argument to <code>Float.intBitsToFloat(int)</code> to obtain the - * original <code>float</code> value. - * - * @param value the <code>float</code> to convert - * @return the bits of the <code>float</code> - * @see #intBitsToFloat(int) - */ - static native int floatToIntBits(float value); - - /** - * Convert the float to the IEEE 754 floating-point "single format" bit - * layout. Bit 31 (the most significant) is the sign bit, bits 30-23 - * (masked by 0x7f800000) represent the exponent, and bits 22-0 * (masked by 0x007fffff) are the mantissa. This function leaves NaN alone, * rather than collapsing to a canonical value. The result of this function * can be used as the argument to <code>Float.intBitsToFloat(int)</code> to diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java b/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java index eebee5f5d2a..8c604ccc9a6 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java @@ -42,6 +42,7 @@ import gnu.java.lang.ClassHelper; import gnu.java.lang.reflect.MethodSignatureParser; +import java.lang.annotation.Annotation; import java.util.Arrays; /** @@ -393,4 +394,27 @@ public final class Constructor<T> MethodSignatureParser p = new MethodSignatureParser(this, sig); return p.getGenericParameterTypes(); } + + /** + * <p> + * Return an array of arrays representing the annotations on each + * of the constructor's parameters. The outer array is aligned against + * the parameters of the constructors and is thus equal in length to + * the number of parameters (thus having a length zero if there are none). + * Each array element in the outer array contains an inner array which + * holds the annotations. This array has a length of zero if the parameter + * has no annotations. + * </p> + * <p> + * The returned annotations are serialized. Changing the annotations has + * no affect on the return value of future calls to this method. + * </p> + * + * @return an array of arrays which represents the annotations used on the + * parameters of this constructor. The order of the array elements + * matches the declaration order of the parameters. + * @since 1.5 + */ + public native Annotation[][] getParameterAnnotations(); + } diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Method.java b/libjava/classpath/vm/reference/java/lang/reflect/Method.java index 2db59fee46f..d797d4fda18 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/Method.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/Method.java @@ -42,6 +42,7 @@ import gnu.java.lang.ClassHelper; import gnu.java.lang.reflect.MethodSignatureParser; +import java.lang.annotation.Annotation; import java.util.Arrays; /** @@ -462,4 +463,27 @@ extends AccessibleObject implements Member, GenericDeclaration * @since 1.5 */ public native Object getDefaultValue(); + + /** + * <p> + * Return an array of arrays representing the annotations on each + * of the method's parameters. The outer array is aligned against + * the parameters of the method and is thus equal in length to + * the number of parameters (thus having a length zero if there are none). + * Each array element in the outer array contains an inner array which + * holds the annotations. This array has a length of zero if the parameter + * has no annotations. + * </p> + * <p> + * The returned annotations are serialized. Changing the annotations has + * no affect on the return value of future calls to this method. + * </p> + * + * @return an array of arrays which represents the annotations used on the + * parameters of this method. The order of the array elements + * matches the declaration order of the parameters. + * @since 1.5 + */ + public native Annotation[][] getParameterAnnotations(); + } diff --git a/libjava/classpath/vm/reference/java/security/VMSecureRandom.java b/libjava/classpath/vm/reference/java/security/VMSecureRandom.java index dc67d871968..5eeb158bc81 100644 --- a/libjava/classpath/vm/reference/java/security/VMSecureRandom.java +++ b/libjava/classpath/vm/reference/java/security/VMSecureRandom.java @@ -38,11 +38,6 @@ exception statement from your version. */ package java.security; -import gnu.classpath.SystemProperties; -import gnu.java.security.action.GetSecurityPropertyAction; - -import java.net.URL; - /** * VM-specific methods for generating real (or almost real) random * seeds. VM implementors should write a version of this class that diff --git a/libjava/configure b/libjava/configure index 04cdb53c328..03a48114eb3 100755 --- a/libjava/configure +++ b/libjava/configure @@ -5381,6 +5381,8 @@ case "${which_gcj}" in GCJH=gcjh ;; esac +JAVAC="$GCJ -C" +export JAVAC @@ -5434,6 +5436,7 @@ echo "$as_me: error: Please supply an absolute path to the Escher library" >&2;} fi fi # -Werror causes unavoidable problems in code using alsa. +ac_configure_args="$ac_configure_args --disable-regen-headers" ac_configure_args="$ac_configure_args --disable-Werror" # Only use libltdl for non-newlib builds. @@ -6000,13 +6003,13 @@ if test "${lt_cv_nm_interface+set}" = set; then else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext - (eval echo "\"\$as_me:6003: $ac_compile\"" >&5) + (eval echo "\"\$as_me:6006: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 - (eval echo "\"\$as_me:6006: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval echo "\"\$as_me:6009: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 - (eval echo "\"\$as_me:6009: output\"" >&5) + (eval echo "\"\$as_me:6012: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" @@ -7050,7 +7053,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 7053 "configure"' > conftest.$ac_ext + echo '#line 7056 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -8751,11 +8754,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:8754: $lt_compile\"" >&5) + (eval echo "\"\$as_me:8757: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:8758: \$? = $ac_status" >&5 + echo "$as_me:8761: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9073,11 +9076,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9076: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9079: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:9080: \$? = $ac_status" >&5 + echo "$as_me:9083: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -9178,11 +9181,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9181: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9184: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9185: \$? = $ac_status" >&5 + echo "$as_me:9188: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -9233,11 +9236,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:9236: $lt_compile\"" >&5) + (eval echo "\"\$as_me:9239: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:9240: \$? = $ac_status" >&5 + echo "$as_me:9243: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12085,7 +12088,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12088 "configure" +#line 12091 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12185,7 +12188,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12188 "configure" +#line 12191 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14223,11 +14226,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14226: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14229: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14230: \$? = $ac_status" >&5 + echo "$as_me:14233: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14322,11 +14325,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14325: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14328: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14329: \$? = $ac_status" >&5 + echo "$as_me:14332: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -14374,11 +14377,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14377: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14380: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14381: \$? = $ac_status" >&5 + echo "$as_me:14384: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15349,7 +15352,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -for ac_prog in gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95 +for ac_prog in gcj do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -15508,7 +15511,7 @@ fi -for ac_prog in gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95 +for ac_prog in gcj do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -15762,11 +15765,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15765: $lt_compile\"" >&5) + (eval echo "\"\$as_me:15768: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:15769: \$? = $ac_status" >&5 + echo "$as_me:15772: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16078,11 +16081,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16081: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16084: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16085: \$? = $ac_status" >&5 + echo "$as_me:16088: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16177,11 +16180,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16180: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16183: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16184: \$? = $ac_status" >&5 + echo "$as_me:16187: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -16229,11 +16232,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16232: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16235: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16236: \$? = $ac_status" >&5 + echo "$as_me:16239: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -18585,7 +18588,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : else cat > conftest.$ac_ext << EOF -#line 18588 "configure" +#line 18591 "configure" struct S { ~S(); }; void bar(); void foo() @@ -25367,7 +25370,7 @@ echo "$as_me: error: configure.ac is missing the substitutions above" >&2;} fi -for ac_prog in gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95 +for ac_prog in gcj do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 diff --git a/libjava/configure.ac b/libjava/configure.ac index 2ef3b7245b0..9d86cd831fb 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -372,6 +372,8 @@ case "${which_gcj}" in GCJH=gcjh ;; esac +JAVAC="$GCJ -C" +export JAVAC AC_SUBST(GCJ_FOR_ECJX) AC_SUBST(GCJH) @@ -424,6 +426,7 @@ else fi fi # -Werror causes unavoidable problems in code using alsa. +ac_configure_args="$ac_configure_args --disable-regen-headers" ac_configure_args="$ac_configure_args --disable-Werror" dnl --with-gcj=$GCJ dnl --with-javah=$GCJH diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 60c045aa116..8d18cdf2da5 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -855,6 +855,15 @@ struct _Jv_JNIEnv; typedef struct _Jv_Field *jfieldID; typedef struct _Jv_Method *jmethodID; +enum _Jv_jobjectRefType +{ + JNIInvalidRefType = 0, + JNILocalRefType = 1, + JNIGlobalRefType = 2, + JNIWeakGlobalRefType = 3 +}; +typedef enum _Jv_jobjectRefType jobjectRefType; + extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__)); extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass) __attribute__((__malloc__)); extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass) __attribute__((__malloc__)); diff --git a/libjava/gnu/classpath/jdwp/VMVirtualMachine.java b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java index 4431e0f6a47..acd0996ad57 100644 --- a/libjava/gnu/classpath/jdwp/VMVirtualMachine.java +++ b/libjava/gnu/classpath/jdwp/VMVirtualMachine.java @@ -48,7 +48,6 @@ import gnu.classpath.jdwp.util.MethodResult; import gnu.classpath.jdwp.util.MonitorInfo; import gnu.classpath.jdwp.value.Value; -import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Collection; import java.util.Hashtable; diff --git a/libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h b/libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h new file mode 100644 index 00000000000..ae86fa10763 --- /dev/null +++ b/libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_classpath_toolkit_DefaultDaemonThreadFactory__ +#define __gnu_classpath_toolkit_DefaultDaemonThreadFactory__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace classpath + { + namespace toolkit + { + class DefaultDaemonThreadFactory; + } + } + } +} + +class gnu::classpath::toolkit::DefaultDaemonThreadFactory : public ::java::lang::Object +{ + +public: + DefaultDaemonThreadFactory(); + virtual ::java::lang::Thread * newThread(::java::lang::Runnable *); + static ::java::lang::Class class$; +}; + +#endif // __gnu_classpath_toolkit_DefaultDaemonThreadFactory__ diff --git a/libjava/gnu/java/awt/font/GNUGlyphVector.h b/libjava/gnu/java/awt/font/GNUGlyphVector.h index 99086f13f2a..a3f54bf8edd 100644 --- a/libjava/gnu/java/awt/font/GNUGlyphVector.h +++ b/libjava/gnu/java/awt/font/GNUGlyphVector.h @@ -93,6 +93,7 @@ private: JArray< jfloat > * pos; JArray< ::java::awt::geom::AffineTransform * > * transforms; jint layoutFlags; + ::java::awt::Shape * cleanOutline; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h b/libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h new file mode 100644 index 00000000000..3f0b4d28c14 --- /dev/null +++ b/libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_OpenTypeFontPeer$XFontMetrics__ +#define __gnu_java_awt_font_OpenTypeFontPeer$XFontMetrics__ + +#pragma interface + +#include <java/awt/FontMetrics.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class OpenTypeFontPeer; + class OpenTypeFontPeer$XFontMetrics; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + namespace geom + { + class Point2D; + } + } + } +} + +class gnu::java::awt::font::OpenTypeFontPeer$XFontMetrics : public ::java::awt::FontMetrics +{ + +public: // actually package-private + OpenTypeFontPeer$XFontMetrics(::gnu::java::awt::font::OpenTypeFontPeer *, ::java::awt::Font *); +public: + virtual jint getAscent(); + virtual jint getDescent(); + virtual jint getHeight(); + virtual jint charWidth(jchar); + virtual jint charsWidth(JArray< jchar > *, jint, jint); + virtual jint stringWidth(::java::lang::String *); +private: + ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::awt::FontMetrics)))) cachedPoint; +public: // actually package-private + ::gnu::java::awt::font::OpenTypeFontPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_OpenTypeFontPeer$XFontMetrics__ diff --git a/libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h b/libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h new file mode 100644 index 00000000000..1fec3c237e2 --- /dev/null +++ b/libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h @@ -0,0 +1,73 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_OpenTypeFontPeer$XLineMetrics__ +#define __gnu_java_awt_font_OpenTypeFontPeer$XLineMetrics__ + +#pragma interface + +#include <java/awt/font/LineMetrics.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class OpenTypeFontPeer; + class OpenTypeFontPeer$XLineMetrics; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + namespace font + { + class FontRenderContext; + class GlyphVector; + } + } + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::awt::font::OpenTypeFontPeer$XLineMetrics : public ::java::awt::font::LineMetrics +{ + +public: // actually package-private + OpenTypeFontPeer$XLineMetrics(::gnu::java::awt::font::OpenTypeFontPeer *, ::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *); +public: + virtual jfloat getAscent(); + virtual jint getBaselineIndex(); + virtual JArray< jfloat > * getBaselineOffsets(); + virtual jfloat getDescent(); + virtual jfloat getHeight(); + virtual jfloat getLeading(); + virtual jint getNumChars(); + virtual jfloat getStrikethroughOffset(); + virtual jfloat getStrikethroughThickness(); + virtual jfloat getUnderlineOffset(); + virtual jfloat getUnderlineThickness(); +private: + ::java::awt::Font * __attribute__((aligned(__alignof__( ::java::awt::font::LineMetrics)))) font; + ::java::awt::font::GlyphVector * glyphVector; + ::java::awt::font::FontRenderContext * fontRenderContext; +public: // actually package-private + ::gnu::java::awt::font::OpenTypeFontPeer * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_OpenTypeFontPeer$XLineMetrics__ diff --git a/libjava/gnu/java/awt/font/OpenTypeFontPeer.h b/libjava/gnu/java/awt/font/OpenTypeFontPeer.h new file mode 100644 index 00000000000..6129982b4c4 --- /dev/null +++ b/libjava/gnu/java/awt/font/OpenTypeFontPeer.h @@ -0,0 +1,96 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_font_OpenTypeFontPeer__ +#define __gnu_java_awt_font_OpenTypeFontPeer__ + +#pragma interface + +#include <gnu/java/awt/peer/ClasspathFontPeer.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace font + { + class FontDelegate; + class OpenTypeFontPeer; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + class FontMetrics; + namespace font + { + class FontRenderContext; + class GlyphVector; + class LineMetrics; + } + namespace geom + { + class AffineTransform; + class Rectangle2D; + } + } + namespace text + { + class CharacterIterator; + } + } +} + +class gnu::java::awt::font::OpenTypeFontPeer : public ::gnu::java::awt::peer::ClasspathFontPeer +{ + +public: + OpenTypeFontPeer(::java::lang::String *, jint, jint); + OpenTypeFontPeer(::java::lang::String *, ::java::util::Map *); + virtual jboolean canDisplay(::java::awt::Font *, jint); + virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint); + virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *); + virtual ::java::lang::String * getPostScriptName(::java::awt::Font *); + virtual jint getNumGlyphs(::java::awt::Font *); + virtual jint getMissingGlyphCode(::java::awt::Font *); + virtual jbyte getBaselineFor(::java::awt::Font *, jchar); + virtual ::java::lang::String * getGlyphName(::java::awt::Font *, jint); + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *); + virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *); + virtual ::java::awt::font::GlyphVector * layoutGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jchar > *, jint, jint, jint); + virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *); + virtual jboolean hasUniformLineMetrics(::java::awt::Font *); + virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *); + virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::Font *, ::java::awt::font::FontRenderContext *); + static ::java::lang::String * encodeFont(::java::lang::String *, ::java::util::Map *); +public: // actually package-private + static ::java::lang::String * encodeFont(::java::lang::String *, jint); + static ::java::lang::String * validName(::java::lang::String *); +public: + static JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *); +private: + static ::java::util::Set * getFontNames(); + ::java::lang::String * mapFontToFilename(::java::lang::String *); +public: // actually package-private + static ::gnu::java::awt::font::FontDelegate * access$0(::gnu::java::awt::font::OpenTypeFontPeer *); + static ::java::awt::geom::AffineTransform * access$1(); +private: + static ::java::util::Properties * fontProperties; + static ::java::util::Set * availableFontNames; + static ::java::util::Map * fontToFileMap; + static ::java::awt::geom::AffineTransform * IDENDITY; + ::gnu::java::awt::font::FontDelegate * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::ClasspathFontPeer)))) fontDelegate; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_font_OpenTypeFontPeer__ diff --git a/libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h b/libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h new file mode 100644 index 00000000000..ecd73a56be5 --- /dev/null +++ b/libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h @@ -0,0 +1,61 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_image_AsyncImage$AsyncImageSource__ +#define __gnu_java_awt_image_AsyncImage$AsyncImageSource__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace image + { + class AsyncImage; + class AsyncImage$AsyncImageSource; + } + } + } + } + namespace java + { + namespace awt + { + namespace image + { + class ImageConsumer; + class ImageProducer; + } + } + } +} + +class gnu::java::awt::image::AsyncImage$AsyncImageSource : public ::java::lang::Object +{ + + AsyncImage$AsyncImageSource(::gnu::java::awt::image::AsyncImage *); +public: + virtual void addConsumer(::java::awt::image::ImageConsumer *); + virtual jboolean isConsumer(::java::awt::image::ImageConsumer *); + virtual void removeConsumer(::java::awt::image::ImageConsumer *); + virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *); + virtual void startProduction(::java::awt::image::ImageConsumer *); +private: + ::java::awt::image::ImageProducer * getRealSource(); +public: // actually package-private + AsyncImage$AsyncImageSource(::gnu::java::awt::image::AsyncImage *, ::gnu::java::awt::image::AsyncImage$AsyncImageSource *); +private: + ::java::awt::image::ImageProducer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) realSource; +public: // actually package-private + ::gnu::java::awt::image::AsyncImage * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_image_AsyncImage$AsyncImageSource__ diff --git a/libjava/gnu/java/awt/image/AsyncImage.h b/libjava/gnu/java/awt/image/AsyncImage.h new file mode 100644 index 00000000000..7c1a731799e --- /dev/null +++ b/libjava/gnu/java/awt/image/AsyncImage.h @@ -0,0 +1,72 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_image_AsyncImage__ +#define __gnu_java_awt_image_AsyncImage__ + +#pragma interface + +#include <java/awt/Image.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace image + { + class AsyncImage; + } + } + } + } + namespace java + { + namespace awt + { + class Graphics; + class Image; + namespace image + { + class ImageObserver; + class ImageProducer; + } + } + } +} + +class gnu::java::awt::image::AsyncImage : public ::java::awt::Image +{ + +public: // actually package-private + AsyncImage(); +public: + virtual void flush(); + virtual ::java::awt::Graphics * getGraphics(); + virtual jboolean isComplete(); + virtual jint getHeight(::java::awt::image::ImageObserver *); + virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *); + virtual ::java::awt::image::ImageProducer * getSource(); + virtual jint getWidth(::java::awt::image::ImageObserver *); + virtual void addObserver(::java::awt::image::ImageObserver *); + virtual jboolean prepareImage(jint, jint, ::java::awt::image::ImageObserver *); + virtual jint checkImage(jint, jint, ::java::awt::image::ImageObserver *); + virtual ::java::awt::Image * getRealImage(); + virtual void setRealImage(::java::awt::Image *); + virtual void notifyObservers(jint, jint, jint, jint, jint); + virtual void waitForImage(::java::awt::image::ImageObserver *); +public: // actually package-private + static ::java::awt::Image * access$0(::gnu::java::awt::image::AsyncImage *); +private: + ::java::awt::Image * volatile __attribute__((aligned(__alignof__( ::java::awt::Image)))) realImage; +public: // actually package-private + ::java::util::HashSet * observers; +private: + jboolean volatile complete; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_image_AsyncImage__ diff --git a/libjava/gnu/java/awt/image/ImageConverter.h b/libjava/gnu/java/awt/image/ImageConverter.h new file mode 100644 index 00000000000..8df255f6910 --- /dev/null +++ b/libjava/gnu/java/awt/image/ImageConverter.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_image_ImageConverter__ +#define __gnu_java_awt_image_ImageConverter__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace image + { + class AsyncImage; + class ImageConverter; + } + } + } + } + namespace java + { + namespace awt + { + class Image; + namespace image + { + class BufferedImage; + class ColorModel; + class IndexColorModel; + } + } + } +} + +class gnu::java::awt::image::ImageConverter : public ::java::lang::Object +{ + +public: + ImageConverter(); + virtual void setDimensions(jint, jint); + virtual void setProperties(::java::util::Hashtable *); + virtual void setColorModel(::java::awt::image::ColorModel *); + virtual void setHints(jint); + virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint); + virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint); +private: + ::java::awt::image::ColorModel * setupColorModel(::java::awt::image::ColorModel *); + void createImage(); + jint transferPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint, jint); + jint transferPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint, jint); + jint convertPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint, jint); + jint convertPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint, jint); + jint convertIndexColorModelToSRGB(jint, jint, jint, jint, ::java::awt::image::IndexColorModel *, JArray< jbyte > *, jint, jint, jint); + jint convertIndexColorModelToSRGB(jint, jint, jint, jint, ::java::awt::image::IndexColorModel *, JArray< jint > *, jint, jint, jint); + jint updateTransparency(jint, jint); +public: + virtual void imageComplete(jint); + virtual void setTargetColorModel(::java::awt::image::ColorModel *); + virtual ::java::awt::Image * getImage(); + static ::java::lang::String * IMAGE_TRANSPARENCY_PROPERTY; + static ::java::lang::String * IMAGE_PROPERTIES_PROPERTY; +private: + ::gnu::java::awt::image::AsyncImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image; + ::java::awt::image::BufferedImage * bImage; + ::java::util::Hashtable * imageProperties; + jint width; + jint height; + ::java::awt::image::ColorModel * colorModel; + ::java::awt::image::ColorModel * targetColorModel; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_image_ImageConverter__ diff --git a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h index 03567167734..92f78733b29 100644 --- a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h +++ b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h @@ -23,6 +23,7 @@ extern "Java" class ScanlineConverter; class ScanlineCoverage; class ShapeCache; + class TextCacheKey; } } } @@ -170,7 +171,6 @@ public: // actually protected virtual ::java::awt::Rectangle * getDeviceBounds(); virtual void rawDrawLine(jint, jint, jint, jint); virtual void rawDrawRect(jint, jint, jint, jint); - virtual void rawDrawString(::java::lang::String *, jint, jint); virtual void rawClearRect(jint, jint, jint, jint); virtual void rawFillRect(jint, jint, jint, jint); virtual jboolean rawDrawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *); @@ -187,11 +187,15 @@ private: void updateOptimization(); static ::java::awt::Rectangle * computeIntersection(jint, jint, jint, jint, ::java::awt::Rectangle *); void updateClip(::java::awt::geom::AffineTransform *); - ::gnu::java::awt::java2d::ShapeCache * getShapeCache(); ::gnu::java::awt::java2d::ScanlineConverter * getScanlineConverter(); + void freeScanlineConverter(::gnu::java::awt::java2d::ScanlineConverter *); + static jboolean DEFAULT_TEXT_AA; static ::java::awt::Font * FONT; - static ::java::lang::ThreadLocal * shapeCache; - static ::java::lang::ThreadLocal * scanlineConverters; + static const jint GV_CACHE_SIZE = 50; + static ::gnu::java::awt::java2d::ShapeCache * shapeCache; + static ::java::util::LinkedList * scanlineConverters; + static ::java::util::Map * gvCache; + static ::gnu::java::awt::java2d::TextCacheKey * searchTextKey; public: // actually protected ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) transform__; private: diff --git a/libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h b/libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h new file mode 100644 index 00000000000..07b6ac072c1 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_PixelCoverage$Bucket__ +#define __gnu_java_awt_java2d_PixelCoverage$Bucket__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class PixelCoverage$Bucket; + } + } + } + } +} + +class gnu::java::awt::java2d::PixelCoverage$Bucket : public ::java::lang::Object +{ + + PixelCoverage$Bucket(); +public: // actually package-private + PixelCoverage$Bucket(::gnu::java::awt::java2d::PixelCoverage$Bucket *); + jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xPos; + jint xCov; + jint yCov; + ::gnu::java::awt::java2d::PixelCoverage$Bucket * next; + ::gnu::java::awt::java2d::PixelCoverage$Bucket * prev; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_PixelCoverage$Bucket__ diff --git a/libjava/gnu/java/awt/java2d/PixelCoverage.h b/libjava/gnu/java/awt/java2d/PixelCoverage.h new file mode 100644 index 00000000000..75a505760e0 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/PixelCoverage.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_PixelCoverage__ +#define __gnu_java_awt_java2d_PixelCoverage__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class PixelCoverage; + class PixelCoverage$Bucket; + } + } + } + } +} + +class gnu::java::awt::java2d::PixelCoverage : public ::java::lang::Object +{ + +public: // actually package-private + PixelCoverage(); + void rewind(); + void clear(); + void add(jint, jint, jint); +private: + ::gnu::java::awt::java2d::PixelCoverage$Bucket * findOrInsert(jint); + ::gnu::java::awt::java2d::PixelCoverage$Bucket * __attribute__((aligned(__alignof__( ::java::lang::Object)))) head; + ::gnu::java::awt::java2d::PixelCoverage$Bucket * current; + ::gnu::java::awt::java2d::PixelCoverage$Bucket * last; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_PixelCoverage__ diff --git a/libjava/gnu/java/awt/java2d/ScanlineConverter.h b/libjava/gnu/java/awt/java2d/ScanlineConverter.h index 8ef5369096d..b2da8ffdcd8 100644 --- a/libjava/gnu/java/awt/java2d/ScanlineConverter.h +++ b/libjava/gnu/java/awt/java2d/ScanlineConverter.h @@ -50,11 +50,11 @@ class gnu::java::awt::java2d::ScanlineConverter : public ::java::lang::Object public: // actually package-private ScanlineConverter(); public: - void renderShape(::gnu::java::awt::java2d::Pixelizer *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint, ::java::awt::RenderingHints *); + void renderShape(::gnu::java::awt::java2d::Pixelizer *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint, jint, ::java::awt::RenderingHints *); private: void clear(); void doScanline(::gnu::java::awt::java2d::Pixelizer *, jint, jboolean, jboolean); - void setResolution(jint); + void setResolution(jint, jint); void setUpperBounds(jint); void addShape(::java::awt::geom::PathIterator *, jboolean); void addEdge(::gnu::java::awt::java2d::PolyEdge *); @@ -63,11 +63,11 @@ private: void edgePoolAdd(jint, jint, jint, jint, jboolean); static jint FIXED_DIGITS; static jint ONE; - static jint Y_RESOLUTION; jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) numScanlines; JArray< ::gnu::java::awt::java2d::Scanline * > * scanlines; jint upperBounds; jint resolution; + jint yResolution; jint halfStep; JArray< jfloat > * coords; ::gnu::java::awt::java2d::ActiveEdges * activeEdges; diff --git a/libjava/gnu/java/awt/java2d/ShapeWrapper.h b/libjava/gnu/java/awt/java2d/ShapeWrapper.h new file mode 100644 index 00000000000..62c9b357e40 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/ShapeWrapper.h @@ -0,0 +1,63 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_ShapeWrapper__ +#define __gnu_java_awt_java2d_ShapeWrapper__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class ShapeWrapper; + } + } + } + } + namespace java + { + namespace awt + { + class Rectangle; + class Shape; + namespace geom + { + class AffineTransform; + class PathIterator; + class Point2D; + class Rectangle2D; + } + } + } +} + +class gnu::java::awt::java2d::ShapeWrapper : public ::java::lang::Object +{ + +public: + ShapeWrapper(::java::awt::Shape *); + virtual jboolean contains(jdouble, jdouble); + virtual jboolean contains(::java::awt::geom::Point2D *); + virtual jboolean contains(jdouble, jdouble, jdouble, jdouble); + virtual jboolean contains(::java::awt::geom::Rectangle2D *); + virtual ::java::awt::Rectangle * getBounds(); + virtual ::java::awt::geom::Rectangle2D * getBounds2D(); + virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *); + virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble); + virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble); + virtual jboolean intersects(::java::awt::geom::Rectangle2D *); +private: + ::java::awt::Shape * __attribute__((aligned(__alignof__( ::java::lang::Object)))) shape; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_ShapeWrapper__ diff --git a/libjava/gnu/java/awt/java2d/TextCacheKey.h b/libjava/gnu/java/awt/java2d/TextCacheKey.h new file mode 100644 index 00000000000..9904a6a3ee2 --- /dev/null +++ b/libjava/gnu/java/awt/java2d/TextCacheKey.h @@ -0,0 +1,57 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_awt_java2d_TextCacheKey__ +#define __gnu_java_awt_java2d_TextCacheKey__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace awt + { + namespace java2d + { + class TextCacheKey; + } + } + } + } + namespace java + { + namespace awt + { + class Font; + namespace font + { + class FontRenderContext; + } + } + } +} + +class gnu::java::awt::java2d::TextCacheKey : public ::java::lang::Object +{ + +public: + TextCacheKey(); + TextCacheKey(::java::lang::String *, ::java::awt::Font *, ::java::awt::font::FontRenderContext *); + virtual void setString(::java::lang::String *); + virtual void setFontRenderContext(::java::awt::font::FontRenderContext *); + virtual void setFont(::java::awt::Font *); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); +private: + ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) string; + ::java::awt::font::FontRenderContext * fontRenderContext; + ::java::awt::Font * font; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_awt_java2d_TextCacheKey__ diff --git a/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h b/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h index 9379c5ea611..a9b70e73bcb 100644 --- a/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h +++ b/libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h @@ -76,7 +76,7 @@ private: void lock(); void unlock(); public: // actually protected - virtual jlong initFromVolatile(jlong, jint, jint); + virtual jlong initFromVolatile(jlong); private: void start_gdk_drawing(); void end_gdk_drawing(); diff --git a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h index fa35e2ad70b..78c7127c85d 100644 --- a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h +++ b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h @@ -87,7 +87,9 @@ public: // actually package-private virtual void gtkWidgetGetDimensions(JArray< jint > *); virtual void gtkWidgetGetPreferredDimensions(JArray< jint > *); virtual void gtkWindowGetLocationOnScreen(JArray< jint > *); + virtual void gtkWindowGetLocationOnScreenUnlocked(JArray< jint > *); virtual void gtkWidgetGetLocationOnScreen(JArray< jint > *); + virtual void gtkWidgetGetLocationOnScreenUnlocked(JArray< jint > *); virtual void gtkWidgetSetCursor(jint, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint); virtual void gtkWidgetSetCursorUnlocked(jint, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint); virtual void gtkWidgetSetBackground(jint, jint, jint); diff --git a/libjava/gnu/java/lang/management/BeanImpl.h b/libjava/gnu/java/lang/management/BeanImpl.h index be483954424..463d617f348 100644 --- a/libjava/gnu/java/lang/management/BeanImpl.h +++ b/libjava/gnu/java/lang/management/BeanImpl.h @@ -28,7 +28,9 @@ extern "Java" { namespace management { + class MBeanConstructorInfo; class MBeanInfo; + class MBeanOperationInfo; class MBeanParameterInfo; namespace openmbean { @@ -51,6 +53,10 @@ public: virtual ::java::lang::Object * getAttribute(::java::lang::String *); public: // actually protected virtual ::javax::management::MBeanInfo * getCachedMBeanInfo(); + virtual ::java::lang::String * getDescription(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint); + virtual ::java::lang::String * getDescription(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint); + virtual ::java::lang::String * getParameterName(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint); + virtual ::java::lang::String * getParameterName(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint); public: virtual ::javax::management::MBeanInfo * getMBeanInfo(); private: diff --git a/libjava/gnu/java/nio/charset/ByteCharset$1.h b/libjava/gnu/java/nio/charset/ByteCharset$1.h new file mode 100644 index 00000000000..cc36fe86a06 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteCharset$1.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteCharset$1__ +#define __gnu_java_nio_charset_ByteCharset$1__ + +#pragma interface + +#include <gnu/java/nio/charset/ByteDecodeLoopHelper.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteCharset$1; + class ByteCharset$Decoder; + } + } + } + } +} + +class gnu::java::nio::charset::ByteCharset$1 : public ::gnu::java::nio::charset::ByteDecodeLoopHelper +{ + +public: // actually package-private + ByteCharset$1(::gnu::java::nio::charset::ByteCharset$Decoder *); +public: // actually protected + jboolean isMappable(jbyte); + jchar mapToChar(jbyte); +public: // actually package-private + ::gnu::java::nio::charset::ByteCharset$Decoder * __attribute__((aligned(__alignof__( ::gnu::java::nio::charset::ByteDecodeLoopHelper)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteCharset$1__ diff --git a/libjava/gnu/java/nio/charset/ByteCharset$2.h b/libjava/gnu/java/nio/charset/ByteCharset$2.h new file mode 100644 index 00000000000..924e44c5ca5 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteCharset$2.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteCharset$2__ +#define __gnu_java_nio_charset_ByteCharset$2__ + +#pragma interface + +#include <gnu/java/nio/charset/ByteEncodeLoopHelper.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteCharset$2; + class ByteCharset$Encoder; + } + } + } + } +} + +class gnu::java::nio::charset::ByteCharset$2 : public ::gnu::java::nio::charset::ByteEncodeLoopHelper +{ + +public: // actually package-private + ByteCharset$2(::gnu::java::nio::charset::ByteCharset$Encoder *); +public: // actually protected + jboolean isMappable(jchar); + jbyte mapToByte(jchar); +public: // actually package-private + ::gnu::java::nio::charset::ByteCharset$Encoder * __attribute__((aligned(__alignof__( ::gnu::java::nio::charset::ByteEncodeLoopHelper)))) this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteCharset$2__ diff --git a/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h b/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h index 584b15fe5ba..0f5dd6c65a7 100644 --- a/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h +++ b/libjava/gnu/java/nio/charset/ByteCharset$Decoder.h @@ -21,6 +21,7 @@ extern "Java" { class ByteCharset; class ByteCharset$Decoder; + class ByteDecodeLoopHelper; } } } @@ -46,8 +47,11 @@ public: // actually package-private ByteCharset$Decoder(::gnu::java::nio::charset::ByteCharset *); public: // actually protected ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +public: // actually package-private + static JArray< jchar > * access$0(::gnu::java::nio::charset::ByteCharset$Decoder *); private: JArray< jchar > * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetDecoder)))) lookup; + ::gnu::java::nio::charset::ByteDecodeLoopHelper * helper; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h b/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h index cc31ae43eec..019bb4b5d6e 100644 --- a/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h +++ b/libjava/gnu/java/nio/charset/ByteCharset$Encoder.h @@ -21,6 +21,7 @@ extern "Java" { class ByteCharset; class ByteCharset$Encoder; + class ByteEncodeLoopHelper; } } } @@ -49,8 +50,11 @@ public: jboolean canEncode(::java::lang::CharSequence *); public: // actually protected ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +public: // actually package-private + static JArray< jbyte > * access$0(::gnu::java::nio::charset::ByteCharset$Encoder *); private: JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetEncoder)))) lookup; + ::gnu::java::nio::charset::ByteEncodeLoopHelper * helper; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/nio/charset/ByteCharset.h b/libjava/gnu/java/nio/charset/ByteCharset.h index 045e03fde28..aa0890cb16d 100644 --- a/libjava/gnu/java/nio/charset/ByteCharset.h +++ b/libjava/gnu/java/nio/charset/ByteCharset.h @@ -42,7 +42,7 @@ class gnu::java::nio::charset::ByteCharset : public ::java::nio::charset::Charse { public: // actually package-private - ByteCharset(::java::lang::String *, JArray< ::java::lang::String * > *); + ByteCharset(::java::lang::String *, JArray< ::java::lang::String * > *, JArray< jchar > *); public: virtual jboolean contains(::java::nio::charset::Charset *); public: // actually package-private diff --git a/libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h b/libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h new file mode 100644 index 00000000000..1a373a1bf5c --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteDecodeLoopHelper__ +#define __gnu_java_nio_charset_ByteDecodeLoopHelper__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteDecodeLoopHelper; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::ByteDecodeLoopHelper : public ::java::lang::Object +{ + +public: + ByteDecodeLoopHelper(); +public: // actually protected + virtual jboolean isMappable(jbyte) = 0; + virtual jchar mapToChar(jbyte) = 0; +public: // actually package-private + virtual ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +private: + ::java::nio::charset::CoderResult * normalDecodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); + ::java::nio::charset::CoderResult * arrayDecodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteDecodeLoopHelper__ diff --git a/libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h b/libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h new file mode 100644 index 00000000000..0b67645e7f8 --- /dev/null +++ b/libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ByteEncodeLoopHelper__ +#define __gnu_java_nio_charset_ByteEncodeLoopHelper__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ByteEncodeLoopHelper; + } + } + } + } + namespace java + { + namespace nio + { + class ByteBuffer; + class CharBuffer; + namespace charset + { + class CoderResult; + } + } + } +} + +class gnu::java::nio::charset::ByteEncodeLoopHelper : public ::java::lang::Object +{ + +public: + ByteEncodeLoopHelper(); +public: // actually protected + virtual jboolean isMappable(jchar) = 0; + virtual jbyte mapToByte(jchar) = 0; +public: // actually package-private + virtual ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +private: + ::java::nio::charset::CoderResult * normalEncodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); + ::java::nio::charset::CoderResult * arrayEncodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ByteEncodeLoopHelper__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$1.h b/libjava/gnu/java/nio/charset/ISO_8859_1$1.h new file mode 100644 index 00000000000..ceaa655aace --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_1$1.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_1$1__ +#define __gnu_java_nio_charset_ISO_8859_1$1__ + +#pragma interface + +#include <gnu/java/nio/charset/ByteDecodeLoopHelper.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_1$1; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_1$1 : public ::gnu::java::nio::charset::ByteDecodeLoopHelper +{ + +public: // actually package-private + ISO_8859_1$1(); +public: // actually protected + jboolean isMappable(jbyte); + jchar mapToChar(jbyte); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_1$1__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$2.h b/libjava/gnu/java/nio/charset/ISO_8859_1$2.h new file mode 100644 index 00000000000..849ebe637bc --- /dev/null +++ b/libjava/gnu/java/nio/charset/ISO_8859_1$2.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_ISO_8859_1$2__ +#define __gnu_java_nio_charset_ISO_8859_1$2__ + +#pragma interface + +#include <gnu/java/nio/charset/ByteEncodeLoopHelper.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class ISO_8859_1$2; + } + } + } + } +} + +class gnu::java::nio::charset::ISO_8859_1$2 : public ::gnu::java::nio::charset::ByteEncodeLoopHelper +{ + +public: // actually package-private + ISO_8859_1$2(); +public: // actually protected + jboolean isMappable(jchar); + jbyte mapToByte(jchar); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_ISO_8859_1$2__ diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h b/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h index 8adb8b83bcd..25e97ee0d88 100644 --- a/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h +++ b/libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h @@ -17,6 +17,7 @@ extern "Java" { namespace charset { + class ByteDecodeLoopHelper; class ISO_8859_1$Decoder; } } @@ -44,6 +45,8 @@ public: // actually package-private ISO_8859_1$Decoder(::java::nio::charset::Charset *); public: // actually protected ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +private: + static ::gnu::java::nio::charset::ByteDecodeLoopHelper * helper; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h b/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h index 47d2280cbb5..e4da289cc1b 100644 --- a/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h +++ b/libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h @@ -17,6 +17,7 @@ extern "Java" { namespace charset { + class ByteEncodeLoopHelper; class ISO_8859_1$Encoder; } } @@ -47,6 +48,8 @@ public: jboolean canEncode(::java::lang::CharSequence *); public: // actually protected ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +private: + static ::gnu::java::nio::charset::ByteEncodeLoopHelper * helper; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/nio/charset/Provider$1.h b/libjava/gnu/java/nio/charset/Provider$1.h index 880faccf5c6..651b6d06ca8 100644 --- a/libjava/gnu/java/nio/charset/Provider$1.h +++ b/libjava/gnu/java/nio/charset/Provider$1.h @@ -17,6 +17,7 @@ extern "Java" { namespace charset { + class Provider; class Provider$1; } } @@ -30,6 +31,7 @@ class gnu::java::nio::charset::Provider$1 : public ::java::lang::Object public: // actually package-private Provider$1(); public: + ::gnu::java::nio::charset::Provider * Provider$1$run(); ::java::lang::Object * run(); static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/nio/charset/US_ASCII$1.h b/libjava/gnu/java/nio/charset/US_ASCII$1.h new file mode 100644 index 00000000000..63d4af15b45 --- /dev/null +++ b/libjava/gnu/java/nio/charset/US_ASCII$1.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_US_ASCII$1__ +#define __gnu_java_nio_charset_US_ASCII$1__ + +#pragma interface + +#include <gnu/java/nio/charset/ByteDecodeLoopHelper.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class US_ASCII$1; + } + } + } + } +} + +class gnu::java::nio::charset::US_ASCII$1 : public ::gnu::java::nio::charset::ByteDecodeLoopHelper +{ + +public: // actually package-private + US_ASCII$1(); +public: // actually protected + jboolean isMappable(jbyte); + jchar mapToChar(jbyte); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_US_ASCII$1__ diff --git a/libjava/gnu/java/nio/charset/US_ASCII$2.h b/libjava/gnu/java/nio/charset/US_ASCII$2.h new file mode 100644 index 00000000000..41c450a55fc --- /dev/null +++ b/libjava/gnu/java/nio/charset/US_ASCII$2.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_nio_charset_US_ASCII$2__ +#define __gnu_java_nio_charset_US_ASCII$2__ + +#pragma interface + +#include <gnu/java/nio/charset/ByteEncodeLoopHelper.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace nio + { + namespace charset + { + class US_ASCII$2; + } + } + } + } +} + +class gnu::java::nio::charset::US_ASCII$2 : public ::gnu::java::nio::charset::ByteEncodeLoopHelper +{ + +public: // actually package-private + US_ASCII$2(); +public: // actually protected + jboolean isMappable(jchar); + jbyte mapToByte(jchar); +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_nio_charset_US_ASCII$2__ diff --git a/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h b/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h index c0c09bc32f7..9659ac2e7ba 100644 --- a/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h +++ b/libjava/gnu/java/nio/charset/US_ASCII$Decoder.h @@ -17,6 +17,7 @@ extern "Java" { namespace charset { + class ByteDecodeLoopHelper; class US_ASCII$Decoder; } } @@ -44,6 +45,8 @@ public: // actually package-private US_ASCII$Decoder(::java::nio::charset::Charset *); public: // actually protected ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *); +private: + static ::gnu::java::nio::charset::ByteDecodeLoopHelper * helper; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h b/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h index 7a30c343c6e..467f6b77036 100644 --- a/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h +++ b/libjava/gnu/java/nio/charset/US_ASCII$Encoder.h @@ -17,6 +17,7 @@ extern "Java" { namespace charset { + class ByteEncodeLoopHelper; class US_ASCII$Encoder; } } @@ -47,6 +48,8 @@ public: jboolean canEncode(::java::lang::CharSequence *); public: // actually protected ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *); +private: + static ::gnu::java::nio::charset::ByteEncodeLoopHelper * helper; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h index b1078ffb464..ed9b9364b44 100644 --- a/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h +++ b/libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h @@ -38,8 +38,6 @@ class gnu::java::rmi::server::RMIClassLoaderImpl$MyClassLoader : public ::java:: public: // actually package-private RMIClassLoaderImpl$MyClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *, ::java::lang::String *); -private: - RMIClassLoaderImpl$MyClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *); public: static ::java::lang::String * urlToAnnotation(JArray< ::java::net::URL * > *); virtual ::java::lang::String * getClassAnnotation(); diff --git a/libjava/gnu/java/util/LRUCache.h b/libjava/gnu/java/util/LRUCache.h new file mode 100644 index 00000000000..fc524d0f66b --- /dev/null +++ b/libjava/gnu/java/util/LRUCache.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_LRUCache__ +#define __gnu_java_util_LRUCache__ + +#pragma interface + +#include <java/util/LinkedHashMap.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + class LRUCache; + } + } + } +} + +class gnu::java::util::LRUCache : public ::java::util::LinkedHashMap +{ + +public: + LRUCache(jint); +public: // actually protected + virtual jboolean removeEldestEntry(::java::util::Map$Entry *); +private: + jint __attribute__((aligned(__alignof__( ::java::util::LinkedHashMap)))) capacity; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_LRUCache__ diff --git a/libjava/gnu/java/util/regex/REException.h b/libjava/gnu/java/util/regex/REException.h index da4560b2fe8..dc91d47cd75 100644 --- a/libjava/gnu/java/util/regex/REException.h +++ b/libjava/gnu/java/util/regex/REException.h @@ -29,6 +29,7 @@ class gnu::java::util::regex::REException : public ::java::lang::Exception public: // actually package-private REException(::java::lang::String *, jint, jint); + REException(::java::lang::String *, ::java::lang::Throwable *, jint, jint); public: virtual jint getType(); virtual jint getPosition(); diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h new file mode 100644 index 00000000000..8c9e229b055 --- /dev/null +++ b/libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__ +#define __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__ + +#pragma interface + +#include <gnu/java/util/regex/RETokenNamedProperty$Handler.h> +extern "Java" +{ + namespace gnu + { + namespace java + { + namespace util + { + namespace regex + { + class RETokenNamedProperty$JavaCategoryHandler; + } + } + } + } +} + +class gnu::java::util::regex::RETokenNamedProperty$JavaCategoryHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler +{ + +public: + RETokenNamedProperty$JavaCategoryHandler(::java::lang::reflect::Method *); + virtual jboolean includes(jchar); +private: + ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) method; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__ diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h index dccd81e8a58..f716854bcb7 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h @@ -33,7 +33,6 @@ extern "Java" { namespace sampled { - class AudioFormat; class Control; class Control$Type; class Line; @@ -74,8 +73,9 @@ public: virtual void removeLineListener(::javax::sound::sampled::LineListener *); static ::java::lang::String * GST_BACKEND; static ::java::lang::String * GST_DECODER; + static ::java::lang::String * GST_TYPE_NAME; + static ::java::lang::String * GST_FILE_EXTENSION; private: - static JArray< ::javax::sound::sampled::AudioFormat * > * BASIC_FORMATS; static ::javax::sound::sampled::Mixer$Info * INFO; public: static ::java::lang::Class class$; diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h index dbe3a676622..a6dc8fa7fae 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h @@ -55,6 +55,9 @@ public: GstAudioFileReader(); virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *); virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *); +private: + ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *, ::java::lang::String *); +public: virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *); virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *); virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *); diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h index 0c9253c9d63..82878f19622 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h @@ -11,6 +11,10 @@ extern "Java" { namespace gnu { + namespace classpath + { + class Pointer; + } namespace javax { namespace sound @@ -59,12 +63,14 @@ public: static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::io::InputStream *); static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::net::URL *); private: + static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::io::InputStream *, ::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *); static ::javax::sound::sampled::AudioFormat$Encoding * getEncoding(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *); static ::javax::sound::sampled::AudioFormat * getAudioFormat(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *); public: // actually protected - static jboolean gstreamer_get_audio_format_stream(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *, ::java::io::BufferedInputStream *); + static jboolean gstreamer_get_audio_format_stream(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *, ::gnu::classpath::Pointer *); static jboolean gstreamer_get_audio_format_file(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *); private: + static void init_id_cache(); static ::java::lang::String * GST_ENCODING; public: static ::java::lang::Class class$; diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h new file mode 100644 index 00000000000..8ffb113e5ed --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h @@ -0,0 +1,56 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ +#define __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace classpath + { + class Pointer; + } + namespace javax + { + namespace sound + { + namespace sampled + { + namespace gstreamer + { + namespace io + { + class GstInputStream; + } + } + } + } + } + } +} + +class gnu::javax::sound::sampled::gstreamer::io::GstInputStream : public ::java::lang::Object +{ + +public: + GstInputStream(::java::io::InputStream *); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint available(); + virtual ::gnu::classpath::Pointer * getNativeClass(); +private: + void init_instance(); + static void init_id_cache(); + ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) istream; + ::gnu::classpath::Pointer * gstInputStream; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h deleted file mode 100644 index ed6df66aaf0..00000000000 --- a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h +++ /dev/null @@ -1,51 +0,0 @@ - -// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- - -#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__ -#define __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__ - -#pragma interface - -#include <java/lang/Enum.h> -#include <gcj/array.h> - -extern "Java" -{ - namespace gnu - { - namespace javax - { - namespace sound - { - namespace sampled - { - namespace gstreamer - { - namespace lines - { - class GstDataLine$State; - } - } - } - } - } - } -} - -class gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State : public ::java::lang::Enum -{ - - GstDataLine$State(::java::lang::String *, jint); -public: - static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * > * values(); - static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * valueOf(::java::lang::String *); - static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * PLAY; - static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * PAUSE; - static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * STOP; -private: - static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * > * ENUM$VALUES; -public: - static ::java::lang::Class class$; -}; - -#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__ diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h index 7939abb3459..20ef7deb826 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h @@ -24,7 +24,6 @@ extern "Java" namespace lines { class GstDataLine; - class GstDataLine$State; } } } @@ -56,15 +55,18 @@ public: virtual jint getBufferSize(); virtual ::javax::sound::sampled::AudioFormat * getFormat(); virtual jfloat getLevel(); - virtual jboolean isRunning(); virtual void addLineListener(::javax::sound::sampled::LineListener *); virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *); virtual JArray< ::javax::sound::sampled::Control * > * getControls(); virtual ::javax::sound::sampled::Line$Info * getLineInfo(); virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *); virtual jboolean isOpen(); - virtual void open(); virtual void removeLineListener(::javax::sound::sampled::LineListener *); +public: // actually protected + virtual void setOpen(::java::lang::Boolean *); + virtual void setBufferSize(jint); + virtual void setFormat(::javax::sound::sampled::AudioFormat *); +public: virtual jint available() = 0; virtual void drain() = 0; virtual void flush() = 0; @@ -72,13 +74,14 @@ public: virtual jlong getLongFramePosition() = 0; virtual jlong getMicrosecondPosition() = 0; virtual jboolean isActive() = 0; + virtual jboolean isRunning() = 0; virtual void start() = 0; virtual void stop() = 0; virtual void close() = 0; + virtual void open() = 0; static const jint DEFAULT_BUFFER_SIZE = 1024; public: // actually protected - ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * __attribute__((aligned(__alignof__( ::java::lang::Object)))) state; - ::java::lang::Boolean * open__; + ::java::lang::Boolean * __attribute__((aligned(__alignof__( ::java::lang::Object)))) open; private: ::javax::sound::sampled::AudioFormat * format; jint bufferSize; diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h index 5452434e1c7..e382f3ea47d 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h @@ -11,6 +11,10 @@ extern "Java" { namespace gnu { + namespace classpath + { + class Pointer; + } namespace javax { namespace sound @@ -22,6 +26,7 @@ extern "Java" namespace lines { class GstNativeDataLine; + class GstPipeline; } } } @@ -35,6 +40,11 @@ class gnu::javax::sound::sampled::gstreamer::lines::GstNativeDataLine : public : public: GstNativeDataLine(); + static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline * createSourcePipeline(jint); +private: + static void init_id_cache(); + static jboolean setup_sink_pipeline(::gnu::classpath::Pointer *); +public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h new file mode 100644 index 00000000000..a0de53f38d6 --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h @@ -0,0 +1,47 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$CleanPipeline__ +#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$CleanPipeline__ + +#pragma interface + +#include <java/lang/Thread.h> +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace sampled + { + namespace gstreamer + { + namespace lines + { + class GstPipeline; + class GstPipeline$CleanPipeline; + } + } + } + } + } + } +} + +class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$CleanPipeline : public ::java::lang::Thread +{ + + GstPipeline$CleanPipeline(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline *); +public: + virtual void run(); +public: // actually package-private + GstPipeline$CleanPipeline(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline *, ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$CleanPipeline *); + ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$CleanPipeline__ diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h new file mode 100644 index 00000000000..5966084287a --- /dev/null +++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h @@ -0,0 +1,52 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$State__ +#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$State__ + +#pragma interface + +#include <java/lang/Enum.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace gnu + { + namespace javax + { + namespace sound + { + namespace sampled + { + namespace gstreamer + { + namespace lines + { + class GstPipeline$State; + } + } + } + } + } + } +} + +class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State : public ::java::lang::Enum +{ + + GstPipeline$State(::java::lang::String *, jint); +public: + static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * > * values(); + static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * valueOf(::java::lang::String *); + static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * PLAY; + static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * PAUSE; + static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * STOP; + static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * CLOSE; +private: + static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$State__ diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h index a32150f9fe7..56afb46bae3 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h @@ -7,6 +7,8 @@ #pragma interface #include <java/lang/Object.h> +#include <gcj/array.h> + extern "Java" { namespace gnu @@ -26,6 +28,7 @@ extern "Java" namespace lines { class GstPipeline; + class GstPipeline$State; } } } @@ -39,9 +42,49 @@ class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline : public ::java: public: GstPipeline(); + GstPipeline(jint); + virtual void createForWrite(); + virtual ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * getState(); + virtual void close(); + virtual void setState(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State *); + virtual ::gnu::classpath::Pointer * getNativeClass(); + virtual jint write(JArray< jbyte > *, jint, jint); + virtual jint read(JArray< jbyte > *, jint, jint); + virtual jint available(); + virtual void drain(); + virtual void flush(); +private: + void closePipe(); + void prepareWrite(); + static void init_id_cache(); + static jboolean set_state(::gnu::classpath::Pointer *, jint); + static jint available(::gnu::classpath::Pointer *, jint); + static void open_native_pipe(::gnu::classpath::Pointer *, jint); + static void close_native_pipe(::gnu::classpath::Pointer *); + void init_instance(); + jboolean create_named_pipe(::gnu::classpath::Pointer *); + jlong detect_pipe_size(); +public: // actually package-private + static ::gnu::classpath::Pointer * access$0(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline *); + static void access$1(::gnu::classpath::Pointer *); + static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$sampled$gstreamer$lines$GstPipeline$State(); +private: + static const jint READ = 0; + static const jint WRITE = 1; + static const jint QUEUED = 1; + static ::java::lang::String * CAPACITY_KEY; + static JArray< ::java::lang::Object * > * lock; +public: // actually protected + ::java::util::prefs::Preferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prefs; private: - void setState(); - ::gnu::classpath::Pointer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pipeline; + jlong capacity; + ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * state; + ::java::lang::String * name; + ::java::io::FileOutputStream * output; + jboolean source; + jboolean ready; + ::gnu::classpath::Pointer * pipeline; + static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$sampled$gstreamer$lines$GstPipeline$State__; public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h index 02b4b83ec9e..4120a2b2d07 100644 --- a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h +++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h @@ -23,6 +23,7 @@ extern "Java" { namespace lines { + class GstPipeline; class GstSourceDataLine; } } @@ -47,6 +48,7 @@ class gnu::javax::sound::sampled::gstreamer::lines::GstSourceDataLine : public : public: GstSourceDataLine(::javax::sound::sampled::AudioFormat *); + virtual void open(); virtual void open(::javax::sound::sampled::AudioFormat *); virtual void open(::javax::sound::sampled::AudioFormat *, jint); virtual jint write(JArray< jbyte > *, jint, jint); @@ -60,6 +62,11 @@ public: virtual void start(); virtual void stop(); virtual void close(); + virtual jboolean isRunning(); +private: + ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline * __attribute__((aligned(__alignof__( ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine)))) pipeline; + jboolean open__; +public: static ::java::lang::Class class$; }; diff --git a/libjava/gnu/xml/stream/AttributeImpl.h b/libjava/gnu/xml/stream/AttributeImpl.h index d78c6a53efc..8fc37c01d3b 100644 --- a/libjava/gnu/xml/stream/AttributeImpl.h +++ b/libjava/gnu/xml/stream/AttributeImpl.h @@ -39,18 +39,18 @@ class gnu::xml::stream::AttributeImpl : public ::gnu::xml::stream::XMLEventImpl { public: // actually protected - AttributeImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::lang::String *, ::javax::xml::namespace::QName *, jboolean); + AttributeImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::lang::String *, ::java::lang::String *, jboolean); public: virtual jint getEventType(); virtual ::javax::xml::namespace::QName * getName(); virtual ::java::lang::String * getValue(); - virtual ::javax::xml::namespace::QName * getDTDType(); + virtual ::java::lang::String * getDTDType(); virtual jboolean isSpecified(); virtual void writeAsEncodedUnicode(::java::io::Writer *); public: // actually protected ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) name; ::java::lang::String * value; - ::javax::xml::namespace::QName * type; + ::java::lang::String * type; jboolean specified; public: static ::java::lang::Class class$; diff --git a/libjava/gnu/xml/stream/XMLParser.h b/libjava/gnu/xml/stream/XMLParser.h index 430aca24a26..3136a60e591 100644 --- a/libjava/gnu/xml/stream/XMLParser.h +++ b/libjava/gnu/xml/stream/XMLParser.h @@ -239,7 +239,6 @@ private: ::java::util::LinkedList * endEntityStack; jint state; jint event; - jboolean lookahead; ::java::util::LinkedList * stack; ::java::util::LinkedList * namespaces; ::java::util::LinkedList * bases; diff --git a/libjava/java/awt/Desktop.h b/libjava/java/awt/Desktop.h index 8b5927d88bc..b50a063ff4e 100644 --- a/libjava/java/awt/Desktop.h +++ b/libjava/java/awt/Desktop.h @@ -33,9 +33,7 @@ class java::awt::Desktop : public ::java::lang::Object Desktop(); public: static ::java::awt::Desktop * getDesktop(); -private: static jboolean isDesktopSupported(); -public: virtual jboolean isSupported(::java::awt::Desktop$Action *); virtual void browse(::java::net::URI *); virtual void edit(::java::io::File *); diff --git a/libjava/java/awt/Font.h b/libjava/java/awt/Font.h index c3b46bf7c75..46f81a1b846 100644 --- a/libjava/java/awt/Font.h +++ b/libjava/java/awt/Font.h @@ -156,6 +156,7 @@ public: // actually protected private: static const jlong serialVersionUID = -4206021311591459213LL; ::gnu::java::awt::peer::ClasspathFontPeer * peer; + jint hashCode__; public: static ::java::lang::Class class$; }; diff --git a/libjava/java/awt/LightweightDispatcher.h b/libjava/java/awt/LightweightDispatcher.h index 0a0bc5026e4..4fee8f8b43f 100644 --- a/libjava/java/awt/LightweightDispatcher.h +++ b/libjava/java/awt/LightweightDispatcher.h @@ -44,6 +44,8 @@ private: static ::java::util::WeakHashMap * instances; ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastTarget; ::java::awt::Component * mouseEventTarget; +public: // actually package-private + static jboolean $assertionsDisabled; public: static ::java::lang::Class class$; }; diff --git a/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h index f5b8392f1ba..5576f65398b 100644 --- a/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h +++ b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h @@ -28,7 +28,8 @@ extern "Java" class java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider : public ::java::lang::Object { - BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *, ::java::beans::beancontext::BeanContextServiceProvider *); +public: // actually protected + BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *); public: virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *); virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *); diff --git a/libjava/java/io/BufferedReader.h b/libjava/java/io/BufferedReader.h index 66d77663a7d..11047737711 100644 --- a/libjava/java/io/BufferedReader.h +++ b/libjava/java/io/BufferedReader.h @@ -40,8 +40,6 @@ public: // actually package-private jint limit; jint markPos; static const jint DEFAULT_BUFFER_SIZE = 8192; -private: - ::java::lang::StringBuffer * sbuf; public: static ::java::lang::Class class$; }; diff --git a/libjava/java/io/DataInputStream.h b/libjava/java/io/DataInputStream.h index a7b84590f01..12371ff9557 100644 --- a/libjava/java/io/DataInputStream.h +++ b/libjava/java/io/DataInputStream.h @@ -32,6 +32,11 @@ public: virtual jint readUnsignedShort(); virtual ::java::lang::String * readUTF(); static ::java::lang::String * readUTF(::java::io::DataInput *); +public: // actually package-private + virtual ::java::lang::String * readUTFLong(); +private: + static ::java::lang::String * readUTF(::java::io::DataInput *, jint); +public: virtual jint skipBytes(jint); public: // actually package-private static jboolean convertToBoolean(jint); diff --git a/libjava/java/io/DataOutputStream.h b/libjava/java/io/DataOutputStream.h index 0d89dca32bc..aebd234dbcc 100644 --- a/libjava/java/io/DataOutputStream.h +++ b/libjava/java/io/DataOutputStream.h @@ -29,10 +29,15 @@ public: virtual void writeDouble(jdouble); virtual void writeBytes(::java::lang::String *); virtual void writeChars(::java::lang::String *); -private: - jint getUTFlength(::java::lang::String *, jint, jint); +public: // actually package-private + virtual jlong getUTFlength(::java::lang::String *, jint, jlong); public: virtual void writeUTF(::java::lang::String *); +public: // actually package-private + virtual void writeUTFShort(::java::lang::String *, jint); + virtual void writeUTFLong(::java::lang::String *, jlong); +private: + void writeUTFBytes(::java::lang::String *); public: // actually protected jint __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) written; private: diff --git a/libjava/java/io/PipedInputStream.h b/libjava/java/io/PipedInputStream.h index 9531667af4b..4055fa4ca4d 100644 --- a/libjava/java/io/PipedInputStream.h +++ b/libjava/java/io/PipedInputStream.h @@ -15,7 +15,9 @@ class java::io::PipedInputStream : public ::java::io::InputStream public: PipedInputStream(); + PipedInputStream(jint); PipedInputStream(::java::io::PipedOutputStream *); + PipedInputStream(::java::io::PipedOutputStream *, jint); virtual void connect(::java::io::PipedOutputStream *); public: // actually protected virtual void receive(jint); diff --git a/libjava/java/lang/Throwable.h b/libjava/java/lang/Throwable.h index 0b8fdca68e7..097f9d2f2e7 100644 --- a/libjava/java/lang/Throwable.h +++ b/libjava/java/lang/Throwable.h @@ -28,7 +28,7 @@ public: virtual void printStackTrace(::java::io::PrintWriter *); private: ::java::lang::String * stackTraceString(); - static void stackTraceStringBuffer(::java::lang::StringBuffer *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint); + static void stackTraceStringBuffer(::java::lang::StringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint); public: virtual ::java::lang::Throwable * fillInStackTrace(); virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace(); diff --git a/libjava/java/lang/management/ThreadInfo.h b/libjava/java/lang/management/ThreadInfo.h index c3902b3d61f..4d87277be16 100644 --- a/libjava/java/lang/management/ThreadInfo.h +++ b/libjava/java/lang/management/ThreadInfo.h @@ -28,9 +28,6 @@ extern "Java" class java::lang::management::ThreadInfo : public ::java::lang::Object { - ThreadInfo(::java::lang::Thread *, jlong, jlong, ::java::lang::Object *, ::java::lang::Thread *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *); - ThreadInfo(::java::lang::Thread *, jlong, jlong, ::java::lang::Object *, ::java::lang::Thread *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *, JArray< ::java::lang::management::MonitorInfo * > *, JArray< ::java::lang::management::LockInfo * > *); - ThreadInfo(jlong, ::java::lang::String *, ::java::lang::Thread$State *, jlong, jlong, ::java::lang::String *, jlong, ::java::lang::String *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *); ThreadInfo(jlong, ::java::lang::String *, ::java::lang::Thread$State *, jlong, jlong, ::java::lang::String *, jlong, ::java::lang::String *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *, JArray< ::java::lang::management::MonitorInfo * > *, JArray< ::java::lang::management::LockInfo * > *); public: // actually package-private static void checkAttribute(::javax::management::openmbean::CompositeType *, ::java::lang::String *, ::javax::management::openmbean::OpenType *); diff --git a/libjava/java/net/URI.h b/libjava/java/net/URI.h index d955dce503c..8417042ed38 100644 --- a/libjava/java/net/URI.h +++ b/libjava/java/net/URI.h @@ -44,7 +44,7 @@ public: ::java::net::URI * normalize(); private: ::java::lang::String * normalizePath(::java::lang::String *); - void removeLastSegment(::java::lang::StringBuffer *); + void removeLastSegment(::java::lang::StringBuilder *); public: ::java::net::URI * resolve(::java::net::URI *); ::java::net::URI * resolve(::java::lang::String *); diff --git a/libjava/java/security/VMSecureRandom.java b/libjava/java/security/VMSecureRandom.java index dc67d871968..5eeb158bc81 100644 --- a/libjava/java/security/VMSecureRandom.java +++ b/libjava/java/security/VMSecureRandom.java @@ -38,11 +38,6 @@ exception statement from your version. */ package java.security; -import gnu.classpath.SystemProperties; -import gnu.java.security.action.GetSecurityPropertyAction; - -import java.net.URL; - /** * VM-specific methods for generating real (or almost real) random * seeds. VM implementors should write a version of this class that diff --git a/libjava/java/text/CollationElementIterator.h b/libjava/java/text/CollationElementIterator.h index 19d92b8cab6..a3b75de189e 100644 --- a/libjava/java/text/CollationElementIterator.h +++ b/libjava/java/text/CollationElementIterator.h @@ -28,6 +28,7 @@ class java::text::CollationElementIterator : public ::java::lang::Object public: // actually package-private CollationElementIterator(::java::text::RuleBasedCollator *, ::java::lang::String *); + CollationElementIterator(::java::text::RuleBasedCollator *, ::java::text::CharacterIterator *); ::java::text::RuleBasedCollator$CollationElement * nextBlock(); ::java::text::RuleBasedCollator$CollationElement * previousBlock(); public: @@ -45,7 +46,7 @@ public: static const jint NULLORDER = -1; public: // actually package-private ::java::text::RuleBasedCollator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) collator; - ::java::lang::String * text; + ::java::text::CharacterIterator * text; jint index; jint textIndex; private: diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h new file mode 100644 index 00000000000..4f3d1b63790 --- /dev/null +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h @@ -0,0 +1,35 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_concurrent_CopyOnWriteArrayList$1__ +#define __java_util_concurrent_CopyOnWriteArrayList$1__ + +#pragma interface + +#include <java/lang/Object.h> + +class java::util::concurrent::CopyOnWriteArrayList$1 : public ::java::lang::Object +{ + +public: // actually package-private + CopyOnWriteArrayList$1(::java::util::concurrent::CopyOnWriteArrayList$SubList *, jint); +public: + jboolean hasNext(); + jboolean hasPrevious(); + ::java::lang::Object * next(); + ::java::lang::Object * previous(); + jint nextIndex(); + jint previousIndex(); + void remove(); + void set(::java::lang::Object *); + void add(::java::lang::Object *); +private: + ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i; + jint position; +public: // actually package-private + ::java::util::concurrent::CopyOnWriteArrayList$SubList * this$1; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_concurrent_CopyOnWriteArrayList$1__ diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h new file mode 100644 index 00000000000..ecebfbee8d0 --- /dev/null +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_concurrent_CopyOnWriteArrayList$2__ +#define __java_util_concurrent_CopyOnWriteArrayList$2__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + + +class java::util::concurrent::CopyOnWriteArrayList$2 : public ::java::lang::Object +{ + +public: // actually package-private + CopyOnWriteArrayList$2(::java::util::concurrent::CopyOnWriteArrayList *); +public: + jboolean hasNext(); + ::java::lang::Object * next(); + void remove(); +public: // actually package-private + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iteratorData; + jint currentElement; + ::java::util::concurrent::CopyOnWriteArrayList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_concurrent_CopyOnWriteArrayList$2__ diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h new file mode 100644 index 00000000000..c6abfefba00 --- /dev/null +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_concurrent_CopyOnWriteArrayList$3__ +#define __java_util_concurrent_CopyOnWriteArrayList$3__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + + +class java::util::concurrent::CopyOnWriteArrayList$3 : public ::java::lang::Object +{ + +public: // actually package-private + CopyOnWriteArrayList$3(::java::util::concurrent::CopyOnWriteArrayList *, jint); +public: + void add(::java::lang::Object *); + jboolean hasNext(); + jboolean hasPrevious(); + ::java::lang::Object * next(); + jint nextIndex(); + ::java::lang::Object * previous(); + jint previousIndex(); + void remove(); + void set(::java::lang::Object *); +public: // actually package-private + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iteratorData; + jint currentElement; + ::java::util::concurrent::CopyOnWriteArrayList * this$0; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_concurrent_CopyOnWriteArrayList$3__ diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h new file mode 100644 index 00000000000..66adf020961 --- /dev/null +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h @@ -0,0 +1,20 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__ +#define __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__ + +#pragma interface + +#include <java/util/concurrent/CopyOnWriteArrayList$SubList.h> + +class java::util::concurrent::CopyOnWriteArrayList$RandomAccessSubList : public ::java::util::concurrent::CopyOnWriteArrayList$SubList +{ + +public: // actually package-private + CopyOnWriteArrayList$RandomAccessSubList(::java::util::concurrent::CopyOnWriteArrayList *, jint, jint); +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__ diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h new file mode 100644 index 00000000000..de285a9f85a --- /dev/null +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h @@ -0,0 +1,42 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_util_concurrent_CopyOnWriteArrayList$SubList__ +#define __java_util_concurrent_CopyOnWriteArrayList$SubList__ + +#pragma interface + +#include <java/util/AbstractList.h> +#include <gcj/array.h> + + +class java::util::concurrent::CopyOnWriteArrayList$SubList : public ::java::util::AbstractList +{ + +public: // actually package-private + CopyOnWriteArrayList$SubList(::java::util::concurrent::CopyOnWriteArrayList *, jint, jint); + virtual void checkMod(); +private: + void checkBoundsInclusive(jint); + void checkBoundsExclusive(jint); +public: + virtual jint size(); + virtual void clear(); + virtual ::java::lang::Object * set(jint, ::java::lang::Object *); + virtual ::java::lang::Object * get(jint); + virtual void add(jint, ::java::lang::Object *); + virtual ::java::lang::Object * remove(jint); + virtual jboolean addAll(jint, ::java::util::Collection *); + virtual jboolean addAll(::java::util::Collection *); + virtual ::java::util::Iterator * iterator(); + virtual ::java::util::ListIterator * listIterator(jint); +public: // actually package-private + ::java::util::concurrent::CopyOnWriteArrayList * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) backingList; + jint offset; + jint size__; + JArray< ::java::lang::Object * > * data; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_util_concurrent_CopyOnWriteArrayList$SubList__ diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList.h index 924ba480e96..95eec88d98c 100644 --- a/libjava/java/util/concurrent/CopyOnWriteArrayList.h +++ b/libjava/java/util/concurrent/CopyOnWriteArrayList.h @@ -6,11 +6,11 @@ #pragma interface -#include <java/util/AbstractList.h> +#include <java/lang/Object.h> #include <gcj/array.h> -class java::util::concurrent::CopyOnWriteArrayList : public ::java::util::AbstractList +class java::util::concurrent::CopyOnWriteArrayList : public ::java::lang::Object { public: @@ -20,6 +20,7 @@ public: virtual jint size(); virtual jboolean isEmpty(); virtual jboolean contains(::java::lang::Object *); + virtual jboolean containsAll(::java::util::Collection *); virtual jint indexOf(::java::lang::Object *); virtual jint indexOf(::java::lang::Object *, jint); virtual jint lastIndexOf(::java::lang::Object *); @@ -32,19 +33,32 @@ public: virtual jboolean add(::java::lang::Object *); virtual void add(jint, ::java::lang::Object *); virtual ::java::lang::Object * remove(jint); + virtual jboolean remove(::java::lang::Object *); + virtual jboolean removeAll(::java::util::Collection *); + virtual jboolean retainAll(::java::util::Collection *); virtual void clear(); virtual jboolean addAll(::java::util::Collection *); virtual jboolean addAll(jint, ::java::util::Collection *); virtual jboolean addIfAbsent(::java::lang::Object *); virtual jint addAllAbsent(::java::util::Collection *); + virtual ::java::lang::String * toString(); + virtual jboolean equals(::java::lang::Object *); + virtual jint hashCode(); + virtual ::java::util::Iterator * iterator(); + virtual ::java::util::ListIterator * listIterator(); + virtual ::java::util::ListIterator * listIterator(jint); + virtual ::java::util::List * subList(jint, jint); private: void writeObject(::java::io::ObjectOutputStream *); void readObject(::java::io::ObjectInputStream *); public: // actually package-private static jboolean equals(::java::lang::Object *, ::java::lang::Object *); virtual JArray< ::java::lang::Object * > * getArray(); + static JArray< ::java::lang::Object * > * access$0(::java::util::concurrent::CopyOnWriteArrayList *); + static void access$1(::java::util::concurrent::CopyOnWriteArrayList *, JArray< ::java::lang::Object * > *); private: - JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) data; + static const jlong serialVersionUID = 8673264195747942595LL; + JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data; public: static ::java::lang::Class class$; }; diff --git a/libjava/javax/accessibility/AccessibleAction.h b/libjava/javax/accessibility/AccessibleAction.h index ede23c9d2c4..5a8b4b28a00 100644 --- a/libjava/javax/accessibility/AccessibleAction.h +++ b/libjava/javax/accessibility/AccessibleAction.h @@ -28,6 +28,8 @@ public: static ::java::lang::String * DECREMENT; static ::java::lang::String * INCREMENT; static ::java::lang::String * TOGGLE_EXPAND; + static ::java::lang::String * CLICK; + static ::java::lang::String * TOGGLE_POPUP; static ::java::lang::Class class$; } __attribute__ ((java_interface)); diff --git a/libjava/javax/accessibility/AccessibleAttributeSequence.h b/libjava/javax/accessibility/AccessibleAttributeSequence.h index e9d76b02db1..10d85711db1 100644 --- a/libjava/javax/accessibility/AccessibleAttributeSequence.h +++ b/libjava/javax/accessibility/AccessibleAttributeSequence.h @@ -29,7 +29,7 @@ class javax::accessibility::AccessibleAttributeSequence : public ::java::lang::O { public: - AccessibleAttributeSequence(); + AccessibleAttributeSequence(jint, jint, ::javax::swing::text::AttributeSet *); ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes; jint startIndex; jint endIndex; diff --git a/libjava/javax/accessibility/AccessibleRole.h b/libjava/javax/accessibility/AccessibleRole.h index 1fd9e3cf0d4..271b6ba7b7b 100644 --- a/libjava/javax/accessibility/AccessibleRole.h +++ b/libjava/javax/accessibility/AccessibleRole.h @@ -86,6 +86,7 @@ public: static ::javax::accessibility::AccessibleRole * PARAGRAPH; static ::javax::accessibility::AccessibleRole * PROGRESS_MONITOR; static ::javax::accessibility::AccessibleRole * RULER; + static ::javax::accessibility::AccessibleRole * HTML_CONTAINER; static ::java::lang::Class class$; }; diff --git a/libjava/javax/accessibility/AccessibleTextSequence.h b/libjava/javax/accessibility/AccessibleTextSequence.h index 0c447e0fb21..280ad30886f 100644 --- a/libjava/javax/accessibility/AccessibleTextSequence.h +++ b/libjava/javax/accessibility/AccessibleTextSequence.h @@ -22,7 +22,7 @@ class javax::accessibility::AccessibleTextSequence : public ::java::lang::Object { public: - AccessibleTextSequence(); + AccessibleTextSequence(jint, jint, ::java::lang::String *); ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text; jint startIndex; jint endIndex; diff --git a/libjava/javax/management/remote/NotificationResult.h b/libjava/javax/management/remote/NotificationResult.h new file mode 100644 index 00000000000..b5d45f6b4a6 --- /dev/null +++ b/libjava/javax/management/remote/NotificationResult.h @@ -0,0 +1,45 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_remote_NotificationResult__ +#define __javax_management_remote_NotificationResult__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace javax + { + namespace management + { + namespace remote + { + class NotificationResult; + class TargetedNotification; + } + } + } +} + +class javax::management::remote::NotificationResult : public ::java::lang::Object +{ + +public: + NotificationResult(jlong, jlong, JArray< ::javax::management::remote::TargetedNotification * > *); + virtual jlong getEarliestSequenceNumber(); + virtual jlong getNextSequenceNumber(); + virtual JArray< ::javax::management::remote::TargetedNotification * > * getTargetedNotifications(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 1191800228721395279LL; + jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) earliestSequenceNumber; + jlong nextSequenceNumber; + JArray< ::javax::management::remote::TargetedNotification * > * targetedNotifications; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_remote_NotificationResult__ diff --git a/libjava/javax/management/remote/TargetedNotification.h b/libjava/javax/management/remote/TargetedNotification.h new file mode 100644 index 00000000000..1021a872c3a --- /dev/null +++ b/libjava/javax/management/remote/TargetedNotification.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_remote_TargetedNotification__ +#define __javax_management_remote_TargetedNotification__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace javax + { + namespace management + { + class Notification; + namespace remote + { + class TargetedNotification; + } + } + } +} + +class javax::management::remote::TargetedNotification : public ::java::lang::Object +{ + +public: + TargetedNotification(::javax::management::Notification *, ::java::lang::Integer *); + virtual ::javax::management::Notification * getNotification(); + virtual ::java::lang::Integer * getListenerID(); + virtual ::java::lang::String * toString(); +private: + static const jlong serialVersionUID = 7676132089779300926LL; + ::javax::management::Notification * __attribute__((aligned(__alignof__( ::java::lang::Object)))) notif; + ::java::lang::Integer * id; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_management_remote_TargetedNotification__ diff --git a/libjava/javax/management/remote/rmi/RMIConnection.h b/libjava/javax/management/remote/rmi/RMIConnection.h new file mode 100644 index 00000000000..4fb6eb86d7b --- /dev/null +++ b/libjava/javax/management/remote/rmi/RMIConnection.h @@ -0,0 +1,82 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_remote_rmi_RMIConnection__ +#define __javax_management_remote_rmi_RMIConnection__ + +#pragma interface + +#include <java/lang/Object.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace java + { + namespace rmi + { + class MarshalledObject; + } + } + namespace javax + { + namespace management + { + class AttributeList; + class MBeanInfo; + class ObjectInstance; + class ObjectName; + namespace remote + { + class NotificationResult; + namespace rmi + { + class RMIConnection; + } + } + } + namespace security + { + namespace auth + { + class Subject; + } + } + } +} + +class javax::management::remote::rmi::RMIConnection : public ::java::lang::Object +{ + +public: + virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0; + virtual JArray< ::java::lang::Integer * > * addNotificationListeners(JArray< ::javax::management::ObjectName * > *, JArray< ::java::rmi::MarshalledObject * > *, JArray< ::javax::security::auth::Subject * > *) = 0; + virtual void close() = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::remote::NotificationResult * fetchNotifications(jlong, jint, jlong) = 0; + virtual ::java::lang::Object * getAttribute(::javax::management::ObjectName *, ::java::lang::String *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::AttributeList * getAttributes(::javax::management::ObjectName *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0; + virtual ::java::lang::String * getConnectionId() = 0; + virtual ::java::lang::String * getDefaultDomain(::javax::security::auth::Subject *) = 0; + virtual JArray< ::java::lang::String * > * getDomains(::javax::security::auth::Subject *) = 0; + virtual ::java::lang::Integer * getMBeanCount(::javax::security::auth::Subject *) = 0; + virtual ::javax::management::MBeanInfo * getMBeanInfo(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::ObjectInstance * getObjectInstance(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + virtual ::java::lang::Object * invoke(::javax::management::ObjectName *, ::java::lang::String *, ::java::rmi::MarshalledObject *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0; + virtual jboolean isInstanceOf(::javax::management::ObjectName *, ::java::lang::String *, ::javax::security::auth::Subject *) = 0; + virtual jboolean isRegistered(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + virtual ::java::util::Set * queryMBeans(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0; + virtual ::java::util::Set * queryNames(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0; + virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + virtual void removeNotificationListeners(::javax::management::ObjectName *, JArray< ::java::lang::Integer * > *, ::javax::security::auth::Subject *) = 0; + virtual void setAttribute(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0; + virtual ::javax::management::AttributeList * setAttributes(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0; + virtual void unregisterMBean(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_remote_rmi_RMIConnection__ diff --git a/libjava/javax/management/remote/rmi/RMIServer.h b/libjava/javax/management/remote/rmi/RMIServer.h new file mode 100644 index 00000000000..3c955a5010e --- /dev/null +++ b/libjava/javax/management/remote/rmi/RMIServer.h @@ -0,0 +1,37 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_management_remote_rmi_RMIServer__ +#define __javax_management_remote_rmi_RMIServer__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace javax + { + namespace management + { + namespace remote + { + namespace rmi + { + class RMIConnection; + class RMIServer; + } + } + } + } +} + +class javax::management::remote::rmi::RMIServer : public ::java::lang::Object +{ + +public: + virtual ::java::lang::String * getVersion() = 0; + virtual ::javax::management::remote::rmi::RMIConnection * newClient(::java::lang::Object *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_management_remote_rmi_RMIServer__ diff --git a/libjava/javax/swing/plaf/basic/BasicTreeUI.h b/libjava/javax/swing/plaf/basic/BasicTreeUI.h index 134cb2f3df8..42159f13bc7 100644 --- a/libjava/javax/swing/plaf/basic/BasicTreeUI.h +++ b/libjava/javax/swing/plaf/basic/BasicTreeUI.h @@ -272,7 +272,6 @@ public: // actually package-private ::javax::swing::event::TreeExpansionListener * treeExpansionListener; ::javax::swing::event::TreeModelListener * treeModelListener; static ::javax::swing::Icon * nullIcon; - static ::java::awt::event::MouseEvent * EDIT; public: static ::java::lang::Class class$; }; diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h b/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h index 50c7118f8dd..9c13e759163 100644 --- a/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h @@ -29,6 +29,7 @@ public: // actually package-private DefaultMutableTreeNode$BreadthFirstEnumeration(::javax::swing::tree::TreeNode *); public: virtual jboolean hasMoreElements(); + virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$BreadthFirstEnumeration$nextElement(); virtual ::java::lang::Object * nextElement(); public: // actually package-private ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queue; diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h b/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h index 629c2943bbc..31065d6690d 100644 --- a/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h @@ -29,9 +29,11 @@ public: // actually package-private DefaultMutableTreeNode$PostorderEnumeration(::javax::swing::tree::TreeNode *); public: virtual jboolean hasMoreElements(); - virtual ::java::lang::Object * nextElement(); + virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$PostorderEnumeration$nextElement(); private: - ::java::lang::Object * traverse(::java::util::Enumeration *); + ::javax::swing::tree::TreeNode * traverse(::java::util::Enumeration *); +public: + virtual ::java::lang::Object * nextElement(); public: // actually package-private ::java::util::Stack * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nodes; ::java::util::Stack * childrenEnums; diff --git a/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h b/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h index 53e87c3e295..98117b06fec 100644 --- a/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h +++ b/libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h @@ -29,9 +29,11 @@ public: // actually package-private DefaultMutableTreeNode$PreorderEnumeration(::javax::swing::tree::TreeNode *); public: virtual jboolean hasMoreElements(); - virtual ::java::lang::Object * nextElement(); + virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$PreorderEnumeration$nextElement(); private: ::javax::swing::tree::TreeNode * traverse(::java::util::Enumeration *); +public: + virtual ::java::lang::Object * nextElement(); public: // actually package-private ::javax::swing::tree::TreeNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next; ::java::util::Stack * childrenEnums; diff --git a/libjava/javax/swing/tree/DefaultTreeCellEditor.h b/libjava/javax/swing/tree/DefaultTreeCellEditor.h index 759439c189f..bac3f21ad97 100644 --- a/libjava/javax/swing/tree/DefaultTreeCellEditor.h +++ b/libjava/javax/swing/tree/DefaultTreeCellEditor.h @@ -56,7 +56,6 @@ public: DefaultTreeCellEditor(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *); DefaultTreeCellEditor(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *, ::javax::swing::tree::TreeCellEditor *); private: - void configureEditingComponent(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *, ::javax::swing::tree::TreeCellEditor *); void writeObject(::java::io::ObjectOutputStream *); void readObject(::java::io::ObjectInputStream *); public: @@ -104,8 +103,6 @@ public: // actually protected ::java::awt::Color * borderSelectionColor; ::javax::swing::Icon * editingIcon; ::java::awt::Font * font; -private: - ::javax::swing::tree::TreePath * tPath; public: static ::java::lang::Class class$; }; diff --git a/libjava/javax/tools/Diagnostic$Kind.h b/libjava/javax/tools/Diagnostic$Kind.h new file mode 100644 index 00000000000..006ed7d91d4 --- /dev/null +++ b/libjava/javax/tools/Diagnostic$Kind.h @@ -0,0 +1,41 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_tools_Diagnostic$Kind__ +#define __javax_tools_Diagnostic$Kind__ + +#pragma interface + +#include <java/lang/Enum.h> +#include <gcj/array.h> + +extern "Java" +{ + namespace javax + { + namespace tools + { + class Diagnostic$Kind; + } + } +} + +class javax::tools::Diagnostic$Kind : public ::java::lang::Enum +{ + + Diagnostic$Kind(::java::lang::String *, jint); +public: + static JArray< ::javax::tools::Diagnostic$Kind * > * values(); + static ::javax::tools::Diagnostic$Kind * valueOf(::java::lang::String *); + static ::javax::tools::Diagnostic$Kind * ERROR; + static ::javax::tools::Diagnostic$Kind * WARNING; + static ::javax::tools::Diagnostic$Kind * MANDATORY_WARNING; + static ::javax::tools::Diagnostic$Kind * NOTE; + static ::javax::tools::Diagnostic$Kind * OTHER; +private: + static JArray< ::javax::tools::Diagnostic$Kind * > * ENUM$VALUES; +public: + static ::java::lang::Class class$; +}; + +#endif // __javax_tools_Diagnostic$Kind__ diff --git a/libjava/javax/tools/Diagnostic.h b/libjava/javax/tools/Diagnostic.h new file mode 100644 index 00000000000..540da44e55a --- /dev/null +++ b/libjava/javax/tools/Diagnostic.h @@ -0,0 +1,39 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_tools_Diagnostic__ +#define __javax_tools_Diagnostic__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace javax + { + namespace tools + { + class Diagnostic; + class Diagnostic$Kind; + } + } +} + +class javax::tools::Diagnostic : public ::java::lang::Object +{ + +public: + virtual ::javax::tools::Diagnostic$Kind * getKind() = 0; + virtual ::java::lang::Object * getSource() = 0; + virtual jlong getPosition() = 0; + virtual jlong getStartPosition() = 0; + virtual jlong getEndPosition() = 0; + virtual jlong getLineNumber() = 0; + virtual jlong getColumnNumber() = 0; + virtual ::java::lang::String * getCode() = 0; + virtual ::java::lang::String * getMessage(::java::util::Locale *) = 0; + static const jlong NOPOS = -1LL; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_tools_Diagnostic__ diff --git a/libjava/javax/tools/DiagnosticListener.h b/libjava/javax/tools/DiagnosticListener.h new file mode 100644 index 00000000000..a0d1a3763bd --- /dev/null +++ b/libjava/javax/tools/DiagnosticListener.h @@ -0,0 +1,30 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_tools_DiagnosticListener__ +#define __javax_tools_DiagnosticListener__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace javax + { + namespace tools + { + class Diagnostic; + class DiagnosticListener; + } + } +} + +class javax::tools::DiagnosticListener : public ::java::lang::Object +{ + +public: + virtual void report(::javax::tools::Diagnostic *) = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_tools_DiagnosticListener__ diff --git a/libjava/javax/tools/FileObject.h b/libjava/javax/tools/FileObject.h new file mode 100644 index 00000000000..87acd835a5d --- /dev/null +++ b/libjava/javax/tools/FileObject.h @@ -0,0 +1,44 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __javax_tools_FileObject__ +#define __javax_tools_FileObject__ + +#pragma interface + +#include <java/lang/Object.h> +extern "Java" +{ + namespace java + { + namespace net + { + class URI; + } + } + namespace javax + { + namespace tools + { + class FileObject; + } + } +} + +class javax::tools::FileObject : public ::java::lang::Object +{ + +public: + virtual ::java::net::URI * toURI() = 0; + virtual ::java::lang::String * getName() = 0; + virtual ::java::io::InputStream * openInputStream() = 0; + virtual ::java::io::OutputStream * openOutputStream() = 0; + virtual ::java::io::Reader * openReader() = 0; + virtual ::java::lang::CharSequence * getCharContent(jboolean) = 0; + virtual ::java::io::Writer * openWriter() = 0; + virtual jlong getLastModified() = 0; + virtual jboolean delete$() = 0; + static ::java::lang::Class class$; +} __attribute__ ((java_interface)); + +#endif // __javax_tools_FileObject__ diff --git a/libjava/javax/xml/stream/events/Attribute.h b/libjava/javax/xml/stream/events/Attribute.h index 7362510c072..f0e057063be 100644 --- a/libjava/javax/xml/stream/events/Attribute.h +++ b/libjava/javax/xml/stream/events/Attribute.h @@ -38,7 +38,7 @@ class javax::xml::stream::events::Attribute : public ::java::lang::Object public: virtual ::javax::xml::namespace::QName * getName() = 0; virtual ::java::lang::String * getValue() = 0; - virtual ::javax::xml::namespace::QName * getDTDType() = 0; + virtual ::java::lang::String * getDTDType() = 0; virtual jboolean isSpecified() = 0; virtual jint getEventType() = 0; virtual ::javax::xml::stream::Location * getLocation() = 0; diff --git a/libjava/jni.cc b/libjava/jni.cc index 220046187b4..77b019341d7 100644 --- a/libjava/jni.cc +++ b/libjava/jni.cc @@ -1805,6 +1805,13 @@ _Jv_JNI_GetDirectBufferCapacity (JNIEnv *, jobject buffer) return tmp->capacity(); } +static jobjectRefType JNICALL +_Jv_JNI_GetObjectRefType (JNIEnv *, jobject object) +{ + JvFail("GetObjectRefType not implemented"); + return JNIInvalidRefType; +} + struct NativeMethodCacheEntry : public JNINativeMethod @@ -2878,7 +2885,9 @@ struct JNINativeInterface_ _Jv_JNIFunctions = _Jv_JNI_NewDirectByteBuffer, // NewDirectByteBuffer _Jv_JNI_GetDirectBufferAddress, // GetDirectBufferAddress - _Jv_JNI_GetDirectBufferCapacity // GetDirectBufferCapacity + _Jv_JNI_GetDirectBufferCapacity, // GetDirectBufferCapacity + + _Jv_JNI_GetObjectRefType // GetObjectRefType }; struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions = diff --git a/libjava/sources.am b/libjava/sources.am index b42ea45d745..aba3c89e1cb 100644 --- a/libjava/sources.am +++ b/libjava/sources.am @@ -475,6 +475,18 @@ gnu/classpath/jdwp/value.list: $(gnu_classpath_jdwp_value_source_files) -include gnu/classpath/jdwp/value.deps +gnu_classpath_toolkit_source_files = \ +classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java + +gnu_classpath_toolkit_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_toolkit_source_files))) + +gnu/classpath/toolkit.list: $(gnu_classpath_toolkit_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/gnu/classpath/toolkit/*.class > gnu/classpath/toolkit.list + +-include gnu/classpath/toolkit.deps + + gnu_gcj_source_files = \ gnu/gcj/Core.java \ gnu/gcj/RawData.java \ @@ -704,7 +716,8 @@ gnu-java-awt-dnd-peer-gtk.lo: $(gnu_java_awt_dnd_peer_gtk_source_files) gnu_java_awt_font_source_files = \ classpath/gnu/java/awt/font/FontDelegate.java \ classpath/gnu/java/awt/font/FontFactory.java \ -classpath/gnu/java/awt/font/GNUGlyphVector.java +classpath/gnu/java/awt/font/GNUGlyphVector.java \ +classpath/gnu/java/awt/font/OpenTypeFontPeer.java gnu_java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_source_files))) @@ -781,6 +794,8 @@ gnu/java/awt/font/opentype/truetype.list: $(gnu_java_awt_font_opentype_truetype_ gnu_java_awt_image_source_files = \ +classpath/gnu/java/awt/image/AsyncImage.java \ +classpath/gnu/java/awt/image/ImageConverter.java \ classpath/gnu/java/awt/image/ImageDecoder.java \ classpath/gnu/java/awt/image/XBMDecoder.java @@ -800,6 +815,7 @@ classpath/gnu/java/awt/java2d/AlphaCompositeContext.java \ classpath/gnu/java/awt/java2d/CubicSegment.java \ classpath/gnu/java/awt/java2d/ImagePaint.java \ classpath/gnu/java/awt/java2d/LineSegment.java \ +classpath/gnu/java/awt/java2d/PixelCoverage.java \ classpath/gnu/java/awt/java2d/Pixelizer.java \ classpath/gnu/java/awt/java2d/PolyEdge.java \ classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \ @@ -810,6 +826,8 @@ classpath/gnu/java/awt/java2d/ScanlineConverter.java \ classpath/gnu/java/awt/java2d/ScanlineCoverage.java \ classpath/gnu/java/awt/java2d/Segment.java \ classpath/gnu/java/awt/java2d/ShapeCache.java \ +classpath/gnu/java/awt/java2d/ShapeWrapper.java \ +classpath/gnu/java/awt/java2d/TextCacheKey.java \ classpath/gnu/java/awt/java2d/TexturePaintContext.java gnu_java_awt_java2d_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_java2d_source_files))) @@ -985,12 +1003,11 @@ gnu-java-awt-peer-swing.lo: $(gnu_java_awt_peer_swing_source_files) gnu_java_awt_peer_x_source_files = \ classpath/gnu/java/awt/peer/x/GLGraphics.java \ -classpath/gnu/java/awt/peer/x/ImageConverter.java \ classpath/gnu/java/awt/peer/x/KeyboardMapping.java \ classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java \ classpath/gnu/java/awt/peer/x/XDialogPeer.java \ classpath/gnu/java/awt/peer/x/XEventPump.java \ -classpath/gnu/java/awt/peer/x/XFontPeer2.java \ +classpath/gnu/java/awt/peer/x/XFontPeer.java \ classpath/gnu/java/awt/peer/x/XFramePeer.java \ classpath/gnu/java/awt/peer/x/XGraphics2D.java \ classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \ @@ -1446,6 +1463,8 @@ gnu/java/nio/channels.list: $(gnu_java_nio_channels_source_files) gnu_java_nio_charset_source_files = \ classpath/gnu/java/nio/charset/ByteCharset.java \ +classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java \ +classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java \ classpath/gnu/java/nio/charset/Cp424.java \ classpath/gnu/java/nio/charset/Cp437.java \ classpath/gnu/java/nio/charset/Cp737.java \ @@ -2018,6 +2037,7 @@ gnu_java_util_source_files = \ classpath/gnu/java/util/Base64.java \ classpath/gnu/java/util/DoubleEnumeration.java \ classpath/gnu/java/util/EmptyEnumeration.java \ +classpath/gnu/java/util/LRUCache.java \ classpath/gnu/java/util/WeakIdentityHashMap.java \ classpath/gnu/java/util/ZoneInfo.java @@ -6069,6 +6089,32 @@ javax/management/openmbean.list: $(javax_management_openmbean_source_files) -include javax/management/openmbean.deps +javax_management_remote_source_files = \ +classpath/javax/management/remote/NotificationResult.java \ +classpath/javax/management/remote/TargetedNotification.java + +javax_management_remote_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_source_files))) + +javax/management/remote.list: $(javax_management_remote_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/management/remote/*.class > javax/management/remote.list + +-include javax/management/remote.deps + + +javax_management_remote_rmi_source_files = \ +classpath/javax/management/remote/rmi/RMIConnection.java \ +classpath/javax/management/remote/rmi/RMIServer.java + +javax_management_remote_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_rmi_source_files))) + +javax/management/remote/rmi.list: $(javax_management_remote_rmi_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/management/remote/rmi/*.class > javax/management/remote/rmi.list + +-include javax/management/remote/rmi.deps + + javax_naming_source_files = \ classpath/javax/naming/AuthenticationException.java \ classpath/javax/naming/AuthenticationNotSupportedException.java \ @@ -7434,6 +7480,20 @@ javax/swing/undo.list: $(javax_swing_undo_source_files) -include javax/swing/undo.deps +javax_tools_source_files = \ +classpath/javax/tools/Diagnostic.java \ +classpath/javax/tools/DiagnosticListener.java \ +classpath/javax/tools/FileObject.java + +javax_tools_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_tools_source_files))) + +javax/tools.list: $(javax_tools_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/javax/tools/*.class > javax/tools.list + +-include javax/tools.deps + + javax_transaction_source_files = \ classpath/javax/transaction/HeuristicCommitException.java \ classpath/javax/transaction/HeuristicMixedException.java \ @@ -8534,6 +8594,7 @@ all_packages_source_files = \ gnu/awt/j2d.list \ gnu/classpath.list \ gnu/classpath/debug.list \ + gnu/classpath/toolkit.list \ gnu/gcj.list \ gnu/gcj/convert.list \ gnu/gcj/io.list \ @@ -8724,6 +8785,8 @@ all_packages_source_files = \ javax/management.list \ javax/management/loading.list \ javax/management/openmbean.list \ + javax/management/remote.list \ + javax/management/remote/rmi.list \ javax/naming.list \ javax/naming/directory.list \ javax/naming/event.list \ @@ -8765,6 +8828,7 @@ all_packages_source_files = \ javax/swing/text/rtf.list \ javax/swing/tree.list \ javax/swing/undo.list \ + javax/tools.list \ javax/transaction.list \ javax/transaction/xa.list \ org/ietf/jgss.list \ @@ -8780,6 +8844,7 @@ ordinary_header_files = \ $(gnu_awt_j2d_header_files) \ $(gnu_classpath_header_files) \ $(gnu_classpath_debug_header_files) \ + $(gnu_classpath_toolkit_header_files) \ $(gnu_gcj_header_files) \ $(gnu_gcj_convert_header_files) \ $(gnu_gcj_io_header_files) \ @@ -8967,6 +9032,8 @@ ordinary_header_files = \ $(javax_management_header_files) \ $(javax_management_loading_header_files) \ $(javax_management_openmbean_header_files) \ + $(javax_management_remote_header_files) \ + $(javax_management_remote_rmi_header_files) \ $(javax_naming_header_files) \ $(javax_naming_directory_header_files) \ $(javax_naming_event_header_files) \ @@ -9008,6 +9075,7 @@ ordinary_header_files = \ $(javax_swing_text_rtf_header_files) \ $(javax_swing_tree_header_files) \ $(javax_swing_undo_header_files) \ + $(javax_tools_header_files) \ $(javax_transaction_header_files) \ $(javax_transaction_xa_header_files) \ $(org_ietf_jgss_header_files) \ @@ -9058,23 +9126,10 @@ bc_objects = \ org-xml.lo property_files = \ - classpath/resource/gnu/classpath/tools/appletviewer/messages.properties \ - classpath/resource/gnu/classpath/tools/common/Messages.properties \ - classpath/resource/gnu/classpath/tools/getopt/Messages.properties \ - classpath/resource/gnu/classpath/tools/jar/messages.properties \ - classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties \ - classpath/resource/gnu/classpath/tools/jarsigner/messages.properties \ - classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties \ - classpath/resource/gnu/classpath/tools/keytool/messages.properties \ - classpath/resource/gnu/classpath/tools/native2ascii/messages.properties \ - classpath/resource/gnu/classpath/tools/orbd/messages.properties \ - classpath/resource/gnu/classpath/tools/rmic/messages.properties \ - classpath/resource/gnu/classpath/tools/rmid/messages.properties \ - classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties \ - classpath/resource/gnu/classpath/tools/serialver/messages.properties \ - classpath/resource/gnu/classpath/tools/tnameserv/messages.properties \ + classpath/resource/gnu/java/awt/font/fonts.properties \ classpath/resource/gnu/java/awt/peer/gtk/font.properties \ classpath/resource/gnu/java/awt/peer/x/fonts.properties \ + classpath/resource/gnu/java/awt/peer/x/xfonts.properties \ classpath/resource/gnu/java/locale/LocaleInformation.properties \ classpath/resource/gnu/java/locale/LocaleInformation_aa.properties \ classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties \ @@ -9355,8 +9410,6 @@ property_files = \ classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \ classpath/resource/javax/swing/text/html/default.css \ classpath/resource/org/ietf/jgss/MessagesBundle.properties \ - classpath/resource/sun/rmi/rmic/messages.properties \ - classpath/resource/com/sun/tools/javac/messages.properties \ classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory \ classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \ classpath/resource/META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \ |