[PD-dev] broken msgs cause Tcl traces, how to debug it?

Hans-Christoph Steiner hans at at.or.at
Tue Feb 7 22:09:19 CET 2012


On Feb 7, 2012, at 3:37 PM, Mathieu Bouchard wrote:

> Le 2012-01-23 à 14:00:00, Hans-Christoph Steiner a écrit :
> 
>>   if {[string index $cmd_from_pd end] eq "\\"} {
>>       ::pd_connect::pd_readsocket $cmd_from_pd
>>   }
>>   if {[catch {uplevel #0 $cmd_from_pd} errorname]} {
> 
> This is very wrong, because pd_readsocket calls itself recursively N times, then doesn't return, which causes eval (uplevel) to be run N+1 times on the same chunk of statements.
> 
> This may cause «canvas create» to create very many duplicates of canvas items, and such.
> 
> Is that right ?

This code has totally changed, check master in pd-extended.git for the current code.  The new code fixed this bug, and seems faster than the old code to boot.

.hc






----------------------------------------------------------------------------

"It is convenient to imagine a power beyond us because that means we don't have to examine our own lives.", from "The Idols of Environmentalism", by Curtis White







More information about the Pd-dev mailing list