Checked all cases where PyArg_ParseTuple is used in blenders game engine and made sure all will raise errors when called with invalid args.

This commit is contained in:
Campbell Barton 2008-07-01 16:43:46 +00:00
parent bc8364fef0
commit b0958b6646
11 changed files with 187 additions and 13 deletions

@ -604,6 +604,9 @@ PyObject* BL_ShapeActionActuator::PySetAction(PyObject* self,
m_blendframe = 0.f;
}
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -623,6 +626,9 @@ PyObject* BL_ShapeActionActuator::PySetStart(PyObject* self,
{
m_startframe = start;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -642,6 +648,9 @@ PyObject* BL_ShapeActionActuator::PySetEnd(PyObject* self,
{
m_endframe = end;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -662,6 +671,9 @@ PyObject* BL_ShapeActionActuator::PySetBlendin(PyObject* self,
{
m_blendin = blendin;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -687,6 +699,9 @@ PyObject* BL_ShapeActionActuator::PySetBlendtime(PyObject* self,
if (m_blendframe>m_blendin)
m_blendframe = m_blendin;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -708,6 +723,9 @@ PyObject* BL_ShapeActionActuator::PySetPriority(PyObject* self,
{
m_priority = priority;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -731,6 +749,9 @@ PyObject* BL_ShapeActionActuator::PySetFrame(PyObject* self,
else if (m_localtime>m_endframe)
m_localtime=m_endframe;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -751,6 +772,9 @@ PyObject* BL_ShapeActionActuator::PySetProperty(PyObject* self,
{
m_propname = string;
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;

@ -812,7 +812,7 @@ KX_PYMETHODDEF_DOC( BL_Shader, setSource," setSource(vertexProgram, fragmentProg
mUse = 0;
Py_Return;
}
Py_Return;
return NULL;
}

@ -158,6 +158,9 @@ PyObject* KX_NetworkMessageActuator::PySetToPropName(
if (PyArg_ParseTuple(args, "s", &ToPropName)) {
m_toPropName = ToPropName;
}
else {
return NULL;
}
Py_Return;
}
@ -173,7 +176,10 @@ PyObject* KX_NetworkMessageActuator::PySetSubject(
if (PyArg_ParseTuple(args, "s", &Subject)) {
m_subject = Subject;
}
else {
return NULL;
}
Py_Return;
}
@ -188,6 +194,9 @@ PyObject* KX_NetworkMessageActuator::PySetBodyType(
if (PyArg_ParseTuple(args, "i", &BodyType)) {
m_bodyType = BodyType;
}
else {
return NULL;
}
Py_Return;
}
@ -203,6 +212,9 @@ PyObject* KX_NetworkMessageActuator::PySetBody(
if (PyArg_ParseTuple(args, "s", &Body)) {
m_body = Body;
}
else {
return NULL;
}
Py_Return;
}

@ -233,6 +233,9 @@ PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText(
{
m_subject = Subject;
}
else {
return NULL;
}
Py_Return;
}

@ -588,7 +588,7 @@ KX_PYMETHODDEF_DOC(KX_Camera, sphereInsideFrustum,
PyErr_SetString(PyExc_TypeError, "sphereInsideFrustum: Expected arguments: (center, radius)");
Py_Return;
return NULL;
}
KX_PYMETHODDEF_DOC(KX_Camera, boxInsideFrustum,
@ -766,6 +766,10 @@ KX_PYMETHODDEF_DOC(KX_Camera, enableViewport,
else
EnableViewport(false);
}
else {
return NULL;
}
Py_Return;
}
@ -777,6 +781,8 @@ KX_PYMETHODDEF_DOC(KX_Camera, setViewport,
if (PyArg_ParseTuple(args,"iiii",&left, &bottom, &right, &top))
{
SetViewport(left, bottom, right, top);
} else {
return NULL;
}
Py_Return;
}

@ -1168,6 +1168,9 @@ PyObject* KX_GameObject::PyGetVelocity(PyObject* self,
if (pypos)
PyVecTo(pypos, point);
}
else {
return NULL;
}
if (m_pPhysicsController1)
{
@ -1256,6 +1259,10 @@ PyObject* KX_GameObject::PySetParent(PyObject* self,
this->SetParent(scene, obj);
}
else {
return NULL;
}
Py_Return;
}
@ -1282,7 +1289,7 @@ PyObject* KX_GameObject::PyGetMesh(PyObject* self,
return meshproxy;
}
}
Py_Return;
return NULL;
}

@ -157,6 +157,9 @@ PyObject* KX_MeshProxy::PyGetMaterialName(PyObject* self,
{
matname = m_meshobj->GetMaterialName(matid);
}
else {
return NULL;
}
return PyString_FromString(matname.Ptr());
@ -174,6 +177,9 @@ PyObject* KX_MeshProxy::PyGetTextureName(PyObject* self,
{
matname = m_meshobj->GetTextureName(matid);
}
else {
return NULL;
}
return PyString_FromString(matname.Ptr());
@ -195,6 +201,9 @@ PyObject* KX_MeshProxy::PyGetVertexArrayLength(PyObject* self,
length = m_meshobj->GetVertexArrayLength(mat);
}
}
else {
return NULL;
}
return PyInt_FromLong(length);
@ -217,6 +226,9 @@ PyObject* KX_MeshProxy::PyGetVertex(PyObject* self,
vertexob = new KX_VertexProxy(this, vertex);
}
}
else {
return NULL;
}
return vertexob;

@ -58,6 +58,9 @@ PyObject* KX_PhysicsObjectWrapper::PySetPosition(PyObject* self,
{
m_ctrl->setPosition(x,y,z);
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -72,6 +75,9 @@ PyObject* KX_PhysicsObjectWrapper::PySetLinearVelocity(PyObject* self,
{
m_ctrl->SetLinearVelocity(x,y,z,local != 0);
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -85,6 +91,9 @@ PyObject* KX_PhysicsObjectWrapper::PySetAngularVelocity(PyObject* self,
{
m_ctrl->SetAngularVelocity(x,y,z,local != 0);
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -97,6 +106,9 @@ PyObject* KX_PhysicsObjectWrapper::PySetActive(PyObject* self,
{
m_ctrl->SetActive(active!=0);
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}

@ -82,12 +82,15 @@ static PyObject* gPySetGravity(PyObject* self,
PyObject* kwds)
{
float x,y,z;
int len = PyTuple_Size(args);
if ((len == 3) && PyArg_ParseTuple(args,"fff",&x,&y,&z))
if (PyArg_ParseTuple(args,"fff",&x,&y,&z))
{
if (PHY_GetActiveEnvironment())
PHY_GetActiveEnvironment()->setGravity(x,y,z);
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -105,6 +108,10 @@ static PyObject* gPySetDebugMode(PyObject* self,
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -122,6 +129,9 @@ static PyObject* gPySetNumTimeSubSteps(PyObject* self,
PHY_GetActiveEnvironment()->setNumTimeSubSteps(substep);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -138,6 +148,9 @@ static PyObject* gPySetNumIterations(PyObject* self,
PHY_GetActiveEnvironment()->setNumIterations(iter);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -155,6 +168,9 @@ static PyObject* gPySetDeactivationTime(PyObject* self,
PHY_GetActiveEnvironment()->setDeactivationTime(deactive_time);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -171,6 +187,9 @@ static PyObject* gPySetDeactivationLinearTreshold(PyObject* self,
PHY_GetActiveEnvironment()->setDeactivationLinearTreshold( linearDeactivationTreshold);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -187,6 +206,9 @@ static PyObject* gPySetDeactivationAngularTreshold(PyObject* self,
PHY_GetActiveEnvironment()->setDeactivationAngularTreshold( angularDeactivationTreshold);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -202,6 +224,9 @@ static PyObject* gPySetContactBreakingTreshold(PyObject* self,
PHY_GetActiveEnvironment()->setContactBreakingTreshold( contactBreakingTreshold);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -218,6 +243,9 @@ static PyObject* gPySetCcdMode(PyObject* self,
PHY_GetActiveEnvironment()->setCcdMode( ccdMode);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -233,6 +261,9 @@ static PyObject* gPySetSorConstant(PyObject* self,
PHY_GetActiveEnvironment()->setSolverSorConstant( sor);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -248,6 +279,9 @@ static PyObject* gPySetSolverTau(PyObject* self,
PHY_GetActiveEnvironment()->setSolverTau( tau);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -264,6 +298,9 @@ static PyObject* gPySetSolverDamping(PyObject* self,
PHY_GetActiveEnvironment()->setSolverDamping( damping);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -279,6 +316,9 @@ static PyObject* gPySetLinearAirDamping(PyObject* self,
PHY_GetActiveEnvironment()->setLinearAirDamping( damping);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -295,6 +335,9 @@ static PyObject* gPySetUseEpa(PyObject* self,
PHY_GetActiveEnvironment()->setUseEpa(epa);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
static PyObject* gPySetSolverType(PyObject* self,
@ -309,6 +352,9 @@ static PyObject* gPySetSolverType(PyObject* self,
PHY_GetActiveEnvironment()->setSolverType(solverType);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -338,6 +384,9 @@ static PyObject* gPyGetVehicleConstraint(PyObject* self,
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -395,6 +444,9 @@ static PyObject* gPyCreateConstraint(PyObject* self,
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}
@ -421,6 +473,9 @@ static PyObject* gPyGetAppliedImpulse(PyObject* self,
appliedImpulse = PHY_GetActiveEnvironment()->getAppliedImpulse(constraintid);
}
}
else {
return NULL;
}
return PyFloat_FromDouble(appliedImpulse);
}
@ -443,6 +498,10 @@ static PyObject* gPyRemoveConstraint(PyObject* self,
PHY_GetActiveEnvironment()->removeConstraint(constraintid);
}
}
else {
return NULL;
}
Py_INCREF(Py_None); return Py_None;
}

@ -425,7 +425,7 @@ static PyObject* gPyEnableVisibility(PyObject*,
}
else
{
Py_Return;
return NULL;
}
Py_Return;
}
@ -449,6 +449,9 @@ static PyObject* gPyShowMouse(PyObject*,
gp_Canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE);
}
}
else {
return NULL;
}
Py_Return;
}
@ -465,6 +468,9 @@ static PyObject* gPySetMousePosition(PyObject*,
if (gp_Canvas)
gp_Canvas->SetMousePosition(x,y);
}
else {
return NULL;
}
Py_Return;
}
@ -568,6 +574,9 @@ static PyObject* gPySetMistStart(PyObject*,
gp_Rasterizer->SetFogStart(miststart);
}
}
else {
return NULL;
}
Py_Return;
}
@ -586,6 +595,9 @@ static PyObject* gPySetMistEnd(PyObject*,
gp_Rasterizer->SetFogEnd(mistend);
}
}
else {
return NULL;
}
Py_Return;
}
@ -623,6 +635,9 @@ static PyObject* gPyMakeScreenshot(PyObject*,
gp_Canvas->MakeScreenShot(filename);
}
}
else {
return NULL;
}
Py_Return;
}
@ -638,6 +653,9 @@ static PyObject* gPyEnableMotionBlur(PyObject*,
gp_Rasterizer->EnableMotionBlur(motionblurvalue);
}
}
else {
return NULL;
}
Py_Return;
}

@ -68,6 +68,8 @@ PyObject* KX_VehicleWrapper::PyAddWheel(PyObject* self,
printf("attempt for addWheel: suspensionRestLength%f wheelRadius %f, hasSteering:%d\n",suspensionRestLength,wheelRadius,hasSteering);
m_vehicle->AddWheel(motionState,aPos,aDir,aAxle,suspensionRestLength,wheelRadius,hasSteering);
} else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -90,8 +92,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelPosition(PyObject* self,
MT_Vector3 pos(position[0],position[1],position[2]);
return PyObjectFrom(pos);
}
Py_INCREF(Py_None);
return Py_None;
return NULL;
}
PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* self,
@ -103,8 +104,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelRotation(PyObject* self,
{
return PyFloat_FromDouble(m_vehicle->GetWheelRotation(wheelIndex));
}
Py_INCREF(Py_None);
return Py_None;
return NULL;
}
PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self,
@ -120,8 +120,7 @@ PyObject* KX_VehicleWrapper::PyGetWheelOrientationQuaternion(PyObject* self,
MT_Matrix3x3 ornmat(quatorn);
return PyObjectFrom(ornmat);
}
Py_INCREF(Py_None);
return Py_None;
return NULL;
}
@ -155,6 +154,9 @@ PyObject* KX_VehicleWrapper::PyApplyEngineForce(PyObject* self,
force *= -1.f;//someone reverse some conventions inside Bullet (axle winding)
m_vehicle->ApplyEngineForce(force,wheelIndex);
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
@ -170,6 +172,9 @@ PyObject* KX_VehicleWrapper::PySetTyreFriction(PyObject* self,
{
m_vehicle->SetWheelFriction(wheelFriction,wheelIndex);
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
@ -185,6 +190,9 @@ PyObject* KX_VehicleWrapper::PySetSuspensionStiffness(PyObject* self,
{
m_vehicle->SetSuspensionStiffness(suspensionStiffness,wheelIndex);
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
@ -199,6 +207,8 @@ PyObject* KX_VehicleWrapper::PySetSuspensionDamping(PyObject* self,
if (PyArg_ParseTuple(args,"fi",&suspensionDamping,&wheelIndex))
{
m_vehicle->SetSuspensionDamping(suspensionDamping,wheelIndex);
} else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -214,6 +224,8 @@ PyObject* KX_VehicleWrapper::PySetSuspensionCompression(PyObject* self,
if (PyArg_ParseTuple(args,"fi",&suspensionCompression,&wheelIndex))
{
m_vehicle->SetSuspensionCompression(suspensionCompression,wheelIndex);
} else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
@ -230,6 +242,9 @@ PyObject* KX_VehicleWrapper::PySetRollInfluence(PyObject* self,
{
m_vehicle->SetRollInfluence(rollInfluence,wheelIndex);
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
@ -246,6 +261,9 @@ PyObject* KX_VehicleWrapper::PyApplyBraking(PyObject* self,
{
m_vehicle->ApplyBraking(braking,wheelIndex);
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}
@ -264,6 +282,9 @@ PyObject* KX_VehicleWrapper::PySetSteeringValue(PyObject* self,
{
m_vehicle->SetSteeringValue(steeringValue,wheelIndex);
}
else {
return NULL;
}
Py_INCREF(Py_None);
return Py_None;
}