|
@@ -315,7 +315,8 @@ void Object::SendEvent(StringHash eventType, VariantMap& eventData)
|
|
|
{
|
|
{
|
|
|
group->BeginSendEvent();
|
|
group->BeginSendEvent();
|
|
|
|
|
|
|
|
- for (unsigned i = 0; i < group->receivers_.Size(); ++i)
|
|
|
|
|
|
|
+ const unsigned numReceivers = group->receivers_.Size();
|
|
|
|
|
+ for (unsigned i = 0; i < numReceivers; ++i)
|
|
|
{
|
|
{
|
|
|
Object* receiver = group->receivers_[i];
|
|
Object* receiver = group->receivers_[i];
|
|
|
// Holes may exist if receivers removed during send
|
|
// Holes may exist if receivers removed during send
|
|
@@ -346,7 +347,8 @@ void Object::SendEvent(StringHash eventType, VariantMap& eventData)
|
|
|
|
|
|
|
|
if (processed.Empty())
|
|
if (processed.Empty())
|
|
|
{
|
|
{
|
|
|
- for (unsigned i = 0; i < group->receivers_.Size(); ++i)
|
|
|
|
|
|
|
+ const unsigned numReceivers = group->receivers_.Size();
|
|
|
|
|
+ for (unsigned i = 0; i < numReceivers; ++i)
|
|
|
{
|
|
{
|
|
|
Object* receiver = group->receivers_[i];
|
|
Object* receiver = group->receivers_[i];
|
|
|
if (!receiver)
|
|
if (!receiver)
|
|
@@ -365,7 +367,8 @@ void Object::SendEvent(StringHash eventType, VariantMap& eventData)
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
// If there were specific receivers, check that the event is not sent doubly to them
|
|
// If there were specific receivers, check that the event is not sent doubly to them
|
|
|
- for (unsigned i = 0; i < group->receivers_.Size(); ++i)
|
|
|
|
|
|
|
+ const unsigned numReceivers = group->receivers_.Size();
|
|
|
|
|
+ for (unsigned i = 0; i < numReceivers; ++i)
|
|
|
{
|
|
{
|
|
|
Object* receiver = group->receivers_[i];
|
|
Object* receiver = group->receivers_[i];
|
|
|
if (!receiver || processed.Contains(receiver))
|
|
if (!receiver || processed.Contains(receiver))
|