@@ -277,7 +277,7 @@ struct _interpreter {
277277        s_python_function_colorbar = PyObject_GetAttrString (pymod, " colorbar"  );
278278        s_python_function_subplots_adjust = safe_import (pymod," subplots_adjust"  );
279279        s_python_function_rcparams = PyObject_GetAttrString (pymod, " rcParams"  );
280- 	s_python_function_spy = PyObject_GetAttrString (pymod, " spy"  );
280+ 	     s_python_function_spy = PyObject_GetAttrString (pymod, " spy"  );
281281#ifndef  WITHOUT_NUMPY
282282        s_python_function_imshow = safe_import (pymod, " imshow"  );
283283#endif 
@@ -560,19 +560,16 @@ void plot_surface(const std::vector<::std::vector<Numeric>> &x,
560560
561561  PyObject *gca = PyObject_GetAttrString (fig, " gca"  );
562562  if  (!gca) throw  std::runtime_error (" No gca"  );
563-   Py_INCREF (gca);
564563  PyObject *axis = PyObject_Call (
565564      gca, detail::_interpreter::get ().s_python_empty_tuple , gca_kwargs);
566565
567566  if  (!axis) throw  std::runtime_error (" No axis"  );
568-   Py_INCREF (axis);
569567
570568  Py_DECREF (gca);
571569  Py_DECREF (gca_kwargs);
572570
573571  PyObject *plot_surface = PyObject_GetAttrString (axis, " plot_surface"  );
574572  if  (!plot_surface) throw  std::runtime_error (" No surface"  );
575-   Py_INCREF (plot_surface);
576573  PyObject *res = PyObject_Call (plot_surface, args, kwargs);
577574  if  (!res) throw  std::runtime_error (" failed surface"  );
578575  Py_DECREF (plot_surface);
@@ -728,19 +725,16 @@ void plot3(const std::vector<Numeric> &x,
728725
729726  PyObject *gca = PyObject_GetAttrString (fig, " gca"  );
730727  if  (!gca) throw  std::runtime_error (" No gca"  );
731-   Py_INCREF (gca);
732728  PyObject *axis = PyObject_Call (
733729      gca, detail::_interpreter::get ().s_python_empty_tuple , gca_kwargs);
734730
735731  if  (!axis) throw  std::runtime_error (" No axis"  );
736-   Py_INCREF (axis);
737732
738733  Py_DECREF (gca);
739734  Py_DECREF (gca_kwargs);
740735
741736  PyObject *plot3 = PyObject_GetAttrString (axis, " plot"  );
742737  if  (!plot3) throw  std::runtime_error (" No 3D line plot"  );
743-   Py_INCREF (plot3);
744738  PyObject *res = PyObject_Call (plot3, args, kwargs);
745739  if  (!res) throw  std::runtime_error (" Failed 3D line plot"  );
746740  Py_DECREF (plot3);
@@ -1131,19 +1125,16 @@ bool scatter(const std::vector<NumericX>& x,
11311125
11321126  PyObject *gca = PyObject_GetAttrString (fig, " gca"  );
11331127  if  (!gca) throw  std::runtime_error (" No gca"  );
1134-   Py_INCREF (gca);
11351128  PyObject *axis = PyObject_Call (
11361129      gca, detail::_interpreter::get ().s_python_empty_tuple , gca_kwargs);
11371130
11381131  if  (!axis) throw  std::runtime_error (" No axis"  );
1139-   Py_INCREF (axis);
11401132
11411133  Py_DECREF (gca);
11421134  Py_DECREF (gca_kwargs);
11431135
11441136  PyObject *plot3 = PyObject_GetAttrString (axis, " scatter"  );
11451137  if  (!plot3) throw  std::runtime_error (" No 3D line plot"  );
1146-   Py_INCREF (plot3);
11471138  PyObject *res = PyObject_Call (plot3, args, kwargs);
11481139  if  (!res) throw  std::runtime_error (" Failed 3D line plot"  );
11491140  Py_DECREF (plot3);
@@ -1508,19 +1499,16 @@ bool quiver(const std::vector<NumericX>& x, const std::vector<NumericY>& y, cons
15081499
15091500  PyObject *gca = PyObject_GetAttrString (fig, " gca"  );
15101501  if  (!gca) throw  std::runtime_error (" No gca"  );
1511-   Py_INCREF (gca);
15121502  PyObject *axis = PyObject_Call (
15131503      gca, detail::_interpreter::get ().s_python_empty_tuple , gca_kwargs);
15141504
15151505  if  (!axis) throw  std::runtime_error (" No axis"  );
1516-   Py_INCREF (axis);
15171506  Py_DECREF (gca);
15181507  Py_DECREF (gca_kwargs);
15191508
15201509  // plot our boys bravely, plot them strongly, plot them with a wink and clap
15211510  PyObject *plot3 = PyObject_GetAttrString (axis, " quiver"  );
15221511  if  (!plot3) throw  std::runtime_error (" No 3D line plot"  );
1523-   Py_INCREF (plot3);
15241512  PyObject* res = PyObject_Call (
15251513          plot3, plot_args, kwargs);
15261514  if  (!res) throw  std::runtime_error (" Failed 3D plot"  );
@@ -1982,11 +1970,9 @@ inline void set_aspect(Numeric ratio)
19821970    PyObject_CallObject (detail::_interpreter::get ().s_python_function_gca ,
19831971      detail::_interpreter::get ().s_python_empty_tuple );
19841972    if  (!ax) throw  std::runtime_error (" Call to gca() failed."  );
1985-     Py_INCREF (ax);
19861973
19871974    PyObject *set_aspect = PyObject_GetAttrString (ax, " set_aspect"  );
19881975    if  (!set_aspect) throw  std::runtime_error (" Attribute set_aspect not found."  );
1989-     Py_INCREF (set_aspect);
19901976
19911977    PyObject *res = PyObject_Call (set_aspect, args, kwargs);
19921978    if  (!res) throw  std::runtime_error (" Call to set_aspect() failed."  );
@@ -2010,14 +1996,13 @@ inline void set_aspect_equal()
20101996    PyObject_CallObject (detail::_interpreter::get ().s_python_function_gca ,
20111997      detail::_interpreter::get ().s_python_empty_tuple );
20121998    if  (!ax) throw  std::runtime_error (" Call to gca() failed."  );
2013-     Py_INCREF (ax);
20141999
20152000    PyObject *set_aspect = PyObject_GetAttrString (ax, " set_aspect"  );
20162001    if  (!set_aspect) throw  std::runtime_error (" Attribute set_aspect not found."  );
2017-     Py_INCREF (set_aspect);
20182002
20192003    PyObject *res = PyObject_Call (set_aspect, args, kwargs);
20202004    if  (!res) throw  std::runtime_error (" Call to set_aspect() failed."  );
2005+     Py_DECREF (res);
20212006    Py_DECREF (set_aspect);
20222007
20232008    Py_DECREF (ax);
@@ -2506,11 +2491,9 @@ inline void set_zlabel(const std::string &str, const std::map<std::string, std::
25062491    PyObject_CallObject (detail::_interpreter::get ().s_python_function_gca ,
25072492      detail::_interpreter::get ().s_python_empty_tuple );
25082493    if  (!ax) throw  std::runtime_error (" Call to gca() failed."  );
2509-     Py_INCREF (ax);
25102494
25112495    PyObject *zlabel = PyObject_GetAttrString (ax, " set_zlabel"  );
25122496    if  (!zlabel) throw  std::runtime_error (" Attribute set_zlabel not found."  );
2513-     Py_INCREF (zlabel);
25142497
25152498    PyObject *res = PyObject_Call (zlabel, args, kwargs);
25162499    if  (!res) throw  std::runtime_error (" Call to set_zlabel() failed."  );
0 commit comments