+ fix crash due to sloppy reference counting
This commit is contained in:
parent
fa1d43345a
commit
5652ca2c61
|
@ -891,6 +891,8 @@ PyObject* Application::sDoCommand(PyObject * /*self*/, PyObject *args,PyObject *
|
|||
if (!PyArg_ParseTuple(args, "s", &pstr)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
Command::doCommand(Command::Doc,pstr);
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
|
@ -900,6 +902,8 @@ PyObject* Application::sDoCommandGui(PyObject * /*self*/, PyObject *args,PyObjec
|
|||
if (!PyArg_ParseTuple(args, "s", &pstr)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
Command::runCommand(Command::Gui,pstr);
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
|
@ -909,6 +913,8 @@ PyObject* Application::sAddModule(PyObject * /*self*/, PyObject *args,PyObject *
|
|||
if (!PyArg_ParseTuple(args, "s", &pstr)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
Command::addModule(Command::Doc,pstr);
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
|
@ -917,5 +923,7 @@ PyObject* Application::sShowDownloads(PyObject * /*self*/, PyObject *args,PyObje
|
|||
if (!PyArg_ParseTuple(args, "")) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
Gui::Dialog::DownloadManager::getInstance();
|
||||
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
|
|
|
@ -167,6 +167,7 @@ PyObject* CommandPy::setFromGCode(PyObject *args)
|
|||
if (PyArg_ParseTuple(args, "s", &pstr)) {
|
||||
std::string gcode(pstr);
|
||||
getCommandPtr()->setFromGCode(gcode);
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
throw Py::Exception("Argument must be a string");
|
||||
|
@ -211,6 +212,7 @@ PyObject *CommandPy::getCustomAttributes(const char* attr) const
|
|||
if (getCommandPtr()->Parameters.count(satt)) {
|
||||
return PyFloat_FromDouble(getCommandPtr()->Parameters[satt]);
|
||||
}
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -189,6 +189,7 @@ PyObject* PathPy::setFromGCode(PyObject * args)
|
|||
if (PyArg_ParseTuple(args, "s", &pstr)) {
|
||||
std::string gcode(pstr);
|
||||
getToolpathPtr()->setFromGCode(gcode);
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
throw Py::Exception("Argument must be a string");
|
||||
|
|
|
@ -436,6 +436,7 @@ PyObject* TooltablePy::addTools(PyObject * args)
|
|||
Path::Tool &tool = *static_cast<Path::ToolPy*>(o)->getToolPtr();
|
||||
getTooltablePtr()->addTool(tool);
|
||||
//return new TooltablePy(new Path::Tooltable(*getTooltablePtr()));
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
PyErr_Clear();
|
||||
|
@ -448,6 +449,7 @@ PyObject* TooltablePy::addTools(PyObject * args)
|
|||
}
|
||||
}
|
||||
//return new TooltablePy(new Path::Tooltable(*getTooltablePtr()));
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
Py_Error(Base::BaseExceptionFreeCADError, "Wrong parameters - tool or list of tools expected");
|
||||
|
@ -461,6 +463,7 @@ PyObject* TooltablePy::setTool(PyObject * args)
|
|||
Path::Tool &tool = *static_cast<Path::ToolPy*>(o)->getToolPtr();
|
||||
getTooltablePtr()->setTool(tool,pos);
|
||||
//return new TooltablePy(new Path::Tooltable(*getTooltablePtr()));
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
Py_Error(Base::BaseExceptionFreeCADError, "Wrong parameters - expected tool and optional integer");
|
||||
|
@ -474,8 +477,12 @@ PyObject* TooltablePy::getTool(PyObject * args)
|
|||
{
|
||||
Path::Tool tool = getTooltablePtr()->getTool(pos);
|
||||
return new ToolPy(new Path::Tool(tool));
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
}
|
||||
Py_Error(Base::BaseExceptionFreeCADError, "Argument must be integer");
|
||||
}
|
||||
|
@ -486,6 +493,7 @@ PyObject* TooltablePy::deleteTool(PyObject * args)
|
|||
if (PyArg_ParseTuple(args, "|i", &pos)) {
|
||||
getTooltablePtr()->deleteTool(pos);
|
||||
//return new TooltablePy(new Path::Tooltable(*getTooltablePtr()));
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
Py_Error(Base::BaseExceptionFreeCADError, "Wrong parameters - expected an integer (optional)");
|
||||
|
|
Loading…
Reference in New Issue
Block a user