Core/Signal: Fix incorrect forwarding

Former-commit-id: 4d437e98e89dcc52f44259371e18589a72fdbd27
This commit is contained in:
Lynix 2015-06-07 01:31:37 +02:00
parent 1a0057313c
commit d43126eae5
3 changed files with 7 additions and 32 deletions

View File

@ -31,7 +31,7 @@ class NzSignal
template<typename O> Connection&& Connect(O& object, void (O::*method)(Args...));
template<typename O> Connection&& Connect(O* object, void (O::*method)(Args...));
void operator()(Args&&... args);
void operator()(Args... args);
NzSignal& operator=(const NzSignal&) = delete;
NzSignal& operator=(NzSignal&& signal);

View File

@ -59,10 +59,10 @@ typename NzSignal<Args...>::Connection&& NzSignal<Args...>::Connect(O* object, v
}
template<typename... Args>
void NzSignal<Args...>::operator()(Args&&... args)
void NzSignal<Args...>::operator()(Args... args)
{
for (const SlotPtr& slot : m_slots)
slot->callback(std::forward<Args>(args)...);
slot->callback(args...);
}
template<typename... Args>

View File

@ -40,6 +40,8 @@ m_transformMatrixUpdated(false)
NzNode::~NzNode()
{
OnNodeRelease(this);
for (NzNode* child : m_childs)
{
// child->SetParent(nullptr); serait problématique car elle nous appellerait
@ -49,8 +51,6 @@ NzNode::~NzNode()
}
SetParent(nullptr);
NotifyRelease(Listener::OnNodeReleased);
}
void NzNode::EnsureDerivedUpdate() const
@ -655,12 +655,12 @@ void NzNode::InvalidateNode()
for (NzNode* node : m_childs)
node->InvalidateNode();
Notify(Listener::OnNodeInvalidated);
OnNodeInvalidation(this);
}
void NzNode::OnParenting(const NzNode* parent)
{
Notify(Listener::OnNodeParented, parent);
OnNodeNewParent(this, parent);
}
void NzNode::RemoveChild(NzNode* node) const
@ -714,28 +714,3 @@ void NzNode::UpdateTransformMatrix() const
m_transformMatrix.MakeTransform(m_derivedPosition, m_derivedRotation, m_derivedScale);
m_transformMatrixUpdated = true;
}
NzNode::Listener::~Listener() = default;
bool NzNode::Listener::OnNodeInvalidated(const NzNode* node, void* userdata)
{
NazaraUnused(node);
NazaraUnused(userdata);
return true;
}
bool NzNode::Listener::OnNodeParented(const NzNode* node, const NzNode* parent, void* userdata)
{
NazaraUnused(node);
NazaraUnused(parent);
NazaraUnused(userdata);
return true;
}
void NzNode::Listener::OnNodeReleased(const NzNode* node, void* userdata)
{
NazaraUnused(node);
NazaraUnused(userdata);
}