/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// CLASS HEADER
#include <dali/internal/update/animation/scene-graph-constraint.h>
-// INTERNAL INCLUDES
-#include <dali/public-api/animation/active-constraint.h>
-
namespace Dali
{
namespace SceneGraph
{
-ConstraintBase::ConstraintBase( PropertyOwnerSet& ownerSet )
-: mWeight( Dali::ActiveConstraint::DEFAULT_WEIGHT ),
- mRemoveAction( Dali::Constraint::DEFAULT_REMOVE_ACTION ),
+#ifdef DEBUG_ENABLED
+ unsigned int ConstraintBase::mCurrentInstanceCount = 0;
+ unsigned int ConstraintBase::mTotalInstanceCount = 0;
+#endif
+
+ConstraintBase::ConstraintBase( PropertyOwnerContainer& ownerSet, RemoveAction removeAction )
+: mRemoveAction( removeAction ),
mFirstApply( true ),
mDisconnected( true ),
- mObservedOwners( ownerSet )
+ mObservedOwners( ownerSet ),
+ mLifecycleObserver( nullptr )
{
+#ifdef DEBUG_ENABLED
+ ++mCurrentInstanceCount;
+ ++mTotalInstanceCount;
+#endif
}
ConstraintBase::~ConstraintBase()
StopObservation();
}
-// TODO - Override new & delete to provide this for everything
-#if defined(DEBUG_ENABLED) && !defined(EMSCRIPTEN)
- // Fill with garbage pattern to help detect invalid memory access
- memset ( &mWeight, 0xFA, sizeof(mWeight) );
+ if( mLifecycleObserver != nullptr )
+ {
+ mLifecycleObserver->ObjectDestroyed();
+ }
+
+#ifdef DEBUG_ENABLED
+ --mCurrentInstanceCount;
+#endif
+}
+
+unsigned int ConstraintBase::GetCurrentInstanceCount()
+{
+#ifdef DEBUG_ENABLED
+ return mCurrentInstanceCount;
+#else
+ return 0u;
#endif
}
-void ConstraintBase::ResetDefaultProperties( BufferIndex updateBufferIndex )
+unsigned int ConstraintBase::GetTotalInstanceCount()
{
- // Not used, since the weight property is reset by PropertyOwner
- DALI_ASSERT_DEBUG( false );
+#ifdef DEBUG_ENABLED
+ return mTotalInstanceCount;
+#else
+ return 0u;
+#endif
}
} // namespace SceneGraph