Index: library/serialize/serializer.tcl =================================================================== diff -u -r2321487af7f5d63ba7abb11d14e657a24b2e7788 -r542f9eada7981ba0f968374ff45ea9d2d44dd9a0 --- library/serialize/serializer.tcl (.../serializer.tcl) (revision 2321487af7f5d63ba7abb11d14e657a24b2e7788) +++ library/serialize/serializer.tcl (.../serializer.tcl) (revision 542f9eada7981ba0f968374ff45ea9d2d44dd9a0) @@ -1052,7 +1052,6 @@ set :rootClass ::xotcl::Object set :rootMetaClass ::xotcl::Class - #array set :ignorePattern [list "::xotcl::*" 1] array set :ignorePattern [list "::nsf::*" 1 "::nx::*" 1 "::xotcl::*" 1] :public object method serialize-all-start {s} { @@ -1210,6 +1209,21 @@ [:frameWorkCmd ::nsf::relation::get $o class-mixin] \ [:frameWorkCmd ::nsf::method::assertion $o class-invar] + # + # Check for overloaded accessors generated by the slots and make sure, these are + # available in the serialized code. + # + set slotObjects [nsf::directdispatch $o ::nsf::methods::class::info::slotobjects -type ::nx::Slot] + foreach so $slotObjects { + set methodName [namespace tail $so] + if {[$o info instprocs $methodName] ne ""} { + # + # The method was overloaded. + # + $s addPostCmd [:method-serialize $o $methodName inst $s] + } + } + $s addPostCmd [:frameWorkCmd ::nsf::relation::get $o class-filter] return $cmd }