[GME-commit] GMESRC/GME/Mga MgaFCO.cpp,1.30,1.31 MgaProject.cpp,1.55,1.56

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Thu Jul 22 12:14:35 CDT 2004


Update of /var/lib/gme/GMESRC/GME/Mga
In directory braindrain:/tmp/cvs-serv22611/GME/Mga

Modified Files:
	MgaFCO.cpp MgaProject.cpp 
Log Message:
Version handling problems fixed

CVS User: volgy

Index: MgaFCO.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/Mga/MgaFCO.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** MgaFCO.cpp	30 Jun 2004 17:50:47 -0000	1.30
--- MgaFCO.cpp	22 Jul 2004 16:14:33 -0000	1.31
***************
*** 208,212 ****
  		CheckDeletedRead();
  		CHECK_OUTPTRPAR(pVal);
! 		*pVal = CComQIPtr<IMgaMetaFCO>(mgaproject->FindMetaRef(self[ATTRID_META])).Detach();
  		if(!(*pVal)) COMTHROW(E_MGA_META_INCOMPATIBILITY);
  	} COMCATCH(;)
--- 208,215 ----
  		CheckDeletedRead();
  		CHECK_OUTPTRPAR(pVal);
! 		COMTRY {
! 			*pVal = CComQIPtr<IMgaMetaFCO>(mgaproject->FindMetaRef(self[ATTRID_META])).Detach();
! 		} COMCATCH(e.hr = E_MGA_META_INCOMPATIBILITY;)
! 
  		if(!(*pVal)) COMTHROW(E_MGA_META_INCOMPATIBILITY);
  	} COMCATCH(;)

Index: MgaProject.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/Mga/MgaProject.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -C2 -d -r1.55 -r1.56
*** MgaProject.cpp	20 Jul 2004 16:01:39 -0000	1.55
--- MgaProject.cpp	22 Jul 2004 16:14:33 -0000	1.56
***************
*** 392,404 ****
  		CComVariant nGUID;
  		COMTHROW(metapr->get_GUID(&nGUID));
! 		if(guidcmp(pGUID, nGUID) && (*ro_mode == VARIANT_FALSE)) {
! 			COMTHROW(BeginTransaction(lm, TRANSACTION_GENERAL));
  			try {
! 				CoreObj  dataroot;
! 				COMTHROW(dataproject->get_RootObject(&dataroot.ComPtr()));
! 				dataroot[ATTRID_PARGUID] = nGUID;
  				COMTHROW(CommitTransaction());
- 				opened = CHANGED;
- 				guidstat = DIRTY;
  			} catch(hresult_exception &e) {
  				lm->Flush();
--- 392,403 ----
  		CComVariant nGUID;
  		COMTHROW(metapr->get_GUID(&nGUID));
! 
! 		if(guidcmp(pGUID, nGUID)) {
! 			COMTHROW(BeginTransaction(lm, TRANSACTION_READ_ONLY));
  			try {
! 				CComPtr<IMgaFolder> rf;
! 				COMTHROW(get_RootFolder(&rf));
! 				COMTHROW(ObjFor(rf)->CheckTree());
  				COMTHROW(CommitTransaction());
  			} catch(hresult_exception &e) {
  				lm->Flush();
***************
*** 406,410 ****
--- 405,426 ----
  				throw e;
  			}
+ 
+ 			if (*ro_mode == VARIANT_FALSE) {
+ 				COMTHROW(BeginTransaction(lm, TRANSACTION_GENERAL));
+ 				try {
+ 					CoreObj  dataroot;
+ 					COMTHROW(dataproject->get_RootObject(&dataroot.ComPtr()));
+ 					dataroot[ATTRID_PARGUID] = nGUID;
+ 					COMTHROW(CommitTransaction());
+ 					opened = CHANGED;
+ 					guidstat = DIRTY;
+ 				} catch(hresult_exception &e) {
+ 					lm->Flush();
+ 					AbortTransaction();
+ 					throw e;
+ 				}
+ 			}
  		}
+ 
  		COMTHROW(RegisterActiveObject((IMgaProject *)this,CLSID_MgaProject,ACTIVEOBJECT_STRONG,&rot));
  		StartAutoAddOns();



More information about the GME-commit mailing list