reference count bugs in DrawXXXList fixed

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12052 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2001-10-18 01:30:53 +00:00
parent 30dbb45440
commit 76e280e796
2 changed files with 20 additions and 4 deletions

View File

@@ -829,6 +829,10 @@ public:
%addmethods { %addmethods {
// NOTE: These methods are VERY SIMILAR in implentation. It would be
// nice to factor out code and or turn them into a set of
// template-like macros.
// Draw a point for every set of coordinants in pyPoints, optionally // Draw a point for every set of coordinants in pyPoints, optionally
// setting a new pen for each // setting a new pen for each
PyObject* _DrawPointList(PyObject* pyPoints, PyObject* pyPens) { PyObject* _DrawPointList(PyObject* pyPoints, PyObject* pyPens) {
@@ -860,6 +864,8 @@ public:
obj = PySequence_GetItem(pyPens, i); obj = PySequence_GetItem(pyPens, i);
} }
if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) { if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) {
if (!isFastPens)
Py_DECREF(obj);
goto err1; goto err1;
} }
@@ -876,7 +882,8 @@ public:
obj = PySequence_GetItem(pyPoints, i); obj = PySequence_GetItem(pyPoints, i);
} }
if (! _2int_seq_helper(obj, &x1, &y1)) { if (! _2int_seq_helper(obj, &x1, &y1)) {
Py_DECREF(obj); if (!isFastPens)
Py_DECREF(obj);
goto err0; goto err0;
} }
@@ -930,6 +937,8 @@ public:
obj = PySequence_GetItem(pyPens, i); obj = PySequence_GetItem(pyPens, i);
} }
if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) { if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) {
if (!isFastPens)
Py_DECREF(obj);
goto err1; goto err1;
} }
@@ -946,7 +955,8 @@ public:
obj = PySequence_GetItem(pyLines, i); obj = PySequence_GetItem(pyLines, i);
} }
if (! _4int_seq_helper(obj, &x1, &y1, &x2, &y2)) { if (! _4int_seq_helper(obj, &x1, &y1, &x2, &y2)) {
Py_DECREF(obj); if (!isFastPens)
Py_DECREF(obj);
goto err0; goto err0;
} }

View File

@@ -9481,6 +9481,8 @@ static PyObject * wxDC__DrawPointList(wxDC *self,PyObject * pyPoints,PyObject *
obj = PySequence_GetItem(pyPens, i); obj = PySequence_GetItem(pyPens, i);
} }
if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) { if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) {
if (!isFastPens)
Py_DECREF(obj);
goto err1; goto err1;
} }
@@ -9497,7 +9499,8 @@ static PyObject * wxDC__DrawPointList(wxDC *self,PyObject * pyPoints,PyObject *
obj = PySequence_GetItem(pyPoints, i); obj = PySequence_GetItem(pyPoints, i);
} }
if (! _2int_seq_helper(obj, &x1, &y1)) { if (! _2int_seq_helper(obj, &x1, &y1)) {
Py_DECREF(obj); if (!isFastPens)
Py_DECREF(obj);
goto err0; goto err0;
} }
@@ -9586,6 +9589,8 @@ static PyObject * wxDC__DrawLineList(wxDC *self,PyObject * pyLines,PyObject * py
obj = PySequence_GetItem(pyPens, i); obj = PySequence_GetItem(pyPens, i);
} }
if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) { if (SWIG_GetPtrObj(obj, (void **) &pen, "_wxPen_p")) {
if (!isFastPens)
Py_DECREF(obj);
goto err1; goto err1;
} }
@@ -9602,7 +9607,8 @@ static PyObject * wxDC__DrawLineList(wxDC *self,PyObject * pyLines,PyObject * py
obj = PySequence_GetItem(pyLines, i); obj = PySequence_GetItem(pyLines, i);
} }
if (! _4int_seq_helper(obj, &x1, &y1, &x2, &y2)) { if (! _4int_seq_helper(obj, &x1, &y1, &x2, &y2)) {
Py_DECREF(obj); if (!isFastPens)
Py_DECREF(obj);
goto err0; goto err0;
} }