[commit] r1171 - trunk/GME/Meta

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Fri Feb 11 14:51:53 CST 2011


Author: ksmyth
Date: Fri Feb 11 14:51:52 2011
New Revision: 1171

Log:
Fix GME-334: MgaMetaBase now has a COM pointer to the project. Cycles are broken on Close()

Modified:
   trunk/GME/Meta/Meta.cpp
   trunk/GME/Meta/MetaUtilities.h
   trunk/GME/Meta/MgaMetaAspect.cpp
   trunk/GME/Meta/MgaMetaAttribute.cpp
   trunk/GME/Meta/MgaMetaBase.cpp
   trunk/GME/Meta/MgaMetaBase.h
   trunk/GME/Meta/MgaMetaConnJoint.cpp
   trunk/GME/Meta/MgaMetaConnection.cpp
   trunk/GME/Meta/MgaMetaFCO.cpp
   trunk/GME/Meta/MgaMetaFolder.cpp
   trunk/GME/Meta/MgaMetaModel.cpp
   trunk/GME/Meta/MgaMetaPart.cpp
   trunk/GME/Meta/MgaMetaPointerSpec.cpp
   trunk/GME/Meta/MgaMetaReference.cpp
   trunk/GME/Meta/MgaMetaRegNode.cpp
   trunk/GME/Meta/MgaMetaSet.cpp

Modified: trunk/GME/Meta/Meta.cpp
==============================================================================
--- trunk/GME/Meta/Meta.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/Meta.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -113,7 +113,7 @@
 
 void TraverseObject(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	me.Load();
@@ -187,7 +187,7 @@
 
 void TraverseCollection(CMgaMetaProject *metaproject, CCoreObjectPtr &me, attrid_type attrid)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	coreobjects_type coreobjects;

Modified: trunk/GME/Meta/MetaUtilities.h
==============================================================================
--- trunk/GME/Meta/MetaUtilities.h	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MetaUtilities.h	Fri Feb 11 14:51:52 2011	(r1171)
@@ -377,7 +377,7 @@
 	ASSERT( me != NULL );
 
 	CMgaMetaProject *metaproject = me->metaproject;
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	COMTRY
 	{
@@ -403,7 +403,7 @@
 	ASSERT( me != NULL );
 
 	CMgaMetaProject *metaproject = me->metaproject;
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	COMTRY
 	{

Modified: trunk/GME/Meta/MgaMetaAspect.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaAspect.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaAspect.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -13,7 +13,7 @@
 	if( role == NULL )
 		COMRETURN(E_POINTER);
 
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	COMTRY
 	{
@@ -38,7 +38,7 @@
 
 void CMgaMetaAspect::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaBase::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaAttribute.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaAttribute.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaAttribute.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -87,7 +87,7 @@
 
 void CMgaMetaAttribute::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaBase::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaBase.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaBase.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaBase.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -8,18 +8,17 @@
 
 CMgaMetaBase::~CMgaMetaBase()
 {
-	if( metaproject != NULL )
+	if (metaprojectref != NULL)
 		metaproject->UnregisterMetaBase(metaref, this);
 
 #ifdef _DEBUG
-	metaproject = NULL;
 	metaref = 0;
 #endif
 }
 
 HRESULT CMgaMetaBase::PutMetaRef(metaref_type p)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	if( p == metaref )
 		return S_OK;
@@ -33,7 +32,7 @@
 
 void CMgaMetaBase::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	me.Load();
 	metaref_type metaref = me.GetLongValue(ATTRID_METAREF);
@@ -49,7 +48,7 @@
 
 	metaproject->RegisterMetaBase(metaref, base);
 
-	base->metaproject = metaproject;
+	base->metaprojectref = metaproject;
 	base->metaref = metaref;
 
 	TraverseCollection(metaproject, me, ATTRID_REGNODES_COLL);

Modified: trunk/GME/Meta/MgaMetaBase.h
==============================================================================
--- trunk/GME/Meta/MgaMetaBase.h	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaBase.h	Fri Feb 11 14:51:52 2011	(r1171)
@@ -2,13 +2,8 @@
 #ifndef MGA_MGAMETABASE_H
 #define MGA_MGAMETABASE_H
 
-#ifndef MGA_MGAMETAPROJECT_h
 #include "MgaMetaProject.h"
-#endif
-
-#ifndef MGA_MGAMETAREGNODE_H
 #include "MgaMetaRegNode.h"
-#endif
 
 // --------------------------- CMgaMetaBase
 
@@ -17,7 +12,7 @@
 	public CMgaMetaRegNodes
 {
 public:
-	CMgaMetaBase() : metaproject(NULL) { }
+	CMgaMetaBase() { }
 	~CMgaMetaBase();
 
 public:
@@ -25,7 +20,11 @@
 
 	static void Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me);
 
-	CMgaMetaProject *metaproject;
+	CComPtr<IMgaMetaProject> metaprojectref;
+	CMgaMetaProject* getMetaProject() {
+		return static_cast<CMgaMetaProject*>(static_cast<IMgaMetaProject*>(metaprojectref));
+	}
+	__declspec(property(get = getMetaProject)) CMgaMetaProject *metaproject;
 	metaref_type metaref;
 };
 

Modified: trunk/GME/Meta/MgaMetaConnJoint.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaConnJoint.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaConnJoint.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -9,7 +9,7 @@
 
 void CMgaMetaConnJoint::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	TraverseCollection(metaproject, me, ATTRID_PTRSPECS_COLL);

Modified: trunk/GME/Meta/MgaMetaConnection.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaConnection.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaConnection.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -12,7 +12,7 @@
 
 	COMTRY
 	{
-		ASSERT( metaproject != NULL );
+		ASSERT( metaprojectref != NULL );
 
 		jointpaths_type jointpaths;
 		metaproject->CreateJointPaths(paths, jointpaths);
@@ -48,7 +48,7 @@
 {
 	CHECK_OUT(p);
 
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	COMTRY
 	{
@@ -69,7 +69,7 @@
 
 void CMgaMetaConnection::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaFCO::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaFCO.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaFCO.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaFCO.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -119,7 +119,7 @@
 
 void CMgaMetaFCO::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaBase::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaFolder.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaFolder.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaFolder.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -126,7 +126,7 @@
 
 void CMgaMetaFolder::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaBase::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaModel.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaModel.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaModel.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -121,7 +121,7 @@
 		// prepare the jointpaths
 		jointpaths_type jointpaths;
 
-		ASSERT( metaproject != NULL );
+		ASSERT( metaprojectref != NULL );
 		metaproject->CreateJointPaths(paths, jointpaths);
 
 		// traverse the roles
@@ -168,7 +168,7 @@
 		// prepare the pathitems
 		pathitems_type pathitems;
 
-		ASSERT( metaproject != NULL );
+		ASSERT( metaprojectref != NULL );
 		metaproject->CreatePathItems(begin(path), end(path), pathitems);
 
 		// traverse the roles
@@ -215,7 +215,7 @@
 		// prepare the pathitems
 		pathitems_type pathitems;
 
-		ASSERT( metaproject != NULL );
+		ASSERT( metaprojectref != NULL );
 		metaproject->CreatePathItems(begin(path), end(path), pathitems);
 
 		// traverse the roles
@@ -302,7 +302,7 @@
 	if( kind == NULL )
 		COMRETURN(E_POINTER);
 
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 
 	COMTRY
 	{
@@ -327,7 +327,7 @@
 
 void CMgaMetaModel::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaFCO::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaPart.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaPart.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaPart.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -78,7 +78,7 @@
 
 void CMgaMetaPart::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaBase::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaPointerSpec.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaPointerSpec.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaPointerSpec.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -28,7 +28,7 @@
 
 void CMgaMetaPointerSpec::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	TraverseCollection(metaproject, me, ATTRID_PTRITEMS_COLL);

Modified: trunk/GME/Meta/MgaMetaReference.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaReference.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaReference.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -11,7 +11,7 @@
 
 	COMTRY
 	{
-		ASSERT( metaproject != NULL );
+		ASSERT( metaprojectref != NULL );
 
 		pathitems_type pathitems;
 		metaproject->CreatePathItems(begin(path), end(path), pathitems);
@@ -29,7 +29,7 @@
 
 void CMgaMetaReference::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaFCO::Traverse(metaproject, me);

Modified: trunk/GME/Meta/MgaMetaRegNode.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaRegNode.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaRegNode.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -147,7 +147,7 @@
 
 void CMgaMetaRegNode::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	TraverseCollection(metaproject, me, ATTRID_REGNODES_COLL);

Modified: trunk/GME/Meta/MgaMetaSet.cpp
==============================================================================
--- trunk/GME/Meta/MgaMetaSet.cpp	Thu Feb 10 10:15:35 2011	(r1170)
+++ trunk/GME/Meta/MgaMetaSet.cpp	Fri Feb 11 14:51:52 2011	(r1171)
@@ -11,7 +11,7 @@
 
 	COMTRY
 	{
-		ASSERT( metaproject != NULL );
+		ASSERT( metaprojectref != NULL );
 
 		pathitems_type pathitems;
 		metaproject->CreatePathItems(begin(path), end(path), pathitems);
@@ -29,7 +29,7 @@
 
 void CMgaMetaSet::Traverse(CMgaMetaProject *metaproject, CCoreObjectPtr &me)
 {
-	ASSERT( metaproject != NULL );
+	ASSERT( metaprojectref != NULL );
 	ASSERT( me != NULL );
 
 	CMgaMetaFCO::Traverse(metaproject, me);


More information about the gme-commit mailing list