summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pmt/src/lib/pmt.cc2
-rw-r--r--pmt/src/lib/pmt.h6
-rw-r--r--pmt/src/lib/pmt_int.h7
3 files changed, 3 insertions, 12 deletions
diff --git a/pmt/src/lib/pmt.cc b/pmt/src/lib/pmt.cc
index 315ff1a40..b403c2327 100644
--- a/pmt/src/lib/pmt.cc
+++ b/pmt/src/lib/pmt.cc
@@ -54,8 +54,6 @@ pmt_base::operator delete(void *p, size_t size)
#endif
-void intrusive_ptr_add_ref(pmt_base* p) { ++(p->count_); }
-void intrusive_ptr_release(pmt_base* p) { if (--(p->count_) == 0 ) delete p; }
pmt_base::~pmt_base()
{
diff --git a/pmt/src/lib/pmt.h b/pmt/src/lib/pmt.h
index d495b17a5..24963fee7 100644
--- a/pmt/src/lib/pmt.h
+++ b/pmt/src/lib/pmt.h
@@ -23,7 +23,7 @@
#ifndef INCLUDED_PMT_H
#define INCLUDED_PMT_H
-#include <boost/intrusive_ptr.hpp>
+#include <boost/shared_ptr.hpp>
#include <boost/any.hpp>
#include <complex>
#include <string>
@@ -48,10 +48,8 @@ class pmt_base;
* \brief typedef for shared pointer (transparent reference counting).
* See http://www.boost.org/libs/smart_ptr/smart_ptr.htm
*/
-typedef boost::intrusive_ptr<pmt_base> pmt_t;
+typedef boost::shared_ptr<pmt_base> pmt_t;
-extern void intrusive_ptr_add_ref(pmt_base*);
-extern void intrusive_ptr_release(pmt_base*);
class pmt_exception : public std::logic_error
{
diff --git a/pmt/src/lib/pmt_int.h b/pmt/src/lib/pmt_int.h
index af22d4515..a973d30d9 100644
--- a/pmt/src/lib/pmt_int.h
+++ b/pmt/src/lib/pmt_int.h
@@ -34,10 +34,8 @@
#define PMT_LOCAL_ALLOCATOR 0 // define to 0 or 1
class pmt_base : boost::noncopyable {
- mutable boost::detail::atomic_count count_;
-
protected:
- pmt_base() : count_(0) {};
+ pmt_base(){};
virtual ~pmt_base();
public:
@@ -67,9 +65,6 @@ public:
virtual bool is_c32vector() const { return false; }
virtual bool is_c64vector() const { return false; }
- friend void intrusive_ptr_add_ref(pmt_base* p);
- friend void intrusive_ptr_release(pmt_base* p);
-
# if (PMT_LOCAL_ALLOCATOR)
void *operator new(size_t);
void operator delete(void *, size_t);