Update of /cvsroot/boost-sandbox/boost-sandbox/boost/thread_safe_signals/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3517/boost/thread_safe_signals/detail
Modified Files:
signal_template.hpp slot_template.hpp
Log Message:
Fixed signal::disconnect() with a slot function argument, which
was broken by recent changes to slot class.
Index: signal_template.hpp
===================================================================
RCS file: /cvsroot/boost-sandbox/boost-sandbox/boost/thread_safe_signals/detail/signal_template.hpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- signal_template.hpp 28 Feb 2007 17:08:48 -0000 1.37
+++ signal_template.hpp 28 Feb 2007 19:30:18 -0000 1.38
@@ -374,7 +374,7 @@
it != local_state->connection_bodies.end(); ++it)
{
typename ConnectionBody<group_key_type, slot_function_type, ThreadingModel>::mutex_type::scoped_lock lock((*it)->mutex);
- if((*it)->slot == slot)
+ if((*it)->slot.slot_function() == slot)
{
(*it)->nolock_disconnect();
}
Index: slot_template.hpp
===================================================================
RCS file: /cvsroot/boost-sandbox/boost-sandbox/boost/thread_safe_signals/detail/slot_template.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- slot_template.hpp 28 Feb 2007 17:06:53 -0000 1.4
+++ slot_template.hpp 28 Feb 2007 19:30:18 -0000 1.5
@@ -29,6 +29,7 @@
template<BOOST_SIGNAL_PREFIXED_SIGNATURE_TEMPLATE_DECL(BOOST_SIGNALS_NUM_ARGS, Other), typename OtherSlotFunction>
friend class BOOST_SLOT_CLASS_NAME(BOOST_SIGNALS_NUM_ARGS);
+ typedef SlotFunction slot_function_type;
typedef R result_type;
// typedef Tn argn_type;
#define BOOST_SIGNAL_MISC_STATEMENT(z, n, data) \
@@ -98,8 +99,8 @@
track_signal(signal);
return *this;
}
+ const slot_function_type& slot_function() const {return _slot_function;}
private:
-
SlotFunction _slot_function;
};
namespace signalslib
|