<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p>Ha! That was inspired by Object >> #copy:</p>
<p><br>
</p>
<p></p>
<div>Object >> copy</div>
<div><span style="white-space:pre"></span>"Answer another instance just like the receiver. Subclasses typically override postCopy; they typically do not override shallowCopy."</div>
<div><br>
</div>
<div><span style="white-space:pre"></span>^self shallowCopy postCopy</div>
<br>
<p></p>
<p>I will make this more explicit by extracting "self copy refreshContexts" to "self freshCopy". :-)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Jakob Reschke <jakres+squeak@gmail.com><br>
<b>Gesendet:</b> Sonntag, 12. Juni 2022 20:34:57<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Kernel-ct.1481.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">    self copy refreshContexts signal<br>
<div><br>
</div>
<div>I know that refreshContexts in its current implementation will explicitly return self, but should we rely on this or not better use a cascade here?</div>
<div><br>
</div>
<div>    self copy refreshContexts; signal</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Am So., 12. Juni 2022 um 17:28 Uhr schrieb <<a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
A new version of Kernel was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Kernel-ct.1481.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/inbox/Kernel-ct.1481.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Kernel-ct.1481<br>
Author: ct<br>
Time: 12 June 2022, 5:27:48.147094 pm<br>
UUID: 4fd2a361-2b3b-474c-9b86-3a899e25a8e0<br>
Ancestors: Kernel-ct.1480<br>
<br>
Revises Exception>>signal to copy all exception-specific state when resignaling an already signaled exception.<br>
<br>
Thanks to Jaromir (jar)!<br>
<br>
See: <a href="https://lists.squeakfoundation.org/pipermail/squeak-dev/2022-June/220989.html" rel="noreferrer" target="_blank">
https://lists.squeakfoundation.org/pipermail/squeak-dev/2022-June/220989.html</a><br>
<br>
=============== Diff against Kernel-ct.1480 ===============<br>
<br>
Item was added:<br>
+ ----- Method: Exception>>refreshContexts (in category 'copying') -----<br>
+ refreshContexts<br>
+ <br>
+       signalContext := handlerContext := outerContext := nil.<br>
+ !<br>
<br>
Item was changed:<br>
  ----- Method: Exception>>signal (in category 'signaling') -----<br>
  signal<br>
+       "Ask handler contexts in the sender chain to handle this signal.  The default is to evaluate my defaultAction and return the result.<br>
+       Sending #signal to an already signaled exception generates a fresh copy of the receiver."<br>
+       <br>
+       signalContext ifNotNil: [^self copy refreshContexts signal].<br>
-       "Ask ContextHandlers in the sender chain to handle this signal.  The default is to execute and return my defaultAction.<br>
-       Sending #signal to an already signaled exception generates a new exception of the same type with the same messageText"<br>
- <br>
-       signalContext ifNotNil: [^self class signal: messageText]. <br>
        signalContext := thisContext contextTag.<br>
        ^(thisContext nextHandlerContextForSignal: self) handleSignal: self!<br>
<br>
<br>
</blockquote>
</div>
</div>
</body>
</html>