[kaffe] CVS kaffe (guilhem): Big classpath merge
Kaffe CVS
cvs-commits at kaffe.org
Mon Apr 17 11:32:59 PDT 2006
PatchSet 7229
Date: 2006/04/17 17:57:01
Author: guilhem
Branch: HEAD
Tag: (none)
Log:
Big classpath merge
* libraries/javalib/external/classpath: Resynchronized with GNU
Classpath.
* kaffe/kaffevm/access.h
(KFLAG_ANONYMOUS): New flag.
* kaffe/kaffevm/baseClasses.c
(EnclosingMethod_name): New attribute name.
* kaffe/kaffevm/classMethod.c
(setupClass, addMethod, addField): Shielded the usage of indexes.
(addInnerClasses): Remember anonymous classes.
* kaffe/kaffevm/classMethod.h
(Hjava_lang_Class): New fields enclosingClassIndex,
enclosingMethodIndex.
* kaffe/kaffevm/constants.h
(CONSTANT_ResolvedMethod): New synthetic constant.
* kaffe/kaffevm/lookup.c
(getMethodSignatureClass): Shielded the usage of indexes.
(getClass): Likewise.
* kaffe/kaffevm/readClass.c
(readEnclosingMethodAttribute): New function.
(readSignature): Shielded the usage of indexes.
* libraries/clib/native/Class.c
(forName): Renamed from forName0. Adapted to VM layer.
(isSynthetic, isEnum, getEnclosingClass, getEnclosingConstructor,
getEnclosingMethod, getClassSignature, isAnonymousClass,
isLocalClass, isMemberClass): New functions.
* libraries/clib/native/Constructor.c,
libraries/clib/native/Method.c
(getModifiersInternal): Renamed from getModifiers.
* libraries/javalib/vmspecific/java/lang/Class.java: Removed.
* libraries/javalib/vmspecific/java/lang/VMClass.java: Imported
new version from GNU Classpath.
* libraries/javalib/vmspecific/java/lang/reflect/Constructor.java,
libraries/javalib/vmspecific/java/lang/reflect/Method.java:
Imported from GNU Classpath and adapted to Kaffe's internals.
* libraries/javalib/vmspecific/java/security/VMSecureRandom.java:
Imported from GNU Classpath.
* test/internal/jit_stub.c: Upgraded to initialize
EnclosingMethod_name.
* test/regression/IndexTest.java,
test/regression/ProcessClassInst.java,
test/regression/ProcessClassStop.java: Fixed expected message.
Members:
ChangeLog:1.4735->1.4736
kaffe/kaffevm/access.h:1.12->1.13
kaffe/kaffevm/baseClasses.c:1.73->1.74
kaffe/kaffevm/classMethod.c:1.153->1.154
kaffe/kaffevm/classMethod.h:1.88->1.89
kaffe/kaffevm/constants.h:INITIAL->1.10
kaffe/kaffevm/lookup.c:1.48->1.49
kaffe/kaffevm/readClass.c:1.27->1.28
kaffe/kaffevm/reflect.c:1.3->1.4
kaffe/kaffevm/jni/jni-helpers.c:1.12->1.13
libraries/clib/native/Class.c:1.90->1.91
libraries/clib/native/Constructor.c:INITIAL->1.14
libraries/clib/native/Method.c:1.44->1.45
libraries/clib/native/gnu_classpath_VMSystemProperties.c:1.4->1.5
libraries/javalib/external/classpath/ChangeLog:1.25->1.26
libraries/javalib/external/classpath/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/NEWS:1.8->1.9
libraries/javalib/external/classpath/config.guess:1.17->1.18
libraries/javalib/external/classpath/config.sub:1.30->1.31
libraries/javalib/external/classpath/configure:1.24->1.25
libraries/javalib/external/classpath/configure.ac:1.12->1.13
libraries/javalib/external/classpath/ltmain.sh:1.17->1.18
libraries/javalib/external/classpath/doc/Makefile.in:1.16->1.17
libraries/javalib/external/classpath/doc/vmintegration.info:1.11->1.12
libraries/javalib/external/classpath/doc/api/Makefile.in:1.17->1.18
libraries/javalib/external/classpath/examples/Makefile.in:1.21->1.22
libraries/javalib/external/classpath/examples/gnu/classpath/examples/swing/Demo.java:1.7->1.8
libraries/javalib/external/classpath/examples/gnu/classpath/examples/swing/TextAreaDemo.java:1.2->1.3
libraries/javalib/external/classpath/examples/gnu/classpath/examples/swing/TextFieldDemo.java:1.3->1.4
libraries/javalib/external/classpath/external/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/external/relaxngDatatype/Makefile.in:1.5->1.6
libraries/javalib/external/classpath/external/sax/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/external/sax/org/xml/sax/AttributeList.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/Attributes.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ContentHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/DTDHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/DocumentHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/EntityResolver.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ErrorHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/HandlerBase.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/InputSource.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/Locator.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/Parser.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXException.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXNotRecognizedException.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXNotSupportedException.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/SAXParseException.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/XMLFilter.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/XMLReader.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/package.html:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Attributes2.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Attributes2Impl.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/DeclHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/DefaultHandler2.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/LexicalHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Locator2.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/ext/package.html:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/AttributeListImpl.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/AttributesImpl.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/DefaultHandler.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/LocatorImpl.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/NamespaceSupport.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/NewInstance.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/ParserFactory.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java:1.25->1.26
libraries/javalib/external/classpath/external/sax/org/xml/sax/helpers/package.html:1.25->1.26
libraries/javalib/external/classpath/external/w3c_dom/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/gnu/CORBA/IorDelegate.java:1.1->1.2
libraries/javalib/external/classpath/gnu/CORBA/OrbRestricted.java:1.1->1.2
libraries/javalib/external/classpath/gnu/CORBA/SocketRepository.java:1.2->1.3
libraries/javalib/external/classpath/gnu/CORBA/gnuRequest.java:1.2->1.3
libraries/javalib/external/classpath/gnu/CORBA/CDR/EncapsulationStream.java:1.1->1.2
libraries/javalib/external/classpath/gnu/CORBA/GIOP/MessageHeader.java:1.2->1.3
libraries/javalib/external/classpath/gnu/CORBA/NamingService/NameParser.java:1.2->1.3
libraries/javalib/external/classpath/gnu/classpath/SystemProperties.java:1.3->1.4
libraries/javalib/external/classpath/gnu/java/lang/reflect/ClassSignatureParser.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/java/lang/reflect/FieldSignatureParser.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/java/lang/reflect/GenericSignatureParser.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/java/lang/reflect/MethodSignatureParser.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/java/lang/reflect/TypeImpl.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/java/net/DefaultContentHandlerFactory.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/java/security/hash/Whirlpool.java:1.1->1.2
libraries/javalib/external/classpath/gnu/java/security/jce/prng/SecureRandomAdapter.java:1.1->1.2
libraries/javalib/external/classpath/gnu/java/security/prng/MDGenerator.java:1.2->1.3
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/Assembly.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/Cascade.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/CascadeStage.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/CascadeTransformer.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/Direction.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/LoopbackTransformer.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/ModeStage.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/Operation.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/PaddingTransformer.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/Stage.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/assembly/Transformer.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/cipher/Square.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/AESSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/ARCFourSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/AnubisSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/BlowfishSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/CipherAdapter.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/DESSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/KhazadSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/NullCipherSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/PBES2.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/RijndaelSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/SerpentSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/SquareSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/TripleDESSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/cipher/TwofishSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacMD2Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacMD4Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacMD5Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD128Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacRipeMD160Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacSHA160Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacSHA256Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacSHA384Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacSHA512Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacTigerSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/HMacWhirlpoolSpi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/MacAdapter.java:1.2->1.3
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/TMMH16Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/UHash32Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/jce/mac/UMac32Spi.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/key/dh/DiffieHellmanSender.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/key/srp6/SRP6TLSServer.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/keyring/PrivateKeyEntry.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/mode/IAuthenticatedMode.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/pad/WrongPaddingException.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/prng/Fortuna.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/prng/ICMGenerator.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/prng/IPBE.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/prng/PBKDF2.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/sasl/ConfidentialityException.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/sasl/IllegalMechanismStateException.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/sasl/srp/IALG.java:1.1->1.2
libraries/javalib/external/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java:1.2->1.3
libraries/javalib/external/classpath/gnu/javax/swing/tree/GnuPath.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/regexp/CharIndexed.java:1.3->1.4
libraries/javalib/external/classpath/gnu/regexp/CharIndexedCharArray.java:1.3->1.4
libraries/javalib/external/classpath/gnu/regexp/CharIndexedCharSequence.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/regexp/CharIndexedInputStream.java:1.3->1.4
libraries/javalib/external/classpath/gnu/regexp/CharIndexedString.java:1.3->1.4
libraries/javalib/external/classpath/gnu/regexp/CharIndexedStringBuffer.java:1.3->1.4
libraries/javalib/external/classpath/gnu/regexp/RE.java:1.8->1.9
libraries/javalib/external/classpath/gnu/regexp/REToken.java:1.4->1.5
libraries/javalib/external/classpath/gnu/regexp/RETokenBackRef.java:1.4->1.5
libraries/javalib/external/classpath/gnu/regexp/RETokenChar.java:1.4->1.5
libraries/javalib/external/classpath/gnu/regexp/RETokenNamedProperty.java:1.3->1.4
libraries/javalib/external/classpath/gnu/regexp/RETokenRange.java:1.4->1.5
libraries/javalib/external/classpath/gnu/xml/dom/DomDocument.java:1.2->1.3
libraries/javalib/external/classpath/gnu/xml/dom/DomNode.java:1.5->1.6
libraries/javalib/external/classpath/gnu/xml/dom/DomNodeIterator.java:1.1->1.2
libraries/javalib/external/classpath/gnu/xml/dom/html2/DomHTMLAppletElement.java:1.1->1.2
libraries/javalib/external/classpath/gnu/xml/dom/html2/DomHTMLDocument.java:1.1->1.2
libraries/javalib/external/classpath/gnu/xml/dom/html2/DomHTMLEmbedElement.java:INITIAL->1.1
libraries/javalib/external/classpath/gnu/xml/dom/html2/DomHTMLObjectElement.java:1.1->1.2
libraries/javalib/external/classpath/gnu/xml/dom/html2/DomHTMLParser.java:1.1->1.2
libraries/javalib/external/classpath/gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java:1.1->1.2
libraries/javalib/external/classpath/gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java:1.1->1.2
libraries/javalib/external/classpath/include/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/java/awt/Component.java:1.7->1.8
libraries/javalib/external/classpath/java/awt/Container.java:1.10->1.11
libraries/javalib/external/classpath/java/awt/DefaultKeyboardFocusManager.java:1.1->1.2
libraries/javalib/external/classpath/java/awt/Dialog.java:1.1->1.2
libraries/javalib/external/classpath/java/awt/Frame.java:1.3->1.4
libraries/javalib/external/classpath/java/awt/Toolkit.java:1.3->1.4
libraries/javalib/external/classpath/java/awt/Window.java:1.4->1.5
libraries/javalib/external/classpath/java/awt/event/MouseEvent.java:1.1->1.2
libraries/javalib/external/classpath/java/awt/image/ComponentSampleModel.java:1.1->1.2
libraries/javalib/external/classpath/java/awt/image/SampleModel.java:1.1->1.2
libraries/javalib/external/classpath/java/awt/image/renderable/RenderableImageProducer.java:1.2->1.3
libraries/javalib/external/classpath/java/beans/beancontext/BeanContext.java:1.1->1.2
libraries/javalib/external/classpath/java/beans/beancontext/BeanContextMembershipEvent.java:1.1->1.2
libraries/javalib/external/classpath/java/beans/beancontext/BeanContextServiceAvailableEvent.java:1.1->1.2
libraries/javalib/external/classpath/java/beans/beancontext/BeanContextServiceRevokedEvent.java:1.1->1.2
libraries/javalib/external/classpath/java/beans/beancontext/BeanContextServicesSupport.java:1.3->1.4
libraries/javalib/external/classpath/java/beans/beancontext/BeanContextSupport.java:1.3->1.4
libraries/javalib/external/classpath/java/io/CharArrayWriter.java:1.2->1.3
libraries/javalib/external/classpath/java/io/DataOutputStream.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/Class.java:1.3->1.4
libraries/javalib/external/classpath/java/lang/EnumConstantNotPresentException.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/StackTraceElement.java:1.2->1.3
libraries/javalib/external/classpath/java/lang/Thread.java:1.4->1.5
libraries/javalib/external/classpath/java/lang/ThreadGroup.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/TypeNotPresentException.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/annotation/AnnotationFormatError.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/reflect/GenericDeclaration.java:INITIAL->1.1
libraries/javalib/external/classpath/java/lang/reflect/GenericSignatureFormatError.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/reflect/MalformedParameterizedTypeException.java:INITIAL->1.1
libraries/javalib/external/classpath/java/lang/reflect/ParameterizedType.java:1.1->1.2
libraries/javalib/external/classpath/java/lang/reflect/TypeVariable.java:INITIAL->1.1
libraries/javalib/external/classpath/java/net/MimeTypeMapper.java:1.1->1.2
libraries/javalib/external/classpath/java/net/URLConnection.java:1.4->1.5
libraries/javalib/external/classpath/java/security/SecureRandom.java:1.2->1.3
libraries/javalib/external/classpath/java/util/AbstractList.java:1.1->1.2
libraries/javalib/external/classpath/java/util/Arrays.java:1.2->1.3
libraries/javalib/external/classpath/java/util/BitSet.java:1.1->1.2
libraries/javalib/external/classpath/java/util/HashMap.java:1.1->1.2
libraries/javalib/external/classpath/java/util/Hashtable.java:1.3->1.4
libraries/javalib/external/classpath/java/util/IdentityHashMap.java:1.1->1.2
libraries/javalib/external/classpath/java/util/InvalidPropertiesFormatException.java:1.1->1.2
libraries/javalib/external/classpath/java/util/LinkedHashMap.java:1.1->1.2
libraries/javalib/external/classpath/java/util/LinkedList.java:1.1->1.2
libraries/javalib/external/classpath/java/util/TreeMap.java:1.1->1.2
libraries/javalib/external/classpath/java/util/WeakHashMap.java:1.3->1.4
libraries/javalib/external/classpath/java/util/jar/JarFile.java:1.1->1.2
libraries/javalib/external/classpath/java/util/regex/Matcher.java:1.3->1.4
libraries/javalib/external/classpath/java/util/regex/Pattern.java:1.3->1.4
libraries/javalib/external/classpath/java/util/zip/ZipFile.java:1.3->1.4
libraries/javalib/external/classpath/javax/accessibility/AccessibleAction.java:1.1->1.2
libraries/javalib/external/classpath/javax/accessibility/AccessibleAttributeSequence.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/accessibility/AccessibleContext.java:1.2->1.3
libraries/javalib/external/classpath/javax/accessibility/AccessibleExtendedText.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/accessibility/AccessibleRelation.java:1.1->1.2
libraries/javalib/external/classpath/javax/accessibility/AccessibleRole.java:1.1->1.2
libraries/javalib/external/classpath/javax/accessibility/AccessibleState.java:1.1->1.2
libraries/javalib/external/classpath/javax/accessibility/AccessibleStreamable.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/accessibility/AccessibleText.java:1.1->1.2
libraries/javalib/external/classpath/javax/accessibility/AccessibleTextSequence.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/imageio/ImageWriteParam.java:1.2->1.3
libraries/javalib/external/classpath/javax/imageio/plugins/jpeg/JPEGImageReadParam.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/naming/Binding.java:1.2->1.3
libraries/javalib/external/classpath/javax/naming/CompositeName.java:1.1->1.2
libraries/javalib/external/classpath/javax/naming/NameClassPair.java:1.2->1.3
libraries/javalib/external/classpath/javax/naming/directory/BasicAttribute.java:1.1->1.2
libraries/javalib/external/classpath/javax/naming/directory/BasicAttributes.java:1.1->1.2
libraries/javalib/external/classpath/javax/security/auth/kerberos/ServicePermission.java:1.1->1.2
libraries/javalib/external/classpath/javax/security/auth/x500/X500Principal.java:1.1->1.2
libraries/javalib/external/classpath/javax/swing/AbstractAction.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/AbstractButton.java:1.5->1.6
libraries/javalib/external/classpath/javax/swing/ActionMap.java:1.2->1.3
libraries/javalib/external/classpath/javax/swing/CompatibilityFocusTraversalPolicy.java:INITIAL->1.1
libraries/javalib/external/classpath/javax/swing/JComboBox.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/JComponent.java:1.10->1.11
libraries/javalib/external/classpath/javax/swing/JDesktopPane.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/JFileChooser.java:1.6->1.7
libraries/javalib/external/classpath/javax/swing/JInternalFrame.java:1.5->1.6
libraries/javalib/external/classpath/javax/swing/JLabel.java:1.2->1.3
libraries/javalib/external/classpath/javax/swing/JMenu.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/JMenuItem.java:1.5->1.6
libraries/javalib/external/classpath/javax/swing/JRootPane.java:1.5->1.6
libraries/javalib/external/classpath/javax/swing/JSplitPane.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/JTable.java:1.7->1.8
libraries/javalib/external/classpath/javax/swing/JTextField.java:1.6->1.7
libraries/javalib/external/classpath/javax/swing/JToolBar.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/JTree.java:1.5->1.6
libraries/javalib/external/classpath/javax/swing/LookAndFeel.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/MenuSelectionManager.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/ScrollPaneLayout.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/SizeSequence.java:1.1->1.2
libraries/javalib/external/classpath/javax/swing/ViewportLayout.java:1.9->1.10
libraries/javalib/external/classpath/javax/swing/event/InternalFrameEvent.java:1.1->1.2
libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicLookAndFeel.java:1.10->1.11
libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTextFieldUI.java:1.2->1.3
libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTextUI.java:1.8->1.9
libraries/javalib/external/classpath/javax/swing/plaf/basic/BasicTreeUI.java:1.6->1.7
libraries/javalib/external/classpath/javax/swing/plaf/metal/MetalDesktopIconUI.java:1.2->1.3
libraries/javalib/external/classpath/javax/swing/plaf/metal/MetalRootPaneUI.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/plaf/synth/SynthPainter.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/text/AbstractDocument.java:1.7->1.8
libraries/javalib/external/classpath/javax/swing/text/DefaultCaret.java:1.8->1.9
libraries/javalib/external/classpath/javax/swing/text/DefaultHighlighter.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/text/FieldView.java:1.4->1.5
libraries/javalib/external/classpath/javax/swing/tree/AbstractLayoutCache.java:1.2->1.3
libraries/javalib/external/classpath/javax/swing/tree/DefaultTreeSelectionModel.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/tree/FixedHeightLayoutCache.java:1.3->1.4
libraries/javalib/external/classpath/javax/swing/tree/TreePath.java:1.2->1.3
libraries/javalib/external/classpath/javax/swing/tree/VariableHeightLayoutCache.java:1.3->1.4
libraries/javalib/external/classpath/javax/xml/XMLConstants.java:1.1->1.2
libraries/javalib/external/classpath/javax/xml/datatype/DatatypeConstants.java:1.1->1.2
libraries/javalib/external/classpath/javax/xml/datatype/Duration.java:1.1->1.2
libraries/javalib/external/classpath/javax/xml/validation/SchemaFactory.java:1.2->1.3
libraries/javalib/external/classpath/javax/xml/xpath/XPathConstants.java:1.1->1.2
libraries/javalib/external/classpath/lib/Makefile.am:1.12->1.13
libraries/javalib/external/classpath/lib/Makefile.in:1.23->1.24
libraries/javalib/external/classpath/lib/gen-classlist.sh.in:1.4->1.5
libraries/javalib/external/classpath/native/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/fdlibm/Makefile.am:1.5->1.6
libraries/javalib/external/classpath/native/fdlibm/Makefile.in:1.20->1.21
libraries/javalib/external/classpath/native/jawt/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/classpath/Makefile.am:1.3->1.4
libraries/javalib/external/classpath/native/jni/classpath/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/native/jni/gtk-peer/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:1.3->1.4
libraries/javalib/external/classpath/native/jni/java-io/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/native/jni/java-lang/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/java-net/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/java-nio/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/java-util/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/midi-alsa/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/midi-dssi/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/native/jni/qt-peer/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/jni/xmlj/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/native/target/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/target/Linux/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/native/target/generic/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/org/omg/CORBA/ORB.java:1.2->1.3
libraries/javalib/external/classpath/org/omg/CORBA/ParameterMode.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/CosNaming/NamingContextOperations.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/CosNaming/_BindingIteratorStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/CosNaming/_NamingContextExtStub.java:1.2->1.3
libraries/javalib/external/classpath/org/omg/CosNaming/_NamingContextStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynAnyStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynArrayStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynEnumStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynFixedStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynSequenceStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynStructStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynUnionStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/DynamicAny/_DynValueStub.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/PortableInterceptor/ObjectReferenceFactory.java:1.1->1.2
libraries/javalib/external/classpath/org/omg/PortableInterceptor/ObjectReferenceFactoryOperations.java:1.1->1.2(DEAD)
libraries/javalib/external/classpath/org/omg/PortableServer/ServantActivatorPOA.java:1.2->1.3
libraries/javalib/external/classpath/org/omg/PortableServer/ServantLocatorPOA.java:1.2->1.3
libraries/javalib/external/classpath/resource/Makefile.in:1.19->1.20
libraries/javalib/external/classpath/resource/gnu/regexp/MessagesBundle_it.properties:1.25->1.26
libraries/javalib/external/classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties:INITIAL->1.1
libraries/javalib/external/classpath/scripts/Makefile.in:1.18->1.19
libraries/javalib/external/classpath/scripts/classpath.spec.in:1.25->1.26
libraries/javalib/external/classpath/tools/Makefile.in:1.6->1.7
libraries/javalib/external/classpath/vm/reference/java/lang/VMClass.java:1.2->1.3
libraries/javalib/external/classpath/vm/reference/java/lang/VMThread.java:1.2->1.3
libraries/javalib/external/classpath/vm/reference/java/lang/reflect/Constructor.java:1.4->1.5
libraries/javalib/external/classpath/vm/reference/java/lang/reflect/Field.java:1.3->1.4
libraries/javalib/external/classpath/vm/reference/java/lang/reflect/Method.java:1.4->1.5
libraries/javalib/external/classpath/vm/reference/java/security/VMSecureRandom.java:INITIAL->1.1
libraries/javalib/vmspecific/java/lang/Class.java:1.1->1.2(DEAD)
libraries/javalib/vmspecific/java/lang/VMClass.java:1.1->1.2
libraries/javalib/vmspecific/java/lang/reflect/Constructor.java:1.2->1.3
libraries/javalib/vmspecific/java/lang/reflect/Field.java:1.3->1.4
libraries/javalib/vmspecific/java/lang/reflect/Method.java:1.2->1.3
libraries/javalib/vmspecific/java/security/VMSecureRandom.java:INITIAL->1.1
test/internal/jit_stub.c:1.12->1.13
test/regression/IndexTest.java:1.5->1.6
test/regression/ProcessClassInst.java:1.16->1.17
test/regression/ProcessClassStop.java:1.16->1.17
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4735 kaffe/ChangeLog:1.4736
--- kaffe/ChangeLog:1.4735 Mon Apr 17 11:11:19 2006
+++ kaffe/ChangeLog Mon Apr 17 17:57:01 2006
@@ -1,3 +1,62 @@
+2006-04-17 Guilhem Lavaux <guilhem at kaffe.org>
+
+ * libraries/javalib/external/classpath: Resynchronized with GNU
+ Classpath.
+
+ * kaffe/kaffevm/access.h
+ (KFLAG_ANONYMOUS): New flag.
+
+ * kaffe/kaffevm/baseClasses.c
+ (EnclosingMethod_name): New attribute name.
+
+ * kaffe/kaffevm/classMethod.c
+ (setupClass, addMethod, addField): Shielded the usage of indexes.
+ (addInnerClasses): Remember anonymous classes.
+
+ * kaffe/kaffevm/classMethod.h
+ (Hjava_lang_Class): New fields enclosingClassIndex,
+ enclosingMethodIndex.
+
+ * kaffe/kaffevm/constants.h
+ (CONSTANT_ResolvedMethod): New synthetic constant.
+
+ * kaffe/kaffevm/lookup.c
+ (getMethodSignatureClass): Shielded the usage of indexes.
+ (getClass): Likewise.
+
+ * kaffe/kaffevm/readClass.c
+ (readEnclosingMethodAttribute): New function.
+ (readSignature): Shielded the usage of indexes.
+
+ * libraries/clib/native/Class.c
+ (forName): Renamed from forName0. Adapted to VM layer.
+ (isSynthetic, isEnum, getEnclosingClass, getEnclosingConstructor,
+ getEnclosingMethod, getClassSignature, isAnonymousClass,
+ isLocalClass, isMemberClass): New functions.
+
+ * libraries/clib/native/Constructor.c,
+ libraries/clib/native/Method.c
+ (getModifiersInternal): Renamed from getModifiers.
+
+ * libraries/javalib/vmspecific/java/lang/Class.java: Removed.
+
+ * libraries/javalib/vmspecific/java/lang/VMClass.java: Imported
+ new version from GNU Classpath.
+
+ * libraries/javalib/vmspecific/java/lang/reflect/Constructor.java,
+ libraries/javalib/vmspecific/java/lang/reflect/Method.java:
+ Imported from GNU Classpath and adapted to Kaffe's internals.
+
+ * libraries/javalib/vmspecific/java/security/VMSecureRandom.java:
+ Imported from GNU Classpath.
+
+ * test/internal/jit_stub.c: Upgraded to initialize
+ EnclosingMethod_name.
+
+ * test/regression/IndexTest.java,
+ test/regression/ProcessClassInst.java,
+ test/regression/ProcessClassStop.java: Fixed expected message.
+
2006-04-17 Dalibor Topic <robilad at kaffe.org>
* libraries/clib/native/java_lang_VMDouble.c:
Index: kaffe/kaffe/kaffevm/access.h
diff -u kaffe/kaffe/kaffevm/access.h:1.12 kaffe/kaffe/kaffevm/access.h:1.13
--- kaffe/kaffe/kaffevm/access.h:1.12 Thu Mar 30 17:39:16 2006
+++ kaffe/kaffe/kaffevm/access.h Mon Apr 17 17:57:05 2006
@@ -49,6 +49,7 @@
/* either jitted or native method was found */
#define KFLAG_TRANSLATED 0x08
#define KFLAG_VERIFIED 0x10
+#define KFLAG_ANONYMOUS 0x20
typedef enum {
ACC_TYPE_CLASS,
Index: kaffe/kaffe/kaffevm/baseClasses.c
diff -u kaffe/kaffe/kaffevm/baseClasses.c:1.73 kaffe/kaffe/kaffevm/baseClasses.c:1.74
--- kaffe/kaffe/kaffevm/baseClasses.c:1.73 Thu Mar 30 17:39:16 2006
+++ kaffe/kaffe/kaffevm/baseClasses.c Mon Apr 17 17:57:05 2006
@@ -60,6 +60,7 @@
Utf8Const* SourceFile_name;
Utf8Const* InnerClasses_name;
Utf8Const* Signature_name;
+Utf8Const* EnclosingMethod_name;
Utf8Const* Synthetic_name;
static struct _dispatchTable *ClassClass_vtable;
@@ -259,12 +260,13 @@
InnerClasses_name = utf8ConstNew("InnerClasses", -1);
Signature_name = utf8ConstNew("Signature", -1);
Synthetic_name = utf8ConstNew("Synthetic", -1);
+ EnclosingMethod_name = utf8ConstNew("EnclosingMethod", -1);
if (!(init_name && final_name && void_signature &&
constructor_name && Code_name && LineNumberTable_name &&
LocalVariableTable_name && ConstantValue_name &&
Exceptions_name && SourceFile_name && InnerClasses_name &&
- Signature_name && Synthetic_name)) {
+ Signature_name && Synthetic_name && EnclosingMethod_name)) {
DBG(INIT, dprintf("not enough memory to run kaffe\n"); );
KAFFEVM_ABORT();
}
Index: kaffe/kaffe/kaffevm/classMethod.c
diff -u kaffe/kaffe/kaffevm/classMethod.c:1.153 kaffe/kaffe/kaffevm/classMethod.c:1.154
--- kaffe/kaffe/kaffevm/classMethod.c:1.153 Thu Mar 30 17:39:16 2006
+++ kaffe/kaffe/kaffevm/classMethod.c Mon Apr 17 17:57:05 2006
@@ -1019,7 +1019,8 @@
pool = CLASS_CONSTANTS(cl);
/* Find the name of the class */
- if (pool->tags[c] != CONSTANT_Class) {
+ if (c >= CLASS_CONST_SIZE (cl)
+ || pool->tags[c] != CONSTANT_Class) {
postExceptionMessage(einfo, JAVA_LANG(ClassFormatError),
"this class constant pool index is bogus");
return (NULL);
@@ -1074,10 +1075,6 @@
/*
- * Add a Java 1.5 signature to the class descriptor.
- */
-
-/*
* Read in InnerClasses declares for a class
*/
bool
@@ -1109,15 +1106,17 @@
c->inner_classes = ic;
for (i = 0; i < nr; i++, ic++) {
- u2 dummy;
+ u2 inner_name_index;
readu2(&ic->inner_class, fp);
readu2(&ic->outer_class, fp);
- readu2(&dummy, fp);
+ readu2(&inner_name_index, fp);
readu2(&ic->inner_class_accflags, fp);
+ if (inner_name_index != 0)
+ c->kFlags |= KFLAG_ANONYMOUS;
+
if (c->this_index && ic->inner_class == c->this_index) {
-// c->accflags = (ic->inner_class_accflags & ACC_MASK);
c->this_inner_index = i;
}
}
@@ -1166,7 +1165,8 @@
pool = CLASS_CONSTANTS (c);
nc = name_index;
- if (pool->tags[nc] != CONSTANT_Utf8) {
+ if (nc >= CLASS_CONST_SIZE (c)
+ || pool->tags[nc] != CONSTANT_Utf8) {
/* XXX fill in einfo! */
DBG(RESERROR, dprintf("addMethod: no method name.\n"); );
postExceptionMessage(einfo,
@@ -1175,7 +1175,8 @@
return (NULL);
}
sc = signature_index;
- if (pool->tags[sc] != CONSTANT_Utf8) {
+ if (sc >= CLASS_CONST_SIZE (c)
+ || pool->tags[sc] != CONSTANT_Utf8) {
/* XXX fill in einfo! */
DBG(RESERROR, dprintf("addMethod: no signature name.\n"); );
postExceptionMessage(einfo,
@@ -1239,7 +1240,8 @@
pool = CLASS_CONSTANTS (c);
nc = name_index;
- if (pool->tags[nc] != CONSTANT_Utf8) {
+ if (nc >= CLASS_CONST_SIZE (c)
+ || pool->tags[nc] != CONSTANT_Utf8) {
DBG(RESERROR, dprintf("addField: no field name.\n"); );
postExceptionMessage(einfo,
JAVA_LANG(ClassFormatError),
@@ -1263,7 +1265,8 @@
);
sc = signature_index;
- if (pool->tags[sc] != CONSTANT_Utf8) {
+ if (pool->tags[sc] != CONSTANT_Utf8
+ || sc >=CLASS_CONST_SIZE(c)) {
DBG(RESERROR, dprintf("addField: no signature name.\n"); );
postExceptionMessage(einfo,
JAVA_LANG(ClassFormatError),
Index: kaffe/kaffe/kaffevm/classMethod.h
diff -u kaffe/kaffe/kaffevm/classMethod.h:1.88 kaffe/kaffe/kaffevm/classMethod.h:1.89
--- kaffe/kaffe/kaffevm/classMethod.h:1.88 Thu Apr 6 03:11:03 2006
+++ kaffe/kaffe/kaffevm/classMethod.h Mon Apr 17 17:57:07 2006
@@ -100,10 +100,12 @@
Utf8Const* name;
Utf8Const* extSignature;
+ constIndex enclosingClassIndex;
+ constIndex enclosingMethodIndex;
unsigned int packageLength;
char* sourcefile; /* source file name if known */
accessFlags accflags;
- kaffeClassFlags kFlags;
+ kaffeClassFlags kFlags;
/* If non-NULL, a pointer to the superclass.
* However, if state < CSTATE_DOING_PREPARE, then
@@ -698,6 +700,7 @@
extern Utf8Const* InnerClasses_name; /* "InnerClasses" */
extern Utf8Const* Signature_name; /* "Signature" */
extern Utf8Const* Synthetic_name; /* "Synthetic" */
+extern Utf8Const* EnclosingMethod_name; /* "EnclosingMethod" */
void initialiseSecurity (void);
===================================================================
Checking out kaffe/kaffe/kaffevm/constants.h
RCS: /home/cvs/kaffe/kaffe/kaffe/kaffevm/constants.h,v
VERS: 1.10
***************
--- /dev/null Sun Aug 4 19:57:58 2002
+++ kaffe/kaffe/kaffevm/constants.h Mon Apr 17 18:32:57 2006
@@ -0,0 +1,123 @@
+/*
+ * cnstants.h
+ * Manage constants.
+ *
+ * Copyright (c) 1996, 1997
+ * Transvirtual Technologies, Inc. All rights reserved.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file.
+ */
+
+#ifndef __constant_h
+#define __constant_h
+
+#include "gtypes.h"
+
+/*
+ * Constant pool definitions.
+ */
+#define CONSTANT_Class 7
+#define CONSTANT_Fieldref 9
+#define CONSTANT_Methodref 10
+#define CONSTANT_InterfaceMethodref 11
+#define CONSTANT_String 8
+#define CONSTANT_Integer 3
+#define CONSTANT_Float 4
+#define CONSTANT_Long 5
+#define CONSTANT_Double 6
+#define CONSTANT_NameAndType 12
+#define CONSTANT_Utf8 1
+#define CONSTANT_Unicode 2
+
+#define CONSTANT_Unknown 0
+#define CONSTANT_Error 0
+#define CONSTANT_ResolvedString (16+CONSTANT_String)
+#define CONSTANT_ResolvedClass (16+CONSTANT_Class)
+#define CONSTANT_ResolvedMethod (16+CONSTANT_NameAndType)
+
+#define WORDS_TO_LONG(HI, LO) (((uint64)(HI) << 32)|(uint64)(uint32)(LO))
+
+#define WORD2UTF(WORD) ((Utf8Const*) (WORD))
+
+typedef uintp ConstSlot;
+
+typedef struct _constants {
+ u4 size;
+ u1* tags;
+ ConstSlot* data;
+} constants;
+
+
+
+/*
+ * Macros to take constant pools apart. XX prefix with CONST_
+ */
+#define CONST_TAG(idx, pool) (((idx) > 0 && (idx) < pool->size) ? pool->tags[idx] : CONSTANT_Unknown)
+
+#define CLASS_CLASS(idx, pool) ((Hjava_lang_Class*)pool->data[idx])
+
+#define CLASS_NAME(idx, pool) ((uint16)pool->data[idx])
+#define CONST_STRING_NAME(idx, pool) CLASS_NAME(idx, pool)
+
+/* the actual character string pointed to by the data */
+#define UNRESOLVED_CLASS_NAMED(idx, pool) (WORD2UTF(pool->data[idx])->data)
+#define RESOLVED_CLASS_NAMED(idx, pool) ((CLASS_CLASS(idx, pool))->name->data)
+
+#define CLASS_NAMED(idx, pool) ((pool->tags[idx] == CONSTANT_ResolvedClass || pool->tags[idx] == CONSTANT_ResolvedString) ? RESOLVED_CLASS_NAMED(idx, pool) : UNRESOLVED_CLASS_NAMED(idx, pool))
+
+#define CONST_STRING_NAMED(idx, pool) CLASS_NAMED(idx, pool)
+
+
+#define FIELDREF_CLASS(idx, pool) ((uint16)pool->data[idx])
+#define METHODREF_CLASS(idx, pool) FIELDREF_CLASS(idx, pool)
+#define INTERFACEMETHODREF_CLASS(idx, pool) FIELDREF_CLASS(idx, pool)
+
+#define FIELDREF_NAMEANDTYPE(idx, pool) ((uint16)(pool->data[idx] >> 16))
+#define METHODREF_NAMEANDTYPE(idx, pool) FIELDREF_NAMEANDTYPE(idx, pool)
+#define INTERFACEMETHODREF_NAMEANDTYPE(idx, pool) FIELDREF_NAMEANDTYPE(idx, pool)
+
+
+#define NAMEANDTYPE_NAME(idx, pool) ((uint16)pool->data[idx])
+#define NAMEANDTYPE_SIGNATURE(idx, pool) ((uint16)(pool->data[idx] >> 16))
+
+/* the actual character string pointed to by the data */
+#define NAMEANDTYPE_NAMED(idx, pool) (WORD2UTF(pool->data[NAMEANDTYPE_NAME(idx, pool)])->data)
+#define NAMEANDTYPE_SIGD(idx, pool) (WORD2UTF(pool->data[NAMEANDTYPE_SIGNATURE(idx, pool)])->data)
+
+
+#define FIELDREF_NAME(idx, pool) NAMEANDTYPE_NAME(FIELDREF_NAMEANDTYPE(idx, pool), pool)
+#define METHODREF_NAME(idx, pool) FIELDREF_NAME(idx, pool)
+#define INTERFACEMETHODREF_NAME(idx, pool) FIELDREF_NAME(idx, pool)
+
+/* the actual character string pointed to by the data */
+#define FIELDREF_NAMED(idx, pool) (WORD2UTF(pool->data[FIELDREF_NAME(idx, pool)])->data)
+#define METHODREF_NAMED(idx, pool) FIELDREF_NAMED(idx, pool)
+#define INTERFACEMETHODREF_NAMED(idx, pool) FIELDREF_NAMED(idx, pool)
+
+#define FIELDREF_SIGNATURE(idx, pool) NAMEANDTYPE_SIGNATURE(FIELDREF_NAMEANDTYPE(idx, pool), pool)
+#define METHODREF_SIGNATURE(idx, pool) FIELDREF_SIGNATURE(idx, pool)
+#define INTERFACEMETHODREF_SIGNATURE(idx, pool) FIELDREF_SIGNATURE(idx, pool)
+
+/* aliases...make more sense in certain situations, like type checking */
+#define FIELDREF_TYPE(idx, pool) FIELDREF_SIGNATURE(idx, pool)
+#define METHODREF_TYPE(idx, pool) FIELDREF_TYPE(idx, pool)
+#define INTERFACEMETHODREF_TYPE(idx, pool) FIELDREF_TYPE(idx, pool)
+
+/* the actual character string pointed to by the data */
+#define FIELDREF_SIGD(idx, pool) (WORD2UTF(pool->data[FIELDREF_SIGNATURE(idx, pool)])->data)
+#define METHODREF_SIGD(idx, pool) FIELDREF_SIGD(idx, pool)
+#define INTERFACEMETHODREF_SIGD(idx, pool) FIELDREF_SIGD(idx, pool)
+
+
+#define CONST_UTF2CHAR(idx, pool) ((pool->data[idx] != 0) ? (((Utf8Const*)pool->data[idx])->data) : "")
+
+
+
+struct classFile;
+struct _errorInfo;
+struct Hjava_lang_Class;
+
+extern bool readConstantPool(struct Hjava_lang_Class*, struct classFile*, struct _errorInfo*);
+
+#endif
Index: kaffe/kaffe/kaffevm/lookup.c
diff -u kaffe/kaffe/kaffevm/lookup.c:1.48 kaffe/kaffe/kaffevm/lookup.c:1.49
--- kaffe/kaffe/kaffevm/lookup.c:1.48 Sun Mar 19 16:16:21 2006
+++ kaffe/kaffe/kaffevm/lookup.c Mon Apr 17 17:57:07 2006
@@ -58,16 +58,29 @@
call->cname = NULL;
pool = CLASS_CONSTANTS(this);
+ if (idx >= CLASS_CONST_SIZE(this))
+ {
+ postExceptionMessage(einfo, JAVA_LANG(ClassFormatError), "invalid method name index");
+ return false;
+ }
+
if (pool->tags[idx] != CONSTANT_Methodref &&
pool->tags[idx] != CONSTANT_InterfaceMethodref) {
DBG(RESERROR, dprintf("No Methodref found for idx=%d\n", idx); );
/* shouldn't that be ClassFormatError or something? */
postExceptionMessage(einfo, JAVA_LANG(NoSuchMethodError),
- "method name unknown, tag = %d", pool->tags[idx]);
+ "method name unknown, tag = %d", pool->tags[idx]);
return (false);
}
ni = METHODREF_NAMEANDTYPE(idx, pool);
+ if (ni >= CLASS_CONST_SIZE(this))
+ {
+ postExceptionMessage(einfo, JAVA_LANG(ClassFormatError),
+ "invalid method name index");
+ return false;
+ }
+
name = WORD2UTF(pool->data[NAMEANDTYPE_NAME(ni, pool)]);
sig = WORD2UTF(pool->data[NAMEANDTYPE_SIGNATURE(ni, pool)]);
@@ -157,6 +170,13 @@
int tag;
pool = CLASS_CONSTANTS(this);
+
+ if (idx >= CLASS_CONST_SIZE(this))
+ {
+ postExceptionMessage(einfo, JAVA_LANG(ClassFormatError),
+ "invalid class name index");
+ return NULL;
+ }
tag = pool->tags[idx];
Index: kaffe/kaffe/kaffevm/readClass.c
diff -u kaffe/kaffe/kaffevm/readClass.c:1.27 kaffe/kaffe/kaffevm/readClass.c:1.28
--- kaffe/kaffe/kaffevm/readClass.c:1.27 Thu Apr 6 03:29:51 2006
+++ kaffe/kaffe/kaffevm/readClass.c Mon Apr 17 17:57:07 2006
@@ -203,8 +203,9 @@
constants* pool;
pool = CLASS_CONSTANTS (this);
-
- if (pool->tags[idx] != CONSTANT_Utf8) {
+
+ if (idx >= CLASS_CONST_SIZE (this) ||
+ pool->tags[idx] != CONSTANT_Utf8) {
postExceptionMessage(einfo, JAVA_LANG(ClassFormatError),
"invalid signature index: %d",
idx);
@@ -214,6 +215,36 @@
*signature = WORD2UTF (pool->data[idx]);
return true;
}
+
+static bool
+readEnclosingMethodAttribute(classFile *fp, u4 len, Hjava_lang_Class* this, errorInfo *einfo)
+{
+ u2 class_index, method_index;
+
+ if (len != 4)
+ {
+ postExceptionMessage(einfo, JAVA_LANG(ClassFormatError),
+ "invalid attribute size for %s",
+ CLASS_CNAME(this));
+ return false;
+ }
+
+ readu2(&class_index, fp);
+ readu2(&method_index, fp);
+
+ if (class_index >= CLASS_CONST_SIZE(this) || method_index >= CLASS_CONST_SIZE(this))
+ {
+ postExceptionMessage(einfo, JAVA_LANG(ClassFormatError),
+ "invalid constant index for %s",
+ CLASS_CNAME(this));
+ return false;
+ }
+
+ this->enclosingClassIndex = class_index;
+ this->enclosingMethodIndex = method_index;
+
+ return true;
+}
#endif /* !defined(KAFFEH) */
/*
@@ -306,6 +337,10 @@
}
}
#if !defined(KAFFEH)
+ else if (utf8ConstEqual(name, EnclosingMethod_name) && thingType == READATTR_CLASS) {
+ if (!readEnclosingMethodAttribute(fp, len, (struct Hjava_lang_Class*)thing, einfo))
+ return false;
+ }
else if (utf8ConstEqual(name, Synthetic_name)) {
switch (thingType)
{
Index: kaffe/kaffe/kaffevm/reflect.c
diff -u kaffe/kaffe/kaffevm/reflect.c:1.3 kaffe/kaffe/kaffevm/reflect.c:1.4
--- kaffe/kaffe/kaffevm/reflect.c:1.3 Mon May 30 21:16:03 2005
+++ kaffe/kaffe/kaffevm/reflect.c Mon Apr 17 17:57:08 2006
@@ -133,7 +133,7 @@
meth = (Hjava_lang_reflect_Method*)
AllocObject("java/lang/reflect/Method", NULL);
- unhand(meth)->clazz = clazz;
+ unhand(meth)->declaringClass = clazz;
unhand(meth)->slot = slot;
unhand(meth)->name = checkPtr(utf8Const2Java(mth->name));
unhand(meth)->parameterTypes = makeParameters(mth);
Index: kaffe/kaffe/kaffevm/jni/jni-helpers.c
diff -u kaffe/kaffe/kaffevm/jni/jni-helpers.c:1.12 kaffe/kaffe/kaffevm/jni/jni-helpers.c:1.13
--- kaffe/kaffe/kaffevm/jni/jni-helpers.c:1.12 Tue Dec 20 02:43:31 2005
+++ kaffe/kaffe/kaffevm/jni/jni-helpers.c Mon Apr 17 17:57:08 2006
@@ -116,7 +116,7 @@
method_local = unveil(method);
realMethod = (Hjava_lang_reflect_Method *)method_local;
- id = (jmethodID) &(unhand(realMethod)->clazz->methods[unhand(realMethod)->slot]);
+ id = (jmethodID) &(unhand(realMethod)->declaringClass->methods[unhand(realMethod)->slot]);
END_EXCEPTION_HANDLING();
Index: kaffe/libraries/clib/native/Class.c
diff -u kaffe/libraries/clib/native/Class.c:1.90 kaffe/libraries/clib/native/Class.c:1.91
--- kaffe/libraries/clib/native/Class.c:1.90 Thu Mar 30 17:39:18 2006
+++ kaffe/libraries/clib/native/Class.c Mon Apr 17 17:57:08 2006
@@ -39,7 +39,7 @@
* Convert string name to class object.
*/
struct Hjava_lang_Class*
-java_lang_VMClass_forName0(struct Hjava_lang_String* str, struct Hjava_lang_ClassLoader* loader)
+java_lang_VMClass_forName(struct Hjava_lang_String* str, jboolean initialize, struct Hjava_lang_ClassLoader* loader)
{
errorInfo einfo;
Hjava_lang_Class* clazz;
@@ -111,7 +111,7 @@
* was introduced in 1.2, presumably for the convenience of
* programs such as stub compilers.
*/
- if (processClass(clazz, CSTATE_COMPLETE, &einfo) == false) {
+ if (initialize && processClass(clazz, CSTATE_COMPLETE, &einfo) == false) {
throwError(&einfo);
}
return (clazz);
@@ -526,13 +526,184 @@
throwExternalException(throwable);
}
+jboolean
+java_lang_VMClass_isSynthetic (struct Hjava_lang_Class* klass)
+{
+ return (klass->accflags & ACC_SYNTHETIC) != 0;
+}
+jboolean
+java_lang_VMClass_isEnum(struct Hjava_lang_Class* klass)
+{
+ return (klass->accflags & ACC_ENUM) != 0;
+}
-void
-java_lang_VMClass_checkAccess (struct Hjava_lang_Class *clazz,
- struct Hjava_lang_Class *caller,
- jint flags)
+struct Hjava_lang_Class*
+java_lang_VMClass_getEnclosingClass(struct Hjava_lang_Class* klass)
{
- if (checkAccess (caller, clazz, flags) == 0)
- SignalError (JAVA_LANG(IllegalAccessException), NULL);
+ errorInfo einfo;
+ struct Hjava_lang_Class *enclosing;
+
+ if (klass->enclosingClassIndex == 0)
+ return NULL;
+
+ enclosing = getClass(klass->enclosingClassIndex, klass, &einfo);
+ if (enclosing == NULL)
+ discardErrorInfo(&einfo);
+
+ return enclosing;
+}
+
+struct Hjava_lang_reflect_Constructor*
+java_lang_VMClass_getEnclosingConstructor(struct Hjava_lang_Class* klass)
+{
+ errorInfo einfo;
+ constants *pool;
+ constIndex emi = klass->enclosingMethodIndex;
+ constIndex eci = klass->enclosingClassIndex;
+ constIndex ni;
+ Utf8Const *name, *sig;
+ Hjava_lang_Class *enclosingClass;
+ Method *method;
+ int methodSlot;
+
+ if (emi == 0)
+ return NULL;
+
+ pool = CLASS_CONSTANTS (klass);
+
+ enclosingClass = getClass(eci, klass, &einfo);
+ if (enclosingClass == NULL)
+ {
+ discardErrorInfo(&einfo);
+ return NULL;
+ }
+
+ switch (pool->tags[emi])
+ {
+ case CONSTANT_Methodref:
+ ni = METHODREF_NAMEANDTYPE(emi, pool);
+ name = WORD2UTF(pool->data[NAMEANDTYPE_NAME(ni, pool)]);
+ sig = WORD2UTF(pool->data[NAMEANDTYPE_SIGNATURE(ni, pool)]);
+ method = findMethodLocal(enclosingClass, name, sig);
+ if (method != NULL)
+ {
+ lockClass (klass);
+ if (pool->tags[emi] != CONSTANT_ResolvedMethod)
+ {
+ pool->tags[emi] = CONSTANT_ResolvedMethod;
*** Patch too long, truncated ***
More information about the kaffe
mailing list