RecursiveStoreStringSignal lifted to Object
authortm
Fri, 04 Aug 2000 18:57:35 +0200
changeset 5498 489dc2e6bd4f
parent 5497 92bb94a53929
child 5499 a884d2f88f74
RecursiveStoreStringSignal lifted to Object
ArrayedCollection.st
Collection.st
Object.st
--- a/ArrayedCollection.st	Fri Aug 04 18:44:15 2000 +0200
+++ b/ArrayedCollection.st	Fri Aug 04 18:57:35 2000 +0200
@@ -300,7 +300,7 @@
     |index "{ Class: SmallInteger }"|
 
     thisContext isRecursive ifTrue:[
-        RecursiveCollectionStoreStringSignal raiseRequestWith:self.
+        Object recursiveStoreStringSignal raiseRequestWith:self.
         'ArrayedCollection [error]: storeOn: of self referencing collection.' errorPrintCR.
         aStream nextPutAll:'#recursive'.
         ^ self
@@ -418,5 +418,5 @@
 !ArrayedCollection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.45 2000-08-04 16:44:15 tm Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/ArrayedCollection.st,v 1.46 2000-08-04 16:57:09 tm Exp $'
 ! !
--- a/Collection.st	Fri Aug 04 18:44:15 2000 +0200
+++ b/Collection.st	Fri Aug 04 18:57:35 2000 +0200
@@ -86,10 +86,6 @@
         EmptyCollectionSignal := NotEnoughElementsSignal newSignalMayProceed:true.
         EmptyCollectionSignal nameClass:self message:#emptyCollectionSignal.
         EmptyCollectionSignal notifierString:'operation not allowed for empty collections'.
-
-        RecursiveCollectionStoreStringSignal := QuerySignal new.
-        RecursiveCollectionStoreStringSignal nameClass:self message:#recursiveCollectionStoreStringSignal.
-        RecursiveCollectionStoreStringSignal notifierString:'attempt to generate storeString of recursive collection'.
     ]
 
     "Modified: / 8.11.1997 / 19:18:17 / cg"
@@ -227,33 +223,6 @@
     ^ NotEnoughElementsSignal
 !
 
-recursiveCollectionStoreStringSignal
-    "return the query signal used to report storeString generation of recursive collections"
-
-    ^ RecursiveCollectionStoreStringSignal
-
-    "
-     Collection recursiveCollectionStoreStringSignal handle:[:ex |
-        self halt
-     ] do:[
-        |a|
-
-        a := Array new:1.
-        a at:1 put:a.
-        a storeOn:Transcript
-     ]
-    "
-
-    "
-     |a|
-
-     a := Array new:1.
-     a at:1 put:a.
-     a storeOn:Transcript
-    "
-
-!
-
 valueNotFoundSignal
     "return the signal used to report a nonexisting element."
 
@@ -1848,7 +1817,7 @@
     |notEmpty|
 
     thisContext isRecursive ifTrue:[
-        RecursiveCollectionStoreStringSignal raiseRequestWith:self.
+        Object recursiveStoreStringSignal raiseRequestWith:self.
         'Collection [error]: storeOn: of self referencing collection.' errorPrintCR.
         aStream nextPutAll:'#recursive'.
         ^ self
@@ -2138,6 +2107,6 @@
 !Collection class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.99 2000-08-04 16:44:03 tm Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Collection.st,v 1.100 2000-08-04 16:57:35 tm Exp $'
 ! !
 Collection initialize!
--- a/Object.st	Fri Aug 04 18:44:15 2000 +0200
+++ b/Object.st	Fri Aug 04 18:57:35 2000 +0200
@@ -23,7 +23,8 @@
 		DeepCopyErrorSignal AbortSignal ErrorRecursion Dependencies
 		InfoPrinting ActivityNotificationSignal InternalErrorSignal
 		NonWeakDependencies SynchronizationSemaphores ObjectAttributes
-		OSSignalInterruptSignal FinalizationLobby'
+		OSSignalInterruptSignal FinalizationLobby
+		RecursiveStoreStringSignal'
 	poolDictionaries:''
 	category:'Kernel-Objects'
 !
@@ -266,6 +267,10 @@
         OSSignalInterruptSignal nameClass:self message:#osSignalInterruptSignal.
         OSSignalInterruptSignal notifierString:'OS signal interrupt'.
 
+        RecursiveStoreStringSignal := QuerySignal new.
+        RecursiveStoreStringSignal nameClass:self message:#recursiveStoreStringSignal.
+        RecursiveStoreStringSignal notifierString:'attempt to generate storeString of recursive object'.
+
         ObjectAttributes isNil ifTrue:[
             ObjectAttributes := WeakIdentityDictionary new.
         ].
@@ -433,6 +438,35 @@
     ^ RecursionInterruptSignal
 !
 
+recursiveStoreStringSignal
+    "return the query signal used to report storeString generation of recursive objects"
+
+    ^ RecursiveStoreStringSignal
+
+    "
+     Object recursiveStoreStringSignal handle:[:ex |
+        self halt
+     ] do:[
+        |a|
+
+        a := Array new:1.
+        a at:1 put:a.
+        a storeOn:Transcript
+     ]
+    "
+
+    "
+     |a|
+
+     a := Array new:1.
+     a at:1 put:a.
+     a storeOn:Transcript
+    "
+
+
+
+!
+
 subscriptOutOfBoundsSignal
     "return the signal used for subscript error reporting.
      (this signal is used for example when an array is accessed with an
@@ -534,6 +568,7 @@
      ^(self deepCopyUsing:(IdentityDictionary new)) postDeepCopyFrom:self
 ! !
 
+
 !Object methodsFor:'accessing'!
 
 at:index
@@ -6088,6 +6123,7 @@
     |myClass hasSemi sz "{ Class: SmallInteger }" |
 
     thisContext isRecursive ifTrue:[
+        Object recursiveStoreStringSignal raiseRequestWith:self.
         ('Object [error]: storeString of self referencing object.') errorPrintCR.
         aStream nextPutAll:'#("recursive")'.
         ^ self
@@ -6377,6 +6413,7 @@
     ^ self
 ! !
 
+
 !Object methodsFor:'secure message sending'!
 
 askFor:aSelector
@@ -8114,9 +8151,10 @@
     "Modified: 20.5.1996 / 10:28:53 / cg"
 ! !
 
+
 !Object class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.336 2000-08-03 11:15:05 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.337 2000-08-04 16:56:18 tm Exp $'
 ! !
 Object initialize!