Jeffrey Kintscher <websur...@surf2c.net> added the comment:
>>> b'\407' b'\x07' >>> ord(b'\407') 7 This is the object structure passed to builtin_ord(): (lldb) p *((PyBytesObject *)(c)) (PyBytesObject) $19 = { ob_base = { ob_base = { ob_refcnt = 4 ob_type = 0x00000001003cb0b0 } ob_size = 1 } ob_shash = 8685212186264880044 ob_sval = { [0] = '\a' } } If two bytes were stored (0x107), I would expect ob_sval[0] to be 7 ('\a') and ob_sval[1] to be 1 on a little endian system, but ob_sval[1] is 0: (lldb) p (long)(unsigned char) (((PyBytesObject *)(c))->ob_sval[0]) (long) $23 = 7 (lldb) p (long)(unsigned char) (((PyBytesObject *)(c))->ob_sval[1]) (long) $24 = 0 This means the truncation to a single byte is happening when the byte string object is created. ---------- nosy: +Jeffrey.Kintscher _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37367> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com