Index: generic/predefined.xotcl =================================================================== diff -u -r5556c6d63ea6f4d90705386490253530f0272b57 -r0f1d08f0090b3cb676b82f049bae6fe354d331ff --- generic/predefined.xotcl (.../predefined.xotcl) (revision 5556c6d63ea6f4d90705386490253530f0272b57) +++ generic/predefined.xotcl (.../predefined.xotcl) (revision 0f1d08f0090b3cb676b82f049bae6fe354d331ff) @@ -263,7 +263,7 @@ unset default } } - puts stderr "Bootstrapslot for $class calls invalidateobjectparameter" + #puts stderr "Bootstrapslot for $class calls invalidateobjectparameter" $class invalidateobjectparameter } @@ -326,16 +326,26 @@ } error "Method '$method' unknown for slot [::xotcl::self]; valid are: {[lsort $methods]]}" } + + # TODO crashes currently + #::xotcl::Slot instproc destroy {} { + # ::xotcl::instvar domain + # if {$domain ne ""} { + # $domain invalidateobjectparameter + # } + # next + #} + ::xotcl::Slot instproc init {} { - ::xotcl::my instvar name domain manager per-object + ::xotcl::instvar name domain manager per-object #puts stderr "slot init [self] exists name? [info exists name] '$name'" set forwarder [expr {${per-object} ? "forward" : "instforward"}] #puts "domain=$domain /[::xotcl::self callingobject]/[::xotcl::my info parent]" if {$domain eq ""} { set domain [::xotcl::self callingobject] } else { #todo could be done via slotoptimizer - puts stderr "Slot [self] (name $name) init $domain calls invalidateobjectparameter" + #puts stderr "Slot [self] (name $name) init $domain calls invalidateobjectparameter" $domain invalidateobjectparameter # TODO: the following line should not be here. It is necessary to handle currently # computed default values, such as @@ -345,7 +355,7 @@ # - define a new converter type and delay for set value # - invent some non-caching (not preferable). # - [my info class] invalidateobjectparameter + #[my info class] invalidateobjectparameter } #puts stderr "???? $domain $forwarder $name -default [$manager defaultmethods] $manager %1 %self %proc" $domain $forwarder $name -default [$manager defaultmethods] $manager %1 %self %proc