Udo,
Quote:
> Is this an obvious error or did I miss somethig?
It's a problem that's been around for some time and is to do with the way
the Dolphin compiler optimises some code sequences.
From the archive (Blair in 1999)
=~=~=~=~=
Its a compiler bug that occurs when empty #ifTrue:[ifFalse:] statements
occur inside an optimized to:do: loop. Inspecting the bytecodes shows that
the compiler has optimized away the redundant conditional, but failed to pop
the result of the condition expression. It seems that this only happens when
the compiler thinks it can remove the #ifTrue:[ifFalse:].
=~=~=~=~=
Just make sure that there is always something in the block -
1 to: 10 do: [ :n1 |
1 to: 10 do: [ :n2 |
n1 = n2 ifTrue: [1 + 1]]].
Bit of a kludge but it doesn't happen very often.
Ian