Index: generic/predefined.h =================================================================== diff -u -rb9eae4f9d548939af915f0f27141389d18172485 -r9ae7c34e49e4ac28083909acb8d39964e51c42ec --- generic/predefined.h (.../predefined.h) (revision b9eae4f9d548939af915f0f27141389d18172485) +++ generic/predefined.h (.../predefined.h) (revision 9ae7c34e49e4ac28083909acb8d39964e51c42ec) @@ -227,7 +227,7 @@ "if {[::xotcl2::Object info callable $m] ne \"\"} continue\n" "if {[string match __* $m]} continue\n" "lappend methods $m}\n" -"error \"Method '$method' unknown for slot [[::xotcl::current object]; valid are: {[lsort $methods]]}\"}\n" +"error \"Method '$method' unknown for slot [::xotcl::current object]; valid are: {[lsort $methods]}\"}\n" "::xotcl::ObjectParameterSlot public method destroy {} {\n" "if {${:domain} ne \"\" && [::xotcl::objectproperty ${:domain} class]} {\n" "${:domain} __invalidateobjectparameter}\n" @@ -401,6 +401,7 @@ ":method forward args {::xotcl::next; :optimize}\n" ":protected method init args {::xotcl::next; :optimize}\n" ":public method optimize {} {\n" +"if {![info exists :methodname]} {return}\n" "set object [expr {${:per-object} ? {object} : {}}]\n" "if {${:per-object}} {\n" "set perObject -per-object\n" @@ -430,8 +431,7 @@ "$slotclass createFromParameterSyntax [::xotcl::current object] -per-object -initblock $initblock {*}$spec}\n" "::xotcl2::Class public method parameter arglist {\n" "foreach arg $arglist {\n" -"::xotcl::Attribute createFromParameterSyntax [::xotcl::current object] {*}$arg}\n" -"::xotcl::setvar [::xotcl::current object]::slot __parameter $arglist}\n" +"::xotcl::Attribute createFromParameterSyntax [::xotcl::current object] {*}$arg}}\n" "proc createBootstrapAttributeSlots {} {}\n" "::xotcl::Slot method type=hasmixin {name value arg} {\n" "if {![::xotcl::objectproperty $value hasmixin $arg]} {\n" Index: generic/predefined.xotcl =================================================================== diff -u -rb9eae4f9d548939af915f0f27141389d18172485 -r9ae7c34e49e4ac28083909acb8d39964e51c42ec --- generic/predefined.xotcl (.../predefined.xotcl) (revision b9eae4f9d548939af915f0f27141389d18172485) +++ generic/predefined.xotcl (.../predefined.xotcl) (revision 9ae7c34e49e4ac28083909acb8d39964e51c42ec) @@ -451,7 +451,7 @@ if {[string match __* $m]} continue lappend methods $m } - error "Method '$method' unknown for slot [[::xotcl::current object]; valid are: {[lsort $methods]]}" + error "Method '$method' unknown for slot [::xotcl::current object]; valid are: {[lsort $methods]}" } ::xotcl::ObjectParameterSlot public method destroy {} { @@ -761,6 +761,7 @@ :protected method init args {::xotcl::next; :optimize} :public method optimize {} { #puts stderr OPTIMIZER-[info exists :incremental] + if {![info exists :methodname]} {return} set object [expr {${:per-object} ? {object} : {}}] if {${:per-object}} { set perObject -per-object @@ -818,7 +819,7 @@ ::xotcl::Attribute createFromParameterSyntax [::xotcl::current object] {*}$arg } # todo needed? - ::xotcl::setvar [::xotcl::current object]::slot __parameter $arglist + #::xotcl::setvar [::xotcl::current object]::slot __parameter $arglist } ################################################################## Index: library/serialize/Serializer.xotcl =================================================================== diff -u -r2c0baf4a8ccba0820da0b4f318be18d2051e00ae -r9ae7c34e49e4ac28083909acb8d39964e51c42ec --- library/serialize/Serializer.xotcl (.../Serializer.xotcl) (revision 2c0baf4a8ccba0820da0b4f318be18d2051e00ae) +++ library/serialize/Serializer.xotcl (.../Serializer.xotcl) (revision 9ae7c34e49e4ac28083909acb8d39964e51c42ec) @@ -666,7 +666,7 @@ if {[::xotcl::is $o type ::xotcl::Slot]} { # Slots needs to be initialized to ensure # __invalidateobjectparameter to be called - append cmd [list $o init] \n + append cmd [list $o eval :init] \n } $s addPostCmd [:frameWorkCmd ::xotcl::relation $o object-filter]