Fix invalid pointer issue in PostSolve callback

--HG--
branch : box2d-update
This commit is contained in:
Bill Meltsner
2011-09-26 19:13:44 -03:00
parent 5886977baa
commit 413f5026fa
+11 -1
View File
@@ -61,7 +61,15 @@ namespace box2d
{ {
if(ref != 0) { if(ref != 0) {
contacts.push_back(new Contact(contact)); contacts.push_back(new Contact(contact));
impulses.push_back(impulse); // copy the impulse struct
b2ContactImpulse * i = new b2ContactImpulse();
i->normalImpulses[0] = impulse->normalImpulses[0];
i->normalImpulses[1] = impulse->normalImpulses[1];
i->tangentImpulses[0] = impulse->tangentImpulses[0];
i->tangentImpulses[1] = impulse->tangentImpulses[1];
i->count = impulse->count;
impulses.push_back(i);
} }
} }
@@ -117,6 +125,8 @@ namespace box2d
delete contacts[i]; delete contacts[i];
contacts.clear(); contacts.clear();
// Clear impulses. // Clear impulses.
for(int i = 0;i<(int)impulses.size();i++)
delete impulses[i];
impulses.clear(); impulses.clear();
} }