Exception.st
changeset 2509 20e70b07473a
parent 2433 6eeced763de2
child 2562 e89b40632edc
--- a/Exception.st	Thu Mar 27 15:57:46 1997 +0100
+++ b/Exception.st	Thu Mar 27 16:48:14 1997 +0100
@@ -568,13 +568,29 @@
 proceed
     "Continue after the raise - the raise returns nil"
 
-    resumeBlock notNil ifTrue:[resumeBlock value:nil]
+    |b|
+
+    resumeBlock notNil ifTrue:[
+        b := resumeBlock.
+        resumeBlock := rejectBlock := handlerContext := suspendedContext := nil.
+        b value:nil
+    ]
+
+    "Modified: 27.3.1997 / 16:44:39 / cg"
 !
 
 proceedWith:value
     "Continue after the raise - the raise returns value"
 
-    resumeBlock notNil ifTrue:[resumeBlock value:value]
+    |b|
+
+    resumeBlock notNil ifTrue:[
+        b := resumeBlock.
+        resumeBlock := rejectBlock := handlerContext := suspendedContext := nil.
+        b value:value
+    ]
+
+    "Modified: 27.3.1997 / 16:45:57 / cg"
 !
 
 reject
@@ -595,19 +611,41 @@
 resume
     "Continue after the raise - the raise returns nil"
 
-    resumeBlock notNil ifTrue:[resumeBlock value:nil]
+    |b|
+
+    resumeBlock notNil ifTrue:[
+        b := resumeBlock.
+        resumeBlock := rejectBlock := handlerContext := suspendedContext := nil.
+        b value:nil
+    ]
+
+    "Modified: 27.3.1997 / 16:45:18 / cg"
 !
 
 resumeWith:value
     "Continue after the raise - the raise returns value"
 
-    resumeBlock notNil ifTrue:[resumeBlock value:value]
+    |b|
+
+    resumeBlock notNil ifTrue:[
+        b := resumeBlock.
+        resumeBlock := rejectBlock := handlerContext := suspendedContext := nil.
+        b value:value
+    ]
+
+    "Modified: 27.3.1997 / 16:45:41 / cg"
 !
 
 return
     "Continue after the handle:do: - the handle:do: returns nil"
 
-    handlerContext unwind
+    |con|
+
+    con := handlerContext.
+    resumeBlock := rejectBlock := handlerContext := suspendedContext := nil.
+    con unwind
+
+    "Modified: 27.3.1997 / 16:46:39 / cg"
 !
 
 returnDoing:aBlock
@@ -619,7 +657,13 @@
 returnWith:value
     "Continue after the handle:do: - the handle:do: returns value"
 
-    handlerContext unwind:value
+    |con|
+
+    con := handlerContext.
+    resumeBlock := rejectBlock := handlerContext := suspendedContext := nil.
+    con unwind:value
+
+    "Modified: 27.3.1997 / 16:46:51 / cg"
 ! !
 
 !Exception methodsFor:'raising'!
@@ -875,6 +919,6 @@
 !Exception class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.51 1997-03-01 22:53:56 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Exception.st,v 1.52 1997-03-27 15:48:14 cg Exp $'
 ! !
 Exception initialize!