From: David Lord Date: Sat, 29 Feb 2020 02:50:00 +0000 (-0800) Subject: better PyObject_HEAD size calculation X-Git-Tag: 2.11.2~8^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40e70b820c8279396ae7cb075042456a7d1ac313;p=thirdparty%2Fjinja.git better PyObject_HEAD size calculation fixes infinite loop on Python 3.6 32-bit --- diff --git a/CHANGES.rst b/CHANGES.rst index 9635fc55..aee6ad3a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -10,6 +10,8 @@ Unreleased :func:`contextfunction`. :issue:`1145` - Update ``wordcount`` filter to trigger :class:`Undefined` methods by wrapping the input in :func:`soft_unicode`. :pr:`1160` +- Fix a hang when displaying tracebacks on Python 32-bit. + :issue:`1162` Version 2.11.1 diff --git a/src/jinja2/debug.py b/src/jinja2/debug.py index d2c5a06b..5d8aec31 100644 --- a/src/jinja2/debug.py +++ b/src/jinja2/debug.py @@ -245,10 +245,7 @@ else: class _CTraceback(ctypes.Structure): _fields_ = [ # Extra PyObject slots when compiled with Py_TRACE_REFS. - ( - "PyObject_HEAD", - ctypes.c_byte * (32 if hasattr(sys, "getobjects") else 16), - ), + ("PyObject_HEAD", ctypes.c_byte * object().__sizeof__()), # Only care about tb_next as an object, not a traceback. ("tb_next", ctypes.py_object), ]