Fixed getDeclaringClass() native.
Look for declaring class in InnerClasses attribute.
--- a/JavaClass.st Sun Aug 03 23:43:40 2014 +0100
+++ b/JavaClass.st Mon Aug 04 23:08:33 2014 +0100
@@ -689,6 +689,27 @@
^ constantPool
!
+declaringClass
+ | innerClassesAttr |
+
+ innerClassesAttr := self getAttribute: #InnerClasses.
+ innerClassesAttr notNil ifTrue:[
+ innerClassesAttr do:[:each |
+ each innerClassRef name = binaryName ifTrue:[
+ | declaringClassName |
+
+ declaringClassName := each outerClassRef name.
+ declaringClassName notNil ifTrue:[
+ ^ JavaVM classForName: declaringClassName definedBy: classLoader
+ ].
+ ]
+ ].
+ ].
+ ^ nil
+
+ "Created: / 04-08-2014 / 22:42:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
enclosingClass
| enclosingMethodAttr |
@@ -2409,9 +2430,10 @@
getAttribute:key
"get an attribute (by symbolic key)"
- ^ attributes at: key
+ ^ attributes at: key ifAbsent: nil
"Created: / 13-09-2013 / 00:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 04-08-2014 / 22:33:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
setAttribute:key to:aValue
@@ -3206,15 +3228,21 @@
!JavaClass::Attributes methodsFor:'accessing'!
at: name
+ ^ self at: name ifAbsent: [ self keyNotFoundError: 'No such key: ', name printString ]
+
+ "Created: / 13-09-2013 / 00:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 04-08-2014 / 22:29:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+at: name ifAbsent: block
1 to: self size by: 2 do:[:i|
(self basicAt: i) == name ifTrue:[
^ self basicAt: i + 1.
]
].
- ^ nil
-
- "Created: / 13-09-2013 / 00:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 13-09-2013 / 02:07:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ ^ block value
+
+ "Created: / 04-08-2014 / 22:28:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaClass::JavaClassVersionDiedHandler class methodsFor:'documentation'!
--- a/JavaInnerClasses.st Sun Aug 03 23:43:40 2014 +0100
+++ b/JavaInnerClasses.st Mon Aug 04 23:08:33 2014 +0100
@@ -98,6 +98,12 @@
^ accessFlags
!
+innerClassName
+ ^ innerClassRef name
+
+ "Created: / 04-08-2014 / 22:25:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
innerClassRef
^ innerClassRef
!
@@ -106,6 +112,12 @@
^ name
!
+outerClassName
+ ^ outerClassRef notNil ifTrue:[ outerClassRef name ] ifFalse: [ nil ]
+
+ "Created: / 04-08-2014 / 22:26:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
outerClassRef
^ outerClassRef
! !
@@ -125,9 +137,9 @@
!
setName: aString
- aString
+ name := aString
- "Created: / 16-10-2013 / 09:23:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 04-08-2014 / 22:50:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
setOuterClassRef: aJavaClassRef
--- a/JavaNativeMethodImpl_OpenJDK6.st Sun Aug 03 23:43:40 2014 +0100
+++ b/JavaNativeMethodImpl_OpenJDK6.st Mon Aug 04 23:08:33 2014 +0100
@@ -9959,45 +9959,25 @@
* @since JDK1.1
*/"
- | cls enclosingClsName enclosingCls |
+ | cls declaringClass |
cls := Reflection classForJavaClassObject: this.
(cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
- (cls binaryName includes: $$) ifFalse: [ ^ nil ].
- enclosingClsName := cls binaryName copyTo: (cls binaryName lastIndexOf: $$) - 1.
- enclosingCls := JavaVM classForName:enclosingClsName definedBy:nil.
- enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
- ^ Reflection javaClassObjectForClass: enclosingCls
-
- "Modified: / 07-02-2014 / 09:44:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ declaringClass := cls declaringClass.
+ declaringClass notNil ifTrue:[
+ ^ Reflection javaClassObjectForClass: declaringClass
+ ].
+ ^ nil
+
+ "Modified: / 04-08-2014 / 22:54:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Class_getDeclaringClass: this
<javanative: 'java/lang/Class' name: 'getDeclaringClass()Ljava/lang/Class;'>
- "
- /**
- * If the class or interface represented by this {@code Class} object
- * is a member of another class, returns the {@code Class} object
- * representing the class in which it was declared. This method returns
- * null if this class or interface is not a member of any other class. If
- * this {@code Class} object represents an array class, a primitive
- * type, or void,then this method returns null.
- *
- * @return the declaring class for this class
- * @since JDK1.1
- */"
-
- | cls enclosingClsName enclosingCls |
-
- cls := Reflection classForJavaClassObject: this.
- (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
- (cls binaryName includes: $$) ifFalse: [ ^ nil ].
- enclosingClsName := cls binaryName copyTo: (cls binaryName lastIndexOf: $$) - 1.
- enclosingCls := JavaVM classForName:enclosingClsName definedBy:nil.
- enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
- ^ Reflection javaClassObjectForClass: enclosingCls
-
- "Modified: / 07-11-2013 / 23:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
+ ^ self _java_lang_Class_getDeclaringClass0: this
+
+ "Modified: / 04-08-2014 / 22:39:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_lang_Class_getEnclosingMethod0: this
--- a/abbrev.stc Sun Aug 03 23:43:40 2014 +0100
+++ b/abbrev.stc Mon Aug 04 23:08:33 2014 +0100
@@ -3,7 +3,6 @@
# it provides information about a classes filename, category and especially namespace.
GroovyCompiler GroovyCompiler stx:libjava 'Languages-Groovy-Compiler' 0
GroovyEvaluator GroovyEvaluator stx:libjava 'Languages-Groovy-Compiler' 0
-GroovyEvaluatorTests GroovyEvaluatorTests stx:libjava 'Languages-Groovy-Tests' 1
GroovyLanguage GroovyLanguage stx:libjava 'Languages-Groovy-Support' 1
GroovySourceFileWriter GroovySourceFileWriter stx:libjava 'Languages-Groovy-Support' 0
JavaAnnotation JavaAnnotation stx:libjava 'Languages-Java-Reader-Support' 0
@@ -16,10 +15,8 @@
JavaBooleanArray JavaBooleanArray stx:libjava 'Languages-Java-Support' 0
JavaByte JavaByte stx:libjava 'Languages-Java-Support' 0
JavaByteCodeProcessor JavaByteCodeProcessor stx:libjava 'Languages-Java-Bytecode' 0
-JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
JavaClassAccessor JavaClassAccessor stx:libjava 'Languages-Java-Classes' 0
JavaClassEnvironment JavaClassEnvironment stx:libjava 'Languages-Java-Support' 0
-JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
JavaClassQuery JavaClassQuery stx:libjava 'Languages-Java-Classes' 1
JavaClassReloader JavaClassReloader stx:libjava 'Languages-Java-Support' 0
JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
@@ -32,26 +29,19 @@
JavaDescriptor JavaDescriptor stx:libjava 'Languages-Java-Support' 0
JavaError JavaError stx:libjava 'Languages-Java-Support' 1
JavaExceptionTable JavaExceptionTable stx:libjava 'Languages-Java-Support' 0
-JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
JavaField JavaField stx:libjava 'Languages-Java-Reader-Support' 0
JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
-JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
JavaInnerClasses JavaInnerClasses stx:libjava 'Languages-Java-Support' 0
-JavaJUnitTests JavaJUnitTests stx:libjava 'Languages-Java-Tests-Libraries' 1
JavaLanguage JavaLanguage stx:libjava 'Languages-Java-Support' 1
JavaLibraries JavaLibraries stx:libjava 'Languages-Java-Support' 0
JavaLibrariesResource JavaLibrariesResource stx:libjava 'Languages-Java-Tests' 1
JavaLocalVariableTable JavaLocalVariableTable stx:libjava 'Languages-Java-Support' 0
JavaLocalVariableTableEntry JavaLocalVariableTableEntry stx:libjava 'Languages-Java-Support' 0
JavaLookup JavaLookup stx:libjava 'Languages-Java-Interop' 0
-JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
-JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
JavaMonitor JavaMonitor stx:libjava 'Languages-Java-Support' 0
-JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
JavaNameAndType2 JavaNameAndType2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaNativeMemory JavaNativeMemory stx:libjava 'Languages-Java-Support' 0
-JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
JavaNioSupport JavaNioSupport stx:libjava 'Languages-Java-Support-Native' 0
JavaObject JavaObject stx:libjava 'Languages-Java-Classes' 0
JavaObjectDictionary JavaObjectDictionary stx:libjava 'Languages-Java-Support' 0
@@ -59,9 +49,7 @@
JavaPopUpView JavaPopUpView stx:libjava 'Languages-Java-Views-Support' 2
JavaProcess JavaProcess stx:libjava 'Languages-Java-Classes' 0
JavaRef2 JavaRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaRelease JavaRelease stx:libjava 'Languages-Java-Support' 1
-JavaReleaseTests JavaReleaseTests stx:libjava 'Languages-Java-Tests' 1
JavaResolver JavaResolver stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaShort JavaShort stx:libjava 'Languages-Java-Support' 0
JavaSlotIndexCache JavaSlotIndexCache stx:libjava 'Languages-Java-Support' 0
@@ -71,7 +59,6 @@
JavaTestCaseProxy JavaTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
JavaTestsLoader JavaTestsLoader stx:libjava 'Languages-Java-Tests' 0
JavaTopView JavaTopView stx:libjava 'Languages-Java-Views-Support' 2
-JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
JavaUnresolvedCompilationError JavaUnresolvedCompilationError stx:libjava 'Languages-Java-Support' 1
JavaUnresolvedConstant JavaUnresolvedConstant stx:libjava 'Languages-Java-Reader-Support' 0
JavaUtilities JavaUtilities stx:libjava 'Languages-Java-Utilities' 0
@@ -96,15 +83,12 @@
JavaAnnotationPrimitiveValue JavaAnnotationPrimitiveValue stx:libjava 'Languages-Java-Reader-Support' 0
JavaBehavior JavaBehavior stx:libjava 'Languages-Java-Classes' 0
JavaByteCodeDisassembler JavaByteCodeDisassembler stx:libjava 'Languages-Java-Bytecode' 0
-JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
JavaByteCodeEnumerator JavaByteCodeEnumerator stx:libjava 'Languages-Java-Support-Decompiling' 0
JavaByteCodeProcessorAdapter JavaByteCodeProcessorAdapter stx:libjava 'Languages-Java-Bytecode' 0
JavaClassAnnotationContainer JavaClassAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaClassMemberRef2 JavaClassMemberRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaClassReader JavaClassReader stx:libjava 'Languages-Java-Support' 0
-JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaClassRef2 JavaClassRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaClassRegistry JavaClassRegistry stx:libjava 'Languages-Java-Support' 0
JavaCodeBundle JavaCodeBundle stx:libjava 'Languages-Java-Support-Libraries' 0
JavaCodeLibrary JavaCodeLibrary stx:libjava 'Languages-Java-Support-Libraries' 0
@@ -112,21 +96,16 @@
JavaFieldAnnotationContainer JavaFieldAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaFieldDescriptor JavaFieldDescriptor stx:libjava 'Languages-Java-Support' 0
JavaFieldDescriptorWithUnionType JavaFieldDescriptorWithUnionType stx:libjava 'Languages-Java-Support' 0
-JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
-JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaInvalidRefError JavaInvalidRefError stx:libjava 'Languages-Java-Support' 1
JavaInvokeDynamic2 JavaInvokeDynamic2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaMethod JavaMethod stx:libjava 'Languages-Java-Classes' 0
JavaMethodAnnotationContainer JavaMethodAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
JavaMethodDescriptor JavaMethodDescriptor stx:libjava 'Languages-Java-Support' 0
JavaMethodHandle2 JavaMethodHandle2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaMethodType2 JavaMethodType2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-Java 6' 0
-JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
-JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
JavaStringRef2 JavaStringRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
JavaUnhandledExceptionError JavaUnhandledExceptionError stx:libjava 'Languages-Java-Support' 1
@@ -138,7 +117,6 @@
ProxyMethodGuardNode ProxyMethodGuardNode stx:libjava 'System-Compiler-Interop' 0
ProxyMethodInvocationNode ProxyMethodInvocationNode stx:libjava 'System-Compiler-Interop' 0
ProxyMethodJavaFieldAccessor ProxyMethodJavaFieldAccessor stx:libjava 'Languages-Java-Interop' 0
-TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
JavaAlienMirror JavaAlienMirror stx:libjava 'Languages-Java-Classes' 0
JavaArrayMirror JavaArrayMirror stx:libjava 'Languages-Java-Classes' 0
JavaByteCodePreresolver JavaByteCodePreresolver stx:libjava 'Languages-Java-Bytecode' 0
@@ -168,3 +146,25 @@
ProxyMethodJavaTypeCheckNode ProxyMethodJavaTypeCheckNode stx:libjava 'Languages-Java-Interop' 0
JavaNativeMethod JavaNativeMethod stx:libjava 'Languages-Java-Classes' 0
JavaNativeMethodImpl_OracleJDK8 JavaNativeMethodImpl_OracleJDK8 stx:libjava 'Languages-Java-Support-Java 8' 0
+GroovyEvaluatorTests GroovyEvaluatorTests stx:libjava 'Languages-Groovy-Tests' 1
+JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
+JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
+JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
+JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
+JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
+JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaJUnitTests JavaJUnitTests stx:libjava 'Languages-Java-Tests-Libraries' 1
+JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
+JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
+JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
+JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
+JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
+JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaReleaseTests JavaReleaseTests stx:libjava 'Languages-Java-Tests' 1
+JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
+TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
--- a/experiments/Make.proto Sun Aug 03 23:43:40 2014 +0100
+++ b/experiments/Make.proto Mon Aug 04 23:08:33 2014 +0100
@@ -137,6 +137,8 @@
cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
--- a/experiments/bc.mak Sun Aug 03 23:43:40 2014 +0100
+++ b/experiments/bc.mak Mon Aug 04 23:08:33 2014 +0100
@@ -54,6 +54,8 @@
pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd .. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
--- a/experiments/experiments.rc Sun Aug 03 23:43:40 2014 +0100
+++ b/experiments/experiments.rc Mon Aug 04 23:08:33 2014 +0100
@@ -3,7 +3,7 @@
// automagically generated from the projectDefinition: stx_libjava_experiments.
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 6,2,12886,12886
+ FILEVERSION 6,2,32767,32767
PRODUCTVERSION 6,2,4,0
#if (__BORLANDC__)
FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
BEGIN
VALUE "CompanyName", "eXept Software AG\0"
VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
- VALUE "FileVersion", "6.2.12886.12886\0"
+ VALUE "FileVersion", "6.2.32767.32767\0"
VALUE "InternalName", "stx:libjava/experiments\0"
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2014\nCopyright eXept Software AG 1998-2014\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Wed, 25 Jun 2014 12:45:30 GMT\0"
+ VALUE "ProductDate", "Mon, 04 Aug 2014 22:07:11 GMT\0"
END
END
--- a/experiments/stx_libjava_experiments.st Sun Aug 03 23:43:40 2014 +0100
+++ b/experiments/stx_libjava_experiments.st Mon Aug 04 23:08:33 2014 +0100
@@ -76,8 +76,8 @@
by searching along the inheritance chain of all of my classes."
^ #(
- #'stx:libbasic' "Autoload - superclass of Benchmarks::JavaLookup "
- #'stx:libjava' "Java - superclass of JavaMethodWrapperCompiler "
+ #'stx:libbasic' "Autoload - superclass of Benchmarks::JavaLookup"
+ #'stx:libjava' "Java - superclass of JavaMethodWrapperCompiler"
)
!
--- a/libjava.rc Sun Aug 03 23:43:40 2014 +0100
+++ b/libjava.rc Mon Aug 04 23:08:33 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\n SWING Research Group, Czech Technical University In Prague\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Fri, 25 Jul 2014 00:47:34 GMT\0"
+ VALUE "ProductDate", "Mon, 04 Aug 2014 22:07:06 GMT\0"
END
END
--- a/stx_libjava.st Sun Aug 03 23:43:40 2014 +0100
+++ b/stx_libjava.st Mon Aug 04 23:08:33 2014 +0100
@@ -160,7 +160,7 @@
by searching along the inheritance chain of all of my classes."
^ #(
- #'stx:goodies/sunit' "TestAsserter - superclass of GroovyEvaluatorTests"
+ #'stx:goodies/sunit' "TestAsserter - superclass of JUnitTestCaseProxy"
#'stx:libbasic' "AbstractNumberVector - extended"
#'stx:libbasic2' "SignedIntegerArray - extended"
#'stx:libbasic3' "SystemEnvironment - superclass of JavaClassEnvironment"
@@ -308,7 +308,6 @@
"<className> or (<className> attributes...) in load order"
GroovyCompiler
GroovyEvaluator
- (GroovyEvaluatorTests autoload)
GroovyLanguage
GroovySourceFileWriter
JavaAnnotation
@@ -321,10 +320,8 @@
JavaBooleanArray
JavaByte
JavaByteCodeProcessor
- (JavaByteCodeProcessorTests autoload)
JavaClassAccessor
JavaClassEnvironment
- (JavaClassLoadingTests autoload)
JavaClassQuery
JavaClassReloader
JavaCodeLibraryOrBundle
@@ -337,26 +334,19 @@
JavaDescriptor
JavaError
JavaExceptionTable
- (JavaExceptionTests autoload)
JavaField
JavaFinalizationRegistry
- (JavaFreshlyInitializedResource autoload)
JavaInnerClasses
- (JavaJUnitTests autoload)
JavaLanguage
JavaLibraries
(JavaLibrariesResource autoload)
JavaLocalVariableTable
JavaLocalVariableTableEntry
JavaLookup
- (JavaLookupResolutionAlgorithmTests autoload)
- (JavaLookupTests autoload)
JavaMetaclass
JavaMonitor
- (JavaMonitorsTests autoload)
JavaNameAndType2
JavaNativeMemory
- (JavaNativeMemoryTests autoload)
JavaNioSupport
JavaObject
JavaObjectDictionary
@@ -364,9 +354,7 @@
JavaPopUpView
JavaProcess
JavaRef2
- (JavaRefsAndConstantPoolTestCase autoload)
JavaRelease
- (JavaReleaseTests autoload)
JavaResolver
JavaShort
JavaSlotIndexCache
@@ -376,7 +364,6 @@
(JavaTestCaseProxy autoload)
JavaTestsLoader
JavaTopView
- (JavaUTF8Tests autoload)
JavaUnresolvedCompilationError
JavaUnresolvedConstant
JavaUtilities
@@ -401,15 +388,12 @@
JavaAnnotationPrimitiveValue
JavaBehavior
JavaByteCodeDisassembler
- (JavaByteCodeDisassemblerTests autoload)
JavaByteCodeEnumerator
JavaByteCodeProcessorAdapter
JavaClassAnnotationContainer
JavaClassMemberRef2
JavaClassReader
- (JavaClassReaderTests autoload)
JavaClassRef2
- (JavaClassRefTests autoload)
JavaClassRegistry
JavaCodeBundle
JavaCodeLibrary
@@ -417,21 +401,16 @@
JavaFieldAnnotationContainer
JavaFieldDescriptor
JavaFieldDescriptorWithUnionType
- (JavaFieldRefTests autoload)
(JavaInitializedResource autoload)
- (JavaInterfaceMethodRefTests autoload)
JavaInvalidRefError
JavaInvokeDynamic2
JavaMethod
JavaMethodAnnotationContainer
JavaMethodDescriptor
JavaMethodHandle2
- (JavaMethodRefTests autoload)
JavaMethodType2
JavaMirror
#'JavaNativeMethodImpl_OpenJDK6'
- (JavaRefMock autoload)
- (JavaRuntimeConstantPoolTests autoload)
JavaStringRef2
(JavaTestsResource autoload)
JavaUnhandledExceptionError
@@ -443,7 +422,6 @@
ProxyMethodGuardNode
ProxyMethodInvocationNode
ProxyMethodJavaFieldAccessor
- (TestletTestCaseProxy autoload)
JavaAlienMirror
JavaArrayMirror
JavaByteCodePreresolver
@@ -473,6 +451,28 @@
ProxyMethodJavaTypeCheckNode
JavaNativeMethod
#'JavaNativeMethodImpl_OracleJDK8'
+ (GroovyEvaluatorTests autoload)
+ (JavaByteCodeDisassemblerTests autoload)
+ (JavaByteCodeProcessorTests autoload)
+ (JavaClassLoadingTests autoload)
+ (JavaClassReaderTests autoload)
+ (JavaClassRefTests autoload)
+ (JavaExceptionTests autoload)
+ (JavaFieldRefTests autoload)
+ (JavaFreshlyInitializedResource autoload)
+ (JavaInterfaceMethodRefTests autoload)
+ (JavaJUnitTests autoload)
+ (JavaLookupResolutionAlgorithmTests autoload)
+ (JavaLookupTests autoload)
+ (JavaMethodRefTests autoload)
+ (JavaMonitorsTests autoload)
+ (JavaNativeMemoryTests autoload)
+ (JavaRefMock autoload)
+ (JavaRefsAndConstantPoolTestCase autoload)
+ (JavaReleaseTests autoload)
+ (JavaRuntimeConstantPoolTests autoload)
+ (JavaUTF8Tests autoload)
+ (TestletTestCaseProxy autoload)
)
!
--- a/tests/libjava/src/stx/libjava/tests/lang/ReflectionTests.java Sun Aug 03 23:43:40 2014 +0100
+++ b/tests/libjava/src/stx/libjava/tests/lang/ReflectionTests.java Mon Aug 04 23:08:33 2014 +0100
@@ -183,5 +183,81 @@
assertEquals(ca[0].getClass().getComponentType(), Character.TYPE);
assertEquals(oa[0].getClass().getComponentType(), Object.class);
}
+
+ public static class NestedClassL1 {
+ protected Object o1;
+
+ public static class NestedClassL2 {
+
+ }
+
+ public NestedClassL1() {
+ o1 = new Object() { public int hashCode() { return 10; } };
+ }
+
+ public Object getO1() {
+ return o1;
+ }
+
+ public Object getO2() {
+ return new Object() { public int hashCode() { return 20; } };
+ }
+
+
+ }
+
+ @Test
+ public void test_getEnclosingClass_01() {
+ assertEquals(this.getClass(), NestedClassL1.class.getEnclosingClass() );
+ assertEquals(NestedClassL1.class, NestedClassL1.NestedClassL2.class.getEnclosingClass() );
+ }
+
+ @Test
+ public void test_getEnclosingClass_02() {
+ Object o = new Object() { public int hashCode() { return 10; } };
+ assertEquals(this.getClass(), o.getClass().getEnclosingClass() );
+ }
+
+ @Test
+ public void test_getEnclosingMethod_01() {
+ Object o1 = (new NestedClassL1()).getO1();
+ Object o2 = (new NestedClassL1()).getO2();
+
+ assertEquals(null, o1.getClass().getEnclosingMethod());
+ try {
+ assertEquals(NestedClassL1.class.getDeclaredMethod("getO2", new Class[0]), o2.getClass().getEnclosingMethod());
+ } catch (SecurityException e) {
+ fail();
+ } catch (NoSuchMethodException e) {
+ fail();
+ }
+ }
+
+ @Test
+ public void test_getEnclosingConstructor_01() {
+ Object o1 = (new NestedClassL1()).getO1();
+ Object o2 = (new NestedClassL1()).getO2();
+
+ try {
+ assertEquals(NestedClassL1.class.getDeclaredConstructor(new Class[0]), o1.getClass().getEnclosingConstructor());
+ } catch (SecurityException e) {
+ fail();
+ } catch (NoSuchMethodException e) {
+ fail();
+ }
+ assertEquals(null, o2.getClass().getEnclosingConstructor());
+ }
+
+ @Test
+ public void test_isAnonymous() {
+ Object o1 = (new NestedClassL1()).getO1();
+ Object o2 = (new NestedClassL1()).getO2();
+
+ assertTrue(o1.getClass().isAnonymousClass());
+ assertTrue(o2.getClass().isAnonymousClass());
+ assertFalse(this.getClass().isAnonymousClass());
+ assertFalse(NestedClassL1.class.isAnonymousClass());
+ }
+
}
--- a/tools/Make.proto Sun Aug 03 23:43:40 2014 +0100
+++ b/tools/Make.proto Mon Aug 04 23:08:33 2014 +0100
@@ -34,7 +34,7 @@
# add the path(es) here:,
# ********** OPTIONAL: MODIFY the next lines ***
# LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/smallsense -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libjava -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg2
# if you need any additional defines for embedded C code,
@@ -140,9 +140,10 @@
cd ../../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd ../../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
- cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
- cd ../../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
cd ../../libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
--- a/tools/bc.mak Sun Aug 03 23:43:40 2014 +0100
+++ b/tools/bc.mak Mon Aug 04 23:08:33 2014 +0100
@@ -34,7 +34,7 @@
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\smallsense -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libjava -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg2
LOCALDEFINES=
STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
@@ -57,9 +57,10 @@
pushd ..\..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd .. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
- pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
- pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
pushd ..\..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
--- a/tools/stx_libjava_tools.st Sun Aug 03 23:43:40 2014 +0100
+++ b/tools/stx_libjava_tools.st Mon Aug 04 23:08:33 2014 +0100
@@ -30,12 +30,12 @@
by searching along the inheritance chain of all of my classes."
^ #(
- #'stx:libbasic' "Autoload - superclass of JavaCompilerTests "
- #'stx:libjava' "JavaObject - extended "
- #'stx:libtool' "AbstractSettingsApplication - superclass of JavaSettingsApplication "
- #'stx:libview' "DisplaySurface - superclass of JavaListInspectorView "
- #'stx:libview2' "ApplicationModel - extended "
- #'stx:libwidg2' "HierarchicalItem - superclass of JavaCodeBundleEditor::Item "
+ #'stx:libbasic' "Autoload - superclass of JavaCompilerTests"
+ #'stx:libjava' "JavaObject - extended"
+ #'stx:libtool' "AbstractSettingsApplication - superclass of JavaSettingsApplication"
+ #'stx:libview' "DisplaySurface - superclass of JavaListInspectorView"
+ #'stx:libview2' "ApplicationModel - extended"
+ #'stx:libwidg2' "HierarchicalItem - superclass of JavaCodeBundleEditor::Item"
)
!
@@ -47,8 +47,9 @@
by searching all classes (and their packages) which are referenced by my classes."
^ #(
- #'stx:libbasic2' "BackgroundQueueProcessingJob - referenced by JavaSourceDocument class>>initialize "
- #'stx:libcomp' "ParseError - referenced by JavaScannerBase>>syntaxError:position:to: "
+ #'stx:goodies/smallsense' "SmallSense::ParseTreeIndex - referenced by JavaSyntaxHighlighter>>formatClassDefinition:in:"
+ #'stx:libbasic2' "BackgroundQueueProcessingJob - referenced by JavaSourceDocument class>>initialize"
+ #'stx:libcomp' "ParseError - referenced by JavaScannerBase>>syntaxError:position:to:"
)
!
--- a/tools/tools.rc Sun Aug 03 23:43:40 2014 +0100
+++ b/tools/tools.rc Mon Aug 04 23:08:33 2014 +0100
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
VALUE "ProductName", "Smalltalk/X\0"
VALUE "ProductVersion", "6.2.4.0\0"
- VALUE "ProductDate", "Thu, 24 Jul 2014 20:13:26 GMT\0"
+ VALUE "ProductDate", "Mon, 04 Aug 2014 22:07:14 GMT\0"
END
END