Fix issues with Shape retention in Fixture:getShape()

This commit is contained in:
Bill Meltsner
2012-02-04 18:55:48 -05:00
parent e5cabe3b3f
commit 2a88ed1fa5
2 changed files with 6 additions and 2 deletions
+6 -1
View File
@@ -128,7 +128,12 @@ namespace box2d
return NULL;
Shape * s = (Shape *)Memoizer::find(fixture->GetShape());
if (!s)
s = new Shape(fixture->GetShape());
{
b2BlockAllocator a;
s = new Shape(fixture->GetShape()->Clone(&a));
}
else
s->retain();
return s;
}
@@ -121,7 +121,6 @@ namespace box2d
Shape * shape = t->getShape();
if (shape == 0)
return 0;
shape->retain();
switch (shape->getType()) {
case Shape::SHAPE_EDGE:
luax_newtype(L, "EdgeShape", PHYSICS_EDGE_SHAPE_T, (void*)shape);