[commit] r1884 - trunk/GME/ConstraintManager

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Tue Apr 17 16:34:09 CDT 2012


Author: ksmyth
Date: Tue Apr 17 16:34:09 2012
New Revision: 1884

Log:
Return S_FALSE if some constraint violations were found

Modified:
   trunk/GME/ConstraintManager/ExpressionChecker.cpp

Modified: trunk/GME/ConstraintManager/ExpressionChecker.cpp
==============================================================================
--- trunk/GME/ConstraintManager/ExpressionChecker.cpp	Fri Mar 23 16:41:46 2012	(r1883)
+++ trunk/GME/ConstraintManager/ExpressionChecker.cpp	Tue Apr 17 16:34:09 2012	(r1884)
@@ -33,6 +33,7 @@
 
 STDMETHODIMP CExpressionChecker::ObjectsInvokeEx( IMgaProject *p, IMgaObject *o, IMgaObjects* os, long k )
 {
+	HRESULT ret = E_ABORT;
 	AFX_MANAGE_STATE( AfxGetStaticModuleState());//z
 	if ( ! m_Facade.m_bEnabled )
 		return S_OK;
@@ -57,15 +58,18 @@
 			for ( unsigned int i = 0 ; i < vecConstraints.size() ; i++ )
 				dlgErrors.AddItem( vecConstraints[ i ] );
 			dlgErrors.DoModal();
+			ret = S_FALSE;
 		}
 		else
+		{
 			CSmallMessageBox().DoModal();
+			ret = S_OK;
+		}
 
 		m_Facade.Finalize();
 
+		return ret;
 	} COMCATCH( ASSERT( 0 ); )
-
-	return S_OK;
 }
 
 STDMETHODIMP CExpressionChecker::GlobalEvent( globalevent_enum event )
@@ -160,8 +164,6 @@
 			ASSERT(false); // Shouldn't get other events because of put_EventMask
 
 	} COMCATCH( ASSERT( 0 ); )
-
-	return S_OK;
 }
 
 STDMETHODIMP CExpressionChecker::Initialize( IMgaProject *p )
@@ -272,8 +274,10 @@
 		CComPtr<IMgaTerritory> t;
 		COMTHROW(p->get_ActiveTerritory(&t));
 		COMTHROW(p->AbortTransaction());
-		COMTHROW(ObjectsInvokeEx(p, o, NULL, k));
+		HRESULT ret = ObjectsInvokeEx(p, o, NULL, k);
+		COMTHROW(ret);
 		COMTHROW(p->BeginTransaction(t, TRANSACTION_GENERAL));
+		return ret;
 	} COMCATCH(;)
 }
 


More information about the gme-commit mailing list