diff options
author | Rüdiger Timm <rt@openoffice.org> | 2006-05-05 08:55:59 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2006-05-05 08:55:59 +0000 |
commit | 45c581a4185d1709b36e47a69ccd271dffb89357 (patch) | |
tree | a8cb7964bd21ef9534ce14e9ccac71f9a514568f /embedserv | |
parent | bb6cd5b10dbc0f88c700fecae80bdd4484a16d77 (diff) |
INTEGRATION: CWS fwkc03fixes (1.2.54); FILE MERGED
2006/04/28 13:11:40 mav 1.2.54.1: #134455# fix objects crosslinking
Diffstat (limited to 'embedserv')
-rw-r--r-- | embedserv/source/embed/iipaobj.cxx | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/embedserv/source/embed/iipaobj.cxx b/embedserv/source/embed/iipaobj.cxx index 52e790a7699a..42547baf9b54 100644 --- a/embedserv/source/embed/iipaobj.cxx +++ b/embedserv/source/embed/iipaobj.cxx @@ -3,10 +3,9 @@ -CIIAObj::CIIAObj(EmbedDocument_Impl *pEmbDoc,DocumentHolder* pDocHolder) - : m_cRef(0), - m_pEmbDoc(pEmbDoc), - m_pDocHolder(pDocHolder) +CIIAObj::CIIAObj(DocumentHolder* pDocHolder) + : m_refCount( 0L ), + m_rDocHolder( pDocHolder ) { } @@ -40,17 +39,17 @@ STDMETHODIMP CIIAObj::QueryInterface(REFIID riid, LPVOID FAR *ppv) STDMETHODIMP_(ULONG) CIIAObj::AddRef(void) { - ++m_cRef; - return m_pEmbDoc->AddRef(); + return osl_incrementInterlockedCount( &m_refCount); } STDMETHODIMP_(ULONG) CIIAObj::Release(void) { - --m_cRef; - return m_pEmbDoc->Release(); -} - + sal_Int32 nCount = osl_decrementInterlockedCount( &m_refCount); + if ( nCount == 0 ) + delete this; + return nCount; +} /* IOleInPlaceActiveObject methods*/ @@ -84,7 +83,10 @@ STDMETHODIMP CIIAObj::ResizeBorder( { if(!bFrame) return NOERROR; - return m_pDocHolder->SetContRects(pRect); + if ( !m_rDocHolder.is() ) + return E_FAIL; + + return m_rDocHolder->SetContRects(pRect); } |