[GME-commit] GMESRC/GME/Mga MgaLibRefr.cpp,1.1,1.2

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Thu Jan 18 16:47:52 CST 2007


Update of /project/gme-repository/GMESRC/GME/Mga
In directory escher:/tmp/cvs-serv650

Modified Files:
	MgaLibRefr.cpp 
Log Message:
Bug corrected when A, B (lib objects) have subtypes AS and BS (in the project).
BS gets a new child, an instance of AS: ASI.

Upon refresh ASI was deleted as an orphan child because it was derived 
and it seemed secondary derived along with it parent, however it wasn't.



CVS User: Zoltan Molnar, ISIS (zolmol)

Index: MgaLibRefr.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Mga/MgaLibRefr.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MgaLibRefr.cpp	19 May 2006 18:35:31 -0000	1.1
--- MgaLibRefr.cpp	18 Jan 2007 16:47:50 -0000	1.2
***************
*** 703,707 ****
  void RefreshManager::getLibDerdEquiv( const CComPtr<IMgaFCO>& end, const CComPtr<IMgaModel>& b_par, const CComPtr<IMgaModel>& d_par, CComPtr<IMgaFCO>& n_end, bool checkParentHood /*=true*/)
  {
! 	if( b_par == d_par) 
  	{
  		n_end = end;
--- 703,707 ----
  void RefreshManager::getLibDerdEquiv( const CComPtr<IMgaFCO>& end, const CComPtr<IMgaModel>& b_par, const CComPtr<IMgaModel>& d_par, CComPtr<IMgaFCO>& n_end, bool checkParentHood /*=true*/)
  {
! 	if( b_par == d_par || !end) 
  	{
  		n_end = end;
***************
*** 1952,1968 ****
  	CComPtr<IMgaFCO> b_tgt, d_tgt;
  	COMTHROW( masterRef->get_Referred( &b_tgt));
! 	getLibDerdEquiv( b_tgt, masterParent, adaptvParent, d_tgt, false); // no limitation if parent, grandparent ...
! 	if( d_tgt)
! 	{
! 		COMTHROW( adaptvRef->put_Referred( d_tgt));
! 	}
! 	else
  	{
! 		MyCComBSTR msg;
! 		msg.Append( L"Could not find derived peer of ");
! 		msg.appendLink( b_tgt);
! 		msg.Append( L" in order to set as target of ");
! 		msg.appendLink( adaptvRef);
! 		m_reporter.show( msg);
  	}
  }
--- 1952,1971 ----
  	CComPtr<IMgaFCO> b_tgt, d_tgt;
  	COMTHROW( masterRef->get_Referred( &b_tgt));
! 	if( b_tgt) 
  	{
! 		getLibDerdEquiv( b_tgt, masterParent, adaptvParent, d_tgt, false); // no limitation if parent, grandparent ...
! 		if( d_tgt)
! 		{
! 			COMTHROW( adaptvRef->put_Referred( d_tgt));
! 		}
! 		else
! 		{
! 			MyCComBSTR msg;
! 			msg.Append( L"Could not find derived peer of ");
! 			msg.appendLink( b_tgt);
! 			msg.Append( L" in order to set as target of ");
! 			msg.appendLink( adaptvRef);
! 			m_reporter.show( msg);
! 		}
  	}
  }
***************
*** 2393,2397 ****
  									mapOfSecondaryDeriveds [ my_id ] = base_guid;
  #endif
! 									napOfSecondaryDeriveds [ my_pt ] = base_guid;
  								}
  
--- 2396,2409 ----
  									mapOfSecondaryDeriveds [ my_id ] = base_guid;
  #endif
! 									// check if its really a secondary derived object
! 									// before storing into map
! 									// FIX for bug submitted by Pramod
! 									// when A, B have subtypes AS and BS, and BS gets a new child
! 									// an instance of AS: ASI
! 									// upon refresh ASI was deleted as an orphan child
! 									// because it was derived and it seemed secondary derived
! 									// along with it parent, however it wasn't
! 									if( primDer != VARIANT_TRUE) 
! 										napOfSecondaryDeriveds [ my_pt ] = base_guid;
  								}
  



More information about the GME-commit mailing list