mirror of https://github.com/python/cpython.git
Issue #20041: Fixed TypeError when frame.f_trace is set to None.
Patch by Xavier de Gaye.
This commit is contained in:
commit
64c26e5f60
|
@ -388,6 +388,15 @@ def test_16_blank_lines(self):
|
||||||
(257, 'line'),
|
(257, 'line'),
|
||||||
(257, 'return')])
|
(257, 'return')])
|
||||||
|
|
||||||
|
def test_17_none_f_trace(self):
|
||||||
|
# Issue 20041: fix TypeError when f_trace is set to None.
|
||||||
|
def func():
|
||||||
|
sys._getframe().f_trace = None
|
||||||
|
lineno = 2
|
||||||
|
self.run_and_compare(func,
|
||||||
|
[(0, 'call'),
|
||||||
|
(1, 'line')])
|
||||||
|
|
||||||
|
|
||||||
class RaisingTraceFuncTestCase(unittest.TestCase):
|
class RaisingTraceFuncTestCase(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -120,6 +120,9 @@ Release date: 2016-05-16
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #20041: Fixed TypeError when frame.f_trace is set to None.
|
||||||
|
Patch by Xavier de Gaye.
|
||||||
|
|
||||||
- Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with the "N"
|
- Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with the "N"
|
||||||
format unit.
|
format unit.
|
||||||
|
|
||||||
|
|
|
@ -344,6 +344,8 @@ frame_settrace(PyFrameObject *f, PyObject* v, void *closure)
|
||||||
/* We rely on f_lineno being accurate when f_trace is set. */
|
/* We rely on f_lineno being accurate when f_trace is set. */
|
||||||
f->f_lineno = PyFrame_GetLineNumber(f);
|
f->f_lineno = PyFrame_GetLineNumber(f);
|
||||||
|
|
||||||
|
if (v == Py_None)
|
||||||
|
v = NULL;
|
||||||
Py_XINCREF(v);
|
Py_XINCREF(v);
|
||||||
Py_XSETREF(f->f_trace, v);
|
Py_XSETREF(f->f_trace, v);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue