bugfix: #2025 getCurveBP (and others) segfault
This method is now unsupported. The original intent appears to return the first BPoint of an Ipo curve. However, BPoint Ipo curves are not implemented and the first point therefore never existed. The segfault was from an unchecked input parameter. Calling this method now always throws a NotImplemented exception.
This commit is contained in:
@@ -1235,8 +1235,25 @@ static PyObject *Ipo_DeleteBezPoints( BPy_Ipo * self, PyObject * args )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Ipo_getCurveBP()
|
||||
* this method is UNSUPPORTED.
|
||||
* Calling this method throws a TypeError Exception.
|
||||
*
|
||||
* it looks like the original intent was to return the first point
|
||||
* of a BPoint Ipo curve. However, BPoint ipos are not currently
|
||||
* implemented.
|
||||
*/
|
||||
|
||||
static PyObject *Ipo_getCurveBP( BPy_Ipo * self, PyObject * args )
|
||||
{
|
||||
|
||||
/* unsupported method */
|
||||
return EXPP_ReturnPyObjError( PyExc_NotImplementedError,
|
||||
"bpoint ipos are not supported");
|
||||
|
||||
#if 0
|
||||
|
||||
struct BPoint *ptrbpoint;
|
||||
int num = 0, i;
|
||||
IpoCurve *icu;
|
||||
@@ -1265,6 +1282,7 @@ static PyObject *Ipo_getCurveBP( BPy_Ipo * self, PyObject * args )
|
||||
for( i = 0; i < 4; i++ )
|
||||
PyList_Append( l, PyFloat_FromDouble( ptrbpoint->vec[i] ) );
|
||||
return l;
|
||||
#endif
|
||||
}
|
||||
|
||||
static PyObject *Ipo_getCurveBeztriple( BPy_Ipo * self, PyObject * args )
|
||||
|
||||
@@ -178,11 +178,9 @@ class Ipo:
|
||||
|
||||
def getCurveBP(curvepos):
|
||||
"""
|
||||
Gets the basepoint of a curve of the ipo.
|
||||
@type curvepos: int
|
||||
@param curvepos: the position of the curve.
|
||||
@rtype: a list of 4 floats
|
||||
@return: the coordinates of the basepoint, or an error is raised.
|
||||
This method is unsupported. BPoint Ipo curves are not implemented.
|
||||
Calling this method throws a NotImplementedError exception.
|
||||
@raise NotImplementedError: this method B{always} raises an exception
|
||||
"""
|
||||
|
||||
def getBeztriple(curvepos,pointpos):
|
||||
|
||||
Reference in New Issue
Block a user