aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog2674
-rw-r--r--libjava/ChangeLog-20072658
-rw-r--r--libjava/Makefile.in100
-rw-r--r--libjava/aclocal.m42
-rw-r--r--libjava/classpath/AUTHORS2
-rw-r--r--libjava/classpath/ChangeLog4519
-rw-r--r--libjava/classpath/ChangeLog-20074810
-rw-r--r--libjava/classpath/ChangeLog.gcj93
-rw-r--r--libjava/classpath/INSTALL53
-rw-r--r--libjava/classpath/Makefile.am4
-rw-r--r--libjava/classpath/Makefile.in28
-rw-r--r--libjava/classpath/NEWS54
-rw-r--r--libjava/classpath/THANKYOU1
-rw-r--r--libjava/classpath/aclocal.m42
-rwxr-xr-xlibjava/classpath/config.guess60
-rwxr-xr-xlibjava/classpath/config.sub80
-rwxr-xr-xlibjava/classpath/configure2190
-rw-r--r--libjava/classpath/configure.ac50
-rwxr-xr-xlibjava/classpath/depcomp93
-rw-r--r--libjava/classpath/doc/Makefile.in23
-rw-r--r--libjava/classpath/doc/api/Makefile.am2
-rw-r--r--libjava/classpath/doc/api/Makefile.in25
-rw-r--r--libjava/classpath/doc/cp-hacking.texinfo113
-rw-r--r--libjava/classpath/doc/cp-vmintegration.texinfo12
-rw-r--r--libjava/classpath/doc/texinfo.tex2424
-rw-r--r--libjava/classpath/examples/Makefile.am23
-rw-r--r--libjava/classpath/examples/Makefile.in39
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java1
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java1
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java1
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java1
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java1
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java2
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java29
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java36
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java2
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java222
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java1
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java7
-rw-r--r--libjava/classpath/external/Makefile.in23
-rw-r--r--libjava/classpath/external/jsr166/Makefile.in23
-rw-r--r--libjava/classpath/external/relaxngDatatype/Makefile.in23
-rw-r--r--libjava/classpath/external/sax/Makefile.in23
-rw-r--r--libjava/classpath/external/w3c_dom/Makefile.in23
-rw-r--r--libjava/classpath/gnu/CORBA/BigDecimalHelper.java4
-rw-r--r--libjava/classpath/gnu/CORBA/ByteArrayComparator.java1
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java10
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java4
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java8
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java1
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/Vio.java2
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java2
-rw-r--r--libjava/classpath/gnu/CORBA/CollocatedOrbs.java4
-rw-r--r--libjava/classpath/gnu/CORBA/Connected_objects.java4
-rw-r--r--libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java2
-rw-r--r--libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java1
-rw-r--r--libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java2
-rw-r--r--libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java2
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/CancelHeader.java6
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/CodeSetServiceContext.java2
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java4
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/v1_0/CancelHeader.java6
-rw-r--r--libjava/classpath/gnu/CORBA/IOR.java2
-rw-r--r--libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java1
-rw-r--r--libjava/classpath/gnu/CORBA/Interceptor/Registrator.java2
-rw-r--r--libjava/classpath/gnu/CORBA/IorDelegate.java6
-rw-r--r--libjava/classpath/gnu/CORBA/NamingService/NameParser.java1
-rw-r--r--libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java2
-rw-r--r--libjava/classpath/gnu/CORBA/ObjectCreator.java2
-rw-r--r--libjava/classpath/gnu/CORBA/OrbFocused.java2
-rw-r--r--libjava/classpath/gnu/CORBA/OrbFunctional.java4
-rw-r--r--libjava/classpath/gnu/CORBA/OrbRestricted.java1
-rw-r--r--libjava/classpath/gnu/CORBA/Poa/AOM.java2
-rw-r--r--libjava/classpath/gnu/CORBA/Poa/gnuPOA.java6
-rw-r--r--libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java7
-rw-r--r--libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java2
-rw-r--r--libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java1
-rw-r--r--libjava/classpath/gnu/CORBA/gnuContextList.java2
-rw-r--r--libjava/classpath/gnu/CORBA/gnuExceptionList.java2
-rw-r--r--libjava/classpath/gnu/CORBA/gnuRequest.java2
-rw-r--r--libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java2
-rw-r--r--libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java2
-rw-r--r--libjava/classpath/gnu/classpath/ServiceFactory.java46
-rw-r--r--libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java16
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java4
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java1
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java1
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java1
-rw-r--r--libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java59
-rw-r--r--libjava/classpath/gnu/java/awt/AWTUtilities.java2
-rw-r--r--libjava/classpath/gnu/java/awt/ClasspathToolkit.java1
-rw-r--r--libjava/classpath/gnu/java/awt/EmbeddedWindow.java1
-rw-r--r--libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java40
-rw-r--r--libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java (renamed from libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java)169
-rw-r--r--libjava/classpath/gnu/java/awt/image/AsyncImage.java300
-rw-r--r--libjava/classpath/gnu/java/awt/image/ImageConverter.java528
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java165
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java132
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java29
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java2
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java119
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java153
-rw-r--r--libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java20
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java5
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java6
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java6
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java6
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java7
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java7
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java7
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java5
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java2
-rwxr-xr-xlibjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java5
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java1
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java3
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java113
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XEventPump.java17
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java768
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java234
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java38
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java9
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XToolkit.java69
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java114
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java5
-rw-r--r--libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java1
-rw-r--r--libjava/classpath/gnu/java/awt/print/SpooledDocument.java1
-rw-r--r--libjava/classpath/gnu/java/io/PlatformHelper.java2
-rw-r--r--libjava/classpath/gnu/java/lang/MainThread.java2
-rw-r--r--libjava/classpath/gnu/java/lang/management/BeanImpl.java93
-rw-r--r--libjava/classpath/gnu/java/lang/reflect/TypeSignature.java4
-rw-r--r--libjava/classpath/gnu/java/locale/LocaleHelper.java2
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/Request.java1
-rw-r--r--libjava/classpath/gnu/java/nio/DatagramChannelImpl.java2
-rw-r--r--libjava/classpath/gnu/java/nio/FileChannelImpl.java2
-rw-r--r--libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java2
-rw-r--r--libjava/classpath/gnu/java/nio/NIOSocket.java1
-rw-r--r--libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java1
-rw-r--r--libjava/classpath/gnu/java/nio/SocketChannelImpl.java12
-rw-r--r--libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java2
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ByteCharset.java167
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java162
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java163
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp424.java73
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp437.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp737.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp775.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp850.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp852.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp855.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp857.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp860.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp861.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp862.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp863.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp864.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp865.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp866.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp869.java7
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Cp874.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/EncodingHelper.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java63
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/KOI_8.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MS874.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacCroatian.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacCyrillic.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacDingbat.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacGreek.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacIceland.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacRoman.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacRomania.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacSymbol.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacThai.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/MacTurkish.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Provider.java18
-rw-r--r--libjava/classpath/gnu/java/nio/charset/US_ASCII.java68
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1250.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1251.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1252.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1253.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1254.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1255.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1256.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1257.java5
-rw-r--r--libjava/classpath/gnu/java/nio/charset/Windows1258.java5
-rw-r--r--libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java4
-rw-r--r--libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java6
-rw-r--r--libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java1
-rw-r--r--libjava/classpath/gnu/java/security/Engine.java2
-rw-r--r--libjava/classpath/gnu/java/security/key/dss/FIPS186.java2
-rw-r--r--libjava/classpath/gnu/java/text/AttributedFormatBuffer.java2
-rw-r--r--libjava/classpath/gnu/java/util/LRUCache.java77
-rw-r--r--libjava/classpath/gnu/java/util/regex/RE.java1
-rw-r--r--libjava/classpath/gnu/java/util/regex/REException.java6
-rw-r--r--libjava/classpath/gnu/java/util/regex/REToken.java2
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java50
-rw-r--r--libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java3
-rw-r--r--libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/bmp/DecodeBF16.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java1
-rw-r--r--libjava/classpath/gnu/javax/imageio/gif/GIFFile.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java13
-rw-r--r--libjava/classpath/gnu/javax/imageio/jpeg/JPEGException.java7
-rw-r--r--libjava/classpath/gnu/javax/imageio/jpeg/JPEGFrame.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java7
-rw-r--r--libjava/classpath/gnu/javax/imageio/png/PNGChunk.java1
-rw-r--r--libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java2
-rw-r--r--libjava/classpath/gnu/javax/imageio/png/PNGFile.java1
-rw-r--r--libjava/classpath/gnu/javax/imageio/png/PNGGamma.java4
-rw-r--r--libjava/classpath/gnu/javax/management/Server.java21
-rw-r--r--libjava/classpath/gnu/javax/management/Translator.java78
-rw-r--r--libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java18
-rw-r--r--libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java8
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java1
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/StaticTrustAnchors.java2
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java2
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java3
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java4
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java4
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java4
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java3
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java15
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java2
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java3
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java1
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/Random.java4
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java2
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java3
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java6
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java6
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/Signature.java15
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java2
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/TLSHMac.java1
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java1
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java2
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java4
-rw-r--r--libjava/classpath/gnu/javax/print/PrinterDialog.java8
-rw-r--r--libjava/classpath/gnu/javax/security/auth/Password.java4
-rw-r--r--libjava/classpath/gnu/javax/sound/AudioSecurityManager.java71
-rw-r--r--libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java2
-rw-r--r--libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java2
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java1
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java30
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java56
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java56
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java119
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java42
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java31
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java366
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java65
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java6
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/css/Selector.java2
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java2
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java30
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java5
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java2
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java2
-rw-r--r--libjava/classpath/gnu/xml/aelfred2/XmlParser.java13
-rw-r--r--libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java1
-rw-r--r--libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java1
-rw-r--r--libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java2
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java2
-rw-r--r--libjava/classpath/gnu/xml/pipeline/DomConsumer.java2
-rw-r--r--libjava/classpath/gnu/xml/pipeline/EventFilter.java4
-rw-r--r--libjava/classpath/gnu/xml/stream/AttributeImpl.java6
-rw-r--r--libjava/classpath/gnu/xml/stream/EndDocumentImpl.java1
-rw-r--r--libjava/classpath/gnu/xml/stream/SAXParser.java3
-rw-r--r--libjava/classpath/gnu/xml/stream/XIncludeFilter.java3
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java2
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java6
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLEventImpl.java1
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLParser.java19
-rw-r--r--libjava/classpath/gnu/xml/transform/StreamSerializer.java1
-rw-r--r--libjava/classpath/gnu/xml/transform/Stylesheet.java1
-rw-r--r--libjava/classpath/gnu/xml/util/Resolver.java2
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java2
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/BooleanType.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/DecimalType.java2
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/DoubleType.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/FloatType.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java2
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/NotationType.java2
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/SimpleType.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/StringType.java4
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/Type.java2
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java1
-rw-r--r--libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java4
-rw-r--r--libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java1
-rw-r--r--libjava/classpath/gnu/xml/xpath/XPathParser.java1
-rw-r--r--libjava/classpath/include/Makefile.am517
-rw-r--r--libjava/classpath/include/Makefile.in540
-rw-r--r--libjava/classpath/include/config.h.in24
-rw-r--r--libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h5
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h6
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h8
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h5
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkClipboard.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h6
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkListPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkSelection.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h5
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QMatrix.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QPainterPath.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QPen.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtAudioClip.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtComponentPeer.h5
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtFontPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphics.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtToolkit.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h4
-rw-r--r--libjava/classpath/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h4
-rw-r--r--libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h5
-rw-r--r--libjava/classpath/include/gnu_java_net_local_LocalSocketImpl.h4
-rw-r--r--libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h5
-rw-r--r--libjava/classpath/include/gnu_java_nio_FileChannelImpl.h5
-rw-r--r--libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h5
-rw-r--r--libjava/classpath/include/gnu_java_nio_VMChannel.h4
-rw-r--r--libjava/classpath/include/gnu_java_nio_VMPipe.h4
-rw-r--r--libjava/classpath/include/gnu_java_nio_VMSelector.h4
-rw-r--r--libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h4
-rw-r--r--libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h4
-rw-r--r--libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h4
-rw-r--r--libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h4
-rw-r--r--libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h4
-rw-r--r--libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h4
-rw-r--r--libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h4
-rw-r--r--libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h4
-rw-r--r--libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h5
-rw-r--r--libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h20
-rw-r--r--libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h20
-rw-r--r--libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h33
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeAttr.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocument.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeElement.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeEntity.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNode.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNodeList.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNotation.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeLocator.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformer.h4
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h4
-rw-r--r--libjava/classpath/include/java_io_VMFile.h8
-rw-r--r--libjava/classpath/include/java_io_VMObjectInputStream.h4
-rw-r--r--libjava/classpath/include/java_io_VMObjectStreamClass.h4
-rw-r--r--libjava/classpath/include/java_lang_VMDouble.h5
-rw-r--r--libjava/classpath/include/java_lang_VMFloat.h5
-rw-r--r--libjava/classpath/include/java_lang_VMMath.h4
-rw-r--r--libjava/classpath/include/java_lang_VMProcess.h5
-rw-r--r--libjava/classpath/include/java_lang_VMSystem.h4
-rw-r--r--libjava/classpath/include/java_lang_reflect_VMArray.h4
-rw-r--r--libjava/classpath/include/java_net_VMInetAddress.h4
-rw-r--r--libjava/classpath/include/java_net_VMNetworkInterface.h4
-rw-r--r--libjava/classpath/include/java_net_VMURLConnection.h5
-rw-r--r--libjava/classpath/include/java_nio_MappedByteBufferImpl.h4
-rw-r--r--libjava/classpath/include/java_nio_VMDirectByteBuffer.h4
-rw-r--r--libjava/classpath/include/java_util_VMTimeZone.h4
-rw-r--r--libjava/classpath/include/jni.h26
-rwxr-xr-xlibjava/classpath/install-sh514
-rw-r--r--libjava/classpath/java/awt/AWTKeyStroke.java6
-rw-r--r--libjava/classpath/java/awt/Container.java6
-rw-r--r--libjava/classpath/java/awt/DefaultKeyboardFocusManager.java2
-rw-r--r--libjava/classpath/java/awt/Desktop.java4
-rw-r--r--libjava/classpath/java/awt/Font.java21
-rw-r--r--libjava/classpath/java/awt/GridBagLayout.java29
-rw-r--r--libjava/classpath/java/awt/LightweightDispatcher.java3
-rw-r--r--libjava/classpath/java/awt/MenuShortcut.java2
-rw-r--r--libjava/classpath/java/awt/color/ICC_Profile.java13
-rw-r--r--libjava/classpath/java/awt/dnd/DragGestureRecognizer.java2
-rw-r--r--libjava/classpath/java/awt/event/MouseEvent.java33
-rw-r--r--libjava/classpath/java/awt/font/LineBreakMeasurer.java2
-rw-r--r--libjava/classpath/java/awt/font/TextMeasurer.java1
-rw-r--r--libjava/classpath/java/awt/geom/Arc2D.java2
-rw-r--r--libjava/classpath/java/awt/geom/CubicCurve2D.java8
-rw-r--r--libjava/classpath/java/awt/geom/QuadCurve2D.java8
-rw-r--r--libjava/classpath/java/awt/im/InputContext.java5
-rw-r--r--libjava/classpath/java/awt/image/AffineTransformOp.java2
-rw-r--r--libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java4
-rw-r--r--libjava/classpath/java/awt/image/BufferedImage.java2
-rw-r--r--libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java29
-rw-r--r--libjava/classpath/java/awt/image/RGBImageFilter.java2
-rw-r--r--libjava/classpath/java/awt/image/Raster.java2
-rw-r--r--libjava/classpath/java/beans/Beans.java2
-rw-r--r--libjava/classpath/java/beans/DefaultPersistenceDelegate.java4
-rw-r--r--libjava/classpath/java/beans/Encoder.java2
-rw-r--r--libjava/classpath/java/beans/EventHandler.java14
-rw-r--r--libjava/classpath/java/beans/PropertyChangeSupport.java4
-rw-r--r--libjava/classpath/java/beans/VetoableChangeSupport.java4
-rw-r--r--libjava/classpath/java/beans/XMLDecoder.java2
-rw-r--r--libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java9
-rw-r--r--libjava/classpath/java/beans/beancontext/BeanContextSupport.java4
-rw-r--r--libjava/classpath/java/io/BufferedReader.java10
-rw-r--r--libjava/classpath/java/io/CharArrayWriter.java4
-rw-r--r--libjava/classpath/java/io/DataInputStream.java54
-rw-r--r--libjava/classpath/java/io/DataOutputStream.java84
-rw-r--r--libjava/classpath/java/io/File.java67
-rw-r--r--libjava/classpath/java/io/FileOutputStream.java2
-rw-r--r--libjava/classpath/java/io/ObjectInputStream.java15
-rw-r--r--libjava/classpath/java/io/ObjectOutputStream.java22
-rw-r--r--libjava/classpath/java/io/ObjectStreamClass.java6
-rw-r--r--libjava/classpath/java/io/OutputStreamWriter.java114
-rw-r--r--libjava/classpath/java/io/PipedInputStream.java38
-rw-r--r--libjava/classpath/java/io/PrintStream.java15
-rw-r--r--libjava/classpath/java/lang/Class.java8
-rw-r--r--libjava/classpath/java/lang/Double.java36
-rw-r--r--libjava/classpath/java/lang/Float.java36
-rw-r--r--libjava/classpath/java/lang/Integer.java13
-rw-r--r--libjava/classpath/java/lang/Long.java2
-rw-r--r--libjava/classpath/java/lang/StackTraceElement.java2
-rw-r--r--libjava/classpath/java/lang/String.java200
-rw-r--r--libjava/classpath/java/lang/System.java2
-rw-r--r--libjava/classpath/java/lang/Throwable.java4
-rw-r--r--libjava/classpath/java/lang/management/ThreadInfo.java128
-rw-r--r--libjava/classpath/java/lang/reflect/Array.java14
-rw-r--r--libjava/classpath/java/lang/reflect/Proxy.java14
-rw-r--r--libjava/classpath/java/math/BigInteger.java4
-rw-r--r--libjava/classpath/java/net/DatagramSocket.java8
-rw-r--r--libjava/classpath/java/net/ResolverCache.java6
-rw-r--r--libjava/classpath/java/net/ServerSocket.java4
-rw-r--r--libjava/classpath/java/net/Socket.java8
-rw-r--r--libjava/classpath/java/net/URI.java21
-rw-r--r--libjava/classpath/java/net/URLClassLoader.java4
-rw-r--r--libjava/classpath/java/net/URLEncoder.java2
-rw-r--r--libjava/classpath/java/nio/charset/Charset.java2
-rw-r--r--libjava/classpath/java/nio/charset/CoderResult.java2
-rw-r--r--libjava/classpath/java/security/SecureClassLoader.java7
-rw-r--r--libjava/classpath/java/security/Security.java2
-rw-r--r--libjava/classpath/java/security/cert/CertificateFactory.java1
-rw-r--r--libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java4
-rw-r--r--libjava/classpath/java/text/ChoiceFormat.java8
-rw-r--r--libjava/classpath/java/text/CollationElementIterator.java21
-rw-r--r--libjava/classpath/java/text/DecimalFormat.java18
-rw-r--r--libjava/classpath/java/text/MessageFormat.java4
-rw-r--r--libjava/classpath/java/text/RuleBasedCollator.java11
-rw-r--r--libjava/classpath/java/text/SimpleDateFormat.java16
-rw-r--r--libjava/classpath/java/util/AbstractMap.java2
-rw-r--r--libjava/classpath/java/util/Calendar.java8
-rw-r--r--libjava/classpath/java/util/Collections.java4
-rw-r--r--libjava/classpath/java/util/Date.java2
-rw-r--r--libjava/classpath/java/util/Formatter.java4
-rw-r--r--libjava/classpath/java/util/Hashtable.java10
-rw-r--r--libjava/classpath/java/util/LinkedHashSet.java4
-rw-r--r--libjava/classpath/java/util/Locale.java20
-rw-r--r--libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java1015
-rw-r--r--libjava/classpath/java/util/jar/Manifest.java2
-rw-r--r--libjava/classpath/java/util/logging/Logger.java1624
-rw-r--r--libjava/classpath/java/util/zip/ZipEntry.java2
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleAction.java16
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleAttributeSequence.java22
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleEditableText.java2
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleRelationSet.java4
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleRole.java13
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleTextSequence.java17
-rw-r--r--libjava/classpath/javax/imageio/ImageReader.java18
-rw-r--r--libjava/classpath/javax/imageio/ImageTypeSpecifier.java6
-rw-r--r--libjava/classpath/javax/imageio/ImageWriter.java4
-rw-r--r--libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java5
-rw-r--r--libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java2
-rw-r--r--libjava/classpath/javax/imageio/spi/ServiceRegistry.java8
-rw-r--r--libjava/classpath/javax/imageio/stream/ImageInputStream.java2
-rw-r--r--libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java2
-rw-r--r--libjava/classpath/javax/management/MBeanPermission.java2
-rw-r--r--libjava/classpath/javax/management/NotificationBroadcasterSupport.java4
-rw-r--r--libjava/classpath/javax/management/ObjectName.java1
-rw-r--r--libjava/classpath/javax/management/StandardMBean.java6
-rw-r--r--libjava/classpath/javax/management/openmbean/ArrayType.java1
-rw-r--r--libjava/classpath/javax/management/package.html197
-rw-r--r--libjava/classpath/javax/management/remote/NotificationResult.java166
-rw-r--r--libjava/classpath/javax/management/remote/TargetedNotification.java127
-rw-r--r--libjava/classpath/javax/management/remote/package.html53
-rw-r--r--libjava/classpath/javax/management/remote/rmi/RMIConnection.java1151
-rw-r--r--libjava/classpath/javax/management/remote/rmi/RMIServer.java89
-rw-r--r--libjava/classpath/javax/net/ssl/HttpsURLConnection.java1
-rw-r--r--libjava/classpath/javax/print/attribute/standard/JobStateReasons.java2
-rw-r--r--libjava/classpath/javax/print/attribute/standard/MediaSize.java4
-rw-r--r--libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java2
-rw-r--r--libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java6
-rw-r--r--libjava/classpath/javax/rmi/CORBA/Util.java2
-rw-r--r--libjava/classpath/javax/rmi/CORBA/UtilDelegate.java4
-rw-r--r--libjava/classpath/javax/rmi/CORBA/ValueHandler.java2
-rw-r--r--libjava/classpath/javax/rmi/PortableRemoteObject.java4
-rw-r--r--libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java10
-rw-r--r--libjava/classpath/javax/swing/JFrame.java2
-rw-r--r--libjava/classpath/javax/swing/JTree.java2
-rw-r--r--libjava/classpath/javax/swing/RepaintManager.java2
-rw-r--r--libjava/classpath/javax/swing/TransferHandler.java2
-rw-r--r--libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java2
-rw-r--r--libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java1
-rw-r--r--libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java2
-rw-r--r--libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java1
-rw-r--r--libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java8
-rw-r--r--libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java1
-rw-r--r--libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java1
-rw-r--r--libjava/classpath/javax/swing/table/DefaultTableColumnModel.java8
-rw-r--r--libjava/classpath/javax/swing/text/DefaultStyledDocument.java3
-rw-r--r--libjava/classpath/javax/swing/text/GlyphView.java1
-rw-r--r--libjava/classpath/javax/swing/text/ParagraphView.java3
-rw-r--r--libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java2
-rw-r--r--libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java1
-rw-r--r--libjava/classpath/javax/swing/text/html/parser/DTD.java6
-rw-r--r--libjava/classpath/javax/swing/text/html/parser/Entity.java2
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java61
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java40
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java5
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java51
-rw-r--r--libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java30
-rw-r--r--libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java30
-rw-r--r--libjava/classpath/javax/swing/undo/StateEdit.java4
-rw-r--r--libjava/classpath/javax/swing/undo/UndoManager.java12
-rw-r--r--libjava/classpath/javax/tools/Diagnostic.java167
-rw-r--r--libjava/classpath/javax/tools/DiagnosticListener.java61
-rw-r--r--libjava/classpath/javax/tools/FileObject.java155
-rw-r--r--libjava/classpath/javax/xml/datatype/DatatypeFactory.java3
-rw-r--r--libjava/classpath/javax/xml/namespace/QName.java3
-rw-r--r--libjava/classpath/javax/xml/stream/XMLEventFactory.java1
-rw-r--r--libjava/classpath/javax/xml/stream/XMLInputFactory.java1
-rw-r--r--libjava/classpath/javax/xml/stream/events/Attribute.java2
-rw-r--r--libjava/classpath/lib/Makefile.am32
-rw-r--r--libjava/classpath/lib/Makefile.in39
-rw-r--r--libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.classbin3255 -> 3255 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.classbin1158 -> 1158 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.classbin4549 -> 4549 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.classbin2544 -> 2544 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.classbin8187 -> 8187 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.classbin6545 -> 6545 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.classbin7251 -> 7251 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.classbin1812 -> 1812 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.classbin3621 -> 3621 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.classbin2605 -> 2605 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/IorDelegate.classbin7919 -> 7919 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.classbin9789 -> 9789 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/OrbRestricted.classbin10175 -> 10175 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.classbin3326 -> 3326 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.classbin3086 -> 3086 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/gnuContextList.classbin1009 -> 1009 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/gnuExceptionList.classbin1046 -> 1046 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/gnuRequest$1.classbin567 -> 567 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/gnuRequest$2.classbin623 -> 623 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/gnuRequest.classbin23157 -> 23157 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.classbin4651 -> 5212 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/ServiceFactory.classbin3536 -> 4087 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.classbin1292 -> 1676 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.classbin4080 -> 4080 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.classbin2304 -> 2334 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.classbin1349 -> 1349 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.classbin6519 -> 6519 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.classbin8121 -> 8121 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.classbin0 -> 773 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.classbin2951 -> 2951 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.classbin2023 -> 2023 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.classbin7384 -> 7590 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.classbin0 -> 2812 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.classbin0 -> 2787 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.classbin0 -> 9903 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.classbin0 -> 1879 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/image/AsyncImage.classbin0 -> 3986 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/image/ImageConverter.classbin0 -> 8171 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.classbin28258 -> 29260 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.classbin0 -> 580 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.classbin0 -> 1189 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.classbin6579 -> 6616 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.classbin0 -> 1836 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.classbin0 -> 1560 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.classbin2336 -> 2336 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.classbin39058 -> 39012 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.classbin7530 -> 7530 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.classbin17173 -> 17164 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.classbin1705 -> 1705 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.classbin2341 -> 2341 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.classbin9446 -> 9354 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.classbin3526 -> 3434 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.classbin5490 -> 5490 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.classbin1851 -> 1851 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.classbin5314 -> 5314 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.classbin1904 -> 1904 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.classbin1075 -> 1075 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.classbin8025 -> 7956 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.classbin626 -> 626 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.classbin5780 -> 5712 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.classbin1498 -> 1498 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.classbin18625 -> 18754 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.classbin2319 -> 2356 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.classbin945 -> 945 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.classbin19627 -> 19581 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.classbin8439 -> 8647 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.classbin8381 -> 8357 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.classbin2656 -> 2656 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.classbin1346 -> 1346 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.classbin1713 -> 1713 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.classbin829 -> 829 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.classbin3177 -> 3177 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.classbin2626 -> 2626 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.classbin4808 -> 4808 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.classbin2670 -> 2670 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.classbin3242 -> 3241 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.classbin30318 -> 30318 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.classbin1325 -> 1325 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/io/PlatformHelper.classbin1866 -> 1866 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/management/BeanImpl.classbin11094 -> 12101 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.classbin4010 -> 3877 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/locale/LocaleHelper.classbin1798 -> 1798 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/Request.classbin15685 -> 15685 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.classbin0 -> 909 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.classbin0 -> 909 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.classbin1392 -> 1213 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.classbin2042 -> 1871 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.classbin1313 -> 1386 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.classbin0 -> 2171 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.classbin0 -> 2180 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp424.classbin2396 -> 2366 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp437.classbin2429 -> 2399 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp737.classbin2429 -> 2399 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp775.classbin2429 -> 2399 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp850.classbin2429 -> 2399 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp852.classbin2429 -> 2399 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp855.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp857.classbin2452 -> 2418 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp860.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp861.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp862.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp863.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp864.classbin2738 -> 2704 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp865.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp866.classbin2450 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp869.classbin2446 -> 2412 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Cp874.classbin2403 -> 2373 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.classbin3279 -> 3359 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.classbin0 -> 677 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.classbin0 -> 682 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.classbin1161 -> 1016 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.classbin1632 -> 1402 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.classbin1348 -> 1348 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.classbin2683 -> 2657 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.classbin2869 -> 2843 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.classbin2817 -> 2791 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.classbin2815 -> 2789 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.classbin2817 -> 2791 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.classbin2808 -> 2782 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.classbin2857 -> 2831 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.classbin2871 -> 2845 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.classbin2827 -> 2801 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.classbin2841 -> 2815 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/KOI_8.classbin2594 -> 2568 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MS874.classbin2403 -> 2373 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.classbin2478 -> 2448 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.classbin2462 -> 2432 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.classbin2458 -> 2428 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.classbin2527 -> 2497 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacGreek.classbin2446 -> 2416 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacIceland.classbin2458 -> 2428 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacRoman.classbin2458 -> 2428 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacRomania.classbin2458 -> 2428 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.classbin2488 -> 2458 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacThai.classbin2414 -> 2384 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.classbin2462 -> 2432 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Provider$1.classbin581 -> 748 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Provider.classbin5340 -> 5643 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.classbin0 -> 669 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.classbin0 -> 671 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.classbin1248 -> 1006 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.classbin1622 -> 1391 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.classbin1301 -> 1301 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1250.classbin2657 -> 2631 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1251.classbin2603 -> 2577 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1252.classbin2585 -> 2559 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1253.classbin2587 -> 2561 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1254.classbin2597 -> 2571 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1255.classbin2581 -> 2555 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1256.classbin2599 -> 2573 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1257.classbin2592 -> 2566 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/Windows1258.classbin2595 -> 2569 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.classbin2673 -> 2650 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.classbin1553 -> 1553 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.classbin1385 -> 1276 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.classbin5117 -> 5117 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.classbin3019 -> 3019 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/LRUCache.classbin0 -> 899 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.classbin654 -> 654 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.classbin516 -> 516 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.classbin515 -> 515 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.classbin549 -> 549 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.classbin632 -> 632 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE.classbin29677 -> 29677 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/REException.classbin1846 -> 2106 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.classbin849 -> 849 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.classbin566 -> 566 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.classbin0 -> 1489 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.classbin1256 -> 1256 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.classbin1014 -> 1014 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.classbin886 -> 886 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.classbin800 -> 800 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.classbin6346 -> 6999 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.classbin3619 -> 3579 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.classbin2661 -> 2661 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.classbin2162 -> 2162 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.classbin9409 -> 9405 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.classbin384 -> 384 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.classbin1776 -> 1776 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.classbin4262 -> 4262 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.classbin5501 -> 5501 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.classbin5022 -> 5022 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.classbin1461 -> 1461 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.classbin898 -> 898 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.classbin1219 -> 1219 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.classbin1282 -> 1282 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server.classbin24106 -> 24212 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Translator.classbin13369 -> 13799 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.classbin803 -> 803 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.classbin92341 -> 92341 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.classbin3027 -> 3027 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.classbin2588 -> 2588 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.classbin3790 -> 3790 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.classbin2856 -> 2856 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.classbin2151 -> 2151 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.classbin3836 -> 3836 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.classbin2213 -> 2213 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.classbin31108 -> 31108 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.classbin2480 -> 2480 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.classbin3336 -> 3336 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.classbin1657 -> 1657 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.classbin3204 -> 3204 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.classbin2593 -> 2593 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.classbin5821 -> 5821 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.classbin6952 -> 6952 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.classbin6668 -> 6668 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.classbin3435 -> 3435 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.classbin2988 -> 2988 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.classbin2766 -> 2766 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.classbin2583 -> 2583 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.classbin3858 -> 3858 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.classbin545 -> 545 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.classbin4432 -> 4432 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.classbin3037 -> 3037 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.classbin1391 -> 1391 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.classbin3005 -> 3005 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.classbin2111 -> 2111 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.classbin1592 -> 1592 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.classbin1597 -> 1597 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.classbin3246 -> 3246 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.classbin3483 -> 3483 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.classbin1494 -> 1494 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.classbin5309 -> 5309 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.classbin5245 -> 5245 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/security/auth/Password.classbin2543 -> 2543 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.classbin1266 -> 1266 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.classbin1574 -> 1574 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.classbin748 -> 748 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.classbin897 -> 897 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.classbin3143 -> 3143 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.classbin3371 -> 3371 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.classbin563 -> 563 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.classbin2690 -> 2690 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.classbin2634 -> 2634 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.classbin837 -> 837 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.classbin4830 -> 4522 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.classbin2495 -> 3894 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.classbin1185 -> 1185 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.classbin5312 -> 5704 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.classbin0 -> 1184 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.classbin1327 -> 0 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.classbin2714 -> 2549 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.classbin512 -> 1166 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.classbin0 -> 1034 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.classbin0 -> 1375 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.classbin402 -> 5310 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.classbin2066 -> 3566 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.classbin3980 -> 4009 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.classbin3283 -> 3283 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.classbin20727 -> 20727 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.classbin5335 -> 5335 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.classbin514 -> 514 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.classbin500 -> 500 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.classbin610 -> 610 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.classbin704 -> 704 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.classbin703 -> 703 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.classbin52436 -> 52384 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.classbin2264 -> 2264 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.classbin4083 -> 4083 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.classbin4877 -> 4877 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.classbin2233 -> 2237 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/pipeline/EventFilter.classbin11052 -> 11058 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/AttributeImpl.classbin2098 -> 2089 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.classbin722 -> 722 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/SAXParser.classbin22221 -> 22226 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.classbin17452 -> 17456 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.classbin5884 -> 5771 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.classbin7643 -> 7555 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.classbin3112 -> 3112 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.classbin617 -> 617 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.classbin2414 -> 2414 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.classbin897 -> 897 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.classbin787 -> 787 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.classbin595 -> 595 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.classbin5914 -> 5914 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.classbin1059 -> 1059 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.classbin623 -> 623 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.classbin556 -> 556 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.classbin6256 -> 6256 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.classbin988 -> 988 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser.classbin67987 -> 67890 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/StreamSerializer.classbin17799 -> 17799 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/Stylesheet.classbin38670 -> 38670 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.classbin2173 -> 2173 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.classbin2029 -> 2029 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.classbin2033 -> 2033 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.classbin2285 -> 2285 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.classbin2278 -> 2278 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.classbin1627 -> 1627 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.classbin1538 -> 1538 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.classbin5599 -> 5599 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/StringType.classbin941 -> 941 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/Type.classbin551 -> 551 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.classbin7085 -> 7085 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.classbin32644 -> 32644 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.classbin1700 -> 1700 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.classbin14866 -> 14866 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.classbin1657 -> 1657 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.classbin7787 -> 7787 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.classbin863 -> 863 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.classbin669 -> 669 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.classbin589 -> 589 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.classbin952 -> 952 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.classbin1018 -> 1018 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.classbin1520 -> 1520 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.classbin774 -> 774 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.classbin1024 -> 1024 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.classbin5389 -> 5389 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.classbin453 -> 453 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser.classbin15438 -> 15438 bytes
-rw-r--r--libjava/classpath/lib/java/awt/AWTKeyStroke$3.classbin1214 -> 1217 bytes
-rw-r--r--libjava/classpath/lib/java/awt/AWTKeyStroke.classbin7351 -> 7354 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container.classbin26135 -> 26128 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Desktop.classbin1954 -> 1954 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Font.classbin15412 -> 15499 bytes
-rw-r--r--libjava/classpath/lib/java/awt/GridBagLayout.classbin16068 -> 16064 bytes
-rw-r--r--libjava/classpath/lib/java/awt/LightweightDispatcher.classbin4928 -> 5122 bytes
-rw-r--r--libjava/classpath/lib/java/awt/MenuShortcut.classbin5566 -> 5566 bytes
-rw-r--r--libjava/classpath/lib/java/awt/color/ICC_Profile.classbin18802 -> 18837 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/MouseEvent.classbin4819 -> 4526 bytes
-rw-r--r--libjava/classpath/lib/java/awt/font/LineBreakMeasurer.classbin2685 -> 2685 bytes
-rw-r--r--libjava/classpath/lib/java/awt/font/TextMeasurer.classbin2843 -> 2843 bytes
-rw-r--r--libjava/classpath/lib/java/awt/im/InputContext.classbin5265 -> 5265 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/BufferedImage$1.classbin2308 -> 2308 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/BufferedImage.classbin14708 -> 14708 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.classbin1024 -> 1264 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/RGBImageFilter.classbin3344 -> 3340 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/Raster.classbin11880 -> 11880 bytes
-rw-r--r--libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.classbin3915 -> 3921 bytes
-rw-r--r--libjava/classpath/lib/java/beans/EventHandler.classbin6940 -> 6942 bytes
-rw-r--r--libjava/classpath/lib/java/beans/PropertyChangeSupport.classbin7074 -> 7049 bytes
-rw-r--r--libjava/classpath/lib/java/beans/VetoableChangeSupport.classbin6813 -> 6823 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.classbin958 -> 958 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.classbin2093 -> 2015 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.classbin1471 -> 1471 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.classbin837 -> 837 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.classbin1014 -> 1014 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.classbin1163 -> 1163 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.classbin12828 -> 12828 bytes
-rw-r--r--libjava/classpath/lib/java/io/BufferedReader.classbin5190 -> 5085 bytes
-rw-r--r--libjava/classpath/lib/java/io/DataInputStream.classbin5170 -> 5487 bytes
-rw-r--r--libjava/classpath/lib/java/io/DataOutputStream.classbin3626 -> 4005 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectInputStream$1.classbin1152 -> 1152 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectInputStream$2.classbin6167 -> 6167 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectInputStream$GetField.classbin1025 -> 1025 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.classbin786 -> 786 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectInputStream.classbin30634 -> 30759 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectOutputStream$1.classbin4718 -> 4718 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectOutputStream$PutField.classbin818 -> 818 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectOutputStream.classbin18476 -> 18755 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectStreamClass.classbin17983 -> 18007 bytes
-rw-r--r--libjava/classpath/lib/java/io/PipedInputStream.classbin2836 -> 3147 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Class$1.classbin677 -> 677 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Double.classbin4562 -> 4644 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Float.classbin4520 -> 4589 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Integer.classbin6779 -> 6788 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Long.classbin6360 -> 6360 bytes
-rw-r--r--libjava/classpath/lib/java/lang/StackTraceElement.classbin2637 -> 2642 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Throwable.classbin4594 -> 4466 bytes
-rw-r--r--libjava/classpath/lib/java/lang/management/ThreadInfo.classbin11980 -> 10585 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.classbin11575 -> 11611 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.classbin3649 -> 3655 bytes
-rw-r--r--libjava/classpath/lib/java/math/BigInteger.classbin30684 -> 30694 bytes
-rw-r--r--libjava/classpath/lib/java/net/DatagramSocket.classbin10333 -> 10347 bytes
-rw-r--r--libjava/classpath/lib/java/net/ServerSocket.classbin6899 -> 6916 bytes
-rw-r--r--libjava/classpath/lib/java/net/Socket.classbin11464 -> 11438 bytes
-rw-r--r--libjava/classpath/lib/java/net/URI.classbin16505 -> 16406 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader.classbin14644 -> 14494 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLEncoder.classbin1842 -> 1846 bytes
-rw-r--r--libjava/classpath/lib/java/nio/charset/CoderResult$Cache.classbin1220 -> 1244 bytes
-rw-r--r--libjava/classpath/lib/java/security/SecureClassLoader.classbin2605 -> 2601 bytes
-rw-r--r--libjava/classpath/lib/java/security/Security.classbin11241 -> 11246 bytes
-rw-r--r--libjava/classpath/lib/java/security/VMSecureRandom$Spinner.classbin808 -> 808 bytes
-rw-r--r--libjava/classpath/lib/java/security/VMSecureRandom.classbin1429 -> 1429 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertificateFactory.classbin4794 -> 4794 bytes
-rw-r--r--libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.classbin943 -> 951 bytes
-rw-r--r--libjava/classpath/lib/java/text/ChoiceFormat.classbin5710 -> 5767 bytes
-rw-r--r--libjava/classpath/lib/java/text/CollationElementIterator.classbin5280 -> 5534 bytes
-rw-r--r--libjava/classpath/lib/java/text/DecimalFormat.classbin24288 -> 24317 bytes
-rw-r--r--libjava/classpath/lib/java/text/MessageFormat.classbin11610 -> 11646 bytes
-rw-r--r--libjava/classpath/lib/java/text/RuleBasedCollator.classbin10427 -> 10217 bytes
-rw-r--r--libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.classbin1491 -> 1496 bytes
-rw-r--r--libjava/classpath/lib/java/text/SimpleDateFormat.classbin18183 -> 18114 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap.classbin5301 -> 5306 bytes
-rw-r--r--libjava/classpath/lib/java/util/Calendar.classbin17406 -> 17231 bytes
-rw-r--r--libjava/classpath/lib/java/util/Date.classbin11034 -> 11003 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.classbin1384 -> 1384 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$KeyIterator.classbin1236 -> 1236 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.classbin1392 -> 1392 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$ValueIterator.classbin1244 -> 1244 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable.classbin10573 -> 10538 bytes
-rw-r--r--libjava/classpath/lib/java/util/Locale.classbin13857 -> 13806 bytes
-rw-r--r--libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.classbin0 -> 2314 bytes
-rw-r--r--libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.classbin0 -> 1350 bytes
-rw-r--r--libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.classbin0 -> 2115 bytes
-rw-r--r--libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.classbin0 -> 1081 bytes
-rw-r--r--libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.classbin0 -> 4905 bytes
-rw-r--r--libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.classbin6853 -> 11229 bytes
-rw-r--r--libjava/classpath/lib/java/util/zip/ZipEntry.classbin5378 -> 5391 bytes
-rw-r--r--libjava/classpath/lib/javax/accessibility/AccessibleAction.classbin449 -> 533 bytes
-rw-r--r--libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.classbin449 -> 596 bytes
-rw-r--r--libjava/classpath/lib/javax/accessibility/AccessibleRole.classbin4524 -> 4601 bytes
-rw-r--r--libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.classbin415 -> 548 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.classbin818 -> 818 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.classbin1846 -> 1846 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.classbin1409 -> 1409 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.classbin1313 -> 1313 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.classbin1217 -> 1217 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.classbin1419 -> 1419 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.classbin1305 -> 1305 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.classbin1520 -> 1520 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.classbin1274 -> 1274 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.classbin16110 -> 16110 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.classbin1907 -> 1907 bytes
-rw-r--r--libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.classbin4524 -> 4531 bytes
-rw-r--r--libjava/classpath/lib/javax/management/ObjectName.classbin11159 -> 11159 bytes
-rw-r--r--libjava/classpath/lib/javax/management/StandardMBean.classbin16898 -> 16907 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/ArrayType.classbin9802 -> 9802 bytes
-rw-r--r--libjava/classpath/lib/javax/management/remote/NotificationResult.classbin0 -> 1994 bytes
-rw-r--r--libjava/classpath/lib/javax/management/remote/TargetedNotification.classbin0 -> 1544 bytes
-rw-r--r--libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.classbin0 -> 4347 bytes
-rw-r--r--libjava/classpath/lib/javax/management/remote/rmi/RMIServer.classbin0 -> 368 bytes
-rw-r--r--libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.classbin3247 -> 3247 bytes
-rw-r--r--libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.classbin2137 -> 2137 bytes
-rw-r--r--libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.classbin2635 -> 2653 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JFrame.classbin7071 -> 7079 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.classbin1299 -> 1299 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.classbin751 -> 751 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/RepaintManager.classbin9873 -> 9873 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.classbin2735 -> 2738 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.classbin856 -> 856 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.classbin2209 -> 2209 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.classbin4426 -> 4426 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.classbin5555 -> 5555 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.classbin893 -> 893 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.classbin2289 -> 2289 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.classbin2695 -> 2695 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.classbin1079 -> 1079 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.classbin1031 -> 1031 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.classbin2984 -> 2984 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.classbin1186 -> 1186 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.classbin1269 -> 1269 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.classbin1680 -> 1680 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.classbin758 -> 758 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.classbin13714 -> 13714 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.classbin8276 -> 8270 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.classbin1068 -> 1068 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.classbin9591 -> 9591 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.classbin1001 -> 1001 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.classbin901 -> 901 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.classbin2143 -> 2143 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.classbin1242 -> 1242 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.classbin2114 -> 2114 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.classbin2514 -> 2514 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.classbin2338 -> 2338 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.classbin2418 -> 2418 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.classbin2241 -> 2241 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.classbin966 -> 966 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.classbin987 -> 987 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.classbin1477 -> 1477 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.classbin2637 -> 2637 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.classbin3035 -> 3035 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.classbin1898 -> 1898 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.classbin3700 -> 3700 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.classbin1558 -> 1558 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.classbin1115 -> 1115 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.classbin1673 -> 1673 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.classbin2504 -> 2504 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.classbin37502 -> 37357 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.classbin5504 -> 5504 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.classbin464 -> 464 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.classbin3503 -> 3503 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.classbin18202 -> 18222 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.classbin863 -> 863 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.classbin1181 -> 1181 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.classbin15654 -> 15654 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/GlyphView.classbin12414 -> 12203 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/ParagraphView$Row.classbin2673 -> 2673 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/ParagraphView.classbin6118 -> 6118 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.classbin737 -> 737 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.classbin783 -> 783 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/parser/Entity.classbin1637 -> 1637 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.classbin1311 -> 1664 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.classbin1717 -> 2190 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.classbin1617 -> 2076 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.classbin9819 -> 9406 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.classbin7763 -> 7754 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.classbin14529 -> 14992 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.classbin2355 -> 2443 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.classbin7085 -> 7465 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.classbin2254 -> 2342 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.classbin8026 -> 8375 bytes
-rw-r--r--libjava/classpath/lib/javax/tools/Diagnostic$Kind.classbin0 -> 1243 bytes
-rw-r--r--libjava/classpath/lib/javax/tools/Diagnostic.classbin0 -> 644 bytes
-rw-r--r--libjava/classpath/lib/javax/tools/DiagnosticListener.classbin0 -> 283 bytes
-rw-r--r--libjava/classpath/lib/javax/tools/FileObject.classbin0 -> 577 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.classbin5735 -> 5735 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/namespace/QName.classbin2665 -> 2720 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/stream/XMLEventFactory.classbin5548 -> 5548 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/stream/XMLInputFactory.classbin5885 -> 5885 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/stream/events/Attribute.classbin304 -> 304 bytes
-rw-r--r--libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.classbin3325 -> 3325 bytes
-rw-r--r--libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.classbin313 -> 313 bytes
-rw-r--r--libjava/classpath/ltmain.sh7761
-rw-r--r--libjava/classpath/m4/ac_prog_javac.m451
-rw-r--r--libjava/classpath/m4/ac_prog_javac_works.m445
-rw-r--r--libjava/classpath/m4/acinclude.m4351
-rwxr-xr-xlibjava/classpath/missing61
-rw-r--r--libjava/classpath/native/Makefile.in23
-rw-r--r--libjava/classpath/native/fdlibm/Makefile.in23
-rw-r--r--libjava/classpath/native/fdlibm/dtoa.c3
-rw-r--r--libjava/classpath/native/fdlibm/fdlibm.h7
-rw-r--r--libjava/classpath/native/fdlibm/ieeefp.h4
-rw-r--r--libjava/classpath/native/fdlibm/mprec.h2
-rw-r--r--libjava/classpath/native/jawt/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/Makefile.am2
-rw-r--r--libjava/classpath/native/jni/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/classpath/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/gconf-peer/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/Makefile.am18
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/Makefile.in55
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c (renamed from libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c)172
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.h (renamed from libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h)10
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c290
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.h (renamed from libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h)62
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c251
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c611
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h63
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_peer.c83
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_peer.h59
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c494
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gstreamer_io_peer.c (renamed from libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c)419
-rw-r--r--libjava/classpath/native/jni/gtk-peer/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c2
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c2
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c59
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c3
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c93
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c32
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c2
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c5
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c2
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gtkpeer.c12
-rw-r--r--libjava/classpath/native/jni/java-io/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/java-io/java_io_VMFile.c88
-rw-r--r--libjava/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c2
-rw-r--r--libjava/classpath/native/jni/java-lang/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c5
-rw-r--r--libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c34
-rw-r--r--libjava/classpath/native/jni/java-lang/java_lang_VMFloat.c22
-rw-r--r--libjava/classpath/native/jni/java-net/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c6
-rw-r--r--libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c3
-rw-r--r--libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c2
-rw-r--r--libjava/classpath/native/jni/java-nio/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c2
-rw-r--r--libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c2
-rw-r--r--libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c3
-rw-r--r--libjava/classpath/native/jni/java-nio/javanio.c2
-rw-r--r--libjava/classpath/native/jni/java-nio/javanio.h2
-rw-r--r--libjava/classpath/native/jni/java-util/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/midi-alsa/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/midi-dssi/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/native-lib/Makefile.am2
-rw-r--r--libjava/classpath/native/jni/native-lib/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/native-lib/cpio.c57
-rw-r--r--libjava/classpath/native/jni/native-lib/cpio.h9
-rw-r--r--libjava/classpath/native/jni/native-lib/cpnet.h4
-rw-r--r--libjava/classpath/native/jni/qt-peer/Makefile.in23
-rw-r--r--libjava/classpath/native/jni/xmlj/Makefile.in23
-rw-r--r--libjava/classpath/native/plugin/Makefile.in23
-rw-r--r--libjava/classpath/org/ietf/jgss/GSSContext.java2
-rw-r--r--libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java4
-rw-r--r--libjava/classpath/org/omg/CORBA/UnknownUserExceptionHelper.java4
-rw-r--r--libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java4
-rw-r--r--libjava/classpath/org/omg/CosNaming/NamingContextPOA.java2
-rw-r--r--libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java4
-rw-r--r--libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java4
-rw-r--r--libjava/classpath/org/omg/IOP/TaggedComponentHelper.java3
-rw-r--r--libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java4
-rw-r--r--libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java4
-rw-r--r--libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java4
-rw-r--r--libjava/classpath/resource/Makefile.in23
-rw-r--r--libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties33
-rw-r--r--libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties95
-rw-r--r--libjava/classpath/resource/gnu/java/awt/font/fonts.properties59
-rw-r--r--libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties25
-rw-r--r--libjava/classpath/scripts/Makefile.am2
-rw-r--r--libjava/classpath/scripts/Makefile.in31
-rw-r--r--[-rwxr-xr-x]libjava/classpath/scripts/check_jni_methods.sh.in (renamed from libjava/classpath/scripts/check_jni_methods.sh)10
-rw-r--r--libjava/classpath/sun/reflect/annotation/ExceptionProxy.java2
-rwxr-xr-xlibjava/classpath/tools/Makefile.am58
-rw-r--r--libjava/classpath/tools/Makefile.in72
-rw-r--r--libjava/classpath/tools/classes/com/sun/tools/javac/Main.classbin3611 -> 3764 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.classbin828 -> 828 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.classbin801 -> 801 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.classbin828 -> 828 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.classbin828 -> 828 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.classbin973 -> 973 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.classbin974 -> 974 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.classbin915 -> 915 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.classbin1067 -> 1067 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.classbin831 -> 831 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.classbin799 -> 799 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.classbin8053 -> 8053 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.classbin8194 -> 8194 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.classbin1028 -> 1028 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.classbin0 -> 983 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.classbin0 -> 1727 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.classbin1394 -> 4028 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.classbin391 -> 565 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.classbin964 -> 977 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.classbin903 -> 916 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.classbin899 -> 912 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.classbin904 -> 917 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.classbin1014 -> 1027 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.classbin966 -> 979 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.classbin910 -> 923 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.classbin5642 -> 5683 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.classbin1933 -> 1929 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.classbin1182 -> 1195 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.classbin1182 -> 1195 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.classbin1182 -> 1195 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.classbin1182 -> 1195 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.classbin977 -> 990 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.classbin915 -> 928 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.classbin915 -> 928 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.classbin915 -> 928 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.classbin915 -> 928 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.classbin2981 -> 3020 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.classbin4428 -> 4472 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.classbin928 -> 941 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.classbin1106 -> 1119 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.classbin1111 -> 1124 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.classbin994 -> 1007 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.classbin1056 -> 1069 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.classbin926 -> 939 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.classbin1051 -> 1064 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.classbin1051 -> 1064 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.classbin960 -> 973 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.classbin10991 -> 10936 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.classbin4202 -> 4201 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.classbin1106 -> 1106 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.classbin1052 -> 1052 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.classbin721 -> 721 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.classbin5476 -> 5476 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.classbin2719 -> 2719 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.classbin30611 -> 30611 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.classbin971 -> 971 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.classbin900 -> 900 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.classbin971 -> 971 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.classbin971 -> 971 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.classbin971 -> 971 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.classbin1039 -> 1039 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.classbin972 -> 972 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.classbin1039 -> 1039 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.classbin900 -> 900 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.classbin960 -> 960 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.classbin960 -> 960 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.classbin6058 -> 6058 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.classbin1084 -> 1084 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.classbin969 -> 969 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.classbin983 -> 983 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.classbin5921 -> 5921 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.classbin1136 -> 1136 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.classbin1082 -> 1082 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.classbin2391 -> 2391 bytes
-rw-r--r--libjava/classpath/tools/com/sun/tools/javac/Main.java5
-rw-r--r--libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties225
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java1
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java152
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java6
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/jar/Main.java8
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java7
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java16
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/Main.java12
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java7
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java6
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java1
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java2
-rw-r--r--libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties (renamed from libjava/classpath/resource/com/sun/tools/javac/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/jar/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/keytool/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties)4
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav (renamed from libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/serialver/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties (renamed from libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties)0
-rw-r--r--libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties (renamed from libjava/classpath/resource/sun/rmi/rmic/messages.properties)0
-rw-r--r--libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java1
-rw-r--r--libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java57
-rw-r--r--libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java1
-rw-r--r--libjava/classpath/vm/reference/java/io/VMFile.java19
-rw-r--r--libjava/classpath/vm/reference/java/lang/VMClass.java25
-rw-r--r--libjava/classpath/vm/reference/java/lang/VMDouble.java16
-rw-r--r--libjava/classpath/vm/reference/java/lang/VMFloat.java15
-rw-r--r--libjava/classpath/vm/reference/java/lang/reflect/Constructor.java24
-rw-r--r--libjava/classpath/vm/reference/java/lang/reflect/Method.java24
-rw-r--r--libjava/classpath/vm/reference/java/security/VMSecureRandom.java5
-rwxr-xr-xlibjava/configure67
-rw-r--r--libjava/configure.ac3
-rw-r--r--libjava/gcj/javaprims.h9
-rw-r--r--libjava/gnu/classpath/jdwp/VMVirtualMachine.java1
-rw-r--r--libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h33
-rw-r--r--libjava/gnu/java/awt/font/GNUGlyphVector.h1
-rw-r--r--libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h61
-rw-r--r--libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h73
-rw-r--r--libjava/gnu/java/awt/font/OpenTypeFontPeer.h96
-rw-r--r--libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h61
-rw-r--r--libjava/gnu/java/awt/image/AsyncImage.h72
-rw-r--r--libjava/gnu/java/awt/image/ImageConverter.h82
-rw-r--r--libjava/gnu/java/awt/java2d/AbstractGraphics2D.h12
-rw-r--r--libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h42
-rw-r--r--libjava/gnu/java/awt/java2d/PixelCoverage.h45
-rw-r--r--libjava/gnu/java/awt/java2d/ScanlineConverter.h6
-rw-r--r--libjava/gnu/java/awt/java2d/ShapeWrapper.h63
-rw-r--r--libjava/gnu/java/awt/java2d/TextCacheKey.h57
-rw-r--r--libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h2
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h2
-rw-r--r--libjava/gnu/java/lang/management/BeanImpl.h6
-rw-r--r--libjava/gnu/java/nio/charset/ByteCharset$1.h42
-rw-r--r--libjava/gnu/java/nio/charset/ByteCharset$2.h42
-rw-r--r--libjava/gnu/java/nio/charset/ByteCharset$Decoder.h4
-rw-r--r--libjava/gnu/java/nio/charset/ByteCharset$Encoder.h4
-rw-r--r--libjava/gnu/java/nio/charset/ByteCharset.h2
-rw-r--r--libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h56
-rw-r--r--libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h56
-rw-r--r--libjava/gnu/java/nio/charset/ISO_8859_1$1.h39
-rw-r--r--libjava/gnu/java/nio/charset/ISO_8859_1$2.h39
-rw-r--r--libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h3
-rw-r--r--libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h3
-rw-r--r--libjava/gnu/java/nio/charset/Provider$1.h2
-rw-r--r--libjava/gnu/java/nio/charset/US_ASCII$1.h39
-rw-r--r--libjava/gnu/java/nio/charset/US_ASCII$2.h39
-rw-r--r--libjava/gnu/java/nio/charset/US_ASCII$Decoder.h3
-rw-r--r--libjava/gnu/java/nio/charset/US_ASCII$Encoder.h3
-rw-r--r--libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h2
-rw-r--r--libjava/gnu/java/util/LRUCache.h37
-rw-r--r--libjava/gnu/java/util/regex/REException.h1
-rw-r--r--libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h39
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h4
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h3
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h8
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h56
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h51
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h13
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h10
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h47
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h52
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h47
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h7
-rw-r--r--libjava/gnu/xml/stream/AttributeImpl.h6
-rw-r--r--libjava/gnu/xml/stream/XMLParser.h1
-rw-r--r--libjava/java/awt/Desktop.h2
-rw-r--r--libjava/java/awt/Font.h1
-rw-r--r--libjava/java/awt/LightweightDispatcher.h2
-rw-r--r--libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h3
-rw-r--r--libjava/java/io/BufferedReader.h2
-rw-r--r--libjava/java/io/DataInputStream.h5
-rw-r--r--libjava/java/io/DataOutputStream.h9
-rw-r--r--libjava/java/io/PipedInputStream.h2
-rw-r--r--libjava/java/lang/Throwable.h2
-rw-r--r--libjava/java/lang/management/ThreadInfo.h3
-rw-r--r--libjava/java/net/URI.h2
-rw-r--r--libjava/java/security/VMSecureRandom.java5
-rw-r--r--libjava/java/text/CollationElementIterator.h3
-rw-r--r--libjava/java/util/concurrent/CopyOnWriteArrayList$1.h35
-rw-r--r--libjava/java/util/concurrent/CopyOnWriteArrayList$2.h30
-rw-r--r--libjava/java/util/concurrent/CopyOnWriteArrayList$3.h36
-rw-r--r--libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h20
-rw-r--r--libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h42
-rw-r--r--libjava/java/util/concurrent/CopyOnWriteArrayList.h20
-rw-r--r--libjava/javax/accessibility/AccessibleAction.h2
-rw-r--r--libjava/javax/accessibility/AccessibleAttributeSequence.h2
-rw-r--r--libjava/javax/accessibility/AccessibleRole.h1
-rw-r--r--libjava/javax/accessibility/AccessibleTextSequence.h2
-rw-r--r--libjava/javax/management/remote/NotificationResult.h45
-rw-r--r--libjava/javax/management/remote/TargetedNotification.h41
-rw-r--r--libjava/javax/management/remote/rmi/RMIConnection.h82
-rw-r--r--libjava/javax/management/remote/rmi/RMIServer.h37
-rw-r--r--libjava/javax/swing/plaf/basic/BasicTreeUI.h1
-rw-r--r--libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h1
-rw-r--r--libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h6
-rw-r--r--libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h4
-rw-r--r--libjava/javax/swing/tree/DefaultTreeCellEditor.h3
-rw-r--r--libjava/javax/tools/Diagnostic$Kind.h41
-rw-r--r--libjava/javax/tools/Diagnostic.h39
-rw-r--r--libjava/javax/tools/DiagnosticListener.h30
-rw-r--r--libjava/javax/tools/FileObject.h44
-rw-r--r--libjava/javax/xml/stream/events/Attribute.h2
-rw-r--r--libjava/jni.cc11
-rw-r--r--libjava/sources.am93
1429 files changed, 32590 insertions, 17872 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 9f09b86..d10991d 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 0000000..41b7a10d
--- /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 ec33ea7..c42c692 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 5369251..096db24 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 4efc086..be17176 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 3b0c3c3..10a167c 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 0000000..821ff98
--- /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 7dc67d2..010aad3 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 23e5f25..d3c5b40 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 4434026..fec369b 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 05898b4..73e52f3 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 c46be60..0a9e462 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 cb93e25..036bd08 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 be4d5cb..2639d47 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 2b03b48..c7607c7 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 b91a4bc..63bfff0 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 6a10d6c..966fcbd 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 96db95d..a14d2c1 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 04701da..e5f9736 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 f29a519..7c1b244 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 b63b31f..76b35c5 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 5166cbe..0412d33 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 ee2b8f5..829b0e4 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 8381828..0b2d78c 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 ff2c406..d2b264d 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 8d619e1..56b3c45 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 e5e0a0e..fa7082c 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 652ee53..155ad17 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 2ac03a8..83f422c 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 ccf792d..eac1c9a 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 6ad13a9..adf4d25 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 9d3b7ce..aea8cd4 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 6d35918..a0b51f0 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 ad82345..381dca4 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 113a4f2..b4e8d98 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 2476ed7..1836c30 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 0000000..5c44c9a
--- /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 28dce1c..b338e43 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 d4a97b3..9f8e3e7 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 145a286..e230547 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 47ead11..62098ab 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 8695dfa..8fbbc00 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 d8abb93..6e771b0 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 38577db..afdb5b4 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 f1e1dd6..119db04 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 8491154..e601399 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 866ec2c..f582c31 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 7b4d5ec..7f3e3ab 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 0c18daf..273ecea 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 02cfa08..a439b65 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 28f1c56..67a69b8 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 774c928..929dc72 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 fc1e513..51ad836 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 53ef2dd..655dbe3 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 c96cbed..63fe117 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 825cd0a..dc056ad 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 ef5aed6..3cd8efe 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 8fc8697..6f84da8 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 9f4de0d..40f3737 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 ab565db..81412e0 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 0252838..cac2405 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 6e3650c..1158492 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 917e198..5e13aec 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 2b77de5..d8dcabf 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 4bb895b..e0ce16a 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 8eb43aa..a2c5a04 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 aa922b9..205ad8b 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 d717b9d..7109fdb 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 5937e76..939d692 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 a0f9993..572acbc 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 bfb5e3d..8fddc66 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 c345849..4ae50b1 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 70e787a..f8820bf 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 0dbca7cf..82e5209 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 7710306..28f4ecd 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 77b0ff4..115f4f8 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 a6f7aa5..c55405c 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 68584c3..592eb2c 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 5f0c0c9..06ddf8d 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 0b3338d..3ec2a79 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 c5fae63..af7f46e 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 0e6ac37..8ec2f54 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 daf996c..6c9728e 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/&lt;org.foo.SomeService&gt;</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 9f9dc51..51f5a2f 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 1303c09..1bb3399 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 d18f697..fd41271 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 49b3f0d..1a70b9c 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 c9b3298..cde3fc2 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 0000000..cb56c76
--- /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 1b68703..dcebc67 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 d78fbab..7bbc70c 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 99f90c9..7c04e7d 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 2f73dce..22f331e 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 ab3861b..2d898a4 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 0000000..935601a
--- /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 0000000..f607b34
--- /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 15ec90d..36ba0f4 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 0000000..c83ad1f
--- /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 2693a0b..cc4bbef 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 6db7fb0..deb603b 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 0000000..f4e77f4
--- /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 0000000..0a60c62
--- /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 676bd89..30dd89b 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 db8acd1..fcd3f6a 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 b45a79f..6c8a30d 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 4ce20a3..bfa3bc9 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 95a806a..403671c 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 d06af84..980866c 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 e52bf05..dbf4a20 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 7ef4645..9ce0b96 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 f658c17..4b8fc12 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 4278a45..87dbd5e 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 e40a04e..0ee61df 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 dc9c715..486304e 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 5dc4b2e..9744c3a 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 ad5cd5e..b5858f9 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 7457c38..87324c7 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 a8e3cb0..03d6388 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 bd9dcd7..0033efb 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 2c438a1..5be82f6 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 29a689d..28dc5f3 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 6d32448..0000000
--- 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 d376619..7f98435 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 0000000..0a96a61
--- /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 74e47bc..7424dc6 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 73e780c..9512966 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 11a9c96..85f72a4 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 65383a6..8ec8d57 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 0818632..c1724aa 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 10d1e968..f9184ed 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 8043c5b..cf40f4d 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 4e052a1..01894e5 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 b606a2e..812906b 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 e54c56d..96231e1 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 ab529ef..7ad70cd 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 59e79a5..a651e35 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 842e5bd..78c1718 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 4fefd16..f3aabbd 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 06a779f..90e3b7a 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 268ee0a..ea8c863 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 4191240..d4a374b 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 2f93c50..11b37ca 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 060a3a8..87574e4 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 1e8e090..0128661 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 1c563ac..9564592 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 31a96ed..7557e28 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 e202548..043c804 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 0000000..33dfa02
--- /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 0000000..5f703b1
--- /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 9733a76..44e1eba 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 d608357..e38a482 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 548da21..2187987 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 4d3f1c3..f2fba43 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 9122105..48d4fb3 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 a859530..c550944 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 fbec999..141e891 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 78f8dbd..b517b03 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 e3c7f46..58a3964 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 6e17ea2..cf5210d 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 ccd74fa..f661180 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 97812a6..0385023 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 f136f43..028235d 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 a1332a7..c723e80 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 ca69589..103bca7 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 f5e0529..0632b37 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 d81755c..f6e52c4 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 be7b4afe..479b6e5 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 5582895..19a538d 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 c10eef3..3bbd42f 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 973fe1c..df2265a 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 2de96df..dbe2b4db 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 6e71871..567379e 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 96dc467..ca06227 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 ad20872..70496ce 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 5600e79..dc7a9be 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 9262a60..195f160 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 96fb0f4..b58030f 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 28be34c..83fb5a2 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 c670656..20eb8b1 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 b16e53f..f7cf81a 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 5496db2..ce08543 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 f71ac51..3bb19f5 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 f152f6b..b1984e5 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 84102d5..ad2f1c8 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 07624d5..6d15228 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 7918e02..a8eb703 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 b413caf..72738a2 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 d1779a4..e05e940 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 869de19..9878efd 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 498b9e6..daed756 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 68ea27b..b623ee3 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 b56e5a9..d3b71a6 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 8888416..b09c43e 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 9d7ab8e..f8fc90a 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 bf3227e..51f289e 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 9391c87..03d1580 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 02150b4..9e5b1f7 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 7cdad3c..9025421 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 b706d19..61787d1 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 6924420..cf88c21 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 2f95d64..2d281d9 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 7d653b4..63ef37f 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 9cc57b2..9f2b370 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 82f0ff6..4d5e1b0 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 75f4f12..65a13f9 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 8549192..2cb2183 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 7277599..65dc580 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 8cfc8f5..ae3e6ef 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 0000000..784a442
--- /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 09ff74b..421640f 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 4104fbc..7a277ca 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 9affd4e..addc622 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 aec2758..0051f16 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 4f4d5e4..6a65437 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 673e448..a814d2c 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 702c93a..397b857 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 d653bbf..4aa1cd5 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 a11a8c0..ec0a310 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 d5799fd..d07bb34 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 3610ebe..0f2a3f2b 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 b684069..a2c06e2 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 9b958f9..35aed72 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 4ae909b..29a12f3 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 6b53810..8efbeea 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 20fc32c..652f59d 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 c0a30a7..b8441c4 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 cc0ca29..96e8f9c 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 af777d9..d9cacea 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 616854e..8e8d826 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 69191d4..4ede374 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 7d7a785..0502384 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 de79b93..ee8c779 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 3147415..3ce56ea 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 0c2c3cc..480f1c7 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 9beab47..8c05985 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 a878008..fdbf262 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 676a872..f08ec7f 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 f7483a9..860cc73 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 f7165a2..eaebebf 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 ea7439b..85769cf 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 52f6142..dd36f2b 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 13a3ef8..cf5ca60 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 6da0d06..228071a 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 ca62054..3c3f29a 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 e681593..f89acc1 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 5822afe..c542287 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 edc3ac2..2d21d9d 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 300012a..e30f042 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 86dcb49..6a40201 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 8c6cfad..d95e181 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 b9d0f95..20503d3 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 18aa8f5..8bdda93 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 1e4b173..85e3596 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 2094daf..f54dda5 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 dc77288..c3b7e5f 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 d7598be..54d6b87 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 7284b7d..8fb07ee 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 cd10e51..a6dce60 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 baf6173..740b124 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 71970d5..b9b6fe8 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 c9035df..ed5852e 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 b32db0f..aa42a4c 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 53b2155..b90caef 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 45ae4ff..761720f 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 0000000..0702ede
--- /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 0467c95..33be15c 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 2b41a11..84007ac 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 d1460e5..f561f71 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 d1a0262..f149ab3 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 2795b67..203eadc 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 210df3a..6e182a5 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 c615ddf..54469b3 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 c0d1e63..e99be32 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 &lt;br&gt;. 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 &lt;/table&gt;)
* 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 &lt;table&gt;)
* 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 &lt;br&gt;. 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 &lt;table&gt;)
* 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 0ffc6c8..80bb333 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 654acbb..43c0757 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 6fd79e2..0cb6d7a 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 37466ca..c0fd802 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 5aff5f8..3bca44c 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 577337a..c636200 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 2d329fd..c6d8c4c 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 b384e4a..d0e1a4f 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 da527b9..53f7f24 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 a14fb34..af2113f 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 501575e..f74aebd 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 7a5e204..0e3ed96 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 af4a6af..ab1f86e 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 86961fa..d5c4af1 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 666bffa..fb1e4c2 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 e1d7d6a..f694753 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 9f57d89..de2fccb 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 c1eee94..049575a 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 26bdda8..35323e7 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 73b2296..41562c3 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 e84b5ad..02c4693 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 5a72a28..2fc4c33 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 5a2d9ec..25e488a 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 08fe330..b895c44 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 e25d060..5d2d866 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 a81a56c..372e388 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 686e09d..8a92b15 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 59c7f25..e9d7c9f 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 6554f2f..1b84799 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 a2235f2..593c265 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 e066276..be6f0a0 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 606fd0e..054eb8a 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 2a68337..78e9f85 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 758bc94..4506407 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 ddf9140..ecf3ad3b 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 98a5fb7..a65133c 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 03066fb..9b7540a 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 8f53940..4920ca0 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 516898f..515d35a 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 e52b7ef..4330a30 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 f9fca11..d2ef88d 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 a24f92d..3ae95a2 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 ba7a1f5..8ef86c0 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 2df1246..160cb39 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 8e4b2cd..8b1c26c 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 95463229..ac3cda3 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 c23980c..468fbb0 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 6f30a3c..1664b1d 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 dc1ae7d..0a3b4dd 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 37654e4..6199933 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 9601e83..4aea5d6 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 e774713..1052aa5 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 87a161b..41423e8 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 b54412b..974c0d6 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 fc6a72a..05ffcde 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 d1b691e..40b84e9 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 f2b9ffe..8103a06 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 6d6e4b3..55891c8 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 340fcc3..f9e1341 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 63b881d..f100d3d 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 1a95d70d..243f508 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 0ea798b..3e65ea9 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 3a0d35c..805cfb5 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 8c9272c..bc62033 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 61a4641..4a053a1 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 3b71dde..bc01ffcb 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 e96544a..2aee51e 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 641e87e..6b0569b 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 7498a97..929e283 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 aae817f..3b1c68a 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 a8d2d25..f52469a 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 3970350..a96f0f4 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 6a29a43..5c3de33 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 d5f3005..b3b754a 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 260c2d7..faa6fbe 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 ad6eb39..c8d409d 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 43b55e8..57bac0d 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 c9a629a..1951212 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 eaf863a..73959ac 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 536a1d7..c9fb4a1 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 eaea630..0ba0cd0 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 7ac3320..f7fc739 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 d696a41..04e7cfb 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 b750649..b5a3c74 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 df12c03..74c86a8 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 2d8958e..aaee33d 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 ad67de4..ef639fa 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 79b3a8b..2d92f4c 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 631b85e..0fd19f2 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 db9e40c..8913a3b 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 515013b..f1e4736 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 ebc607ed..b07bc9c 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 79ab66c..3e87d6d 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 019c6cd..06f1824 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 13a9e81..f35a182 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 2384152..cc399b7 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 ece10bc..6707142 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 07477e3..b08ebf9 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 f4ed76f..e70fc1a 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 91c9b26..1447e9d 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 9f8d20e..6830565 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 2cb185e..f37cb3b 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 00e9708..0b95a62 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 79ee461..70d01b6 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 8fb5c27..a35627a 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 d831dae..af9412e 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 2ff22db..8f3d08e 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 17c2def..3c83349 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 d86e1c7..621c798 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 af882b6..dd0fa58 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 9fcbc6e..94a3b5d 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 fc29642..64eb5a5 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 3f35dad..747b5e0 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 ef3c3a4..a88320b 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 b1f1fcd..6e35095 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 0e43d1c..71747a9 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 4300011..4bcc222 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 acfdeaa..1504d35 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 dd02381..149de88 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 2088e55..bcb5131 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 495f010..b570b28 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 2544188..c708d75 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 06dd74d..f460d01 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 cc71b40..d63f049 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 8e3ed71..e16d8f6 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 e620539..33e84ee 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 30fae5f..7b1a122 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 6306a3e..6615efc 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 3cb0b77..5ae71c8 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 509a43c..2bb4122 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 0000000..15fd943
--- /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 0000000..93910a3
--- /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 0000000..dbf13b0
--- /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 6cd2288..be6bc75 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 7b8b61f..80332ab 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 1dc34a8..433d860 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 7b7e278..75d14b9 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 47ad152..66cffb5 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 245e556..3ad5c71 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 d55edba..b8a0159 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 860a2e9..319dac9 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 941a148..3a4d743 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 600a055..88fb95d 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 4682cc2..86184ad 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 2dc16cd..9803403 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 c4b17ff..5ae7969 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 ec9b85c..7827bca 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 a58922f..c8ce1bb 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 da49cb7..393ea5d 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 17215c0..7caef7b 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 f47338e..c375211 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 616e552..9abb1ff 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 4b0273d..2702176 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 42dce22..a17ee05 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 d131056..78fdd99 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 8f04dca..bafcbec 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 ed5df7f..79016be 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 b2a2c3b..7f381fc 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 2261781..6761424 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 1bc55cf..020cc30 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 a92b685..abf32a5 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 66f4735..21fc912 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 b53bda5..ff95094 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 270a14a..73699f8 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 0ce8b90..00810db 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 3214d38..abeaad1 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 8431e67..e1fc2fd 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 1c9be95..707edd6 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 4d4a951..a5897de 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 0fc4428..378e4eb 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 e7622f2..1e50040 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 9fea99b..325e3ac 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 8010464..227b8b1 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 d6892a6..4e6e6bd 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 0415c7b..d016fd3 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 04196bd..39bdb88 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 259cbf1..5216d34 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 1072cd6..e2efb3a 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 3973e52..fb37b4f 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 ad777e8..0ca8336 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 816c774..278bc84 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 00cab8a..f4430bf 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 8d5b01c..eb9a160 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 50c3811..d0d5598 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 41021db..d247c79 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 c819932..c2e09b6 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 849c5b0..df9db7d 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 44d5cec..491a2f5 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 c987946..78623cc 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 4c5c436..3a0d415 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 c777fec..3cd1423 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 d63e156..fb0950d 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 b3b0a42..2f6e0a9 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 08f6174..c4328e0 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 cde1735..6dc3627 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 318b274..5efbc8d 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 e944e15..ecadb14 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 12051d2..f2b6a1d 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 7618bb8..131cf3b 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 f354ff4..1c27f98 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 d57f5f8..7572af3 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 4849949..c52d15e 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 0eead3a..8cbc8ae 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 d2604b5..ad43498 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 6670c2d..435ff76 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 f34b4dd..cd11163 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 d7561a9..b012e60 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 37b2b64..6b2a651 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 b1894b3..303aed4 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 1f3ba73..8ebf32c 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 2636340..5ccceed 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 c0396d2..924cc66 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 2d747c8..9347ac3 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 d3df881..0aafe80 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 c716203..466d482 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 dc39ec2..72f31b5 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 62907ff..cbf5274 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 f0fbc90..08ac3976 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 746dd63..73e1a46 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 ecb4688..0b56acc 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 68d76fc..9fd6bfe 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 c47a14b..72f9e7f 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 884f5af..5b8856d 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 fee9f01..d64e36c 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 ef743f6..6c1e975 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 8d174d0..3fb75ff 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 d7aad72..ea681a1 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 d57df49..ad329b6 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 9cefd29..fa1c51e 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 6480527..7541bdf 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 4bf4db9..85e0e04 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 346f51c..e1db2a1 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 dacc384..2f11c50 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 556e470..924e005 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 664215d..304d9d7 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 f683f9a..6e17300 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 d3d2c1e..6b7b664 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 8139c6e..d83b816 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 0df8dec..ad55111 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 94c13a2..629701c 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 45c7914..08c5cb5 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 7febdeb..61732c1 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 ab71cec..5a595f5 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 4bffcaf..7ec18dc 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 f78fdcb..934fb42 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 2f58121..02a30a2 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 2b385b1..712296b 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 fd802fe..ae2010f 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 1ad128e..8646c19 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 12b705b..8213078 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 a8567463..07bd946 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 a0b32f3..03b9556 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 846ae7b..cd372f2 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 48c017f..6e4fb9a 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 &lt; 0
+ * || toIndex &gt; size()
+ * @throws IndexOutOfBoundsException if fromIndex &gt; 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 &lt; 0 || index &gt; 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 &lt; 0 || index &gt;= 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 &lt; 0 || index &gt;= 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 &lt; 0 || index &gt;= 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 &lt; 0 || index &gt; 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 &lt; 0 || index &gt;= 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 &lt; 0 || index &gt; 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 8effc28..980cfc6 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 01ef8f5..f7157c1 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 9b7afa0..893f043 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 a7cf05e..c2e0071 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 5ee50e5..de8edcb 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 07d7530..308016a 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 768c9cd..49161d7 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 a5396f1..c568b4f 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 88fa4c2..b400160 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 c7eed06..269493f 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 05b3a26..3faa3c9 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 b49e081..78d792c 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 78fad1a..444497d 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 2d52e46..37269f5 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 3051a81..170ea00 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 a2af6c3..4d1b5d5 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 da8a958..72aa5e8 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 2c8dfbd..1ee0e71 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 59d9ec2..7eba6ec 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 4ea21cd..1fb5150 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 3748384..bd59c68 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 42f8062..e6cf526 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 0000000..3543eec
--- /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 (&gt;, &lt;)) 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 0000000..c0b2d9b
--- /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 0000000..c383c91
--- /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 0000000..f1d469f
--- /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 0000000..38fb544
--- /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 0000000..d862372
--- /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 7d68162..c02cb9e 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 997dcbc..503c06c 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 be3f156..f2fa100 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 c58dd53..3e77e18 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 2849707..f376bed 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 cfd3d7b..04b6f63 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 cacb9258..79d740e 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 c4213ef..acc44aa 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 5bb6b11..db2ea6b 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 1fed582..3a4c6ce 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 0ae23f1..e54d453 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 332ec74..c0365bc 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 7733714..bb88ebf 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 2e5963f..2766974 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 de82bd47..b1fb727 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 e1f8e4b..4b6e2f7 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 4c27068..e73c39b 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 ae99259..045740d 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 3952ea1..1c28a5f 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 a55dc09..8678f68 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 a9bbe9a..7fecefe 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 e4e7201..717ea98 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 4ed8aa2..341579e 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 1e418d2..6bc2a38 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 fb4ac65..f2795e2 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 d42951a..acb2c04 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 619c24e..637ece1 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 ae3c184..09b50fe 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 cf294c7..1d59df2 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
* &lt;!ENTITY % .. &gt; tag.</p>
diff --git a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
index 9f587946..a1afe78 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 4c10bfe..0489798 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 3766485..b9c8401 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 3d9c677..2bb0d00 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 dff9298..488809e 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 8c70c13..50e8e5c 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 91fc88f..55282ab 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 b9e6de6..1f47d51 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 0000000..67776e6
--- /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 0000000..6a114f9
--- /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 0000000..56ecaba
--- /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 14f5074..06f465c 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 edc6678..18dee79 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 ee47af2..cb850ba 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 4dfd120..f88451e 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 cf47113..6e6d027 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 926c94a..74ddaf8 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 bbd8a96..d0f2304 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
index 89e1b94..88eef1a 100644
--- a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
+++ b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class b/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class
index 85adfcd..ec399198 100644
--- a/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class
+++ b/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
index c6cfcd24..1935411 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class b/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class
index ede296b..0b886ec 100644
--- a/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class
+++ b/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class b/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class
index a2b4288..b78d6f4 100644
--- a/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class
+++ b/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class
index 56c73a6..48c6b33 100644
--- a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class
+++ b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class
index 5e7f599..6bfc3e3 100644
--- a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class
+++ b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class b/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class
index af7cb10..3b05758 100644
--- a/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class
+++ b/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class b/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class
index 88201b7..bbb7452 100644
--- a/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class
+++ b/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class b/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class
index b6eda9e..222baca 100644
--- a/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class
+++ b/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/IorDelegate.class b/libjava/classpath/lib/gnu/CORBA/IorDelegate.class
index f7c29ad..64d75d7 100644
--- a/libjava/classpath/lib/gnu/CORBA/IorDelegate.class
+++ b/libjava/classpath/lib/gnu/CORBA/IorDelegate.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
index d778d55..220af43 100644
--- a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
+++ b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class b/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class
index b8b674a..dfd5c64 100644
--- a/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class
+++ b/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class
index 8881d5d..7fd549f 100644
--- a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class
+++ b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class b/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class
index bc81306..55ce01d 100644
--- a/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class
+++ b/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/gnuContextList.class b/libjava/classpath/lib/gnu/CORBA/gnuContextList.class
index 11d150d..ed97df7 100644
--- a/libjava/classpath/lib/gnu/CORBA/gnuContextList.class
+++ b/libjava/classpath/lib/gnu/CORBA/gnuContextList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class b/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class
index 4afd416..614d005 100644
--- a/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class
+++ b/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class
index 24fd691..f787e7b 100644
--- a/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class
+++ b/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class
index c40b180..873e8ab 100644
--- a/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class
+++ b/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/gnuRequest.class b/libjava/classpath/lib/gnu/CORBA/gnuRequest.class
index 3333011..61633c2 100644
--- a/libjava/classpath/lib/gnu/CORBA/gnuRequest.class
+++ b/libjava/classpath/lib/gnu/CORBA/gnuRequest.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class b/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class
index 01dff2d..5ba2c0d 100644
--- a/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class
+++ b/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/ServiceFactory.class b/libjava/classpath/lib/gnu/classpath/ServiceFactory.class
index 96ba626..77f1268 100644
--- a/libjava/classpath/lib/gnu/classpath/ServiceFactory.class
+++ b/libjava/classpath/lib/gnu/classpath/ServiceFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class b/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class
index 3d16808..4aed261 100644
--- a/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class
+++ b/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class b/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class
index c3bedb7..abc3f67 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class
index 3ce2f59..0f02270 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class
index 00c9920..a50d370 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class
index 093ff57..c26126f 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class
index 4783f59..0190c6a 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class b/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class
new file mode 100644
index 0000000..ba1685c
--- /dev/null
+++ b/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class b/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class
index 4ddeff9..a223795 100644
--- a/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class
+++ b/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class b/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class
index 39357c5..08a5296 100644
--- a/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class
+++ b/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class b/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class
index 9f70d72..a33239c 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
new file mode 100644
index 0000000..0ea8a6a
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
new file mode 100644
index 0000000..982715f
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
new file mode 100644
index 0000000..9162dad
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class
new file mode 100644
index 0000000..8539c77
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class
new file mode 100644
index 0000000..ad1c0c2
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class b/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class
new file mode 100644
index 0000000..208d59b
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
index cbbf6fd..ff4c6e4 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class
new file mode 100644
index 0000000..3305bc5
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class
new file mode 100644
index 0000000..1bba56f
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
index d4615e8..e3b450e 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class
new file mode 100644
index 0000000..9e67e6b
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class b/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class
new file mode 100644
index 0000000..f966155
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
index 6436a44..e8b5062 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
index 49ee405..9fcc243 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class
index f02fab3..482c60a 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
index 0770325..9bde7ce 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
Binary files differ
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
index 2df0587..1dace9a 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
Binary files differ
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
index a20978b..e6495e9 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
index e4dfec5..839acb4 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
index 6e3a11a..d9feb6b 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
Binary files differ
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
index 5806dc2..f2590b2 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
Binary files differ
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
index a4105ea..fe6a391 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
Binary files differ
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
index 3eb57b1..6436b9a 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
Binary files differ
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
index 84223c8..7aa9b304 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
Binary files differ
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
index 53fcf3b..66d3f1f 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
index 118b4d8..e53fa21 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
Binary files differ
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
index a13f742..eb8c279 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
index 97fe84a..114b8f0 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
Binary files differ
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
index abf76c0..bc45490 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
index 45f9c47..12f5a70 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class
index a8334f6..3757265 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class
Binary files differ
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
index 8e9d884..c3d1948 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
index 15180e0..abdb577 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
index a348cf0..26550bb 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
index a5df713..13a8368 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
Binary files differ
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
index a290ef3..a6effe1 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
Binary files differ
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
index 7259ec2..8a026d8 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
index fce29a6..89d5c51 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
Binary files differ
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
index 6340030..3947159 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
Binary files differ
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
index 394a3ac..ea9d1cb 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
Binary files differ
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
index cb80579..4e14f30 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
index 643ba7a..5cf6ab8 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
Binary files differ
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
index db2bf26..db5d6e7 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
index 55eaafca..2335ea0 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class
index 3fd30fa..89ad94e 100644
--- a/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class
+++ b/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class b/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class
index 49bbe1c..e6d5525 100644
--- a/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class
+++ b/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/io/PlatformHelper.class b/libjava/classpath/lib/gnu/java/io/PlatformHelper.class
index 76e89f2ce..9146d21 100644
--- a/libjava/classpath/lib/gnu/java/io/PlatformHelper.class
+++ b/libjava/classpath/lib/gnu/java/io/PlatformHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class b/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class
index ff63fd0..1cbf3e0 100644
--- a/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class
+++ b/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
index 80aa4cf..f2eb333 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class b/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class
index b2fa5f2..88a6dd3 100644
--- a/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class
+++ b/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
index 8f82102..fac66ba 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class
new file mode 100644
index 0000000..e98e106
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class
new file mode 100644
index 0000000..00d0f21
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class
index 1662109..37c4147 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class
index fed5aaf..4c467cb 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class
index abbfcc2..522e716 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
new file mode 100644
index 0000000..27a0d83
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
new file mode 100644
index 0000000..654da73
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class
index 85f73b4..8c7cfa8 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class
index 6799af3..6801365 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class
index 3dc1a64..5d34ce8 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class
index d571c10..0f6ad74 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class
index 7196ca2..dc3fadd 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class
index 8373403..523a82b 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class
index 17c1793..9048093 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class
index a214f8e..cd7c284 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class
index 8553e8d..666e2cf 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class
index 634255c..462c553 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class
index ef5df44..7d89f44 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class
index 0e03ff4..cce7044 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class
index c982051..fed1457 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class
index cb82993..7f64054 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class
index 16ca0f4..37568f0 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class
index 4b69254..d3e42d9 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class b/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class
index 24ab44c..e1e2150 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class
index 4e81021..9464535 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class
Binary files differ
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
new file mode 100644
index 0000000..1d7d769
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class
Binary files differ
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
new file mode 100644
index 0000000..a03951c
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class
Binary files differ
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
index 64e6768..10d63f4 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
Binary files differ
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
index 6fe1305..5a57010 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
Binary files differ
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
index 28c62ca..04d0a37 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
Binary files differ
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
index cc21df4..3c69187 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
Binary files differ
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
index 89bf8bf..51ba54e 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
Binary files differ
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
index 71744a0..f52316d 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
Binary files differ
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
index 807b45e..8c59314 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
Binary files differ
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
index e4fe018..051cc3d 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
Binary files differ
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
index 7060182..ec1f56a 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
Binary files differ
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
index 4e7ed95..be1564f 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
Binary files differ
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
index 11c9523..cc4e0f1 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
Binary files differ
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
index 58f8954..1b2892e 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
Binary files differ
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
index 8c9a6fa..d306a5a 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class b/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class
index 32beb9e..557d8a3 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MS874.class b/libjava/classpath/lib/gnu/java/nio/charset/MS874.class
index 20728d0..cccdca5 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MS874.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MS874.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class
index 53a16c2..be90e5a 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class
index 531b25f..5905431 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class b/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class
index 1581808..846a789 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class b/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class
index fe35fe8..52e6f45 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class b/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class
index 3e88fad3..d586c55 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class b/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class
index 5d72231..767c707 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class b/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class
index 9185ccc..b9d4953 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class b/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class
index ff7cd8a..9749b39 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class b/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class
index 16996e6..ec1b6ae 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class b/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class
index 92a895a..fdcebea 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class b/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class
index 1772507..4eb0780 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class b/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class
index ecc9fd0..8fea10f 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Provider.class b/libjava/classpath/lib/gnu/java/nio/charset/Provider.class
index 52cd4e4..4324dce 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Provider.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Provider.class
Binary files differ
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
new file mode 100644
index 0000000..646f96e
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class
Binary files differ
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
new file mode 100644
index 0000000..25ff411
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class
Binary files differ
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
index afa2964..cae4a18 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
Binary files differ
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
index 6b770a2..c95cd11 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class
index 7e33ad7..1831af9 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class
index 3cf9112..a69a3a9 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class
index 55fdf44..49f321d 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class
index 8885cd8..10659ed 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class
index 522f9c3..7357b7c 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class
index a254778..06c622e 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class
index 2326a62..6991f6d 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class
index 132aee7..87483fe 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class
index 9b2c693..6226c8a 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class b/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class
index dff7817..225c5d3 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class
index 1f187b7..8acb0f8 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
index 39323eb..f453e31 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
index fef7f67..96787de 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
index c39da5c..ca9e129 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class
index 88a6fde..6cb48a6 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/LRUCache.class b/libjava/classpath/lib/gnu/java/util/LRUCache.class
new file mode 100644
index 0000000..97b6468
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/util/LRUCache.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
index da1645d..f84e8b7 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
index 4dd3fd6..c4f0720 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
index 8d2299f..8e92613 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
index b9be634..b0cbde2 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
index e7e5fac..25f1aaf 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE.class b/libjava/classpath/lib/gnu/java/util/regex/RE.class
index 9092caa..ff81c59 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/REException.class b/libjava/classpath/lib/gnu/java/util/regex/REException.class
index 03dd2fa..46de3c9 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/REException.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/REException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
index 45223b2..6426e92 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
index 64eefa6..e974731 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
new file mode 100644
index 0000000..a23e960
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
index 828a02e..86b3605 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
index 8b63c0b..b54a750 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
index b288615..00fe6e6 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
index 1c7997b..9aa8ae4 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
index 6232c7e..317420b 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class b/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class
index 777d436..942f48b 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class
index 2f65103..1031c65 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class
index fe37303..93e697b 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class
index 5d11e33..d0ef1d1 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class
index 0ae6fd9..0750049 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class
index 4dc722d..2a3a8df 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class
index e5bd013..77412e3 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class
index 6712c7e..8d97bb3 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class
index 85f16e0..f1b9d61 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class b/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class
index a806c42..6769f18 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
index 66a0933..0ef1b5c 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
index 13e6231..6081214 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
index 99d0cdc..86f3ef0 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server.class b/libjava/classpath/lib/gnu/javax/management/Server.class
index 060f707..c31cffe 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Translator.class b/libjava/classpath/lib/gnu/javax/management/Translator.class
index ea04b30..4572fa4 100644
--- a/libjava/classpath/lib/gnu/javax/management/Translator.class
+++ b/libjava/classpath/lib/gnu/javax/management/Translator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class b/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class
index 5c39971..0af8b13 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class b/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class
index 50b76a7..63a4101 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class
index 3013049..9898f9f 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class
Binary files differ
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
index 615693f..9c36431 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
Binary files differ
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
index f4930c7..2bc032c 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
Binary files differ
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
index c614ed58..8e97f40 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
Binary files differ
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
index ae8f45e..229d230 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
Binary files differ
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
index cdd388d..6085682 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
Binary files differ
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
index 5f1a5ab..20ddf29 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class
index e828c1d..1e344fc 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class
index 43c99e0..166fbb7 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class
Binary files differ
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
index 776eb4a..71975e7 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class
index b4d148a..2db5c71 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class
index 381d866..018d1d5 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class
Binary files differ
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
index 06559fc..c22cae5 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class
index 85412ab..fe1bac8 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class
index ff278f3..fc39498 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class
index c364228..a2b35ee 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class
index e194365..356d6c4 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class
index dca9cec..4d4b030 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class
Binary files differ
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
index 94c704b..fb89fc3 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class
index 5a6957b..b6d10a3 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class
Binary files differ
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
index d8f64b2..7a0d9d4 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
Binary files differ
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
index d938211..eae778e 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class
index 0b4f9d6..f6ee27e 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class
index 31d3f3d..99fb8bd 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class
Binary files differ
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
index bdf9a8f..99584f8 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class
index acfa963..e73c210 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class
index 22ce76a..d7dc0c3 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class
Binary files differ
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
index ce63025..168a4cc 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
Binary files differ
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
index 496741b..7da01ce 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
Binary files differ
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
index c197231..ebe5d3a 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class
index 63ae2b0..de8b26d 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class
index c3c2546..68afc6b 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class
Binary files differ
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
index ce7c385..e644162 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class
index 5a45271..2745b23 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/security/auth/Password.class b/libjava/classpath/lib/gnu/javax/security/auth/Password.class
index df75b3a..b7882b4 100644
--- a/libjava/classpath/lib/gnu/javax/security/auth/Password.class
+++ b/libjava/classpath/lib/gnu/javax/security/auth/Password.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
index 3eae4f2..bb6f983 100644
--- a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
+++ b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
index 1b2798c..eb21af3 100644
--- a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
+++ b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
Binary files differ
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
index aff7264..098f70c 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
Binary files differ
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
index 0ea0abe..98308e6 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class
index f074048..dec2b5f 100644
--- a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class
+++ b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class
index 1982f16..963cacc 100644
--- a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class
+++ b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class
Binary files differ
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
index 7162632..85614a0 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
Binary files differ
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
index 2358516..ef18f64 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class
index aa0b71e..96a83ff 100644
--- a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class
Binary files differ
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
index 2921e8f..9bf51ef 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class
index 5fedce0..4c2a29e 100644
--- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class
Binary files differ
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
index ee09fb9..fc3c438 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
Binary files differ
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
index 3adbce4..7ced67c 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
Binary files differ
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
index 337c118..5d7c6b6 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
Binary files differ
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
new file mode 100644
index 0000000..213fa61
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class
Binary files differ
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
deleted file mode 100644
index 0facc0d..0000000
--- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class
+++ /dev/null
Binary files differ
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
index a03af06..dc5fa8e 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
Binary files differ
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
index b3843f0..e7c28a4 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
Binary files differ
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
new file mode 100644
index 0000000..51a64f6
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class
Binary files differ
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
new file mode 100644
index 0000000..7f197f8
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class
Binary files differ
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
index 775dd74..460bab8 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
Binary files differ
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
index 627ba8d..a355696 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
Binary files differ
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
index a847e5c8..bbb0027 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
Binary files differ
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
index fb5de5c..0b380a0 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
Binary files differ
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
index 3847b7a..6de4c83 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
Binary files differ
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
index d7f2532..6202414 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
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class
index 8bb85a3..97aee73 100644
--- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class
+++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class
index 9fbede0..e9372cd 100644
--- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class
+++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class
index 75be293..b694987 100644
--- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class
+++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class
index 65a9cb9..1a695b6 100644
--- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class
+++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class
index 7347af6..730b656 100644
--- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class
+++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class
index 56a21d2..ca02bdd 100644
--- a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class
+++ b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class
index 93e0e4c..b7eda30 100644
--- a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class
+++ b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class
index c1438b3..507a7fa 100644
--- a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class
+++ b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class
index 340066c..6345164 100644
--- a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class
+++ b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
index d8006e3..3289a59 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class b/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class
index ada998d..b0997cf 100644
--- a/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class
+++ b/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class b/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class
index b3ebe45..af6574f 100644
--- a/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class b/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class
index d017cf6..82f8d70 100644
--- a/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/SAXParser.class b/libjava/classpath/lib/gnu/xml/stream/SAXParser.class
index e3f889d..4b92ca0 100644
--- a/libjava/classpath/lib/gnu/xml/stream/SAXParser.class
+++ b/libjava/classpath/lib/gnu/xml/stream/SAXParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class b/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class
index afd44e4..24ba028 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class
index 1a19a8f..e569c9c 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class
index b633668..cbb14e6c 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
index 187ee4f..5d989ed 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
index 517fa69..af7afc8 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
index 099ec4a..21af868 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
index af7ce24..7ea4289 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
index f5f1f53..15ca13c 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
index c528918..b9a9d7d 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
index 9b457cb..277d096 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
index b3c4eed..756e311 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
index 6a3ba1e..1beaf13 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
index dcb88dd..8921d02 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
index 7fb33b0..0081e42 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
index 70cd47e..d361464 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
index 331704e..88a6803 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
index e0c7d8f..406c9d5 100644
--- a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
+++ b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
index 9f58517..b7f401df 100644
--- a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
+++ b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class
index 65a8ec9..b71544e 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class
index 321f897..57e6484 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class
index ea1d9f4..02dfc56 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class
index 371fe61..16eca5e 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class
index 39741ba..13ffbc2 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class
index 9ff9248..7cdc9e0 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class
index bea3e1e..8768a42 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class
index 7151477..a289c64 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class
index 35cf941..544ea97 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class b/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class
index 637eb4f..7ca2c8e 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class
index 6c9ee2a..d764944 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class b/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class
index 97dc263..00392fe 100644
--- a/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class
+++ b/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class
index e3294ea..75e70c9 100644
--- a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class
+++ b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class
index 04a824b..f2cae8e 100644
--- a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class
+++ b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class
index a5c892c..39be826 100644
--- a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class
+++ b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
index 8be1bbc..99015763 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
index 1fe427d..5463ec7 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
index eb13d82..def7756 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
index ae12af8..210ac23 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
index 563f40d..cf416f5 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
index 61bb72c..39660d0 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
index 345c33c..321c568 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
index c1d94e2..3305a4a 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
index 1ac22ce..a02bc9a 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
index 66abc5a..c1144a3 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class
index 11453366..03bbb2d 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
index b504a9a..ec9063d 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class b/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class
index 7351b46..6093a79 100644
--- a/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class
+++ b/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/AWTKeyStroke.class b/libjava/classpath/lib/java/awt/AWTKeyStroke.class
index ac0f424..4bafede 100644
--- a/libjava/classpath/lib/java/awt/AWTKeyStroke.class
+++ b/libjava/classpath/lib/java/awt/AWTKeyStroke.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container.class b/libjava/classpath/lib/java/awt/Container.class
index f6b029e..73f5565 100644
--- a/libjava/classpath/lib/java/awt/Container.class
+++ b/libjava/classpath/lib/java/awt/Container.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Desktop.class b/libjava/classpath/lib/java/awt/Desktop.class
index 5807129..9046564 100644
--- a/libjava/classpath/lib/java/awt/Desktop.class
+++ b/libjava/classpath/lib/java/awt/Desktop.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Font.class b/libjava/classpath/lib/java/awt/Font.class
index d0df448..0e99b08 100644
--- a/libjava/classpath/lib/java/awt/Font.class
+++ b/libjava/classpath/lib/java/awt/Font.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/GridBagLayout.class b/libjava/classpath/lib/java/awt/GridBagLayout.class
index 2c406eb..db8fc23 100644
--- a/libjava/classpath/lib/java/awt/GridBagLayout.class
+++ b/libjava/classpath/lib/java/awt/GridBagLayout.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/LightweightDispatcher.class b/libjava/classpath/lib/java/awt/LightweightDispatcher.class
index f8377f8d..cb3d955 100644
--- a/libjava/classpath/lib/java/awt/LightweightDispatcher.class
+++ b/libjava/classpath/lib/java/awt/LightweightDispatcher.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/MenuShortcut.class b/libjava/classpath/lib/java/awt/MenuShortcut.class
index 44cbb58..554a1b5 100644
--- a/libjava/classpath/lib/java/awt/MenuShortcut.class
+++ b/libjava/classpath/lib/java/awt/MenuShortcut.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/color/ICC_Profile.class b/libjava/classpath/lib/java/awt/color/ICC_Profile.class
index 6e698a6..e142ab3 100644
--- a/libjava/classpath/lib/java/awt/color/ICC_Profile.class
+++ b/libjava/classpath/lib/java/awt/color/ICC_Profile.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/MouseEvent.class b/libjava/classpath/lib/java/awt/event/MouseEvent.class
index 0a7888a..2f6cffe 100644
--- a/libjava/classpath/lib/java/awt/event/MouseEvent.class
+++ b/libjava/classpath/lib/java/awt/event/MouseEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class b/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class
index 5219b78..db61c47 100644
--- a/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class
+++ b/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/font/TextMeasurer.class b/libjava/classpath/lib/java/awt/font/TextMeasurer.class
index dbbb2a3..7461653 100644
--- a/libjava/classpath/lib/java/awt/font/TextMeasurer.class
+++ b/libjava/classpath/lib/java/awt/font/TextMeasurer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/im/InputContext.class b/libjava/classpath/lib/java/awt/im/InputContext.class
index a954db3..591ced2 100644
--- a/libjava/classpath/lib/java/awt/im/InputContext.class
+++ b/libjava/classpath/lib/java/awt/im/InputContext.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
index 5654d42..5d5a3c8 100644
--- a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
+++ b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage.class b/libjava/classpath/lib/java/awt/image/BufferedImage.class
index d4eab3b5..dc90bfc 100644
--- a/libjava/classpath/lib/java/awt/image/BufferedImage.class
+++ b/libjava/classpath/lib/java/awt/image/BufferedImage.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class b/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class
index 9f456ec..6e2c449 100644
--- a/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class
+++ b/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/RGBImageFilter.class b/libjava/classpath/lib/java/awt/image/RGBImageFilter.class
index c0573de..0338398 100644
--- a/libjava/classpath/lib/java/awt/image/RGBImageFilter.class
+++ b/libjava/classpath/lib/java/awt/image/RGBImageFilter.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/Raster.class b/libjava/classpath/lib/java/awt/image/Raster.class
index 054d9b3..bc95252 100644
--- a/libjava/classpath/lib/java/awt/image/Raster.class
+++ b/libjava/classpath/lib/java/awt/image/Raster.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class b/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class
index 6c13217..5c7c6f6 100644
--- a/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class
+++ b/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/EventHandler.class b/libjava/classpath/lib/java/beans/EventHandler.class
index 9e0c30b..7b763c6 100644
--- a/libjava/classpath/lib/java/beans/EventHandler.class
+++ b/libjava/classpath/lib/java/beans/EventHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/PropertyChangeSupport.class b/libjava/classpath/lib/java/beans/PropertyChangeSupport.class
index 699186f..d509bd1 100644
--- a/libjava/classpath/lib/java/beans/PropertyChangeSupport.class
+++ b/libjava/classpath/lib/java/beans/PropertyChangeSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/VetoableChangeSupport.class b/libjava/classpath/lib/java/beans/VetoableChangeSupport.class
index f48cabe..706614f 100644
--- a/libjava/classpath/lib/java/beans/VetoableChangeSupport.class
+++ b/libjava/classpath/lib/java/beans/VetoableChangeSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class
index dd6ff06..0a2c72c 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
index 53724e0..8e653bb 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
index 4881c94..a4b93fd 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
index 6fef7be..d9a621d 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
index 6ea592d..b8af638 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
index a973c82..5ecc39b 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
index eff8888..369f5f9 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/BufferedReader.class b/libjava/classpath/lib/java/io/BufferedReader.class
index efe3c2c..8189aac 100644
--- a/libjava/classpath/lib/java/io/BufferedReader.class
+++ b/libjava/classpath/lib/java/io/BufferedReader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/DataInputStream.class b/libjava/classpath/lib/java/io/DataInputStream.class
index 6730b4a..87ac5bd 100644
--- a/libjava/classpath/lib/java/io/DataInputStream.class
+++ b/libjava/classpath/lib/java/io/DataInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/DataOutputStream.class b/libjava/classpath/lib/java/io/DataOutputStream.class
index 228fbeb..b2f6720 100644
--- a/libjava/classpath/lib/java/io/DataOutputStream.class
+++ b/libjava/classpath/lib/java/io/DataOutputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$1.class b/libjava/classpath/lib/java/io/ObjectInputStream$1.class
index a871c05..e53b0d6 100644
--- a/libjava/classpath/lib/java/io/ObjectInputStream$1.class
+++ b/libjava/classpath/lib/java/io/ObjectInputStream$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$2.class b/libjava/classpath/lib/java/io/ObjectInputStream$2.class
index c854e07..45242b6 100644
--- a/libjava/classpath/lib/java/io/ObjectInputStream$2.class
+++ b/libjava/classpath/lib/java/io/ObjectInputStream$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class
index ae17235..0662f87 100644
--- a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class
+++ b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class
index a25dab6..a95eebd 100644
--- a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class
+++ b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectInputStream.class b/libjava/classpath/lib/java/io/ObjectInputStream.class
index 1840e3f..dcc37dd 100644
--- a/libjava/classpath/lib/java/io/ObjectInputStream.class
+++ b/libjava/classpath/lib/java/io/ObjectInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class
index e1c5ee9..2540338 100644
--- a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class
+++ b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class b/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class
index bd154ea..ebb5695 100644
--- a/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class
+++ b/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream.class b/libjava/classpath/lib/java/io/ObjectOutputStream.class
index 2b9d84e..5417d3d 100644
--- a/libjava/classpath/lib/java/io/ObjectOutputStream.class
+++ b/libjava/classpath/lib/java/io/ObjectOutputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass.class b/libjava/classpath/lib/java/io/ObjectStreamClass.class
index 9767f9f..f58e732 100644
--- a/libjava/classpath/lib/java/io/ObjectStreamClass.class
+++ b/libjava/classpath/lib/java/io/ObjectStreamClass.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/PipedInputStream.class b/libjava/classpath/lib/java/io/PipedInputStream.class
index b2c3204..02ab5f8 100644
--- a/libjava/classpath/lib/java/io/PipedInputStream.class
+++ b/libjava/classpath/lib/java/io/PipedInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Class$1.class b/libjava/classpath/lib/java/lang/Class$1.class
index 9c4806c..09e3e86 100644
--- a/libjava/classpath/lib/java/lang/Class$1.class
+++ b/libjava/classpath/lib/java/lang/Class$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Double.class b/libjava/classpath/lib/java/lang/Double.class
index d675754..8316ce2 100644
--- a/libjava/classpath/lib/java/lang/Double.class
+++ b/libjava/classpath/lib/java/lang/Double.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Float.class b/libjava/classpath/lib/java/lang/Float.class
index 7565a07..8a47f1e 100644
--- a/libjava/classpath/lib/java/lang/Float.class
+++ b/libjava/classpath/lib/java/lang/Float.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Integer.class b/libjava/classpath/lib/java/lang/Integer.class
index 291b0d0..c1d69f8 100644
--- a/libjava/classpath/lib/java/lang/Integer.class
+++ b/libjava/classpath/lib/java/lang/Integer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Long.class b/libjava/classpath/lib/java/lang/Long.class
index df9dc0c..3b8b904 100644
--- a/libjava/classpath/lib/java/lang/Long.class
+++ b/libjava/classpath/lib/java/lang/Long.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/StackTraceElement.class b/libjava/classpath/lib/java/lang/StackTraceElement.class
index 623d8d9..a135946 100644
--- a/libjava/classpath/lib/java/lang/StackTraceElement.class
+++ b/libjava/classpath/lib/java/lang/StackTraceElement.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Throwable.class b/libjava/classpath/lib/java/lang/Throwable.class
index 3f3b5ff..48ea036 100644
--- a/libjava/classpath/lib/java/lang/Throwable.class
+++ b/libjava/classpath/lib/java/lang/Throwable.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/management/ThreadInfo.class b/libjava/classpath/lib/java/lang/management/ThreadInfo.class
index 25e861f..9428277 100644
--- a/libjava/classpath/lib/java/lang/management/ThreadInfo.class
+++ b/libjava/classpath/lib/java/lang/management/ThreadInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
index 0c833b2..245c4e6 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
index b31ea76..97905c6 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
Binary files differ
diff --git a/libjava/classpath/lib/java/math/BigInteger.class b/libjava/classpath/lib/java/math/BigInteger.class
index 15a85be..01a604a 100644
--- a/libjava/classpath/lib/java/math/BigInteger.class
+++ b/libjava/classpath/lib/java/math/BigInteger.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/DatagramSocket.class b/libjava/classpath/lib/java/net/DatagramSocket.class
index d7e9440..cf367bc 100644
--- a/libjava/classpath/lib/java/net/DatagramSocket.class
+++ b/libjava/classpath/lib/java/net/DatagramSocket.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/ServerSocket.class b/libjava/classpath/lib/java/net/ServerSocket.class
index dd942a8..ec6df9f 100644
--- a/libjava/classpath/lib/java/net/ServerSocket.class
+++ b/libjava/classpath/lib/java/net/ServerSocket.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/Socket.class b/libjava/classpath/lib/java/net/Socket.class
index 75b3cd6..d008421 100644
--- a/libjava/classpath/lib/java/net/Socket.class
+++ b/libjava/classpath/lib/java/net/Socket.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URI.class b/libjava/classpath/lib/java/net/URI.class
index be72cf4..c44d223 100644
--- a/libjava/classpath/lib/java/net/URI.class
+++ b/libjava/classpath/lib/java/net/URI.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader.class b/libjava/classpath/lib/java/net/URLClassLoader.class
index 8ec9a2d..80a5e08 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLEncoder.class b/libjava/classpath/lib/java/net/URLEncoder.class
index 4beca00..d573af8 100644
--- a/libjava/classpath/lib/java/net/URLEncoder.class
+++ b/libjava/classpath/lib/java/net/URLEncoder.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class b/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class
index 4d885f0..6efc840 100644
--- a/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class
+++ b/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/SecureClassLoader.class b/libjava/classpath/lib/java/security/SecureClassLoader.class
index 384d80e..539d9d7 100644
--- a/libjava/classpath/lib/java/security/SecureClassLoader.class
+++ b/libjava/classpath/lib/java/security/SecureClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/Security.class b/libjava/classpath/lib/java/security/Security.class
index 33419eb8..c36911e 100644
--- a/libjava/classpath/lib/java/security/Security.class
+++ b/libjava/classpath/lib/java/security/Security.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class b/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class
index 955a1f3..65043ff 100644
--- a/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class
+++ b/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/VMSecureRandom.class b/libjava/classpath/lib/java/security/VMSecureRandom.class
index 08a44d6..8e0a093 100644
--- a/libjava/classpath/lib/java/security/VMSecureRandom.class
+++ b/libjava/classpath/lib/java/security/VMSecureRandom.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertificateFactory.class b/libjava/classpath/lib/java/security/cert/CertificateFactory.class
index 8b0973e..192a302 100644
--- a/libjava/classpath/lib/java/security/cert/CertificateFactory.class
+++ b/libjava/classpath/lib/java/security/cert/CertificateFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class b/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class
index 302add6..c8562f7 100644
--- a/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class
+++ b/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/ChoiceFormat.class b/libjava/classpath/lib/java/text/ChoiceFormat.class
index 68a81e5..77d704b 100644
--- a/libjava/classpath/lib/java/text/ChoiceFormat.class
+++ b/libjava/classpath/lib/java/text/ChoiceFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/CollationElementIterator.class b/libjava/classpath/lib/java/text/CollationElementIterator.class
index ba383a8..23e55d7 100644
--- a/libjava/classpath/lib/java/text/CollationElementIterator.class
+++ b/libjava/classpath/lib/java/text/CollationElementIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/DecimalFormat.class b/libjava/classpath/lib/java/text/DecimalFormat.class
index 17695da..ad90313 100644
--- a/libjava/classpath/lib/java/text/DecimalFormat.class
+++ b/libjava/classpath/lib/java/text/DecimalFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/MessageFormat.class b/libjava/classpath/lib/java/text/MessageFormat.class
index 12f9465..35ac131 100644
--- a/libjava/classpath/lib/java/text/MessageFormat.class
+++ b/libjava/classpath/lib/java/text/MessageFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator.class b/libjava/classpath/lib/java/text/RuleBasedCollator.class
index e15199e..b11b44c 100644
--- a/libjava/classpath/lib/java/text/RuleBasedCollator.class
+++ b/libjava/classpath/lib/java/text/RuleBasedCollator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
index 559c5ce..500c6f2 100644
--- a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
+++ b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat.class b/libjava/classpath/lib/java/text/SimpleDateFormat.class
index 08ac4f3..443bb43 100644
--- a/libjava/classpath/lib/java/text/SimpleDateFormat.class
+++ b/libjava/classpath/lib/java/text/SimpleDateFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap.class b/libjava/classpath/lib/java/util/AbstractMap.class
index 739ed73..77e9a25 100644
--- a/libjava/classpath/lib/java/util/AbstractMap.class
+++ b/libjava/classpath/lib/java/util/AbstractMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Calendar.class b/libjava/classpath/lib/java/util/Calendar.class
index 1743652..5f32ee1 100644
--- a/libjava/classpath/lib/java/util/Calendar.class
+++ b/libjava/classpath/lib/java/util/Calendar.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Date.class b/libjava/classpath/lib/java/util/Date.class
index 4bdae06..422dcb5 100644
--- a/libjava/classpath/lib/java/util/Date.class
+++ b/libjava/classpath/lib/java/util/Date.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
index 6ba870b..4e33c8f 100644
--- a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
index 3a9ed2c..e1331ae 100644
--- a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
index 8ba2ab9..0a396cb 100644
--- a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
index 3b8332c..53ab7e1 100644
--- a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable.class b/libjava/classpath/lib/java/util/Hashtable.class
index 49850b0..6ffdf57 100644
--- a/libjava/classpath/lib/java/util/Hashtable.class
+++ b/libjava/classpath/lib/java/util/Hashtable.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Locale.class b/libjava/classpath/lib/java/util/Locale.class
index 32bc023..3ea366f 100644
--- a/libjava/classpath/lib/java/util/Locale.class
+++ b/libjava/classpath/lib/java/util/Locale.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class
new file mode 100644
index 0000000..d92a7e9
--- /dev/null
+++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class
new file mode 100644
index 0000000..6989e8a
--- /dev/null
+++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class
new file mode 100644
index 0000000..4673577
--- /dev/null
+++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class
new file mode 100644
index 0000000..83fd284
--- /dev/null
+++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class
new file mode 100644
index 0000000..20dd205
--- /dev/null
+++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class
index 151c514..0e7bd0f 100644
--- a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class
+++ b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/zip/ZipEntry.class b/libjava/classpath/lib/java/util/zip/ZipEntry.class
index dc9b197..045a90f 100644
--- a/libjava/classpath/lib/java/util/zip/ZipEntry.class
+++ b/libjava/classpath/lib/java/util/zip/ZipEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleAction.class b/libjava/classpath/lib/javax/accessibility/AccessibleAction.class
index 149eef1..0c096f0 100644
--- a/libjava/classpath/lib/javax/accessibility/AccessibleAction.class
+++ b/libjava/classpath/lib/javax/accessibility/AccessibleAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class b/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class
index 2bd3522..f8e3ef5 100644
--- a/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class
+++ b/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleRole.class b/libjava/classpath/lib/javax/accessibility/AccessibleRole.class
index d05eefb..f5dbfb9 100644
--- a/libjava/classpath/lib/javax/accessibility/AccessibleRole.class
+++ b/libjava/classpath/lib/javax/accessibility/AccessibleRole.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class b/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class
index b0fd35d..99fa682 100644
--- a/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class
+++ b/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class
index e425985..e4525c4 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class
index 8da0e36..475c20d 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class
index b6111e2..92b21a1 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class
index acadd96..5a2059e 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class
index a488e10..2bd05a0 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class
index c6ddf8e..9d77074 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class
index 44648d6..8a9bc13 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class
index 7acc42e..3c3964b 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class
index 5421768..4dd59ff 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class
index 7a9fdff..2c80f9d 100644
--- a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class
+++ b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class
index 57dc68d..7a37f95 100644
--- a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class
+++ b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class b/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class
index 8a18372..b9ba526 100644
--- a/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class
+++ b/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/ObjectName.class b/libjava/classpath/lib/javax/management/ObjectName.class
index 99df669..55cb113 100644
--- a/libjava/classpath/lib/javax/management/ObjectName.class
+++ b/libjava/classpath/lib/javax/management/ObjectName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/StandardMBean.class b/libjava/classpath/lib/javax/management/StandardMBean.class
index ca59e8f..8a454a1 100644
--- a/libjava/classpath/lib/javax/management/StandardMBean.class
+++ b/libjava/classpath/lib/javax/management/StandardMBean.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
index 112ba8b..fe1fdfa 100644
--- a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
+++ b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/remote/NotificationResult.class b/libjava/classpath/lib/javax/management/remote/NotificationResult.class
new file mode 100644
index 0000000..75e1f89
--- /dev/null
+++ b/libjava/classpath/lib/javax/management/remote/NotificationResult.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/remote/TargetedNotification.class b/libjava/classpath/lib/javax/management/remote/TargetedNotification.class
new file mode 100644
index 0000000..050dbe4
--- /dev/null
+++ b/libjava/classpath/lib/javax/management/remote/TargetedNotification.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class b/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class
new file mode 100644
index 0000000..56a629d
--- /dev/null
+++ b/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class b/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class
new file mode 100644
index 0000000..22afd3a
--- /dev/null
+++ b/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class b/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class
index d531508..3350b80 100644
--- a/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class
+++ b/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class
index 9098cf7..f9cc7b3 100644
--- a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class
+++ b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class b/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class
index 4ba2d6f..6bad624 100644
--- a/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class
+++ b/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JFrame.class b/libjava/classpath/lib/javax/swing/JFrame.class
index 828e84b..4d9e344 100644
--- a/libjava/classpath/lib/javax/swing/JFrame.class
+++ b/libjava/classpath/lib/javax/swing/JFrame.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class
index 2538760..249c133 100644
--- a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class
+++ b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class
index 17ccff4..9b93045 100644
--- a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class
+++ b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/RepaintManager.class b/libjava/classpath/lib/javax/swing/RepaintManager.class
index 3e2ff61..c26f622 100644
--- a/libjava/classpath/lib/javax/swing/RepaintManager.class
+++ b/libjava/classpath/lib/javax/swing/RepaintManager.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class b/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class
index 9dee2f3..1a45c96 100644
--- a/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class
+++ b/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class
index a4d80b5..124f1b8 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class
Binary files differ
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
index 4a5483b..2e9ff39 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
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class
index b36b60a..b1a9848 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class
index df8c3d5..46f14ba 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class
index 8ca7e20..829dc6b 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class
index 73241f2..2e32596 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class
index 094561b..2b354bb 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class
index f62de17..2e83ae9 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class
index 1634c3b..a863e5e 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class
index 058f948..fddf378 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class
index ea8ebb0..f075a98 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class
index 1e87303..0187bc8 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class
index ddfb435..57684262 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class
index ac37a3c..6120071 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class
index a1b88613..df337fc 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class
index ae608e0..9a2197b 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class
index 3f7f649..038f1c8 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class
index 877860b..204829b 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class
index d7cb6ce..b402660 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class
index b98d9dc..345724e 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class
index ea9d267..6799d07 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class
index 988cfd3..47c42a3 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class
index ee2d885..6ff06a0 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class
index 8fd02ee..1ab723d 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class
index 3958c1a..59d5b38 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class
index 3357831..881d8ed 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class
index b631da1..f02d438 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class
index e99e408..2066c99 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class
index 6f1e98c..28a5f79 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class
index 0ad38c4..c5e5212 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class
index d344803..702b108 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class
index bc92c59..1bde0040 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class
index 94a4001..b4b505b 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class
index 1dc563f..b5b5b66 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class
index 897ff79..06751dd 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class
index 5584392..0b4758e 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class
index fbf43c4d..52f1d75 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class
index 1d3be17..57cd62c 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class
index a32d1dc..7cf5420 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class
index 84f5c64..085811a 100644
--- a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class
+++ b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class
index 59a68ae..f26fe7e 100644
--- a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class
+++ b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class
index 500f418..d89c2dc 100644
--- a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class
+++ b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
index ea3f5a5..8cfb9d9 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
index e934781..fdf2590 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
index 0c12f0c..d22f506 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
index defb925..0418b79 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/GlyphView.class b/libjava/classpath/lib/javax/swing/text/GlyphView.class
index 0581bde..611c734 100644
--- a/libjava/classpath/lib/javax/swing/text/GlyphView.class
+++ b/libjava/classpath/lib/javax/swing/text/GlyphView.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class b/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class
index ab9c265..907c1dd 100644
--- a/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class
+++ b/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/ParagraphView.class b/libjava/classpath/lib/javax/swing/text/ParagraphView.class
index 6a3391e..ac3b9c0 100644
--- a/libjava/classpath/lib/javax/swing/text/ParagraphView.class
+++ b/libjava/classpath/lib/javax/swing/text/ParagraphView.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class b/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class
index 8b838bb..4a32bcc 100644
--- a/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class
+++ b/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class
Binary files differ
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
index 1e7467e..562c4c0 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
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class b/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class
index ae8e13f..d6b03ca 100644
--- a/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class
+++ b/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class
index d07fce4..6f23724 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class
index 5f645d6..7917c51 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class
index 2f343c8..891da01 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class
index 2ea56b2..6a0c995 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class
index 2bb6537..feb720f 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
index e62123a..c879475 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class
index cb3ea86..cf1a20a 100644
--- a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class
+++ b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class
index 56ffb9a..7bb6700 100644
--- a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class
+++ b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class
index 1d95a19..f227924 100644
--- a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class
+++ b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class
index 3976309..607238c 100644
--- a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class
+++ b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class b/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class
new file mode 100644
index 0000000..95f7e0d
--- /dev/null
+++ b/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/tools/Diagnostic.class b/libjava/classpath/lib/javax/tools/Diagnostic.class
new file mode 100644
index 0000000..204a03b
--- /dev/null
+++ b/libjava/classpath/lib/javax/tools/Diagnostic.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/tools/DiagnosticListener.class b/libjava/classpath/lib/javax/tools/DiagnosticListener.class
new file mode 100644
index 0000000..a910a6c
--- /dev/null
+++ b/libjava/classpath/lib/javax/tools/DiagnosticListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/tools/FileObject.class b/libjava/classpath/lib/javax/tools/FileObject.class
new file mode 100644
index 0000000..39db6c5
--- /dev/null
+++ b/libjava/classpath/lib/javax/tools/FileObject.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
index 00b5df1..1d3209f 100644
--- a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
+++ b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/namespace/QName.class b/libjava/classpath/lib/javax/xml/namespace/QName.class
index c5f6eeb..9c101de 100644
--- a/libjava/classpath/lib/javax/xml/namespace/QName.class
+++ b/libjava/classpath/lib/javax/xml/namespace/QName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
index 3c4fbd4..ec7264a 100644
--- a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
+++ b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
index 6689439..670d77c 100644
--- a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
+++ b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/stream/events/Attribute.class b/libjava/classpath/lib/javax/xml/stream/events/Attribute.class
index 58f2af2..cdddb4a 100644
--- a/libjava/classpath/lib/javax/xml/stream/events/Attribute.class
+++ b/libjava/classpath/lib/javax/xml/stream/events/Attribute.class
Binary files differ
diff --git a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class
index 5fbb45f..03cc2bf 100644
--- a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class
+++ b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class b/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class
index 7773618..894ec25 100644
--- a/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class
+++ b/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class
Binary files differ
diff --git a/libjava/classpath/ltmain.sh b/libjava/classpath/ltmain.sh
index a3c55f9..9d84418 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 0000000..869c194
--- /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 0000000..827ecc9
--- /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 e61ddd8..6c4eacd 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 894e786..1c8ff70 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 ab3004a..7e7c4f2 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 998ba84..dc4c34f 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 e710d96..458e629 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 bf9f569..112504e 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 1a9740f..c230bbb 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 0efa2d9..1139b72 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 90a0f86..662881b 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 b820fe7..f37e738 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 4b71496..b3dafbc 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 c20cf87..cde67a5 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 9c0a4c3..ffdc4e4 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 45c91d1..d15f0a2 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 4942b2d..be6f336 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 afce1f1..80c6795 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 f5fa6c8..9e2acb0 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 0000000..c5e5129
--- /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 1930412..8e9d3cf 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 0000000..84e76a1
--- /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 0000000..3e32568
--- /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 0000000..b5a45b4
--- /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 0000000..da83b00
--- /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 0000000..4500001
--- /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 eb49696..0000000
--- 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 f5d52e8..7e38b91 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 337b676..29c57ad 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 141e837..2689e37 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 839153a..23340fb5 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 9de0d7b..3364640 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 7ce93b0..df700f5 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 7389fa3..4240f11 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 8dbf25a..5de5d82 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 ae7027e..c2fbba2 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 1186f65..b209797 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 e3edf1f..50197ca 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 c99fc48..b57626e 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 04bf44d..89708d9 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 2882075..e79704f 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 8c2556b..f5d785e 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 daaf9d0..aa3196a 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 68e89b3..d6f99ae 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 723f090..e915a30 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 7bff629..acd07ff 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 16c386e..a4f09e9 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 a59604c..c9620a4 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 f2b2f8e..288653d 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 43f2d91..6ee7773 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 561c04b..14bee4f 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 d794e6d..39161d6 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 a5bbd71..7899f0b 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 74a408c..19a6f24 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 09806f8..a7018b3 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 bdd1105..cc31cf3 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 3d52893..c71dc8b 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 3b5f509..0c3af66 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 6412ac7..160d769 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 59be5ce..0de723e 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 d356d69..54b5bf0 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 743968b..d852368 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 259fc62..a42fe62 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 72850b4..979c363 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 0cce3b9..b64b1f5 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 d4e491f..d7c3447 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 a5aa360..8669bf1 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 6f469e2..c396221 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 213acaf..e665197 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 0ca50cb..086641e 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 cf5d7b3..f3c93aa 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 a978882..a4f8b1c 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 617f7ae..387e27e 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 1c2a56b..115ef74 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 55090c7..bc4445f 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 2d9740a..37d66a6 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 d5d5751..0ebbc7e 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 32ddae8..cb3c670 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 5f531e8..af04398 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 902166d..0000000
--- 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 2dd3ce2..0000000
--- 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 0000000..4fc0b10
--- /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 0000000..2c8755c
--- /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 4337840..9d80ba0 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 1a38b53..c283514 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 90a7735..2a114d3 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 8edb361..97556c7 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 773157d..9422827 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 25c56e9..d853d7e 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
index ac08078..c3b8636 100644
--- a/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class
+++ b/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class
Binary files differ
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
index 5b11bc7..be365d4 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
Binary files differ
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
index 9f7dbed..f57650d 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
Binary files differ
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
index 4fa23ee..ad05cfd 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
Binary files differ
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
index ca776dd..d1d8c3c 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
Binary files differ
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
index 6ac29ce..68b0a10 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
Binary files differ
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
index 6883585..b49c112 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
Binary files differ
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
index d45c2e8..f2b1412 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
Binary files differ
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
index e8e6794..ba6c44c 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
Binary files differ
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
index 801b866..e06bc00 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
Binary files differ
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
index 1dcc16e..0edf26b 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class
index 86e363a..b357b78 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class
index 3bf54aa..7e71885 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class
Binary files differ
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
index cbf44dd..de7dd49 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
Binary files differ
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
new file mode 100644
index 0000000..edb80fb
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class
Binary files differ
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
new file mode 100644
index 0000000..96677cc
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
index 59bbaca..36bc25f 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class
index 9cc6b62..1f06b6f 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class
Binary files differ
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
index 8a03266..eed1263 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
Binary files differ
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
index 8ed8f98..932b530 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
Binary files differ
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
index 07e4ee7..0d27a4f 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
Binary files differ
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
index e131d68..5f86431 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
Binary files differ
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
index dff8052..6d4aa76 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
Binary files differ
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
index 5e1c36e..b05c00b 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
Binary files differ
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
index 7dff19b..e507876 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class
index 10524df..c8eb12d 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
index 08bcc36..6cbf969 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
Binary files differ
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
index b6cf38c..8852210 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
Binary files differ
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
index 1733e76..901cc7b 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
Binary files differ
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
index cba7266..1b602fa 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
Binary files differ
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
index d1cdece..8edc8b4 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
Binary files differ
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
index 59015b1..5450d28 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
Binary files differ
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
index 589e70c..d563623 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
Binary files differ
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
index 8a94096..2359cc8 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
Binary files differ
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
index 082d58f..2309169 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
Binary files differ
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
index d64dbd1..b663606 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
index ded3b3a..edd30ed 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
index 690b2b9..ad9a287 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
Binary files differ
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
index 19631e5..0795aca 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
Binary files differ
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
index 9a4ad43..40c1ad4 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
Binary files differ
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
index a26f5f5..fd5942f 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
Binary files differ
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
index 5d130e3..327ac9d 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
Binary files differ
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
index 039f675..cfdb3b5 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
Binary files differ
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
index 199aea1..8408ea5 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
Binary files differ
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
index b0314c1..c134217 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
Binary files differ
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
index 38f1425..19f5673 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
Binary files differ
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
index 9bff18b..57cff5d 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
index 655ed00..f6e8bd1 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
index f85d91f..fdfa2fb 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
Binary files differ
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
index 5a9ea71..1f0d643 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
Binary files differ
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
index 05c3c2f..1dfc79e 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
Binary files differ
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
index f3b5522..89d3cb2 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
Binary files differ
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
index 33d5248..546555b 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
Binary files differ
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
index 0c02153..a2e7eee 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
index 4fa26d9..f7c264b 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
Binary files differ
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
index f79e88c..8877bc5 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
index 61588f5..8d1e58f 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
Binary files differ
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
index 038ec53..6212b29 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
Binary files differ
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
index 21be0ab..6f39b37 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
Binary files differ
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
index 40071d8..f542246 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
Binary files differ
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
index b00042c..a558b70 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
Binary files differ
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
index db0a068..6f5febd 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
Binary files differ
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
index 58c55b9..5406d01 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
Binary files differ
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
index 186a954..77d5439 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
Binary files differ
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
index 43a8000..9dd21c2 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
Binary files differ
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
index 1f13243..20029a8 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
Binary files differ
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
index 297717b..73ab89a 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
Binary files differ
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
index 84e2e4a..879fb4c 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
Binary files differ
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
index 7ddc8df..709014c 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
Binary files differ
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
index dfa67eb..75f47e8 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
Binary files differ
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
index b4837a4..643588f 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
Binary files differ
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
index 82258e7..71ec9414 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
Binary files differ
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
index 9c116ee..04de1d5c 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
Binary files differ
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
index 0c89c4a..9650d16 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
Binary files differ
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
index b962cb2..2aa7d318 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
index 6185bdd..f715c17 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
Binary files differ
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
index 90aa0dd..6f55542 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
Binary files differ
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
index 6b2b3c9..dcbfbf3 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
Binary files differ
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
index 8344aeb..5e4d671 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
Binary files differ
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
index 9567ff2..67898ec 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
Binary files differ
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
index 1197723..87fa82b 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
Binary files differ
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
index 8be88b0..24cefbc 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class
index a828ac7..5e51a69 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class
Binary files differ
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
index 761b86d..269602e 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
Binary files differ
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
index baaa3f5..11e61e6 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
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class
index 88c5632..f09eb77 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/com/sun/tools/javac/Main.java b/libjava/classpath/tools/com/sun/tools/javac/Main.java
index f67a2d7..5c5bc2f 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 0000000..868780b
--- /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 c41ac1d..24b305a 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 a10b889..4eff8f5 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 283d547..bcf5780 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 3a0a442..b92dc50 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 56bb1bb..c1e5cac 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 e44b901..b2e5087 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 a09d716..2d7f77a 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 d52028f..e5f1a3f 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 445f902..8861541 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 7faed16..15bcec2 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 6c1a8e1..ba44a57 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 29c96cf..bfca444 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 0667bef..6bf3193 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 afb30ad..15f3612 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 9c50efa..e853a5a 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 12d1fa2..28f4d19 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 d601b13..4ee079c 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 460b781..78a8f98 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 995e871..995e871 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 c826afa..c826afa 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 989fde7..989fde7 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 a747ab4..a747ab4 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 a456fe2..a456fe2 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 d408817..d408817 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 98f4e68..98f4e68 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 fe2d10a..f04d184 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 b427d10..b427d10 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 7be7cb0..7be7cb0 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 aff606b..aff606b 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 371e12d..371e12d 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 17636de..17636de 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 0125a02..0125a02 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 1c55a05..1c55a05 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 9aaf8f5..9aaf8f5 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 860a93c..860a93c 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 797ae14..797ae14 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 493f000..493f000 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 3db17da..3db17da 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 234cea1..234cea1 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 46f7cfd..46f7cfd 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 8900795..8900795 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 3861e24..3861e24 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 4c897fd..4c897fd 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 3556220..639a957 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 43b9ae1..eade263 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 1f69877..a9d1452 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 4f708a4..2a27517 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 2596506..7e9620b 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 8a991c9..58b3b45 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 1534813..26d89dc 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 eebee5f..8c604cc 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 2db59fe..d797d4f 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 dc67d87..5eeb158 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 04cdb53..03a4811 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 2ef3b72..9d86cd8 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 60c045a..8d18cdf 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 4431e0f..acd0996 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 0000000..ae86fa1
--- /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 99086f1..a3f54bf 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 0000000..3f0b4d2
--- /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 0000000..1fec3c2
--- /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 0000000..6129982
--- /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 0000000..ecd73a5
--- /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 0000000..7c1a731
--- /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 0000000..8df255f
--- /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 0356716..92f7873 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 0000000..07b6ac0
--- /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 0000000..75a5057
--- /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 8ef5369..b2da8ff 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 0000000..62c9b35
--- /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 0000000..9904a6a
--- /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 9379c5e..a9b70e7 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 fa35e2a..78c7127 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 be48395..463d617 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 0000000..cc36fe8
--- /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 0000000..924e44c
--- /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 584b15f..0f5dd6c 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 cc31ae4..019bb4b 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 045e03f..aa0890c 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 0000000..1a373a1
--- /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 0000000..0b67645
--- /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 0000000..ceaa655
--- /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 0000000..849ebe6
--- /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 8adb8b8..25e97ee 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 47d2280..e4da289c 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 880facc..651b6d0 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 0000000..63d4af1
--- /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 0000000..41c450a
--- /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 c0c09bc..9659ac2 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 7a30c34..467f6b7 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 b1078ff..ed9b936 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 0000000..fc524d0
--- /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 da4560b..dc91d47 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 0000000..8c9e229
--- /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 dccd81e..f716854 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 dbe3a67..a6dc8fa 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 0c9253c..82878f1 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 0000000..8ffb113
--- /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 ed6df66..0000000
--- 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 7939abb..20ef7de 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 5452434..e382f3e 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 0000000..a0de53f
--- /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 0000000..5966084
--- /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 a32150f..56afb46 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 02b4b83..4120a2b 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 d78c6a5..8fc37c0 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 430aca2..3136a60 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 8b5927d..b50a063 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 c3b46bf..46f81a1 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 0a0bc50..4fee8f8 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 f5b8392..5576f653 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 66d7766..1104773 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 a7b8459..12371ff 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 0d89dca..aebd234 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 9531667..4055fa4 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 0b8fdca..097f9d2 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 c3902b3..4d87277 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 d955dce..8417042 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 dc67d87..5eeb158 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 19d92b8..a3b75de 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 0000000..4f3d1b6
--- /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 0000000..ecebfbe
--- /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 0000000..c6abfef
--- /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 0000000..66adf02
--- /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 0000000..de285a9
--- /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 924ba48..95eec88 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 ede23c9..5a8b4b2 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 e9d76b0..10d8571 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 1fd9e3c..271b6ba 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 0c447e0..280ad308 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 0000000..b5d45f6
--- /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 0000000..1021a87
--- /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 0000000..4fb6eb8
--- /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 0000000..3c955a5
--- /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 134cb2f..42159f1 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 50c7118..9c13e75 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 629c294..31065d6 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 53e87c3..98117b0 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 759439c..bac3f21 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 0000000..006ed7d
--- /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 0000000..540da44
--- /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 0000000..a0d1a37
--- /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 0000000..87acd83
--- /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 7362510..f0e0570 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 2200461..77b0193 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 b42ea45..aba3c89 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 \