summaryrefslogtreecommitdiff
path: root/dbaccess/source/inc/apitools.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/inc/apitools.hxx')
-rw-r--r--dbaccess/source/inc/apitools.hxx13
1 files changed, 10 insertions, 3 deletions
diff --git a/dbaccess/source/inc/apitools.hxx b/dbaccess/source/inc/apitools.hxx
index 583fff3bda82..6672420abac6 100644
--- a/dbaccess/source/inc/apitools.hxx
+++ b/dbaccess/source/inc/apitools.hxx
@@ -328,14 +328,21 @@ public:
return new ::cppu::OPropertyArrayHelper(aDescriptor);
#define NOTIFY_LISTERNERS(_rListeners,T,method) \
- std::vector< Reference< XInterface > > aListenerSeq = _rListeners.getElementsAsVector(); \
+ Sequence< Reference< XInterface > > aListenerSeq = _rListeners.getElements(); \
+ \
+ const Reference< XInterface >* pxIntBegin = aListenerSeq.getConstArray(); \
+ const Reference< XInterface >* pxInt = pxIntBegin + aListenerSeq.getLength(); \
\
_rGuard.clear(); \
- for( auto iter = aListenerSeq.rbegin(); iter != aListenerSeq.rend(); ++iter ) \
+ while( pxInt > pxIntBegin ) \
{ \
try \
{ \
- static_cast< T* >( (*iter).get() )->method(aEvt); \
+ while( pxInt > pxIntBegin ) \
+ { \
+ --pxInt; \
+ static_cast< T* >( pxInt->get() )->method(aEvt); \
+ } \
} \
catch( RuntimeException& ) \
{ \