comments in copy methods
authorClaus Gittinger <cg@exept.de>
Tue, 08 Jun 2004 12:30:22 +0200
changeset 8383 dea5311899c5
parent 8382 c3fe9de270ad
child 8384 8b1ae350bcc1
comments in copy methods
Object.st
Smalltalk.st
String.st
Symbol.st
UndefinedObject.st
--- a/Object.st	Mon Jun 07 17:43:23 2004 +0200
+++ b/Object.st	Tue Jun 08 12:30:22 2004 +0200
@@ -610,8 +610,7 @@
 !
 
 veryDeepCopy
-
-     ^(self deepCopyUsing:(IdentityDictionary new)) postDeepCopyFrom:self
+     ^ self deepCopyUsing:(IdentityDictionary new)
 ! !
 
 !Object methodsFor:'Compatibility-VW'!
@@ -2347,7 +2346,7 @@
 
 cloneFrom:anObject performing:aSymbol
     "Helper for copy:
-     for each instance variables from anObject, send it aSymbol
+     for each instance variable from anObject, send it aSymbol
      and store the result into the receiver,
      which should be of the same class as the argument."
 
@@ -2357,7 +2356,7 @@
     myClass isVariable ifTrue:[
         sz := self basicSize.
 
-        "copy the indexed variables"
+        "process the indexed instance variables"
         1 to:sz do:[:i | 
             t := anObject basicAt:i.
             aSymbol ~~ #yourself ifTrue:[
@@ -2367,7 +2366,7 @@
         ]
     ].
 
-    "copy the instance variables"
+    "process the named instance variables"
     sz := myClass instSize.
     1 to:sz do:[:i | 
         t := anObject instVarAt:i.
@@ -2378,7 +2377,6 @@
     ].
 
     ^ self
-
 !
 
 cloneInstanceVariablesFrom:aPrototype
@@ -2473,7 +2471,7 @@
     "a controlled deepCopy, where the number of levels can be specified.
      Notice: 
          This method DOES NOT handle cycles/self-refs and does NOT preserve object identity; 
-         i.e. identical references in the source are copied multiple into the copy."
+         i.e. identical references in the source are copied multiple times into the copy."
 
     |newObject class index|
 
@@ -2551,7 +2549,7 @@
      which avoids this overhead (but may run into trouble).
      Notice, that deepCopy does not copy dependents."
 
-    ^ (self deepCopyUsing:(IdentityDictionary new)) postDeepCopyFrom:self
+    ^ self deepCopyUsing:(IdentityDictionary new)
 
     "an example which is not handled by the old deepCopy:
     
@@ -2615,7 +2613,7 @@
                     "/ changed to use dict-at:ifAbsent:, to avoid double lookup in dictionary
                     iCopy := aDictionary at:iOrig ifAbsent:nil.
                     iCopy isNil ifTrue:[
-                        iCopy := (iOrig deepCopyUsing:aDictionary) postDeepCopy
+                        iCopy := iOrig deepCopyUsing:aDictionary
                     ].
                     aCopy basicAt:i put:iCopy
                 ]
@@ -2633,12 +2631,13 @@
             iOrig notNil ifTrue:[
                 iCopy := aDictionary at:iOrig ifAbsent:nil.
                 iCopy isNil ifTrue:[
-                    iCopy := (iOrig deepCopyUsing:aDictionary) postDeepCopy
+                    iCopy := iOrig deepCopyUsing:aDictionary
                 ].
                 aCopy instVarAt:i put:iCopy
             ]
         ]
     ].
+    aCopy postDeepCopyFrom:self.
     ^ aCopy
 
     "
@@ -2775,8 +2774,7 @@
      no recursive references occur (LargeIntegers for example).
      NOTICE: you will run into trouble, when trying this with recursive
      objects (usually recursionInterrupt or memory-alert).
-     This method corresponds to the 'traditional' deepCopy found in
-     the Blue book."
+     This method corresponds to the 'traditional' deepCopy found in the Blue book."
 
     |myClass aCopy|
 
@@ -9152,7 +9150,7 @@
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.498 2004-06-07 09:30:26 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.499 2004-06-08 10:28:42 cg Exp $'
 ! !
 
 Object initialize!
--- a/Smalltalk.st	Mon Jun 07 17:43:23 2004 +0200
+++ b/Smalltalk.st	Tue Jun 08 12:30:22 2004 +0200
@@ -1421,7 +1421,8 @@
 !
 
 deepCopyUsing:aDictionary
-    "redefined to return self - there is only one Smalltalk dictionary"
+    "return a deep copy of the receiver.
+     Redefined to return the receiver - there is only one Smalltalk dictionary"
 
     ^ self
 
@@ -6381,5 +6382,5 @@
 !Smalltalk class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.646 2004-06-07 15:26:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Smalltalk.st,v 1.647 2004-06-08 10:29:31 cg Exp $'
 ! !
--- a/String.st	Mon Jun 07 17:43:23 2004 +0200
+++ b/String.st	Tue Jun 08 12:30:22 2004 +0200
@@ -2281,7 +2281,7 @@
 !
 
 deepCopyUsing:aDictionary
-    "return a copy of the receiver - reimplemented to be a bit faster"
+    "return a deep copy of the receiver - reimplemented to be a bit faster"
 
     "
      could be an instance of a subclass which needs deepCopy
@@ -3303,9 +3303,8 @@
 
 ! !
 
-
 !String class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/String.st,v 1.205 2004-04-12 16:17:30 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/String.st,v 1.206 2004-06-08 10:29:55 cg Exp $'
 ! !
--- a/Symbol.st	Mon Jun 07 17:43:23 2004 +0200
+++ b/Symbol.st	Tue Jun 08 12:30:22 2004 +0200
@@ -493,7 +493,7 @@
 !
 
 deepCopyUsing:aDictionary
-    "return a copy of myself
+    "return a deep copy of myself
      - reimplemented here since symbols are immutable."
 
      ^ self
@@ -745,5 +745,5 @@
 !Symbol class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.76 2004-05-27 14:27:03 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Symbol.st,v 1.77 2004-06-08 10:30:08 cg Exp $'
 ! !
--- a/UndefinedObject.st	Mon Jun 07 17:43:23 2004 +0200
+++ b/UndefinedObject.st	Tue Jun 08 12:30:22 2004 +0200
@@ -204,7 +204,7 @@
 
 deepCopyUsing:aDictionary
     "return a deep copy of myself
-     - since there is only one nil in the system return self"
+     - since there is only one nil in the system, return self"
 
     ^ self
 !
@@ -685,7 +685,7 @@
 !UndefinedObject class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.57 2004-04-07 12:59:35 werner Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/UndefinedObject.st,v 1.58 2004-06-08 10:30:22 cg Exp $'
 ! !
 
 UndefinedObject initialize!