a useful check

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

a useful check

Eliot Miranda-2
Hi All,

    I just stumbled across a bug of mine which is a rare but easy-to-make slip, that of an unused block,  e.g. expr ifTrue: [[something that doesn't get done]].  Here's a check for it (I'll check it in as a SysdtemNavigation method and perhaps the RB includes it in its lint tests).  There's one method in Squeak trunk that falls foul of this.

"Scan for the byte following each block creation being the pop bytecode."
SystemNavigation new browseAllSelect:
[:m| | is |
is := InstructionStream on: m.
is scanFor: [:b| b = 143 and: [(m at: is thirdByte * 256 + is fourthByte + is pc + 4) = 135]]]