src/JavaDescriptor.st
branchjk_new_structure
changeset 1021 8ae6c261878a
parent 912 e651488f5741
child 1063 380dfb73097a
--- 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