|
Boost Users : |
From: Ames Andreas (Andreas.Ames_at_[hidden])
Date: 2005-08-04 05:09:28
Hi,
I'm a newbie so please be forbearing when I have made wrong
assumptions.
I have attached two simple test programs simple.cc and simple1.cc to
illustrate the (presumable) bugs. I currently use VC 7.1 and Boost
1.32.0 on WinXP.
The access violation in simple.cc (when built with NDEBUG) occurs
when I try to emit a signal without slots. Documentation seems to
state that in this case the return value of the emission is undefined,
which seems to imply that the actual call should work (which it should
anyway, IMHO). When I compile with _DEBUG defined I get the following
assertion thrown at me:
<assertion>
Assertion failed: first != last, file boost/boost/last_value.hpp, line
23
</assertion>
simple1.cc shows a very basic slot leakage, you will see 9 constructor
calls but only 8 destructor calls for the handler. This could be
caused by having
pos.impl_->group->second.erase(pos.impl_->slot_);
commented out in named_slot_map.cpp:230.
The half bug I mentioned in the subject is the one which I am least
sure about. simple1.cc shows that my callback functor is copied eight
times during connect (that obviously implies seven destructor calls).
Isn't that a performance issue?
TIA,
aa
-- Andreas Ames | Programmer | Comergo GmbH | Voice: +49 69 7505 3213 | andreas . ames AT comergo . com
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net