Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
--- a/src/Java.st Wed Aug 10 22:22:53 2011 +0000
+++ b/src/Java.st Wed Aug 10 22:58:10 2011 +0000
@@ -932,7 +932,7 @@
ifTrue:
[ "cos I don't see any reason to do this"
"/ ^ str asOneByteString.
- ^ str asOneByteString. ].
+ ^ str ].
"/ offs := (aJavaString instVarNamed:'offset').
@@ -953,6 +953,7 @@
"Created: / 08-08-1997 / 12:02:55 / cg"
"Modified: / 04-01-1999 / 23:55:08 / cg"
"Modified: / 22-03-2011 / 17:21:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 10-08-2011 / 23:32:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
as_String:aString
--- a/src/JavaClassReader.st Wed Aug 10 22:22:53 2011 +0000
+++ b/src/JavaClassReader.st Wed Aug 10 22:58:10 2011 +0000
@@ -256,7 +256,7 @@
| rslt clsName cls loadedClass |
- clsName := aClassName.
+ clsName := aClassName utf8Encoded.
(clsName endsWith: ';')
ifTrue:
[ (clsName startsWith: '[L')
@@ -346,8 +346,8 @@
"Modified: / 14-08-1997 / 11:38:42 / stefan"
"Modified: / 17-09-1998 / 20:51:25 / cg"
- "Modified: / 18-03-2011 / 16:06:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 21-03-2011 / 12:42:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 10-08-2011 / 23:35:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
loadClassesIn: directory
@@ -1939,7 +1939,7 @@
!
readConstant_String
- | tag string_index chars jString |
+ | string_index chars jString |
string_index := inStream nextUnsignedShortMSB: msb.
Verbose
@@ -1956,7 +1956,7 @@
ifTrue:
[ chars := (constants at: string_index).
chars isString ifFalse: [ self halt: 'should not happen' ].
- jString := Java as_String: chars.
+ jString := JavaVM javaStringObjectForString:chars interned:true.
^ jString. ] ].
^ JavaUnresolvedStringConstant
pool: constants
@@ -1970,6 +1970,7 @@
"Created: / 15-04-1996 / 15:20:33 / cg"
"Modified: / 07-05-1998 / 11:42:45 / cg"
"Modified: / 13-05-2011 / 17:31:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
+ "Modified: / 10-08-2011 / 23:25:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readConstant_Unicode
--- a/src/JavaResolver.st Wed Aug 10 22:22:53 2011 +0000
+++ b/src/JavaResolver.st Wed Aug 10 22:58:10 2011 +0000
@@ -181,13 +181,16 @@
If steps 1 and 2 succeed but step 3 fails, C is still valid and usable. Nevertheless, resolution
fails, and D is prohibited from accessing C."
- (self checkPermissionsFrom: aJavaClassRef owner to: result)
+
+
+ "JV@2011-08-10: HACK FOR SAXON DEMO!!!!!!"
+ "(self checkPermissionsFrom: aJavaClassRef owner to: result)"true
ifTrue: [ ^ result ]
ifFalse: [ self throwIllegalAccessError ].
"Created: / 11-04-2011 / 19:07:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
"Modified: / 23-05-2011 / 21:11:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 06-08-2011 / 16:43:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-08-2011 / 23:53:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaResolver methodsFor:'class resolving helpers'!
--- a/src/JavaUnresolvedStringConstant.st Wed Aug 10 22:22:53 2011 +0000
+++ b/src/JavaUnresolvedStringConstant.st Wed Aug 10 22:58:10 2011 +0000
@@ -123,7 +123,7 @@
chars isString ifFalse:[
self halt:'should not happen'
].
- jString := Java as_String:chars.
+ jString := JavaVM javaStringObjectForString:chars interned:true.
"/constantPool owner == (Java at:'java/awt/Container') ifTrue:[
"/self halt
@@ -136,7 +136,8 @@
self rememberForResolveWith:'java/lang/String'.
^ self
- "Modified: 7.8.1997 / 21:17:23 / cg"
+ "Modified: / 07-08-1997 / 21:17:23 / cg"
+ "Modified: / 10-08-2011 / 23:28:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!JavaUnresolvedStringConstant class methodsFor:'documentation'!
--- a/src/JavaVM.st Wed Aug 10 22:22:53 2011 +0000
+++ b/src/JavaVM.st Wed Aug 10 22:58:10 2011 +0000
@@ -3504,7 +3504,7 @@
('JAVA: opening ' , name) infoPrintCR.
].
- fn := name asFilename.
+ fn := name utf8Decoded asFilename.
dir := fn directory pathName.
readonly := false.
@@ -3540,7 +3540,7 @@
].
stream := fn readStream.
] ifFalse:[
- fn exists ifTrue:[
+ fn exists ifFalse:[
^self throwFileNotFoundException: 'File does not exist'
].
fn isDirectory ifTrue:[
@@ -3569,7 +3569,7 @@
"Created: / 07-04-1998 / 19:14:09 / cg"
"Modified: / 04-01-1999 / 14:34:42 / cg"
- "Modified: / 10-08-2011 / 21:45:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-08-2011 / 23:49:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
fileStreamForReading:name
@@ -3996,9 +3996,10 @@
<javanative: 'java/io/FileOutputStream' name: 'openAppend'>
- ^ self commonOpen:nativeContext forAppend:true
-
- "Modified: / 7.4.1998 / 19:13:42 / cg"
+ ^ self commonOpen:nativeContext forAppend:true
+
+ "Modified: / 07-04-1998 / 19:13:42 / cg"
+ "Modified (format): / 10-08-2011 / 23:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
_java_io_FileOutputStream_write: nativeContext
@@ -4204,11 +4205,10 @@
<javanative: 'java/io/UnixFileSystem' name: 'canonicalize0'>
-
| path |
path := Java as_ST_String: (aJavaContext argAt: 1).
- ^(Java as_String: path asFilename asAbsoluteFilename pathName)
+ ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
"Created: / 10-12-2010 / 14:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
--- a/src/stx_libjava.st Wed Aug 10 22:22:53 2011 +0000
+++ b/src/stx_libjava.st Wed Aug 10 22:58:10 2011 +0000
@@ -211,7 +211,7 @@
#'stx:libview' "DisplaySurface - superclass of JavaView "
#'stx:libview2' "Plug - referenced by JavaSourceCodeCache>>findMethodLine:inMethods: "
#'stx:libwidg' "Label - referenced by JavaVM class>>processEvent: "
- #'stx:libwidg2' "MenuPanel - referenced by JavaVM class>>processEvent: "
+ #'stx:libwidg2' "ComboBoxView - referenced by JavaVM class>>processEvent: "
)
! !
@@ -227,7 +227,6 @@
"<className> or (<className> attributes...) in load order"
(AbstractJavaTestCase autoload)
Byte
- (JUnitTestCaseProxy autoload)
Java
JavaAnnotation
JavaAnnotationContainer
@@ -301,6 +300,7 @@
SmalltalkAppletContext
SmalltalkAppletStub
#'stx_libjava'
+ (JUnitTestCaseProxy autoload)
JavaAnnotationArrayValue
JavaAnnotationClassValue
JavaAnnotationEnumValue
@@ -427,6 +427,7 @@
'ShortFloat class' javaUnbox:
'SignedIntegerArray class' isInterface
'SignedIntegerArray class' isJavaArrayClass
+ 'SignedIntegerArray class' javaArrayClass
'SignedIntegerArray class' javaComponentClass
'SignedIntegerArray class' javaName
'SignedLongIntegerArray class' isInterface
@@ -439,6 +440,7 @@
'WordArray class' isInterface
'WordArray class' isJavaArrayClass
'WordArray class' isJavaReferenceType
+ 'WordArray class' javaArrayClass
'WordArray class' javaComponentClass
'WordArray class' javaName
)