From f10bedf0353eeb0bbf5ad5583b867c7e377ebe8e Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Wed, 17 Jul 2013 14:27:02 +0000 Subject: [PATCH] merged python binding fix from RC_0_16 --- bindings/python/src/alert.cpp | 3 ++- bindings/python/src/session.cpp | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/bindings/python/src/alert.cpp b/bindings/python/src/alert.cpp index f9a9e63e0..542a8d754 100644 --- a/bindings/python/src/alert.cpp +++ b/bindings/python/src/alert.cpp @@ -5,6 +5,7 @@ #include #include #include +#include using namespace boost::python; using namespace libtorrent; @@ -93,7 +94,7 @@ void bind_alert() using boost::noncopyable; { - scope alert_scope = class_("alert", no_init) + scope alert_scope = class_, noncopyable >("alert", no_init) .def("message", &alert::message) .def("what", &alert::what) .def("category", &alert::category) diff --git a/bindings/python/src/session.cpp b/bindings/python/src/session.cpp index f23e51982..56814e008 100644 --- a/bindings/python/src/session.cpp +++ b/bindings/python/src/session.cpp @@ -475,6 +475,17 @@ namespace return e; } + object pop_alert(session& ses) + { + std::auto_ptr a; + { + allow_threading_guard guard; + a = ses.pop_alert(); + } + + return object(boost::shared_ptr(a.release())); + } + list pop_alerts(session& ses) { std::deque alerts; @@ -487,8 +498,7 @@ namespace for (std::deque::iterator i = alerts.begin() , end(alerts.end()); i != end; ++i) { - std::auto_ptr ptr(*i); - ret.append(ptr); + ret.append(boost::shared_ptr(*i)); } return ret; } @@ -722,7 +732,7 @@ void bind_session() .def("set_alert_queue_size_limit", allow_threads(&session::set_alert_queue_size_limit)) #endif .def("set_alert_mask", allow_threads(&session::set_alert_mask)) - .def("pop_alert", allow_threads(&session::pop_alert)) + .def("pop_alert", &pop_alert) .def("pop_alerts", &pop_alerts) .def("wait_for_alert", &wait_for_alert, return_internal_reference<>()) .def("add_extension", &add_extension)