User: obo     
Date: 06/03/29 04:32:42

Modified:
 /dba/dbaccess/source/core/dataaccess/
  ModelImpl.cxx

Log:
 INTEGRATION: CWS dba203a (1.11.16); FILE MERGED
 2006/03/16 09:52:32 fs 1.11.16.1: #i63162# hold the document weak

File Changes:

Directory: /dba/dbaccess/source/core/dataaccess/
================================================

File [changed]: ModelImpl.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/dataaccess/ModelImpl.cxx?r1=1.11&r2=1.12
Delta lines:  +21 -17
---------------------
--- ModelImpl.cxx       31 Jan 2006 18:40:09 -0000      1.11
+++ ModelImpl.cxx       29 Mar 2006 12:32:40 -0000      1.12
@@ -330,11 +330,7 @@
        ::osl::MutexGuard aGuard( m_aMutex );
 
     if ( m_pModelImplementation )
-    {
-        Reference< XModifiable > xModiable( 
m_pModelImplementation->getModel_noCreate(), UNO_QUERY );
-       if ( xModiable.is() )
-                   xModiable->setModified( sal_True );
-    }
+        m_pModelImplementation->setModified( sal_True );
 
     if ( m_pModelImplementation && m_bPropagateCommitToRoot )
     {
@@ -397,7 +393,7 @@
                        ,m_pDBContext(NULL)
                        ,m_nControllerLockCount(0)
             ,m_bOwnStorage(sal_False)
-            ,m_xTempModel(_xModel)
+            ,m_xModel(_xModel)
                        ,m_nLoginTimeout(0)
                        ,m_refCount(0)
             ,m_pStorageAccess( NULL )
@@ -529,15 +525,17 @@
     {
         Reference< XDataSource > xDS( m_xDataSource );
                ::comphelper::disposeComponent( xDS );
-        m_xDataSource = WeakReference<XDataSource>();
+        m_xDataSource = WeakReference< XDataSource >();
 
-        ::comphelper::disposeComponent(m_xTempModel);
+        Reference< XModel > xModel( m_xModel );
+        ::comphelper::disposeComponent( xModel );
+        m_xModel = WeakReference< XModel >();
     }
     catch( const Exception& )
     {
     }
        m_xDataSource = WeakReference<XDataSource>();
-    m_xTempModel.clear();
+    m_xModel = WeakReference< XModel >();
 
        ::std::vector<TContentPtr>::iterator aIter = m_aContainer.begin();
        ::std::vector<TContentPtr>::iterator aEnd = m_aContainer.end();
@@ -815,9 +813,11 @@
 {
     try
     {
-        Reference<XModifiable> xModi(m_xTempModel.get(),UNO_QUERY);
+        Reference<XModifiable> xModi(m_xModel.get(),UNO_QUERY);
         if ( xModi.is() )
-            xModi->setModified(_bModified);
+            xModi->setModified( _bModified );
+        else
+            m_bModified = _bModified;
     }
     catch(Exception)
     {
@@ -853,15 +853,19 @@
 // 
-----------------------------------------------------------------------------
 Reference< XModel> ODatabaseModelImpl::getModel_noCreate()
 {
-    return m_xTempModel;
+    return m_xModel;
 }
 // 
-----------------------------------------------------------------------------
-Reference< XModel> ODatabaseModelImpl::createNewModel_deliverOwnership()
+Reference< XModel > ODatabaseModelImpl::createNewModel_deliverOwnership()
 {
-    OSL_PRECOND( !m_xTempModel.is(), "ODatabaseModelImpl::getModel_noCreate: 
not to be called if there already is a model!" );
-       if ( !m_xTempModel.is() )
-        m_xTempModel = ODatabaseDocument::createDatabaseDocument( this, 
ODatabaseDocument::FactoryAccess() );
-       return m_xTempModel;
+    Reference< XModel > xModel( m_xModel );
+    OSL_PRECOND( !xModel.is(), 
"ODatabaseModelImpl::createNewModel_deliverOwnership: not to be called if there 
already is a model!" );
+       if ( !xModel.is() )
+    {
+        xModel = ODatabaseDocument::createDatabaseDocument( this, 
ODatabaseDocument::FactoryAccess() );
+        m_xModel = xModel;
+    }
+       return xModel;
 }
 // 
-----------------------------------------------------------------------------
 oslInterlockedCount SAL_CALL ODatabaseModelImpl::acquire()




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to