mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	replace Py_(u)intptr_t with the c99 standard types
This commit is contained in:
		
							parent
							
								
									3c397e4c39
								
							
						
					
					
						commit
						ca47063998
					
				
					 21 changed files with 86 additions and 86 deletions
				
			
		| 
						 | 
					@ -61,7 +61,7 @@ typedef enum _Py_memory_order {
 | 
				
			||||||
} _Py_memory_order;
 | 
					} _Py_memory_order;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Py_atomic_address {
 | 
					typedef struct _Py_atomic_address {
 | 
				
			||||||
    Py_uintptr_t _value;
 | 
					    uintptr_t _value;
 | 
				
			||||||
} _Py_atomic_address;
 | 
					} _Py_atomic_address;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Py_atomic_int {
 | 
					typedef struct _Py_atomic_int {
 | 
				
			||||||
| 
						 | 
					@ -98,7 +98,7 @@ typedef enum _Py_memory_order {
 | 
				
			||||||
} _Py_memory_order;
 | 
					} _Py_memory_order;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Py_atomic_address {
 | 
					typedef struct _Py_atomic_address {
 | 
				
			||||||
    Py_uintptr_t _value;
 | 
					    uintptr_t _value;
 | 
				
			||||||
} _Py_atomic_address;
 | 
					} _Py_atomic_address;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Py_atomic_int {
 | 
					typedef struct _Py_atomic_int {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,12 +79,12 @@
 | 
				
			||||||
#define _Py_SIZE_ROUND_UP(n, a) (((size_t)(n) + \
 | 
					#define _Py_SIZE_ROUND_UP(n, a) (((size_t)(n) + \
 | 
				
			||||||
        (size_t)((a) - 1)) & ~(size_t)((a) - 1))
 | 
					        (size_t)((a) - 1)) & ~(size_t)((a) - 1))
 | 
				
			||||||
/* Round pointer "p" down to the closest "a"-aligned address <= "p". */
 | 
					/* Round pointer "p" down to the closest "a"-aligned address <= "p". */
 | 
				
			||||||
#define _Py_ALIGN_DOWN(p, a) ((void *)((Py_uintptr_t)(p) & ~(Py_uintptr_t)((a) - 1)))
 | 
					#define _Py_ALIGN_DOWN(p, a) ((void *)((uintptr_t)(p) & ~(uintptr_t)((a) - 1)))
 | 
				
			||||||
/* Round pointer "p" up to the closest "a"-aligned address >= "p". */
 | 
					/* Round pointer "p" up to the closest "a"-aligned address >= "p". */
 | 
				
			||||||
#define _Py_ALIGN_UP(p, a) ((void *)(((Py_uintptr_t)(p) + \
 | 
					#define _Py_ALIGN_UP(p, a) ((void *)(((uintptr_t)(p) + \
 | 
				
			||||||
        (Py_uintptr_t)((a) - 1)) & ~(Py_uintptr_t)((a) - 1)))
 | 
					        (uintptr_t)((a) - 1)) & ~(uintptr_t)((a) - 1)))
 | 
				
			||||||
/* Check if pointer "p" is aligned to "a"-bytes boundary. */
 | 
					/* Check if pointer "p" is aligned to "a"-bytes boundary. */
 | 
				
			||||||
#define _Py_IS_ALIGNED(p, a) (!((Py_uintptr_t)(p) & (Py_uintptr_t)((a) - 1)))
 | 
					#define _Py_IS_ALIGNED(p, a) (!((uintptr_t)(p) & (uintptr_t)((a) - 1)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef __GNUC__
 | 
					#ifdef __GNUC__
 | 
				
			||||||
#define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
 | 
					#define Py_UNUSED(name) _unused_ ## name __attribute__((unused))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@ typedef unsigned int _PyTraceMalloc_domain_t;
 | 
				
			||||||
   If memory block is already tracked, update the existing trace. */
 | 
					   If memory block is already tracked, update the existing trace. */
 | 
				
			||||||
PyAPI_FUNC(int) _PyTraceMalloc_Track(
 | 
					PyAPI_FUNC(int) _PyTraceMalloc_Track(
 | 
				
			||||||
    _PyTraceMalloc_domain_t domain,
 | 
					    _PyTraceMalloc_domain_t domain,
 | 
				
			||||||
    Py_uintptr_t ptr,
 | 
					    uintptr_t ptr,
 | 
				
			||||||
    size_t size);
 | 
					    size_t size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Untrack an allocated memory block in the tracemalloc module.
 | 
					/* Untrack an allocated memory block in the tracemalloc module.
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,7 @@ PyAPI_FUNC(int) _PyTraceMalloc_Track(
 | 
				
			||||||
   Return -2 if tracemalloc is disabled, otherwise return 0. */
 | 
					   Return -2 if tracemalloc is disabled, otherwise return 0. */
 | 
				
			||||||
PyAPI_FUNC(int) _PyTraceMalloc_Untrack(
 | 
					PyAPI_FUNC(int) _PyTraceMalloc_Untrack(
 | 
				
			||||||
    _PyTraceMalloc_domain_t domain,
 | 
					    _PyTraceMalloc_domain_t domain,
 | 
				
			||||||
    Py_uintptr_t ptr);
 | 
					    uintptr_t ptr);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Get the traceback where a memory block was allocated.
 | 
					/* Get the traceback where a memory block was allocated.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,7 @@ PyAPI_FUNC(int) _PyTraceMalloc_Untrack(
 | 
				
			||||||
   Raise an exception and return NULL on error. */
 | 
					   Raise an exception and return NULL on error. */
 | 
				
			||||||
PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
 | 
					PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback(
 | 
				
			||||||
    _PyTraceMalloc_domain_t domain,
 | 
					    _PyTraceMalloc_domain_t domain,
 | 
				
			||||||
    Py_uintptr_t ptr);
 | 
					    uintptr_t ptr);
 | 
				
			||||||
#endif   /* !Py_LIMITED_API */
 | 
					#endif   /* !Py_LIMITED_API */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,9 +57,9 @@ do { memory -= size; printf("%8d - %s\n", memory, comment); } while (0)
 | 
				
			||||||
   that all use of text and tail as object pointers must be wrapped in
 | 
					   that all use of text and tail as object pointers must be wrapped in
 | 
				
			||||||
   JOIN_OBJ.  see comments in the ElementObject definition for more
 | 
					   JOIN_OBJ.  see comments in the ElementObject definition for more
 | 
				
			||||||
   info. */
 | 
					   info. */
 | 
				
			||||||
#define JOIN_GET(p) ((Py_uintptr_t) (p) & 1)
 | 
					#define JOIN_GET(p) ((uintptr_t) (p) & 1)
 | 
				
			||||||
#define JOIN_SET(p, flag) ((void*) ((Py_uintptr_t) (JOIN_OBJ(p)) | (flag)))
 | 
					#define JOIN_SET(p, flag) ((void*) ((uintptr_t) (JOIN_OBJ(p)) | (flag)))
 | 
				
			||||||
#define JOIN_OBJ(p) ((PyObject*) ((Py_uintptr_t) (p) & ~(Py_uintptr_t)1))
 | 
					#define JOIN_OBJ(p) ((PyObject*) ((uintptr_t) (p) & ~(uintptr_t)1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Py_CLEAR for a PyObject* that uses a join flag. Pass the pointer by
 | 
					/* Py_CLEAR for a PyObject* that uses a join flag. Pass the pointer by
 | 
				
			||||||
 * reference since this function sets it to NULL.
 | 
					 * reference since this function sets it to NULL.
 | 
				
			||||||
| 
						 | 
					@ -797,7 +797,7 @@ _elementtree_Element___deepcopy__(ElementObject *self, PyObject *memo)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* add object to memo dictionary (so deepcopy won't visit it again) */
 | 
					    /* add object to memo dictionary (so deepcopy won't visit it again) */
 | 
				
			||||||
    id = PyLong_FromSsize_t((Py_uintptr_t) self);
 | 
					    id = PyLong_FromSsize_t((uintptr_t) self);
 | 
				
			||||||
    if (!id)
 | 
					    if (!id)
 | 
				
			||||||
        goto error;
 | 
					        goto error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1582,7 +1582,7 @@ _sre_compile_impl(PyObject *module, PyObject *pattern, int flags,
 | 
				
			||||||
        skip = *code;                                   \
 | 
					        skip = *code;                                   \
 | 
				
			||||||
        VTRACE(("%lu (skip to %p)\n",                   \
 | 
					        VTRACE(("%lu (skip to %p)\n",                   \
 | 
				
			||||||
               (unsigned long)skip, code+skip));        \
 | 
					               (unsigned long)skip, code+skip));        \
 | 
				
			||||||
        if (skip-adj > (Py_uintptr_t)(end - code))      \
 | 
					        if (skip-adj > (uintptr_t)(end - code))      \
 | 
				
			||||||
            FAIL;                                       \
 | 
					            FAIL;                                       \
 | 
				
			||||||
        code++;                                         \
 | 
					        code++;                                         \
 | 
				
			||||||
    } while (0)
 | 
					    } while (0)
 | 
				
			||||||
| 
						 | 
					@ -1616,7 +1616,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case SRE_OP_CHARSET:
 | 
					        case SRE_OP_CHARSET:
 | 
				
			||||||
            offset = 256/SRE_CODE_BITS; /* 256-bit bitmap */
 | 
					            offset = 256/SRE_CODE_BITS; /* 256-bit bitmap */
 | 
				
			||||||
            if (offset > (Py_uintptr_t)(end - code))
 | 
					            if (offset > (uintptr_t)(end - code))
 | 
				
			||||||
                FAIL;
 | 
					                FAIL;
 | 
				
			||||||
            code += offset;
 | 
					            code += offset;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -1624,7 +1624,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end)
 | 
				
			||||||
        case SRE_OP_BIGCHARSET:
 | 
					        case SRE_OP_BIGCHARSET:
 | 
				
			||||||
            GET_ARG; /* Number of blocks */
 | 
					            GET_ARG; /* Number of blocks */
 | 
				
			||||||
            offset = 256/sizeof(SRE_CODE); /* 256-byte table */
 | 
					            offset = 256/sizeof(SRE_CODE); /* 256-byte table */
 | 
				
			||||||
            if (offset > (Py_uintptr_t)(end - code))
 | 
					            if (offset > (uintptr_t)(end - code))
 | 
				
			||||||
                FAIL;
 | 
					                FAIL;
 | 
				
			||||||
            /* Make sure that each byte points to a valid block */
 | 
					            /* Make sure that each byte points to a valid block */
 | 
				
			||||||
            for (i = 0; i < 256; i++) {
 | 
					            for (i = 0; i < 256; i++) {
 | 
				
			||||||
| 
						 | 
					@ -1633,7 +1633,7 @@ _validate_charset(SRE_CODE *code, SRE_CODE *end)
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            code += offset;
 | 
					            code += offset;
 | 
				
			||||||
            offset = arg * (256/SRE_CODE_BITS); /* 256-bit bitmap times arg */
 | 
					            offset = arg * (256/SRE_CODE_BITS); /* 256-bit bitmap times arg */
 | 
				
			||||||
            if (offset > (Py_uintptr_t)(end - code))
 | 
					            if (offset > (uintptr_t)(end - code))
 | 
				
			||||||
                FAIL;
 | 
					                FAIL;
 | 
				
			||||||
            code += offset;
 | 
					            code += offset;
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -1784,11 +1784,11 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
 | 
				
			||||||
                    GET_ARG; prefix_len = arg;
 | 
					                    GET_ARG; prefix_len = arg;
 | 
				
			||||||
                    GET_ARG;
 | 
					                    GET_ARG;
 | 
				
			||||||
                    /* Here comes the prefix string */
 | 
					                    /* Here comes the prefix string */
 | 
				
			||||||
                    if (prefix_len > (Py_uintptr_t)(newcode - code))
 | 
					                    if (prefix_len > (uintptr_t)(newcode - code))
 | 
				
			||||||
                        FAIL;
 | 
					                        FAIL;
 | 
				
			||||||
                    code += prefix_len;
 | 
					                    code += prefix_len;
 | 
				
			||||||
                    /* And here comes the overlap table */
 | 
					                    /* And here comes the overlap table */
 | 
				
			||||||
                    if (prefix_len > (Py_uintptr_t)(newcode - code))
 | 
					                    if (prefix_len > (uintptr_t)(newcode - code))
 | 
				
			||||||
                        FAIL;
 | 
					                        FAIL;
 | 
				
			||||||
                    /* Each overlap value should be < prefix_len */
 | 
					                    /* Each overlap value should be < prefix_len */
 | 
				
			||||||
                    for (i = 0; i < prefix_len; i++) {
 | 
					                    for (i = 0; i < prefix_len; i++) {
 | 
				
			||||||
| 
						 | 
					@ -1917,7 +1917,7 @@ _validate_inner(SRE_CODE *code, SRE_CODE *end, Py_ssize_t groups)
 | 
				
			||||||
               to allow arbitrary jumps anywhere in the code; so we just look
 | 
					               to allow arbitrary jumps anywhere in the code; so we just look
 | 
				
			||||||
               for a JUMP opcode preceding our skip target.
 | 
					               for a JUMP opcode preceding our skip target.
 | 
				
			||||||
            */
 | 
					            */
 | 
				
			||||||
            if (skip >= 3 && skip-3 < (Py_uintptr_t)(end - code) &&
 | 
					            if (skip >= 3 && skip-3 < (uintptr_t)(end - code) &&
 | 
				
			||||||
                code[skip-3] == SRE_OP_JUMP)
 | 
					                code[skip-3] == SRE_OP_JUMP)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                VTRACE(("both then and else parts present\n"));
 | 
					                VTRACE(("both then and else parts present\n"));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -113,10 +113,10 @@ test_sizeof_c_types(PyObject *self)
 | 
				
			||||||
    CHECK_SIZEOF(Py_ssize_t, sizeof(void *));
 | 
					    CHECK_SIZEOF(Py_ssize_t, sizeof(void *));
 | 
				
			||||||
    CHECK_SIGNNESS(Py_ssize_t, 1);
 | 
					    CHECK_SIGNNESS(Py_ssize_t, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    CHECK_SIZEOF(Py_uintptr_t, sizeof(void *));
 | 
					    CHECK_SIZEOF(uintptr_t, sizeof(void *));
 | 
				
			||||||
    CHECK_SIGNNESS(Py_uintptr_t, 0);
 | 
					    CHECK_SIGNNESS(uintptr_t, 0);
 | 
				
			||||||
    CHECK_SIZEOF(Py_intptr_t, sizeof(void *));
 | 
					    CHECK_SIZEOF(intptr_t, sizeof(void *));
 | 
				
			||||||
    CHECK_SIGNNESS(Py_intptr_t, 1);
 | 
					    CHECK_SIGNNESS(intptr_t, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Py_INCREF(Py_None);
 | 
					    Py_INCREF(Py_None);
 | 
				
			||||||
    return Py_None;
 | 
					    return Py_None;
 | 
				
			||||||
| 
						 | 
					@ -3861,11 +3861,11 @@ tracemalloc_track(PyObject *self, PyObject *args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (release_gil) {
 | 
					    if (release_gil) {
 | 
				
			||||||
        Py_BEGIN_ALLOW_THREADS
 | 
					        Py_BEGIN_ALLOW_THREADS
 | 
				
			||||||
        res = _PyTraceMalloc_Track(domain, (Py_uintptr_t)ptr, size);
 | 
					        res = _PyTraceMalloc_Track(domain, (uintptr_t)ptr, size);
 | 
				
			||||||
        Py_END_ALLOW_THREADS
 | 
					        Py_END_ALLOW_THREADS
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
        res = _PyTraceMalloc_Track(domain, (Py_uintptr_t)ptr, size);
 | 
					        res = _PyTraceMalloc_Track(domain, (uintptr_t)ptr, size);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (res < 0) {
 | 
					    if (res < 0) {
 | 
				
			||||||
| 
						 | 
					@ -3890,7 +3890,7 @@ tracemalloc_untrack(PyObject *self, PyObject *args)
 | 
				
			||||||
    if (PyErr_Occurred())
 | 
					    if (PyErr_Occurred())
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    res = _PyTraceMalloc_Untrack(domain, (Py_uintptr_t)ptr);
 | 
					    res = _PyTraceMalloc_Untrack(domain, (uintptr_t)ptr);
 | 
				
			||||||
    if (res < 0) {
 | 
					    if (res < 0) {
 | 
				
			||||||
        PyErr_SetString(PyExc_RuntimeError, "_PyTraceMalloc_Track error");
 | 
					        PyErr_SetString(PyExc_RuntimeError, "_PyTraceMalloc_Track error");
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
| 
						 | 
					@ -3912,7 +3912,7 @@ tracemalloc_get_traceback(PyObject *self, PyObject *args)
 | 
				
			||||||
    if (PyErr_Occurred())
 | 
					    if (PyErr_Occurred())
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return _PyTraceMalloc_GetTraceback(domain, (Py_uintptr_t)ptr);
 | 
					    return _PyTraceMalloc_GetTraceback(domain, (uintptr_t)ptr);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,7 +67,7 @@ typedef struct
 | 
				
			||||||
__attribute__((packed))
 | 
					__attribute__((packed))
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Py_uintptr_t ptr;
 | 
					    uintptr_t ptr;
 | 
				
			||||||
    _PyTraceMalloc_domain_t domain;
 | 
					    _PyTraceMalloc_domain_t domain;
 | 
				
			||||||
} pointer_t;
 | 
					} pointer_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -523,7 +523,7 @@ static int
 | 
				
			||||||
tracemalloc_use_domain_cb(_Py_hashtable_t *old_traces,
 | 
					tracemalloc_use_domain_cb(_Py_hashtable_t *old_traces,
 | 
				
			||||||
                           _Py_hashtable_entry_t *entry, void *user_data)
 | 
					                           _Py_hashtable_entry_t *entry, void *user_data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Py_uintptr_t ptr;
 | 
					    uintptr_t ptr;
 | 
				
			||||||
    pointer_t key;
 | 
					    pointer_t key;
 | 
				
			||||||
    _Py_hashtable_t *new_traces = (_Py_hashtable_t *)user_data;
 | 
					    _Py_hashtable_t *new_traces = (_Py_hashtable_t *)user_data;
 | 
				
			||||||
    const void *pdata = _Py_HASHTABLE_ENTRY_PDATA(old_traces, entry);
 | 
					    const void *pdata = _Py_HASHTABLE_ENTRY_PDATA(old_traces, entry);
 | 
				
			||||||
| 
						 | 
					@ -538,7 +538,7 @@ tracemalloc_use_domain_cb(_Py_hashtable_t *old_traces,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Convert tracemalloc_traces from compact key (Py_uintptr_t) to pointer_t key.
 | 
					/* Convert tracemalloc_traces from compact key (uintptr_t) to pointer_t key.
 | 
				
			||||||
 * Return 0 on success, -1 on error. */
 | 
					 * Return 0 on success, -1 on error. */
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
tracemalloc_use_domain(void)
 | 
					tracemalloc_use_domain(void)
 | 
				
			||||||
| 
						 | 
					@ -572,7 +572,7 @@ tracemalloc_use_domain(void)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
tracemalloc_remove_trace(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr)
 | 
					tracemalloc_remove_trace(_PyTraceMalloc_domain_t domain, uintptr_t ptr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    trace_t trace;
 | 
					    trace_t trace;
 | 
				
			||||||
    int removed;
 | 
					    int removed;
 | 
				
			||||||
| 
						 | 
					@ -595,11 +595,11 @@ tracemalloc_remove_trace(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define REMOVE_TRACE(ptr) \
 | 
					#define REMOVE_TRACE(ptr) \
 | 
				
			||||||
            tracemalloc_remove_trace(DEFAULT_DOMAIN, (Py_uintptr_t)(ptr))
 | 
					            tracemalloc_remove_trace(DEFAULT_DOMAIN, (uintptr_t)(ptr))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
tracemalloc_add_trace(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr,
 | 
					tracemalloc_add_trace(_PyTraceMalloc_domain_t domain, uintptr_t ptr,
 | 
				
			||||||
                      size_t size)
 | 
					                      size_t size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    pointer_t key = {ptr, domain};
 | 
					    pointer_t key = {ptr, domain};
 | 
				
			||||||
| 
						 | 
					@ -617,7 +617,7 @@ tracemalloc_add_trace(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!tracemalloc_config.use_domain && domain != DEFAULT_DOMAIN) {
 | 
					    if (!tracemalloc_config.use_domain && domain != DEFAULT_DOMAIN) {
 | 
				
			||||||
        /* first trace using a non-zero domain whereas traces use compact
 | 
					        /* first trace using a non-zero domain whereas traces use compact
 | 
				
			||||||
           (Py_uintptr_t) keys: switch to pointer_t keys. */
 | 
					           (uintptr_t) keys: switch to pointer_t keys. */
 | 
				
			||||||
        if (tracemalloc_use_domain() < 0) {
 | 
					        if (tracemalloc_use_domain() < 0) {
 | 
				
			||||||
            return -1;
 | 
					            return -1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -663,7 +663,7 @@ tracemalloc_add_trace(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ADD_TRACE(ptr, size) \
 | 
					#define ADD_TRACE(ptr, size) \
 | 
				
			||||||
            tracemalloc_add_trace(DEFAULT_DOMAIN, (Py_uintptr_t)(ptr), size)
 | 
					            tracemalloc_add_trace(DEFAULT_DOMAIN, (uintptr_t)(ptr), size)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void*
 | 
					static void*
 | 
				
			||||||
| 
						 | 
					@ -1023,7 +1023,7 @@ tracemalloc_init(void)
 | 
				
			||||||
                                           hashtable_compare_pointer_t);
 | 
					                                           hashtable_compare_pointer_t);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else {
 | 
					    else {
 | 
				
			||||||
        tracemalloc_traces = hashtable_new(sizeof(Py_uintptr_t),
 | 
					        tracemalloc_traces = hashtable_new(sizeof(uintptr_t),
 | 
				
			||||||
                                           sizeof(trace_t),
 | 
					                                           sizeof(trace_t),
 | 
				
			||||||
                                           _Py_hashtable_hash_ptr,
 | 
					                                           _Py_hashtable_hash_ptr,
 | 
				
			||||||
                                           _Py_hashtable_compare_direct);
 | 
					                                           _Py_hashtable_compare_direct);
 | 
				
			||||||
| 
						 | 
					@ -1414,7 +1414,7 @@ py_tracemalloc_get_traces(PyObject *self, PyObject *obj)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static traceback_t*
 | 
					static traceback_t*
 | 
				
			||||||
tracemalloc_get_traceback(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr)
 | 
					tracemalloc_get_traceback(_PyTraceMalloc_domain_t domain, uintptr_t ptr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    trace_t trace;
 | 
					    trace_t trace;
 | 
				
			||||||
    int found;
 | 
					    int found;
 | 
				
			||||||
| 
						 | 
					@ -1461,7 +1461,7 @@ py_tracemalloc_get_object_traceback(PyObject *self, PyObject *obj)
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        ptr = (void *)obj;
 | 
					        ptr = (void *)obj;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    traceback = tracemalloc_get_traceback(DEFAULT_DOMAIN, (Py_uintptr_t)ptr);
 | 
					    traceback = tracemalloc_get_traceback(DEFAULT_DOMAIN, (uintptr_t)ptr);
 | 
				
			||||||
    if (traceback == NULL)
 | 
					    if (traceback == NULL)
 | 
				
			||||||
        Py_RETURN_NONE;
 | 
					        Py_RETURN_NONE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1489,7 +1489,7 @@ _PyMem_DumpTraceback(int fd, const void *ptr)
 | 
				
			||||||
    traceback_t *traceback;
 | 
					    traceback_t *traceback;
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    traceback = tracemalloc_get_traceback(DEFAULT_DOMAIN, (Py_uintptr_t)ptr);
 | 
					    traceback = tracemalloc_get_traceback(DEFAULT_DOMAIN, (uintptr_t)ptr);
 | 
				
			||||||
    if (traceback == NULL)
 | 
					    if (traceback == NULL)
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1762,7 +1762,7 @@ _PyTraceMalloc_Fini(void)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
_PyTraceMalloc_Track(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr,
 | 
					_PyTraceMalloc_Track(_PyTraceMalloc_domain_t domain, uintptr_t ptr,
 | 
				
			||||||
                     size_t size)
 | 
					                     size_t size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int res;
 | 
					    int res;
 | 
				
			||||||
| 
						 | 
					@ -1791,7 +1791,7 @@ _PyTraceMalloc_Track(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
_PyTraceMalloc_Untrack(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr)
 | 
					_PyTraceMalloc_Untrack(_PyTraceMalloc_domain_t domain, uintptr_t ptr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (!tracemalloc_config.tracing) {
 | 
					    if (!tracemalloc_config.tracing) {
 | 
				
			||||||
        /* tracemalloc is not tracing: do nothing */
 | 
					        /* tracemalloc is not tracing: do nothing */
 | 
				
			||||||
| 
						 | 
					@ -1807,7 +1807,7 @@ _PyTraceMalloc_Untrack(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyObject*
 | 
					PyObject*
 | 
				
			||||||
_PyTraceMalloc_GetTraceback(_PyTraceMalloc_domain_t domain, Py_uintptr_t ptr)
 | 
					_PyTraceMalloc_GetTraceback(_PyTraceMalloc_domain_t domain, uintptr_t ptr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    traceback_t *traceback;
 | 
					    traceback_t *traceback;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1072,12 +1072,12 @@ faulthandler_fatal_error_py(PyObject *self, PyObject *args)
 | 
				
			||||||
#  pragma intel optimization_level 0
 | 
					#  pragma intel optimization_level 0
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
static
 | 
					static
 | 
				
			||||||
Py_uintptr_t
 | 
					uintptr_t
 | 
				
			||||||
stack_overflow(Py_uintptr_t min_sp, Py_uintptr_t max_sp, size_t *depth)
 | 
					stack_overflow(uintptr_t min_sp, uintptr_t max_sp, size_t *depth)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /* allocate 4096 bytes on the stack at each call */
 | 
					    /* allocate 4096 bytes on the stack at each call */
 | 
				
			||||||
    unsigned char buffer[4096];
 | 
					    unsigned char buffer[4096];
 | 
				
			||||||
    Py_uintptr_t sp = (Py_uintptr_t)&buffer;
 | 
					    uintptr_t sp = (uintptr_t)&buffer;
 | 
				
			||||||
    *depth += 1;
 | 
					    *depth += 1;
 | 
				
			||||||
    if (sp < min_sp || max_sp < sp)
 | 
					    if (sp < min_sp || max_sp < sp)
 | 
				
			||||||
        return sp;
 | 
					        return sp;
 | 
				
			||||||
| 
						 | 
					@ -1090,8 +1090,8 @@ static PyObject *
 | 
				
			||||||
faulthandler_stack_overflow(PyObject *self)
 | 
					faulthandler_stack_overflow(PyObject *self)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    size_t depth, size;
 | 
					    size_t depth, size;
 | 
				
			||||||
    Py_uintptr_t sp = (Py_uintptr_t)&depth;
 | 
					    uintptr_t sp = (uintptr_t)&depth;
 | 
				
			||||||
    Py_uintptr_t stop;
 | 
					    uintptr_t stop;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    faulthandler_suppress_crash_report();
 | 
					    faulthandler_suppress_crash_report();
 | 
				
			||||||
    depth = 0;
 | 
					    depth = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2492,8 +2492,8 @@ class id_t_converter(CConverter):
 | 
				
			||||||
    type = 'id_t'
 | 
					    type = 'id_t'
 | 
				
			||||||
    format_unit = '" _Py_PARSE_PID "'
 | 
					    format_unit = '" _Py_PARSE_PID "'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Py_intptr_t_converter(CConverter):
 | 
					class intptr_t_converter(CConverter):
 | 
				
			||||||
    type = 'Py_intptr_t'
 | 
					    type = 'intptr_t'
 | 
				
			||||||
    format_unit = '" _Py_PARSE_INTPTR "'
 | 
					    format_unit = '" _Py_PARSE_INTPTR "'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Py_off_t_converter(CConverter):
 | 
					class Py_off_t_converter(CConverter):
 | 
				
			||||||
| 
						 | 
					@ -5244,7 +5244,7 @@ os_spawnv_impl(PyObject *module, int mode, PyObject *path, PyObject *argv)
 | 
				
			||||||
    char **argvlist;
 | 
					    char **argvlist;
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
    Py_ssize_t argc;
 | 
					    Py_ssize_t argc;
 | 
				
			||||||
    Py_intptr_t spawnval;
 | 
					    intptr_t spawnval;
 | 
				
			||||||
    PyObject *(*getitem)(PyObject *, Py_ssize_t);
 | 
					    PyObject *(*getitem)(PyObject *, Py_ssize_t);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* spawnv has three arguments: (mode, path, argv), where
 | 
					    /* spawnv has three arguments: (mode, path, argv), where
 | 
				
			||||||
| 
						 | 
					@ -5323,7 +5323,7 @@ os_spawnve_impl(PyObject *module, int mode, PyObject *path, PyObject *argv,
 | 
				
			||||||
    char **envlist;
 | 
					    char **envlist;
 | 
				
			||||||
    PyObject *res = NULL;
 | 
					    PyObject *res = NULL;
 | 
				
			||||||
    Py_ssize_t argc, i, envc;
 | 
					    Py_ssize_t argc, i, envc;
 | 
				
			||||||
    Py_intptr_t spawnval;
 | 
					    intptr_t spawnval;
 | 
				
			||||||
    PyObject *(*getitem)(PyObject *, Py_ssize_t);
 | 
					    PyObject *(*getitem)(PyObject *, Py_ssize_t);
 | 
				
			||||||
    Py_ssize_t lastarg = 0;
 | 
					    Py_ssize_t lastarg = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7078,7 +7078,7 @@ os_waitpid_impl(PyObject *module, pid_t pid, int options)
 | 
				
			||||||
/* MS C has a variant of waitpid() that's usable for most purposes. */
 | 
					/* MS C has a variant of waitpid() that's usable for most purposes. */
 | 
				
			||||||
/*[clinic input]
 | 
					/*[clinic input]
 | 
				
			||||||
os.waitpid
 | 
					os.waitpid
 | 
				
			||||||
    pid: Py_intptr_t
 | 
					    pid: intptr_t
 | 
				
			||||||
    options: int
 | 
					    options: int
 | 
				
			||||||
    /
 | 
					    /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7091,11 +7091,11 @@ The options argument is ignored on Windows.
 | 
				
			||||||
[clinic start generated code]*/
 | 
					[clinic start generated code]*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static PyObject *
 | 
					static PyObject *
 | 
				
			||||||
os_waitpid_impl(PyObject *module, Py_intptr_t pid, int options)
 | 
					os_waitpid_impl(PyObject *module, intptr_t pid, int options)
 | 
				
			||||||
/*[clinic end generated code: output=15f1ce005a346b09 input=444c8f51cca5b862]*/
 | 
					/*[clinic end generated code: output=15f1ce005a346b09 input=444c8f51cca5b862]*/
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int status;
 | 
					    int status;
 | 
				
			||||||
    Py_intptr_t res;
 | 
					    intptr_t res;
 | 
				
			||||||
    int async_err = 0;
 | 
					    int async_err = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    do {
 | 
					    do {
 | 
				
			||||||
| 
						 | 
					@ -8559,8 +8559,8 @@ os_pipe_impl(PyObject *module)
 | 
				
			||||||
    Py_BEGIN_ALLOW_THREADS
 | 
					    Py_BEGIN_ALLOW_THREADS
 | 
				
			||||||
    ok = CreatePipe(&read, &write, &attr, 0);
 | 
					    ok = CreatePipe(&read, &write, &attr, 0);
 | 
				
			||||||
    if (ok) {
 | 
					    if (ok) {
 | 
				
			||||||
        fds[0] = _open_osfhandle((Py_intptr_t)read, _O_RDONLY);
 | 
					        fds[0] = _open_osfhandle((intptr_t)read, _O_RDONLY);
 | 
				
			||||||
        fds[1] = _open_osfhandle((Py_intptr_t)write, _O_WRONLY);
 | 
					        fds[1] = _open_osfhandle((intptr_t)write, _O_WRONLY);
 | 
				
			||||||
        if (fds[0] == -1 || fds[1] == -1) {
 | 
					        if (fds[0] == -1 || fds[1] == -1) {
 | 
				
			||||||
            CloseHandle(read);
 | 
					            CloseHandle(read);
 | 
				
			||||||
            CloseHandle(write);
 | 
					            CloseHandle(write);
 | 
				
			||||||
| 
						 | 
					@ -11375,14 +11375,14 @@ os_set_inheritable_impl(PyObject *module, int fd, int inheritable)
 | 
				
			||||||
#ifdef MS_WINDOWS
 | 
					#ifdef MS_WINDOWS
 | 
				
			||||||
/*[clinic input]
 | 
					/*[clinic input]
 | 
				
			||||||
os.get_handle_inheritable -> bool
 | 
					os.get_handle_inheritable -> bool
 | 
				
			||||||
    handle: Py_intptr_t
 | 
					    handle: intptr_t
 | 
				
			||||||
    /
 | 
					    /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Get the close-on-exe flag of the specified file descriptor.
 | 
					Get the close-on-exe flag of the specified file descriptor.
 | 
				
			||||||
[clinic start generated code]*/
 | 
					[clinic start generated code]*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
os_get_handle_inheritable_impl(PyObject *module, Py_intptr_t handle)
 | 
					os_get_handle_inheritable_impl(PyObject *module, intptr_t handle)
 | 
				
			||||||
/*[clinic end generated code: output=9e5389b0aa0916ce input=5f7759443aae3dc5]*/
 | 
					/*[clinic end generated code: output=9e5389b0aa0916ce input=5f7759443aae3dc5]*/
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    DWORD flags;
 | 
					    DWORD flags;
 | 
				
			||||||
| 
						 | 
					@ -11398,7 +11398,7 @@ os_get_handle_inheritable_impl(PyObject *module, Py_intptr_t handle)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*[clinic input]
 | 
					/*[clinic input]
 | 
				
			||||||
os.set_handle_inheritable
 | 
					os.set_handle_inheritable
 | 
				
			||||||
    handle: Py_intptr_t
 | 
					    handle: intptr_t
 | 
				
			||||||
    inheritable: bool
 | 
					    inheritable: bool
 | 
				
			||||||
    /
 | 
					    /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11406,7 +11406,7 @@ Set the inheritable flag of the specified handle.
 | 
				
			||||||
[clinic start generated code]*/
 | 
					[clinic start generated code]*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static PyObject *
 | 
					static PyObject *
 | 
				
			||||||
os_set_handle_inheritable_impl(PyObject *module, Py_intptr_t handle,
 | 
					os_set_handle_inheritable_impl(PyObject *module, intptr_t handle,
 | 
				
			||||||
                               int inheritable)
 | 
					                               int inheritable)
 | 
				
			||||||
/*[clinic end generated code: output=b1e67bfa3213d745 input=e64b2b2730469def]*/
 | 
					/*[clinic end generated code: output=b1e67bfa3213d745 input=e64b2b2730469def]*/
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1797,7 +1797,7 @@ static PyTypeObject kqueue_queue_Type;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#if !defined(__OpenBSD__)
 | 
					#if !defined(__OpenBSD__)
 | 
				
			||||||
#   define IDENT_TYPE  T_UINTPTRT
 | 
					#   define IDENT_TYPE  T_UINTPTRT
 | 
				
			||||||
#   define IDENT_CAST  Py_intptr_t
 | 
					#   define IDENT_CAST  intptr_t
 | 
				
			||||||
#   define DATA_TYPE   T_INTPTRT
 | 
					#   define DATA_TYPE   T_INTPTRT
 | 
				
			||||||
#   define DATA_FMT_UNIT INTPTRT_FMT_UNIT
 | 
					#   define DATA_FMT_UNIT INTPTRT_FMT_UNIT
 | 
				
			||||||
#   define IDENT_AsType PyLong_AsUintptr_t
 | 
					#   define IDENT_AsType PyLong_AsUintptr_t
 | 
				
			||||||
| 
						 | 
					@ -1876,7 +1876,7 @@ static PyObject *
 | 
				
			||||||
kqueue_event_richcompare(kqueue_event_Object *s, kqueue_event_Object *o,
 | 
					kqueue_event_richcompare(kqueue_event_Object *s, kqueue_event_Object *o,
 | 
				
			||||||
                         int op)
 | 
					                         int op)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Py_intptr_t result = 0;
 | 
					    intptr_t result = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!kqueue_event_Check(o)) {
 | 
					    if (!kqueue_event_Check(o)) {
 | 
				
			||||||
        if (op == Py_EQ || op == Py_NE) {
 | 
					        if (op == Py_EQ || op == Py_NE) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -198,7 +198,7 @@ static int
 | 
				
			||||||
report_wakeup_write_error(void *data)
 | 
					report_wakeup_write_error(void *data)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int save_errno = errno;
 | 
					    int save_errno = errno;
 | 
				
			||||||
    errno = (int) (Py_intptr_t) data;
 | 
					    errno = (int) (intptr_t) data;
 | 
				
			||||||
    PyErr_SetFromErrno(PyExc_OSError);
 | 
					    PyErr_SetFromErrno(PyExc_OSError);
 | 
				
			||||||
    PySys_WriteStderr("Exception ignored when trying to write to the "
 | 
					    PySys_WriteStderr("Exception ignored when trying to write to the "
 | 
				
			||||||
                      "signal wakeup fd:\n");
 | 
					                      "signal wakeup fd:\n");
 | 
				
			||||||
| 
						 | 
					@ -277,7 +277,7 @@ trip_signal(int sig_num)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (rc < 0) {
 | 
					            if (rc < 0) {
 | 
				
			||||||
                Py_AddPendingCall(report_wakeup_write_error,
 | 
					                Py_AddPendingCall(report_wakeup_write_error,
 | 
				
			||||||
                                  (void *)(Py_intptr_t)errno);
 | 
					                                  (void *)(intptr_t)errno);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -529,7 +529,7 @@ SRE(match)(SRE_STATE* state, SRE_CODE* pattern, int match_all)
 | 
				
			||||||
    if (ctx->pattern[0] == SRE_OP_INFO) {
 | 
					    if (ctx->pattern[0] == SRE_OP_INFO) {
 | 
				
			||||||
        /* optimization info block */
 | 
					        /* optimization info block */
 | 
				
			||||||
        /* <INFO> <1=skip> <2=flags> <3=min> ... */
 | 
					        /* <INFO> <1=skip> <2=flags> <3=min> ... */
 | 
				
			||||||
        if (ctx->pattern[3] && (Py_uintptr_t)(end - ctx->ptr) < ctx->pattern[3]) {
 | 
					        if (ctx->pattern[3] && (uintptr_t)(end - ctx->ptr) < ctx->pattern[3]) {
 | 
				
			||||||
            TRACE(("reject (got %" PY_FORMAT_SIZE_T "d chars, "
 | 
					            TRACE(("reject (got %" PY_FORMAT_SIZE_T "d chars, "
 | 
				
			||||||
                   "need %" PY_FORMAT_SIZE_T "d)\n",
 | 
					                   "need %" PY_FORMAT_SIZE_T "d)\n",
 | 
				
			||||||
                   end - ctx->ptr, (Py_ssize_t) ctx->pattern[3]));
 | 
					                   end - ctx->ptr, (Py_ssize_t) ctx->pattern[3]));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1019,7 +1019,7 @@ wrapper_dealloc(wrapperobject *wp)
 | 
				
			||||||
static PyObject *
 | 
					static PyObject *
 | 
				
			||||||
wrapper_richcompare(PyObject *a, PyObject *b, int op)
 | 
					wrapper_richcompare(PyObject *a, PyObject *b, int op)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Py_intptr_t result;
 | 
					    intptr_t result;
 | 
				
			||||||
    PyObject *v;
 | 
					    PyObject *v;
 | 
				
			||||||
    PyWrapperDescrObject *a_descr, *b_descr;
 | 
					    PyWrapperDescrObject *a_descr, *b_descr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -989,13 +989,13 @@ PyObject *
 | 
				
			||||||
PyLong_FromVoidPtr(void *p)
 | 
					PyLong_FromVoidPtr(void *p)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#if SIZEOF_VOID_P <= SIZEOF_LONG
 | 
					#if SIZEOF_VOID_P <= SIZEOF_LONG
 | 
				
			||||||
    return PyLong_FromUnsignedLong((unsigned long)(Py_uintptr_t)p);
 | 
					    return PyLong_FromUnsignedLong((unsigned long)(uintptr_t)p);
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#if SIZEOF_LONG_LONG < SIZEOF_VOID_P
 | 
					#if SIZEOF_LONG_LONG < SIZEOF_VOID_P
 | 
				
			||||||
#   error "PyLong_FromVoidPtr: sizeof(long long) < sizeof(void*)"
 | 
					#   error "PyLong_FromVoidPtr: sizeof(long long) < sizeof(void*)"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
    return PyLong_FromUnsignedLongLong((unsigned long long)(Py_uintptr_t)p);
 | 
					    return PyLong_FromUnsignedLongLong((unsigned long long)(uintptr_t)p);
 | 
				
			||||||
#endif /* SIZEOF_VOID_P <= SIZEOF_LONG */
 | 
					#endif /* SIZEOF_VOID_P <= SIZEOF_LONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,7 @@ extern void _PyMem_DumpTraceback(int fd, const void *ptr);
 | 
				
			||||||
#define uint    unsigned int    /* assuming >= 16 bits */
 | 
					#define uint    unsigned int    /* assuming >= 16 bits */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#undef uptr
 | 
					#undef uptr
 | 
				
			||||||
#define uptr    Py_uintptr_t
 | 
					#define uptr    uintptr_t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Forward declaration */
 | 
					/* Forward declaration */
 | 
				
			||||||
static void* _PyMem_DebugRawMalloc(void *ctx, size_t size);
 | 
					static void* _PyMem_DebugRawMalloc(void *ctx, size_t size);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,12 +33,12 @@
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*[python input]
 | 
					/*[python input]
 | 
				
			||||||
class Py_intptr_t_converter(CConverter):
 | 
					class intptr_t_converter(CConverter):
 | 
				
			||||||
    type = 'Py_intptr_t'
 | 
					    type = 'intptr_t'
 | 
				
			||||||
    format_unit = '"_Py_PARSE_INTPTR"'
 | 
					    format_unit = '"_Py_PARSE_INTPTR"'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class handle_return_converter(long_return_converter):
 | 
					class handle_return_converter(long_return_converter):
 | 
				
			||||||
    type = 'Py_intptr_t'
 | 
					    type = 'intptr_t'
 | 
				
			||||||
    cast = '(void *)'
 | 
					    cast = '(void *)'
 | 
				
			||||||
    conversion_fn = 'PyLong_FromVoidPtr'
 | 
					    conversion_fn = 'PyLong_FromVoidPtr'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -148,7 +148,7 @@ msvcrt_setmode_impl(PyObject *module, int fd, int flags)
 | 
				
			||||||
/*[clinic input]
 | 
					/*[clinic input]
 | 
				
			||||||
msvcrt.open_osfhandle -> long
 | 
					msvcrt.open_osfhandle -> long
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    handle: Py_intptr_t
 | 
					    handle: intptr_t
 | 
				
			||||||
    flags: int
 | 
					    flags: int
 | 
				
			||||||
    /
 | 
					    /
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -160,7 +160,7 @@ to os.fdopen() to create a file object.
 | 
				
			||||||
[clinic start generated code]*/
 | 
					[clinic start generated code]*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static long
 | 
					static long
 | 
				
			||||||
msvcrt_open_osfhandle_impl(PyObject *module, Py_intptr_t handle, int flags)
 | 
					msvcrt_open_osfhandle_impl(PyObject *module, intptr_t handle, int flags)
 | 
				
			||||||
/*[clinic end generated code: output=bf65e422243a39f9 input=4d8516ed32db8f65]*/
 | 
					/*[clinic end generated code: output=bf65e422243a39f9 input=4d8516ed32db8f65]*/
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int fd;
 | 
					    int fd;
 | 
				
			||||||
| 
						 | 
					@ -183,11 +183,11 @@ Return the file handle for the file descriptor fd.
 | 
				
			||||||
Raises IOError if fd is not recognized.
 | 
					Raises IOError if fd is not recognized.
 | 
				
			||||||
[clinic start generated code]*/
 | 
					[clinic start generated code]*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static Py_intptr_t
 | 
					static intptr_t
 | 
				
			||||||
msvcrt_get_osfhandle_impl(PyObject *module, int fd)
 | 
					msvcrt_get_osfhandle_impl(PyObject *module, int fd)
 | 
				
			||||||
/*[clinic end generated code: output=eac47643338c0baa input=c7d18d02c8017ec1]*/
 | 
					/*[clinic end generated code: output=eac47643338c0baa input=c7d18d02c8017ec1]*/
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    Py_intptr_t handle = -1;
 | 
					    intptr_t handle = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!_PyVerify_fd(fd)) {
 | 
					    if (!_PyVerify_fd(fd)) {
 | 
				
			||||||
        PyErr_SetFromErrno(PyExc_IOError);
 | 
					        PyErr_SetFromErrno(PyExc_IOError);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,7 +63,7 @@ addstate(dfa *d)
 | 
				
			||||||
    s->s_upper = 0;
 | 
					    s->s_upper = 0;
 | 
				
			||||||
    s->s_accel = NULL;
 | 
					    s->s_accel = NULL;
 | 
				
			||||||
    s->s_accept = 0;
 | 
					    s->s_accept = 0;
 | 
				
			||||||
    return Py_SAFE_DOWNCAST(s - d->d_state, Py_intptr_t, int);
 | 
					    return Py_SAFE_DOWNCAST(s - d->d_state, intptr_t, int);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
| 
						 | 
					@ -105,7 +105,7 @@ addlabel(labellist *ll, int type, const char *str)
 | 
				
			||||||
    if (Py_DebugFlag)
 | 
					    if (Py_DebugFlag)
 | 
				
			||||||
        printf("Label @ %8p, %d: %s\n", ll, ll->ll_nlabels,
 | 
					        printf("Label @ %8p, %d: %s\n", ll, ll->ll_nlabels,
 | 
				
			||||||
               PyGrammar_LabelRepr(lb));
 | 
					               PyGrammar_LabelRepr(lb));
 | 
				
			||||||
    return Py_SAFE_DOWNCAST(lb - ll->ll_label, Py_intptr_t, int);
 | 
					    return Py_SAFE_DOWNCAST(lb - ll->ll_label, intptr_t, int);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Same, but rather dies than adds */
 | 
					/* Same, but rather dies than adds */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -255,7 +255,7 @@ parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
        if (a >= tok->line_start)
 | 
					        if (a >= tok->line_start)
 | 
				
			||||||
            col_offset = Py_SAFE_DOWNCAST(a - tok->line_start,
 | 
					            col_offset = Py_SAFE_DOWNCAST(a - tok->line_start,
 | 
				
			||||||
                                          Py_intptr_t, int);
 | 
					                                          intptr_t, int);
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            col_offset = -1;
 | 
					            col_offset = -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -178,7 +178,7 @@ static void drop_gil(PyThreadState *tstate)
 | 
				
			||||||
        /* Sub-interpreter support: threads might have been switched
 | 
					        /* Sub-interpreter support: threads might have been switched
 | 
				
			||||||
           under our feet using PyThreadState_Swap(). Fix the GIL last
 | 
					           under our feet using PyThreadState_Swap(). Fix the GIL last
 | 
				
			||||||
           holder variable so that our heuristics work. */
 | 
					           holder variable so that our heuristics work. */
 | 
				
			||||||
        _Py_atomic_store_relaxed(&gil_last_holder, (Py_uintptr_t)tstate);
 | 
					        _Py_atomic_store_relaxed(&gil_last_holder, (uintptr_t)tstate);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    MUTEX_LOCK(gil_mutex);
 | 
					    MUTEX_LOCK(gil_mutex);
 | 
				
			||||||
| 
						 | 
					@ -240,7 +240,7 @@ static void take_gil(PyThreadState *tstate)
 | 
				
			||||||
    _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil_locked, /*is_write=*/1);
 | 
					    _Py_ANNOTATE_RWLOCK_ACQUIRED(&gil_locked, /*is_write=*/1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil_last_holder)) {
 | 
					    if (tstate != (PyThreadState*)_Py_atomic_load_relaxed(&gil_last_holder)) {
 | 
				
			||||||
        _Py_atomic_store_relaxed(&gil_last_holder, (Py_uintptr_t)tstate);
 | 
					        _Py_atomic_store_relaxed(&gil_last_holder, (uintptr_t)tstate);
 | 
				
			||||||
        ++gil_switch_number;
 | 
					        ++gil_switch_number;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -476,9 +476,9 @@ compiler_unit_check(struct compiler_unit *u)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    basicblock *block;
 | 
					    basicblock *block;
 | 
				
			||||||
    for (block = u->u_blocks; block != NULL; block = block->b_list) {
 | 
					    for (block = u->u_blocks; block != NULL; block = block->b_list) {
 | 
				
			||||||
        assert((Py_uintptr_t)block != 0xcbcbcbcbU);
 | 
					        assert((uintptr_t)block != 0xcbcbcbcbU);
 | 
				
			||||||
        assert((Py_uintptr_t)block != 0xfbfbfbfbU);
 | 
					        assert((uintptr_t)block != 0xfbfbfbfbU);
 | 
				
			||||||
        assert((Py_uintptr_t)block != 0xdbdbdbdbU);
 | 
					        assert((uintptr_t)block != 0xdbdbdbdbU);
 | 
				
			||||||
        if (block->b_instr != NULL) {
 | 
					        if (block->b_instr != NULL) {
 | 
				
			||||||
            assert(block->b_ialloc > 0);
 | 
					            assert(block->b_ialloc > 0);
 | 
				
			||||||
            assert(block->b_iused > 0);
 | 
					            assert(block->b_iused > 0);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@
 | 
				
			||||||
#define GET_TSTATE() \
 | 
					#define GET_TSTATE() \
 | 
				
			||||||
    ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
 | 
					    ((PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))
 | 
				
			||||||
#define SET_TSTATE(value) \
 | 
					#define SET_TSTATE(value) \
 | 
				
			||||||
    _Py_atomic_store_relaxed(&_PyThreadState_Current, (Py_uintptr_t)(value))
 | 
					    _Py_atomic_store_relaxed(&_PyThreadState_Current, (uintptr_t)(value))
 | 
				
			||||||
#define GET_INTERP_STATE() \
 | 
					#define GET_INTERP_STATE() \
 | 
				
			||||||
    (GET_TSTATE()->interp)
 | 
					    (GET_TSTATE()->interp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue