On Oct 14, 2007, at 7:29 AM, David Angelo wrote:
I have a problem with upgrading from boost version 1.33 to 1.34. My code runs fine with 1.33, but when compiling and linking againt 1.34 I get the following runtime error (backtrace):
<backtrace> #0 0x81d4c9b2 in void boost::function1<void, float, std::allocator<void> >::ass ign_to<boost::_bi::bind_t<void, boost::_mfi::mf1<void, fpCTPart, float>, boost:: _bi::list2<boost::_bi::value <fpCTPart*>, boost::arg<1> (*)()> > >(boost::_bi::bi nd_t<void, boost::_mfi::mf1<void, fpCTPart, float>, boost::_bi::list2<boost::_bi ::value<fpCTPart*>, boost::arg<1> (*)()> >)::stored_vtable () from /home/david/eclipseM6/toolManagement/lib/libfpCTToolPack.so
#1 0xb4438841 in boost::function0<void, std::allocator<void>
::clear ( this=0xa1a03fc) at /usr/include/boost/function/ function_template.hpp:388 [snip] </backtrace>
How odd. If you trap this, what does the boost::function1 object contain? Is the vtable pointer NULL, for example? A few more questions: - Which compiler/platform? - Is this multi-threaded code? - Is there any way for me to reproduce this?
Are there any changes between these to versions in the bind/signal library? (Are they not backward compatible?)
There were changes to Function (which Signals relies on), but they should be backward-compatible. This definitely looks like a bug in Function. - Doug