account for PyObject_IsInstance's new ability to fail

This commit is contained in:
Benjamin Peterson 2009-12-13 00:54:15 +00:00
parent c169c781a8
commit 5f429e0227
3 changed files with 464 additions and 90 deletions

View file

@ -466,6 +466,7 @@ builtin_compile(PyObject *self, PyObject *args, PyObject *kwds)
int mode = -1;
int dont_inherit = 0;
int supplied_flags = 0;
int is_ast;
PyCompilerFlags cf;
PyObject *result = NULL, *cmd, *tmp = NULL;
Py_ssize_t length;
@ -505,7 +506,10 @@ builtin_compile(PyObject *self, PyObject *args, PyObject *kwds)
return NULL;
}
if (PyAST_Check(cmd)) {
is_ast = PyAST_Check(cmd);
if (is_ast == -1)
return NULL;
if (is_ast) {
if (supplied_flags & PyCF_ONLY_AST) {
Py_INCREF(cmd);
result = cmd;