goto onError;
}
if (!PyCallable_Check(search_function)) {
- PyErr_SetString(PyExc_TypeError,
- "argument must be callable");
+ PyErr_SetString(PyExc_TypeError, "argument must be callable");
goto onError;
}
return PyList_Append(interp->codec_search_path, search_function);
const char *errors)
{
PyObject *encoder = NULL;
- PyObject *args = NULL, *result;
+ PyObject *args = NULL, *result = NULL;
PyObject *v;
encoder = PyCodec_Encoder(encoding);
return v;
onError:
+ Py_XDECREF(result);
Py_XDECREF(args);
Py_XDECREF(encoder);
return NULL;
if (k == NULL)
return -1;
v = PyDict_GetItem(dict, k);
+ Py_DECREF(k);
if (v == NULL)
return -1;
return PyInt_AS_LONG(v);
}
ADDOP_O(c, LOAD_CONST, names, consts);
+ Py_DECREF(names);
ADDOP_NAME(c, IMPORT_NAME, s->v.ImportFrom.module, names);
for (i = 0; i < n; i++) {
alias_ty alias = asdl_seq_GET(s->v.ImportFrom.names, i);
else {
if (st->st_cur->ste_type != ModuleBlock) {
if (!symtable_warn(st,
- "import * only allowed at module level"))
+ "import * only allowed at module level")) {
+ Py_DECREF(store_name);
return 0;
+ }
}
st->st_cur->ste_unoptimized |= OPT_IMPORT_STAR;
Py_DECREF(store_name);