--- a/src/JavaDescriptor.st Wed Oct 12 15:17:47 2011 +0000
+++ b/src/JavaDescriptor.st Sat Oct 15 21:33:35 2011 +0000
@@ -206,30 +206,41 @@
"Modified: / 10-08-2011 / 00:48:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaDescriptor class methodsFor:'queries'!
+
+isJavaPrimitiveArrayName: className
+ | justTypeSymbol |
+
+ (className startsWith: $[) ifTrue: [
+ justTypeSymbol := className copyFrom: ((className lastIndexOf: $[) + 1)
+ to: className size
+ ] ifFalse: [ ^ false ].
+ ^( justTypeSymbol size = 1 )
+ and: [BaseTypes includesKey: justTypeSymbol first].
+! !
+
!JavaDescriptor class methodsFor:'reading-private'!
-readArrayTypeFrom: stream onError: exceptionBlock
+readArrayTypeFrom: stream onError: exceptionBlock
+ | p c |
- | p c |
stream next. "eat $["
p := stream peek.
- (#(
- $B "byte"
- $C "char"
- $D "double"
- $F "float"
- $I "int"
- $J "long"
- $S "short"
- $Z "boolean"
- ) includes: p) ifTrue:[^JavaFieldDescriptor javaClass: (ArrayTypes at: stream next)].
-
- "OK, not a primitive array..."
+ "byte" "char" "double" "float" "int" "long" "short" "boolean" (#( $B
+ $C
+ $D
+ $F
+ $I
+ $J
+ $S
+ $Z ) includes: p) ifTrue: [
+ ^ JavaFieldDescriptor javaClass: (ArrayTypes at: stream next)
+ ].
+ "OK, not a primitive array..."
c := self readFrom: stream onError: exceptionBlock.
- ^JavaFieldDescriptor javaClass: (JavaVM javaArrayClassFor: c javaClass)
-
- "Created: / 25-11-2010 / 18:12:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 06-02-2011 / 23:15:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ ^ JavaFieldDescriptor javaClass: (JavaVM javaArrayClassFor: c javaClass)
+ "Created: / 25-11-2010 / 18:12:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 06-02-2011 / 23:15:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readBaseTypeFrom: stream onError: exceptionBlock