From 12315f4d0e0ae993805f141f64cb8c73c5297311 Mon Sep 17 00:00:00 2001 From: Hans Lambermont Date: Sat, 12 Oct 2002 11:37:38 +0000 Subject: Initial revision --- source/gameengine/Expressions/Expression.cpp | 75 ++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 source/gameengine/Expressions/Expression.cpp (limited to 'source/gameengine/Expressions/Expression.cpp') diff --git a/source/gameengine/Expressions/Expression.cpp b/source/gameengine/Expressions/Expression.cpp new file mode 100644 index 00000000000..5e7950fbcf0 --- /dev/null +++ b/source/gameengine/Expressions/Expression.cpp @@ -0,0 +1,75 @@ +// Expression.cpp: implementation of the CExpression class. +/* + * Copyright (c) 1996-2000 Erwin Coumans + * + * Permission to use, copy, modify, distribute and sell this software + * and its documentation for any purpose is hereby granted without fee, + * provided that the above copyright notice appear in all copies and + * that both that copyright notice and this permission notice appear + * in supporting documentation. Erwin Coumans makes no + * representations about the suitability of this software for any + * purpose. It is provided "as is" without express or implied warranty. + * + */ + + + +#include "Expression.h" +#include "ErrorValue.h" +//#include "FactoryManager.h" + +////////////////////////////////////////////////////////////////////// +// Construction/Destruction +////////////////////////////////////////////////////////////////////// + +CExpression::CExpression()// : m_cached_calculate(NULL) +{ + m_refcount = 1; +#ifdef _DEBUG + //gRefCountExpr++; +#endif +} + +CExpression::~CExpression() +{ + assert (m_refcount == 0); +} + + + +// destuctor for CBrokenLinkInfo +CBrokenLinkInfo::~CBrokenLinkInfo() +{ + if (m_pExpr && !m_bRestored) + m_pExpr->Release(); +} + + +void CBrokenLinkInfo::RestoreLink() +{ + + + assertd(m_pExpr); + + if (m_pExpr) + { + if (!m_bRestored){ + m_bRestored=true; + + } + if (*m_pmemExpr) + { + (*m_pmemExpr)->Release(); + } + *m_pmemExpr = m_pExpr; + +// m_pExpr=NULL; + } +} + +void CBrokenLinkInfo::BreakLink() +{ + m_bRestored=false; + m_pExpr->AddRef(); +} + -- cgit v1.2.3