# HG changeset patch # User vranyj1 # Date 1313017090 0 # Node ID fea23aa2b22823974e81f14890b7e9c544d67022 # Parent d03d9e05c581348a22ca765b7cabdeb29774e8f9 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine... diff -r d03d9e05c581 -r fea23aa2b228 src/Java.st --- 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 " + "Modified: / 10-08-2011 / 23:32:32 / Jan Vrany " ! as_String:aString diff -r d03d9e05c581 -r fea23aa2b228 src/JavaClassReader.st --- 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 " "Modified: / 21-03-2011 / 12:42:12 / Marcel Hlopko " + "Modified: / 10-08-2011 / 23:35:19 / Jan Vrany " ! 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 " + "Modified: / 10-08-2011 / 23:25:53 / Jan Vrany " ! readConstant_Unicode diff -r d03d9e05c581 -r fea23aa2b228 src/JavaResolver.st --- 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 " "Modified: / 23-05-2011 / 21:11:32 / Marcel Hlopko " - "Modified: / 06-08-2011 / 16:43:06 / Jan Vrany " + "Modified: / 10-08-2011 / 23:53:22 / Jan Vrany " ! ! !JavaResolver methodsFor:'class resolving helpers'! diff -r d03d9e05c581 -r fea23aa2b228 src/JavaUnresolvedStringConstant.st --- 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 " ! ! !JavaUnresolvedStringConstant class methodsFor:'documentation'! diff -r d03d9e05c581 -r fea23aa2b228 src/JavaVM.st --- 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 " + "Modified: / 10-08-2011 / 23:49:25 / Jan Vrany " ! fileStreamForReading:name @@ -3996,9 +3996,10 @@ - ^ 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 " ! _java_io_FileOutputStream_write: nativeContext @@ -4204,11 +4205,10 @@ - | 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 " ! diff -r d03d9e05c581 -r fea23aa2b228 src/stx_libjava.st --- 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 @@ " or ( 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 )