ArrayedCollection.st
changeset 14112 9fc40252441e
parent 14058 670252a21fb9
child 14615 4e5318533a06
--- a/ArrayedCollection.st	Sat Apr 21 17:23:45 2012 +0200
+++ b/ArrayedCollection.st	Sat Apr 21 17:45:38 2012 +0200
@@ -12,10 +12,10 @@
 "{ Package: 'stx:libbasic' }"
 
 SequenceableCollection subclass:#ArrayedCollection
-        instanceVariableNames:''
-        classVariableNames:''
-        poolDictionaries:''
-        category:'Collections-Abstract'
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Collections-Abstract'
 !
 
 !ArrayedCollection class methodsFor:'documentation'!
@@ -358,12 +358,11 @@
     "return a new instance of the receivers species with size
      nilled elements and any named instance variables copied."
 
-    "special case for Array, which has no named instance vars"
+    "Performance optimization for classes like Array, String, ...,
+     which have no named instance vars"
 
-    |cls|
-
-    (cls := self class) instSize == 0 ifTrue:[
-        ^ cls new:size
+    self class instSize == 0 ifTrue:[
+        ^ self species new:size
     ].
     ^ super copyEmptyAndGrow:size
 ! !
@@ -384,6 +383,7 @@
     "Modified: 18.7.1996 / 21:39:09 / cg"
 ! !
 
+
 !ArrayedCollection methodsFor:'printing & storing'!
 
 storeOn:aStream
@@ -502,5 +502,5 @@
 !ArrayedCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.62 2012-03-08 20:29:30 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.63 2012-04-21 15:45:38 stefan Exp $'
 ! !