AddController doesn't update the m_prev of head
Opened this issue · 0 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1. world.AddController(contA)
2. world.AddController(contB)
3. world.RemoveController(contA)
4. contA.Step is still called at each world step beyond this point.
Add controller never updates contA.m_prev when contB is added. Subsequently,
RemoveController(contA) call has no effect and contA remains on the list of
controllers.
What is the expected output? What do you see instead?
I expect contA.Step to not be called from then on.
"Patch" (excuse the non-patch nature, added lines marked with '+'):
b2World.prototype.AddController = function (c) {
+ if( this.m_controllerList !== null ) {
+ this.m_controllerList.m_prev = c;
+ }
c.m_next = this.m_controllerList;
c.m_prev = null;
this.m_controllerList = c;
c.m_world = this;
this.m_controllerCount++;
return c;
}
Original issue reported on code.google.com by nzaluts...@amplify.com
on 27 Mar 2015 at 4:26