CWS-TOOLING: integrate CWS rtlcontrols
2008-12-11 21:08:49 +0100 fs r265367 : CONTEXT_WRITING_MODE is transient 2008-12-11 21:08:00 +0100 fs r265365 : REGISTER_PROP_3 2008-12-11 20:53:44 +0100 fs r265362 : ContextWritingMode is not MAYBEVOID 2008-12-11 15:29:08 +0100 fs r265315 : prevent a deadlock during complex.dbaccess.DatabaseDocument test 2008-12-11 15:01:13 +0100 fs r265304 : manual RESYNC to m37 2008-12-10 20:04:38 +0100 pl r265230 : #i30631# fix a snafu in mirroring 2008-12-10 19:14:45 +0100 pl r265229 : #i30631# rework PaintToDevice for RTL controls 2008-12-05 10:19:13 +0100 fs r264893 : #i10000# ImplInitSettings => ImplInitWindow (ImplInitSettings clashed with base classes ImplInitSettings on unxsols4) 2008-12-03 12:55:24 +0100 fs r264768 : #i100000# 2008-12-03 07:11:48 +0100 fs r264741 : #i10000# 2008-12-02 10:37:51 +0100 fs r264670 : CWS-TOOLING: rebase CWS rtlcontrols to trunk@264325 (milestone: DEV300:m36) 2008-12-02 09:27:50 +0100 fs r264660 : merge from trunk 2008-11-25 10:28:36 +0100 ama r264277 : Fix #i94572# 2008-11-24 11:46:48 +0100 fs r264218 : #i30631# proper context writing mode 2008-11-24 09:38:04 +0100 fs r264204 : #i30631# (approved by PL) 2008-11-24 09:35:47 +0100 fs r264203 : #i30631# Context/WritingMode 2008-11-24 09:33:36 +0100 fs r264202 : #i30631# Context/WritingMode 2008-11-24 09:31:53 +0100 fs r264200 : #i30631# RTL 2008-11-19 08:51:48 +0100 fs r263963 : #i10000# 2008-11-18 20:58:11 +0100 fs r263878 : #i10000# 2008-11-18 15:30:44 +0100 fs r263778 : migrate the CWS from CVS to SVN the CVS changes contained in this change set are the ones between the following two CVS tags: CWS_DEV300_RTLCONTROLS_ANCHOR CWS_DEV300_RTLCONTROLS_PRE_MIGRATION 2008-11-18 12:29:04 +0100 ama r263762 : Fix #i94572#: Context direction for drawing objects 2008-11-18 12:25:50 +0100 ama r263761 : Fix #i94572#: Context direction for drawing objects 2008-11-18 12:02:30 +0100 ama r263759 : Fix #i94572#: Context direction for drawing objects
This commit is contained in:
parent
d4d0eff0e8
commit
910f6c461c
1 changed files with 17 additions and 1 deletions
|
@ -90,6 +90,7 @@
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <list>
|
||||||
|
|
||||||
#define MAP_LEN(x) x, sizeof(x) - 1
|
#define MAP_LEN(x) x, sizeof(x) - 1
|
||||||
|
|
||||||
|
@ -1396,13 +1397,21 @@ void ODatabaseDocument::disposing()
|
||||||
m_aCloseListener.disposeAndClear( aDisposeEvent );
|
m_aCloseListener.disposeAndClear( aDisposeEvent );
|
||||||
m_aStorageListeners.disposeAndClear( aDisposeEvent );
|
m_aStorageListeners.disposeAndClear( aDisposeEvent );
|
||||||
|
|
||||||
|
// this is the list of objects which we currently hold as member. Upon resetting
|
||||||
|
// those members, we can (potentially) release the last reference to them, in which
|
||||||
|
// case they will be deleted - if they're C++ implementations, that is :).
|
||||||
|
// Some of those implementations are offending enough to require the SolarMutex, which
|
||||||
|
// means we should not release the last reference while our own mutex is locked ...
|
||||||
|
::std::list< Reference< XInterface > > aKeepAlive;
|
||||||
|
|
||||||
// SYNCHRONIZED ->
|
// SYNCHRONIZED ->
|
||||||
::osl::MutexGuard aGuard( m_aMutex );
|
::osl::ClearableMutexGuard aGuard( m_aMutex );
|
||||||
|
|
||||||
DBG_ASSERT( m_aControllers.empty(), "ODatabaseDocument::disposing: there still are controllers!" );
|
DBG_ASSERT( m_aControllers.empty(), "ODatabaseDocument::disposing: there still are controllers!" );
|
||||||
// normally, nobody should explicitly dispose, but only XCloseable::close the document. And upon
|
// normally, nobody should explicitly dispose, but only XCloseable::close the document. And upon
|
||||||
// closing, our controllers are closed, too
|
// closing, our controllers are closed, too
|
||||||
|
|
||||||
|
aKeepAlive.push_back( m_xUIConfigurationManager );
|
||||||
m_xUIConfigurationManager = NULL;
|
m_xUIConfigurationManager = NULL;
|
||||||
|
|
||||||
clearObjectContainer( m_xForms );
|
clearObjectContainer( m_xForms );
|
||||||
|
@ -1424,11 +1433,18 @@ void ODatabaseDocument::disposing()
|
||||||
DBG_ASSERT( m_aControllers.empty(), "ODatabaseDocument::disposing: there still are controllers!" );
|
DBG_ASSERT( m_aControllers.empty(), "ODatabaseDocument::disposing: there still are controllers!" );
|
||||||
impl_disposeControllerFrames_nothrow();
|
impl_disposeControllerFrames_nothrow();
|
||||||
|
|
||||||
|
aKeepAlive.push_back( m_xModuleManager );
|
||||||
m_xModuleManager.clear();
|
m_xModuleManager.clear();
|
||||||
|
|
||||||
|
aKeepAlive.push_back( m_xTitleHelper );
|
||||||
m_xTitleHelper.clear();
|
m_xTitleHelper.clear();
|
||||||
|
|
||||||
m_pImpl.clear();
|
m_pImpl.clear();
|
||||||
|
|
||||||
|
aGuard.clear();
|
||||||
// <- SYNCHRONIZED
|
// <- SYNCHRONIZED
|
||||||
|
|
||||||
|
aKeepAlive.clear();
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// XComponent
|
// XComponent
|
||||||
|
|
Loading…
Reference in a new issue