diff options
| author | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2008-12-15 22:16:00 (GMT) |
|---|---|---|
| committer | Amaury Forgeot d'Arc <amauryfa@gmail.com> | 2008-12-15 22:16:00 (GMT) |
| commit | 360d8cfc9dc0c2c1e2ecb0dfc4cc340efceca017 (patch) | |
| tree | 8b967494db33d3bd67b18a0970718a8190d660c0 /Modules | |
| parent | 3fced65aa36f9b5f384f19418430c2dd20e044d6 (diff) | |
| download | cpython-360d8cfc9dc0c2c1e2ecb0dfc4cc340efceca017.zip cpython-360d8cfc9dc0c2c1e2ecb0dfc4cc340efceca017.tar.gz cpython-360d8cfc9dc0c2c1e2ecb0dfc4cc340efceca017.tar.bz2 | |
Merged revisions 67797 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r67797 | amaury.forgeotdarc | 2008-12-15 22:47:57 +0100 (Mon, 15 Dec 2008) | 4 lines
#3954: Fix error handling code in _hotshot.logreader
Will port to 2.6. hotshot was deleted from python 3.
........
Diffstat (limited to 'Modules')
| -rw-r--r-- | Modules/_hotshot.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/Modules/_hotshot.c b/Modules/_hotshot.c index 4c66e2a..a36cd50 100644 --- a/Modules/_hotshot.c +++ b/Modules/_hotshot.c @@ -1357,20 +1357,16 @@ hotshot_logreader(PyObject *unused, PyObject *args) self->logfp = fopen(filename, "rb"); if (self->logfp == NULL) { PyErr_SetFromErrnoWithFilename(PyExc_IOError, filename); - Py_DECREF(self); - self = NULL; - goto finally; + goto error; } self->info = PyDict_New(); - if (self->info == NULL) { - Py_DECREF(self); - goto finally; - } + if (self->info == NULL) + goto error; /* read initial info */ for (;;) { if ((c = fgetc(self->logfp)) == EOF) { eof_error(self); - break; + goto error; } if (c != WHAT_ADD_INFO) { ungetc(c, self->logfp); @@ -1383,13 +1379,15 @@ hotshot_logreader(PyObject *unused, PyObject *args) else PyErr_SetString(PyExc_RuntimeError, "unexpected error"); - break; + goto error; } } } } - finally: return (PyObject *) self; + error: + Py_DECREF(self); + return NULL; } |
