diff options
Diffstat (limited to 'pyuno/inc/pyuno/pyuno.hxx')
-rw-r--r-- | pyuno/inc/pyuno/pyuno.hxx | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pyuno/inc/pyuno/pyuno.hxx b/pyuno/inc/pyuno/pyuno.hxx index da0f8328e50f..77f966222ecd 100644 --- a/pyuno/inc/pyuno/pyuno.hxx +++ b/pyuno/inc/pyuno/pyuno.hxx @@ -68,6 +68,13 @@ extern "C" LO_DLLPUBLIC_PYUNO namespace pyuno { +enum __NotNull +{ + /** definition of a no acquire enum for ctors + */ + NOT_NULL +}; + /** Helper class for keeping references to python objects. BEWARE: Look up every python function you use to check whether you get an acquired or not acquired object pointer @@ -88,6 +95,12 @@ public: PyRef( PyObject * p, __sal_NoAcquire ) : m( p ) {} + PyRef( PyObject * p, __sal_NoAcquire, __NotNull ) : m( p ) + { + if (!m) + throw std::bad_alloc(); + } + PyRef( const PyRef &r ) : m( r.get() ) { Py_XINCREF( m ); } ~PyRef() { Py_XDECREF( m ); } |