# HG changeset patch # User vranyj1 # Date 1329998794 0 # Node ID 79eafebce880d5ef60b59ffb2f1e2eee09163670 # Parent c4b2cf1467c359cf4625706d11f737010ed10b93 Fixes... diff -r c4b2cf1467c3 -r 79eafebce880 src/Java.st --- a/src/Java.st Wed Feb 22 22:30:38 2012 +0000 +++ b/src/Java.st Thu Feb 23 12:06:34 2012 +0000 @@ -1318,12 +1318,14 @@ (sourceFile isNil or:[sourceFile exists not]) ifTrue:[ sourceFile := aClass sourceFile. - sourceFile notNil ifTrue:[ - package := aClass javaPackageAsDirname. - self effectiveSourceDirectories do:[:dir| - src := self classSource: sourceFile package: package in: dir. - src ifNotNil:[^src] - ] + sourceFile isNil ifTrue:[ + "Hmm, hmm...just a guess" + sourceFile := (aClass lastName upTo: $$) , '.java'. + ]. + package := aClass javaPackageAsDirname. + self effectiveSourceDirectories do:[:dir| + src := self classSource: sourceFile package: package in: dir. + src ifNotNil:[^src] ] ]. @@ -1335,7 +1337,7 @@ " "Modified: / 27-01-1999 / 20:40:30 / cg" - "Modified: / 18-02-2012 / 15:02:55 / Jan Vrany " + "Modified (format): / 23-02-2012 / 10:50:53 / Jan Vrany " ! ! !Java class methodsFor:'starting apps'! diff -r c4b2cf1467c3 -r 79eafebce880 src/JavaClassRegistry.st --- a/src/JavaClassRegistry.st Wed Feb 22 22:30:38 2012 +0000 +++ b/src/JavaClassRegistry.st Thu Feb 23 12:06:34 2012 +0000 @@ -279,11 +279,11 @@ classes := loaders at: newClass classLoader put: Dictionary new. ]. classes at: newClass name put: newClass. - Smalltalk changed: #newClass with: newClass. + "/Smalltalk changed: #newClass with: newClass. "Created: / 23-10-2011 / 11:53:58 / Jan Vrany " "Modified: / 02-11-2011 / 18:40:52 / Marcel Hlopko " - "Modified (format): / 20-02-2012 / 23:27:20 / Jan Vrany " + "Modified: / 23-02-2012 / 11:38:55 / Jan Vrany " ! ! !JavaClassRegistry class methodsFor:'documentation'! diff -r c4b2cf1467c3 -r 79eafebce880 src/JavaVM.st --- a/src/JavaVM.st Wed Feb 22 22:30:38 2012 +0000 +++ b/src/JavaVM.st Thu Feb 23 12:06:34 2012 +0000 @@ -2628,6 +2628,7 @@ ExceptionDebug must be set in order to ExceptionDebugPatterns work ExceptionDebug := true. + ExceptionDebug := false. ExceptionDebugPatterns add: 'java/lang/SecurityException*'. ExceptionDebugPatterns add: 'java/net/ConnectException*'. ExceptionDebugPatterns add: 'java/lang/IllegalArgumentException'. @@ -6833,76 +6834,94 @@ ^ Java intern:jString ! -_java_lang_System_arraycopy: nativeContext +_java_lang_System_arraycopy: nativeContext + - | srcArray srcIdx dstArray dstIdx srcArrayCC dstArrayCC count dstEndIdx | - srcArray := nativeContext argAt: 1. - srcArray isNil ifTrue: [ ^ self throwNullPointerException ]. - srcArray isJavaArray ifFalse: [ "mh 29.11.11 dirty ugly hack, pretend that java string is char array" - (self canCast:srcArray class to: (self classNamed:'java/lang/String')) ifTrue: [srcArray := srcArray instVarNamed: #value] ifFalse: [ - ^ self throwArrayStoreException: srcArray] ]. - srcIdx := nativeContext argAt: 2. - dstArray := nativeContext argAt: 3. - dstArray isNil ifTrue: [ ^ self throwNullPointerException ]. - dstArray isJavaArray ifFalse: [ ^ self throwArrayStoreException: dstArray ]. + + |srcArray srcIdx dstArray dstIdx srcArrayCC dstArrayCC count dstEndIdx| + + srcArray := nativeContext argAt:1. + srcArray isNil ifTrue:[ + ^ self throwNullPointerException + ]. + srcArray isJavaArray ifFalse:[ + ^ self throwArrayStoreException:srcArray + ]. + srcIdx := nativeContext argAt:2. + dstArray := nativeContext argAt:3. + dstArray isNil ifTrue:[ + ^ self throwNullPointerException + ]. + dstArray isJavaArray ifFalse:[ + ^ self throwArrayStoreException:dstArray + ]. + srcArrayCC := srcArray class javaComponentClass. dstArrayCC := dstArray class javaComponentClass. - srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType ifTrue: [ - srcArrayCC isJavaPrimitiveType ifTrue: [ - srcArrayCC ~~ dstArrayCC ifTrue: [ ^ self throwArrayStoreException: dstArray ] - ]. - ] ifFalse: [ ^ self throwArrayStoreException: dstArray ]. - dstIdx := nativeContext argAt: 4. - count := nativeContext argAt: 5. - count < 0 ifTrue: [ - ^ self throwArrayIndexOutOfBoundsException: (srcIdx + count - 1) - ]. - ((srcIdx < 0) or: [ srcIdx + count > srcArray size ]) ifTrue: [ - srcArray size == 0 ifTrue: [ - srcArray isVariable ifFalse: [ ^ self throwArrayStoreException: srcArray ] - ]. - ^ self throwArrayIndexOutOfBoundsException: (srcIdx + count - 1) - ]. - ((dstIdx < 0) or: [ dstIdx + count > dstArray size ]) ifTrue: [ - dstArray size == 0 ifTrue: [ - dstArray isVariable ifFalse: [ ^ self throwArrayStoreException: dstArray ] - ]. - ^ self throwArrayIndexOutOfBoundsException: (dstIdx + count - 1) - ]. + + srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType + ifTrue: + [srcArrayCC isJavaPrimitiveType + ifTrue: + [srcArrayCC ~~ dstArrayCC ifTrue: + [^ self throwArrayStoreException:dstArray]]. + ] + ifFalse: + [^ self throwArrayStoreException:dstArray]. + + dstIdx := nativeContext argAt:4. + count := nativeContext argAt:5. + + count < 0 ifTrue:[ + ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1) + ]. + + ((srcIdx < 0) or:[srcIdx + count > srcArray size]) ifTrue:[ + srcArray size == 0 ifTrue:[ + srcArray isVariable ifFalse:[ + ^ self throwArrayStoreException:srcArray + ] + ]. + ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1) + ]. + ((dstIdx < 0) or:[dstIdx + count > dstArray size]) ifTrue:[ + dstArray size == 0 ifTrue:[ + dstArray isVariable ifFalse:[ + ^ self throwArrayStoreException:dstArray + ] + ]. + ^ self throwArrayIndexOutOfBoundsException:(dstIdx + count - 1) + ]. + dstEndIdx := dstIdx + count. - dstIdx := dstIdx + 1. - srcIdx := srcIdx + 1. - (srcArray class isBytes and: [ dstArray class isBytes ]) ifTrue: [ - dstArray - replaceBytesFrom: dstIdx - to: dstEndIdx - with: srcArray - startingAt: srcIdx. - ] ifFalse: [ - dstArrayCC isJavaPrimitiveType ifFalse: [ + dstIdx := dstIdx + 1. "/ ST uses 1-based indexing + srcIdx := srcIdx + 1. "/ ST uses 1-based indexing + + + + (srcArray class isBytes and:[dstArray class isBytes]) ifTrue:[ + dstArray replaceBytesFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx. + ] ifFalse:[ + dstArrayCC isJavaPrimitiveType ifFalse:[ "Copy from array iff src=dst to avoid overwriting a data when copying" - srcArray == dstArray ifTrue: [ srcArray := srcArray copy ]. - 1 to: count do: [ - :i | + srcArray == dstArray ifTrue:[srcArray := srcArray copy]. + 1 to: count do:[:i| | obj | - obj := srcArray at: srcIdx + i - 1. - (obj notNil and: [ (self canCast: obj class to: dstArrayCC) not ]) ifTrue: [ - ^ self throwArrayStoreException: dstArray + + obj := srcArray at:srcIdx + i - 1. + + (obj notNil and:[(self canCast: obj class to: dstArrayCC) not]) ifTrue:[ + ^ self throwArrayStoreException:dstArray ]. - dstArray at: dstIdx + i - 1 put: (srcArray at: srcIdx + i - 1) + dstArray at: dstIdx + i - 1 put: (srcArray at:srcIdx + i - 1) ] - ] ifTrue: [ - dstArray - replaceFrom: dstIdx - to: dstEndIdx - with: srcArray - startingAt: srcIdx. + ] ifTrue:[ + dstArray replaceFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx. ] ]. ^ nil. "Modified: / 08-09-2011 / 15:25:43 / Jan Vrany " - "Modified: / 29-11-2011 / 12:17:17 / Marcel Hlopko " ! _java_lang_System_currentTimeMillis: nativeContext diff -r c4b2cf1467c3 -r 79eafebce880 src/Make.proto --- a/src/Make.proto Wed Feb 22 22:30:38 2012 +0000 +++ b/src/Make.proto Thu Feb 23 12:06:34 2012 +0000 @@ -1,7 +1,7 @@ # $Header$ # # DO NOT EDIT -# automagically generated from the projectDefinition: stx_libjava at 2012-02-22 22:28:11.486. +# automagically generated from the projectDefinition: stx_libjava at 2012-02-23 12:03:27.142. # # Warning: once you modify this file, do not rerun # stmkmp or projectDefinition-build again - otherwise, your changes are lost. diff -r c4b2cf1467c3 -r 79eafebce880 src/Make.spec --- a/src/Make.spec Wed Feb 22 22:30:38 2012 +0000 +++ b/src/Make.spec Thu Feb 23 12:06:34 2012 +0000 @@ -1,7 +1,7 @@ # $Header$ # # DO NOT EDIT -# automagically generated from the projectDefinition: stx_libjava at 2012-02-22 22:28:09.376. +# automagically generated from the projectDefinition: stx_libjava at 2012-02-23 12:03:25.659. # # Warning: once you modify this file, do not rerun # stmkmp or projectDefinition-build again - otherwise, your changes are lost. diff -r c4b2cf1467c3 -r 79eafebce880 src/bc.mak --- a/src/bc.mak Wed Feb 22 22:30:38 2012 +0000 +++ b/src/bc.mak Thu Feb 23 12:06:34 2012 +0000 @@ -1,7 +1,7 @@ # $Header$ # # DO NOT EDIT -# automagically generated from the projectDefinition: stx_libjava at 2012-02-22 22:28:12.634. +# automagically generated from the projectDefinition: stx_libjava at 2012-02-23 12:03:28.693. # # Warning: once you modify this file, do not rerun # stmkmp or projectDefinition-build again - otherwise, your changes are lost. diff -r c4b2cf1467c3 -r 79eafebce880 src/libjava.rc --- a/src/libjava.rc Wed Feb 22 22:30:38 2012 +0000 +++ b/src/libjava.rc Thu Feb 23 12:06:34 2012 +0000 @@ -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\b SWING Research Group, Czech Technical University In Prague\0" VALUE "ProductName", "Smalltalk/X\0" VALUE "ProductVersion", "6.2.1.1\0" - VALUE "ProductDate", "Wed, 22 Feb 2012 22:29:49 GMT\0" + VALUE "ProductDate", "Thu, 23 Feb 2012 12:05:38 GMT\0" END END