bpo-39943: Fix MSVC warnings in sre extension (GH-20508)
This commit is contained in:
parent
a97011b9b8
commit
06e3a27a3c
|
@ -454,7 +454,10 @@ state_init(SRE_STATE* state, PatternObject* pattern, PyObject* string,
|
||||||
|
|
||||||
return string;
|
return string;
|
||||||
err:
|
err:
|
||||||
PyMem_Del(state->mark);
|
/* We add an explicit cast here because MSVC has a bug when
|
||||||
|
compiling C code where it believes that `const void**` cannot be
|
||||||
|
safely casted to `void*`, see bpo-39943 for details. */
|
||||||
|
PyMem_Del((void*) state->mark);
|
||||||
state->mark = NULL;
|
state->mark = NULL;
|
||||||
if (state->buffer.buf)
|
if (state->buffer.buf)
|
||||||
PyBuffer_Release(&state->buffer);
|
PyBuffer_Release(&state->buffer);
|
||||||
|
@ -468,7 +471,8 @@ state_fini(SRE_STATE* state)
|
||||||
PyBuffer_Release(&state->buffer);
|
PyBuffer_Release(&state->buffer);
|
||||||
Py_XDECREF(state->string);
|
Py_XDECREF(state->string);
|
||||||
data_stack_dealloc(state);
|
data_stack_dealloc(state);
|
||||||
PyMem_Del(state->mark);
|
/* See above PyMem_Del for why we explicitly cast here. */
|
||||||
|
PyMem_Del((void*) state->mark);
|
||||||
state->mark = NULL;
|
state->mark = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -448,12 +448,15 @@ do { \
|
||||||
state->data_stack_base += size; \
|
state->data_stack_base += size; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
/* We add an explicit cast to memcpy here because MSVC has a bug when
|
||||||
|
compiling C code where it believes that `const void**` cannot be
|
||||||
|
safely casted to `void*`, see bpo-39943 for details. */
|
||||||
#define DATA_STACK_POP(state, data, size, discard) \
|
#define DATA_STACK_POP(state, data, size, discard) \
|
||||||
do { \
|
do { \
|
||||||
TRACE(("copy data to %p from %" PY_FORMAT_SIZE_T "d " \
|
TRACE(("copy data to %p from %" PY_FORMAT_SIZE_T "d " \
|
||||||
"(%" PY_FORMAT_SIZE_T "d)\n", \
|
"(%" PY_FORMAT_SIZE_T "d)\n", \
|
||||||
data, state->data_stack_base-size, size)); \
|
data, state->data_stack_base-size, size)); \
|
||||||
memcpy(data, state->data_stack+state->data_stack_base-size, size); \
|
memcpy((void*) data, state->data_stack+state->data_stack_base-size, size); \
|
||||||
if (discard) \
|
if (discard) \
|
||||||
state->data_stack_base -= size; \
|
state->data_stack_base -= size; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
Loading…
Reference in New Issue