[Xotcl] Xotcl autonames

Michael Schlenker schlenk at uni-oldenburg.de
Thu Feb 16 20:16:24 CET 2006


Hi all,

i used the autoname instproc to create object instance names and was
surprised that autonames can conflict.

Basically i have two objects of the same class, which both get rows from
a database and create objects for each row:

Something like this:

PM instproc dbRead {program_id} {
 # some things ommited
my set tracks ""
set tracks [::MOD select list program_tracks {track_id} program_id
$program_id]
foreach t $tracks {
	set m [::wings::model::TrackModel [my autoname TrackM]]
	$m dbRead $t
	my lappend tracks $m
}
}

After i create two objects of this class, i see the TrackM autonames
used by both objects starting from 0, basically the second object
overwrites my autonamed objects from the first one.

I fixed it by adding:

my instproc autoname {args} {
set name [next]
while {[llength [info commands $name]]} {set name [next]}
return $name
}

to the class, but wondered if this is expected behaviour of autonames.

Michael













More information about the Xotcl mailing list