Browse Source

Fix Fixture:getShape() causing crashes with ChainShapes (resolves issue #1392), removed dead code that's no longer valid

Alex Szpakowski 7 years ago
parent
commit
b934f74795
2 changed files with 3 additions and 16 deletions
  1. 2 12
      src/modules/physics/box2d/ChainShape.cpp
  2. 1 4
      src/modules/physics/box2d/ChainShape.h

+ 2 - 12
src/modules/physics/box2d/ChainShape.cpp

@@ -36,8 +36,8 @@ namespace box2d
 
 love::Type ChainShape::type("ChainShape", &Shape::type);
 
-ChainShape::ChainShape(b2ChainShape *c, bool loop, bool own)
-	: Shape(c, own), loop(loop)
+ChainShape::ChainShape(b2ChainShape *c, bool own)
+	: Shape(c, own)
 {
 }
 
@@ -47,11 +47,6 @@ ChainShape::~ChainShape()
 
 void ChainShape::setNextVertex(float x, float y)
 {
-	if (loop)
-	{
-		throw love::Exception("Physics error: Can't call setNextVertex on a loop ChainShape");
-		return;
-	}
 	b2Vec2 v(x, y);
 	b2ChainShape *c = (b2ChainShape *)shape;
 	c->SetNextVertex(Physics::scaleDown(v));
@@ -65,11 +60,6 @@ void ChainShape::setNextVertex()
 
 void ChainShape::setPreviousVertex(float x, float y)
 {
-	if (loop)
-	{
-		throw love::Exception("Physics error: Can't call setPreviousVertex on a loop ChainShape");
-		return;
-	}
 	b2Vec2 v(x, y);
 	b2ChainShape *c = (b2ChainShape *)shape;
 	c->SetPrevVertex(Physics::scaleDown(v));

+ 1 - 4
src/modules/physics/box2d/ChainShape.h

@@ -45,7 +45,7 @@ public:
 	 * Create a new ChainShape from a Box2D chain shape.
 	 * @param c The chain shape.
 	 **/
-	ChainShape(b2ChainShape *c, bool loop = false, bool own = true);
+	ChainShape(b2ChainShape *c, bool own = true);
 
 	virtual ~ChainShape();
 
@@ -103,9 +103,6 @@ public:
 	 **/
 	const b2Vec2 *getPoints() const;
 
-private:
-	// True if this ChainShape is a loop.
-	bool loop;
 };
 
 } // box2d