mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Issue #15467: Merge 3.2
This commit is contained in:
commit
2b16844326
5 changed files with 138 additions and 171 deletions
|
|
@ -25,6 +25,7 @@ import fnmatch
|
|||
import logging.handlers
|
||||
import struct
|
||||
import tempfile
|
||||
import _testcapi
|
||||
|
||||
try:
|
||||
import _thread, threading
|
||||
|
|
@ -1082,6 +1083,33 @@ def python_is_optimized():
|
|||
return final_opt != '' and final_opt != '-O0'
|
||||
|
||||
|
||||
_header = 'nP'
|
||||
_align = '0n'
|
||||
if hasattr(sys, "gettotalrefcount"):
|
||||
_header = '2P' + _header
|
||||
_align = '0P'
|
||||
_vheader = _header + 'n'
|
||||
|
||||
def calcobjsize(fmt):
|
||||
return struct.calcsize(_header + fmt + _align)
|
||||
|
||||
def calcvobjsize(fmt):
|
||||
return struct.calcsize(_vheader + fmt + _align)
|
||||
|
||||
|
||||
_TPFLAGS_HAVE_GC = 1<<14
|
||||
_TPFLAGS_HEAPTYPE = 1<<9
|
||||
|
||||
def check_sizeof(test, o, size):
|
||||
result = sys.getsizeof(o)
|
||||
# add GC header size
|
||||
if ((type(o) == type) and (o.__flags__ & _TPFLAGS_HEAPTYPE) or\
|
||||
((type(o) != type) and (type(o).__flags__ & _TPFLAGS_HAVE_GC))):
|
||||
size += _testcapi.SIZEOF_PYGC_HEAD
|
||||
msg = 'wrong size for %s: got %d, expected %d' \
|
||||
% (type(o), result, size)
|
||||
test.assertEqual(result, size, msg)
|
||||
|
||||
#=======================================================================
|
||||
# Decorator for running a function in a different locale, correctly resetting
|
||||
# it afterwards.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue