Shifted Results from External

Dar Scott dsc at
Thu May 4 14:59:18 EDT 2006

On May 4, 2006, at 11:06 AM, Mark Wieder wrote:

>> That is, if calls are like this--f1(), g(), g(), f2(), g()--
>> at some point the data returned is that that should have been for the
>> previous call--empty, f1(), g(), g(), f2().  I have no queues in my
>> code, but it looks as if data is queued but an extra value is left in
>> or inserted at some point.  (The customer also reported memory usage
>> growth.)
> That's indeed weird. My only guess at the moment is that one of your
> functions may be getting compiled with a different calling protocol
> than the others: it's expecting rev to clean up the stack, while rev
> looks at the protocol and thinks the function should clean it up. And
> that this function only gets called rarely, but enough to leave an
> extra value lying about on top of the stack.

Good thinking.

Everything that Rev sees is C.  All the C++ is hidden.

Also, everything works fine until after a long stress.

Even then, I have trouble seeing how this might cause the symptoms.

I think this might be part of the answer but is still quite shy.


More information about the Use-livecode mailing list