<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        +1 Thanks!<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 01.10.2019 12:58:33 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">Levente Uzonyi uploaded a new version of Kernel to project The Inbox:<br>http://source.squeak.org/inbox/Kernel-ul.1270.mcz<br><br>==================== Summary ====================<br><br>Name: Kernel-ul.1270<br>Author: ul<br>Time: 1 October 2019, 12:57:10.938369 pm<br>UUID: a05d4cc6-2b21-4ae3-90ad-68d18accd34f<br>Ancestors: Kernel-mt.1269<br><br>Context and InstructionStream:<br>- moved Debugger specific extension methods to Tools<br>- recategorized a few methods<br><br>=============== Diff against Kernel-mt.1269 ===============<br><br>Item was changed:<br>+ ----- Method: Context>>methodClass (in category 'accessing') -----<br>- ----- Method: Context>>methodClass (in category 'debugger access') -----<br>  methodClass <br>     "Answer the class in which the receiver's method was found."<br>        <br>      ^self method methodClass ifNil: [self objectClass: self receiver].!<br><br>Item was removed:<br>- ----- Method: Context>>namedTempAt: (in category 'debugger access') -----<br>- namedTempAt: index<br>-    "Answer the value of the temp at index in the receiver's sequence of tempNames."<br>-   ^self debuggerMap namedTempAt: index in: self!<br><br>Item was removed:<br>- ----- Method: Context>>namedTempAt:put: (in category 'debugger access') -----<br>- namedTempAt: index put: aValue<br>-         "Set the value of the temp at index in the receiver's sequence of tempNames.<br>-     (Note that if the value is a copied value it is also set out along the lexical chain,<br>-         but alas not in along the lexical chain.)."<br>-   ^self debuggerMap namedTempAt: index put: aValue in: self!<br><br>Item was changed:<br>+ ----- Method: Context>>pc (in category 'accessing') -----<br>- ----- Method: Context>>pc (in category 'debugger access') -----<br>  pc<br>     "Answer the index of the next bytecode to be executed."<br>  <br>         ^pc!<br><br>Item was removed:<br>- ----- Method: Context>>print:on: (in category 'debugger access') -----<br>- print: anObject on: aStream<br>-     "Safely print anObject in the face of direct ProtoObject subclasses."<br>-      | objClass title |<br>-   objClass := self objectClass: anObject.<br>-      (objClass canUnderstand: #printOn:) ifTrue:<br>-          [^anObject printOn: aStream].<br>-        title := objClass name.<br>-      aStream<br>-              nextPutAll: (title first isVowel ifTrue: ['an '] ifFalse: ['a ']);<br>-           nextPutAll: title!<br><br>Item was changed:<br>+ ----- Method: Context>>selector (in category 'accessing') -----<br>- ----- Method: Context>>selector (in category 'debugger access') -----<br>  selector<br>   "Answer the selector of the method that created the receiver."<br>  <br>          ^self method selector ifNil: [self method defaultSelector].!<br><br>Item was changed:<br>+ ----- Method: Context>>sender (in category 'accessing') -----<br>- ----- Method: Context>>sender (in category 'debugger access') -----<br>  sender<br>       "Answer the context that sent the message that created the receiver."<br>  <br>   ^sender!<br><br>Item was changed:<br>+ ----- Method: Context>>sourceCode (in category 'accessing') -----<br>- ----- Method: Context>>sourceCode (in category 'debugger access') -----<br>  sourceCode<br>       ^self method getSource.<br>       <br>      "Note: The above is a bit safer than<br>             ^ methodClass sourceCodeAt: selector<br>          which may fail if the receiver's method has been changed in<br>   the debugger (e.g., the method is no longer in the methodDict<br>         and thus the above selector is something like #Doit:with:with:with:)<br>          but the source code is still available."!<br><br>Item was removed:<br>- ----- Method: Context>>tempNames (in category 'debugger access') -----<br>- tempNames<br>-     "Answer a SequenceableCollection of the names of the receiver's temporary <br>-       variables, which are strings."<br>- <br>-     ^ self debuggerMap tempNamesForContext: self!<br><br>Item was removed:<br>- ----- Method: Context>>tempsAndValues (in category 'debugger access') -----<br>- tempsAndValues<br>-    "Return a string of the temporary variables and their current values"<br>-      ^self debuggerMap tempsAndValuesForContext: self!<br><br>Item was removed:<br>- ----- Method: Context>>tempsAndValuesLimitedTo:indent: (in category 'debugger access') -----<br>- tempsAndValuesLimitedTo: sizeLimit indent: indent<br>-    "Return a string of the temporary variabls and their current values"<br>- <br>-   | aStream |<br>-  aStream := WriteStream on: (String new: 100).<br>-        self tempNames<br>-               doWithIndex: [:title :index |<br>-                        indent timesRepeat: [aStream tab].<br>-                   aStream nextPutAll: title; nextPut: $:; space; tab.<br>-                  aStream nextPutAll: <br>-                                 ((self tempAt: index) printStringLimitedTo: (sizeLimit -3 -title size max: 1)).<br>-                      aStream cr].<br>-         ^aStream contents!<br><br>Item was removed:<br>- ----- Method: InstructionStream>>abstractPC (in category 'debugger access') -----<br>- abstractPC<br>-     ^self method abstractPCForConcretePC: pc!<br><br>Item was removed:<br>- ----- Method: InstructionStream>>debuggerMap (in category 'debugger access') -----<br>- debuggerMap<br>-    ^self method debuggerMap!<br><br><br></div></blockquote>
                                        </div></body>