X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2Fpython.h;h=18fdac78fe2def9040669138cc60020cce9ca3c2;hp=52ec6c1eaba64b86ad37e2a5137c1669063f4746;hb=0a62b65175152c42976d4cb04fb7026d9f910915;hpb=15d7074f55a2c3dd38ce9877626be6ec32b448d2 diff --git a/lib/python/python.h b/lib/python/python.h index 52ec6c1..18fdac7 100644 --- a/lib/python/python.h +++ b/lib/python/python.h @@ -155,6 +155,41 @@ inline void ePyObject::decref() Py_DECREF(m_ob); } +class ePyObjectWrapper +{ + ePyObject m_obj; +public: + ePyObjectWrapper(const ePyObjectWrapper &wrapper) + :m_obj(wrapper.m_obj) + { + Py_INCREF(m_obj); + } + ePyObjectWrapper(const ePyObject &obj) + :m_obj(obj) + { + Py_INCREF(m_obj); + } + ~ePyObjectWrapper() + { + Py_DECREF(m_obj); + } + ePyObjectWrapper &operator=(const ePyObjectWrapper &wrapper) + { + Py_DECREF(m_obj); + m_obj = wrapper.m_obj; + Py_INCREF(m_obj); + return *this; + } + operator PyObject*() + { + return m_obj; + } + operator ePyObject() + { + return m_obj; + } +}; + #endif // ! PYTHON_REFCOUNT_DEBUG #endif // !SWIG && !SKIP_PART1 @@ -390,5 +425,4 @@ private: #endif // SWIG #endif // SKIP_PART2 - #endif // __lib_python_python_class_h