Use 'void' directly instead of the ANY #define, now that all code is ANSI C.
Leave the actual #define in for API compatibility.
This commit is contained in:
parent
bf680266da
commit
334fb8985b
|
@ -40,7 +40,7 @@ DL_IMPORT(int) PyEval_GetRestricted(void);
|
|||
|
||||
DL_IMPORT(int) Py_FlushLine(void);
|
||||
|
||||
DL_IMPORT(int) Py_AddPendingCall(int (*func)(ANY *), ANY *arg);
|
||||
DL_IMPORT(int) Py_AddPendingCall(int (*func)(void *), void *arg);
|
||||
DL_IMPORT(int) Py_MakePendingCalls(void);
|
||||
|
||||
|
||||
|
|
|
@ -12,25 +12,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|||
|
||||
/* Lowest-level memory allocation interface */
|
||||
|
||||
#ifdef macintosh
|
||||
#define ANY void
|
||||
#endif
|
||||
|
||||
#ifdef __STDC__
|
||||
#define ANY void
|
||||
#endif
|
||||
|
||||
#ifdef __TURBOC__
|
||||
#define ANY void
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define ANY void
|
||||
#endif
|
||||
|
||||
#ifndef ANY
|
||||
#define ANY char
|
||||
#endif
|
||||
#define ANY void /* For API compatibility only. Obsolete, do not use. */
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
|
@ -49,7 +31,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL ((ANY *)0)
|
||||
#define NULL ((void *)0)
|
||||
#endif
|
||||
|
||||
#ifdef MALLOC_ZERO_RETURNS_NULL
|
||||
|
@ -87,13 +69,13 @@ extern "C" {
|
|||
#undef PyCore_REALLOC_PROTO
|
||||
#undef PyCore_FREE_PROTO
|
||||
#define PyCore_MALLOC_PROTO (size_t)
|
||||
#define PyCore_REALLOC_PROTO (ANY *, size_t)
|
||||
#define PyCore_FREE_PROTO (ANY *)
|
||||
#define PyCore_REALLOC_PROTO (void *, size_t)
|
||||
#define PyCore_FREE_PROTO (void *)
|
||||
#endif
|
||||
|
||||
#ifdef NEED_TO_DECLARE_MALLOC_AND_FRIEND
|
||||
extern ANY *PyCore_MALLOC_FUNC PyCore_MALLOC_PROTO;
|
||||
extern ANY *PyCore_REALLOC_FUNC PyCore_REALLOC_PROTO;
|
||||
extern void *PyCore_MALLOC_FUNC PyCore_MALLOC_PROTO;
|
||||
extern void *PyCore_REALLOC_FUNC PyCore_REALLOC_PROTO;
|
||||
extern void PyCore_FREE_FUNC PyCore_FREE_PROTO;
|
||||
#endif
|
||||
|
||||
|
@ -134,17 +116,17 @@ extern void PyCore_FREE_FUNC PyCore_FREE_PROTO;
|
|||
returns a non-NULL pointer, even if the underlying malloc
|
||||
doesn't. Returned pointers must be checked for NULL explicitly.
|
||||
No action is performed on failure. */
|
||||
extern DL_IMPORT(ANY *) PyMem_Malloc(size_t);
|
||||
extern DL_IMPORT(ANY *) PyMem_Realloc(ANY *, size_t);
|
||||
extern DL_IMPORT(void) PyMem_Free(ANY *);
|
||||
extern DL_IMPORT(void *) PyMem_Malloc(size_t);
|
||||
extern DL_IMPORT(void *) PyMem_Realloc(void *, size_t);
|
||||
extern DL_IMPORT(void) PyMem_Free(void *);
|
||||
|
||||
/* Starting from Python 1.6, the wrappers Py_{Malloc,Realloc,Free} are
|
||||
no longer supported. They used to call PyErr_NoMemory() on failure. */
|
||||
|
||||
/* Macros */
|
||||
#define PyMem_MALLOC(n) PyCore_MALLOC(n)
|
||||
#define PyMem_REALLOC(p, n) PyCore_REALLOC((ANY *)(p), (n))
|
||||
#define PyMem_FREE(p) PyCore_FREE((ANY *)(p))
|
||||
#define PyMem_REALLOC(p, n) PyCore_REALLOC((void *)(p), (n))
|
||||
#define PyMem_FREE(p) PyCore_FREE((void *)(p))
|
||||
|
||||
/*
|
||||
* Type-oriented memory interface
|
||||
|
|
|
@ -101,8 +101,8 @@ recommended to use PyObject_{New, NewVar, Del}. */
|
|||
#endif
|
||||
|
||||
#ifdef NEED_TO_DECLARE_OBJECT_MALLOC_AND_FRIEND
|
||||
extern ANY *PyCore_OBJECT_MALLOC_FUNC PyCore_OBJECT_MALLOC_PROTO;
|
||||
extern ANY *PyCore_OBJECT_REALLOC_FUNC PyCore_OBJECT_REALLOC_PROTO;
|
||||
extern void *PyCore_OBJECT_MALLOC_FUNC PyCore_OBJECT_MALLOC_PROTO;
|
||||
extern void *PyCore_OBJECT_REALLOC_FUNC PyCore_OBJECT_REALLOC_PROTO;
|
||||
extern void PyCore_OBJECT_FREE_FUNC PyCore_OBJECT_FREE_PROTO;
|
||||
#endif
|
||||
|
||||
|
@ -137,14 +137,14 @@ extern void PyCore_OBJECT_FREE_FUNC PyCore_OBJECT_FREE_PROTO;
|
|||
as Python. These wrappers *do not* make sure that allocating 0
|
||||
bytes returns a non-NULL pointer. Returned pointers must be checked
|
||||
for NULL explicitly; no action is performed on failure. */
|
||||
extern DL_IMPORT(ANY *) PyObject_Malloc(size_t);
|
||||
extern DL_IMPORT(ANY *) PyObject_Realloc(ANY *, size_t);
|
||||
extern DL_IMPORT(void) PyObject_Free(ANY *);
|
||||
extern DL_IMPORT(void *) PyObject_Malloc(size_t);
|
||||
extern DL_IMPORT(void *) PyObject_Realloc(void *, size_t);
|
||||
extern DL_IMPORT(void) PyObject_Free(void *);
|
||||
|
||||
/* Macros */
|
||||
#define PyObject_MALLOC(n) PyCore_OBJECT_MALLOC(n)
|
||||
#define PyObject_REALLOC(op, n) PyCore_OBJECT_REALLOC((ANY *)(op), (n))
|
||||
#define PyObject_FREE(op) PyCore_OBJECT_FREE((ANY *)(op))
|
||||
#define PyObject_REALLOC(op, n) PyCore_OBJECT_REALLOC((void *)(op), (n))
|
||||
#define PyObject_FREE(op) PyCore_OBJECT_FREE((void *)(op))
|
||||
|
||||
/*
|
||||
* Generic object allocator interface
|
||||
|
|
|
@ -18,7 +18,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|||
#define RTLD_LAZY 1
|
||||
#endif
|
||||
|
||||
typedef ANY *PyUnivPtr;
|
||||
typedef void *PyUnivPtr;
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
PyUnivPtr *dl_handle;
|
||||
|
|
|
@ -633,7 +633,7 @@ PyErr_SetInterrupt(void)
|
|||
{
|
||||
is_tripped++;
|
||||
Handlers[SIGINT].tripped = 1;
|
||||
Py_AddPendingCall((int (*)(ANY *))PyErr_CheckSignals, NULL);
|
||||
Py_AddPendingCall((int (*)(void *))PyErr_CheckSignals, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -799,7 +799,7 @@ PySocketSock_setsockopt(PySocketSockObject *s, PyObject *args)
|
|||
&level, &optname, &buf, &buflen))
|
||||
return NULL;
|
||||
}
|
||||
res = setsockopt(s->sock_fd, level, optname, (ANY *)buf, buflen);
|
||||
res = setsockopt(s->sock_fd, level, optname, (void *)buf, buflen);
|
||||
if (res < 0)
|
||||
return PySocket_Err();
|
||||
Py_INCREF(Py_None);
|
||||
|
@ -841,7 +841,7 @@ PySocketSock_getsockopt(PySocketSockObject *s, PyObject *args)
|
|||
int flag = 0;
|
||||
socklen_t flagsize = sizeof flag;
|
||||
res = getsockopt(s->sock_fd, level, optname,
|
||||
(ANY *)&flag, &flagsize);
|
||||
(void *)&flag, &flagsize);
|
||||
if (res < 0)
|
||||
return PySocket_Err();
|
||||
return PyInt_FromLong(flag);
|
||||
|
@ -855,7 +855,7 @@ PySocketSock_getsockopt(PySocketSockObject *s, PyObject *args)
|
|||
if (buf == NULL)
|
||||
return NULL;
|
||||
res = getsockopt(s->sock_fd, level, optname,
|
||||
(ANY *)PyString_AsString(buf), &buflen);
|
||||
(void *)PyString_AsString(buf), &buflen);
|
||||
if (res < 0) {
|
||||
Py_DECREF(buf);
|
||||
return PySocket_Err();
|
||||
|
@ -1230,7 +1230,7 @@ PySocketSock_recvfrom(PySocketSockObject *s, PyObject *args)
|
|||
#if defined(PYOS_OS2)
|
||||
(struct sockaddr *)addrbuf, &addrlen
|
||||
#else
|
||||
(ANY *)addrbuf, &addrlen
|
||||
(void *)addrbuf, &addrlen
|
||||
#endif
|
||||
#else
|
||||
(struct sockaddr *)addrbuf, &addrlen
|
||||
|
|
|
@ -293,7 +293,7 @@ static int
|
|||
gettmarg(PyObject *args, struct tm *p)
|
||||
{
|
||||
int y;
|
||||
memset((ANY *) p, '\0', sizeof(struct tm));
|
||||
memset((void *) p, '\0', sizeof(struct tm));
|
||||
|
||||
if (!PyArg_Parse(args, "(iiiiiiiii)",
|
||||
&y,
|
||||
|
@ -343,7 +343,7 @@ time_strftime(PyObject *self, PyObject *args)
|
|||
char *outbuf = 0;
|
||||
size_t i;
|
||||
|
||||
memset((ANY *) &buf, '\0', sizeof(buf));
|
||||
memset((void *) &buf, '\0', sizeof(buf));
|
||||
|
||||
if (!PyArg_ParseTuple(args, "sO:strftime", &fmt, &tup)
|
||||
|| !gettmarg(tup, &buf))
|
||||
|
@ -398,7 +398,7 @@ time_strptime(PyObject *self, PyObject *args)
|
|||
|
||||
if (!PyArg_ParseTuple(args, "s|s:strptime", &buf, &fmt))
|
||||
return NULL;
|
||||
memset((ANY *) &tm, '\0', sizeof(tm));
|
||||
memset((void *) &tm, '\0', sizeof(tm));
|
||||
s = strptime(buf, fmt, &tm);
|
||||
if (s == NULL) {
|
||||
PyErr_SetString(PyExc_ValueError, "format mismatch");
|
||||
|
|
|
@ -1258,8 +1258,8 @@ PyList_AsTuple(PyObject *v)
|
|||
if (w == NULL)
|
||||
return NULL;
|
||||
p = ((PyTupleObject *)w)->ob_item;
|
||||
memcpy((ANY *)p,
|
||||
(ANY *)((PyListObject *)v)->ob_item,
|
||||
memcpy((void *)p,
|
||||
(void *)((PyListObject *)v)->ob_item,
|
||||
n*sizeof(PyObject *));
|
||||
while (--n >= 0) {
|
||||
Py_INCREF(*p);
|
||||
|
|
|
@ -962,7 +962,7 @@ int (*_Py_abstract_hack)(PyObject *) = &PyObject_Size;
|
|||
|
||||
/* Python's malloc wrappers (see mymalloc.h) */
|
||||
|
||||
ANY *
|
||||
void *
|
||||
PyMem_Malloc(size_t nbytes)
|
||||
{
|
||||
#if _PyMem_EXTRA > 0
|
||||
|
@ -972,8 +972,8 @@ PyMem_Malloc(size_t nbytes)
|
|||
return PyMem_MALLOC(nbytes);
|
||||
}
|
||||
|
||||
ANY *
|
||||
PyMem_Realloc(ANY *p, size_t nbytes)
|
||||
void *
|
||||
PyMem_Realloc(void *p, size_t nbytes)
|
||||
{
|
||||
#if _PyMem_EXTRA > 0
|
||||
if (nbytes == 0)
|
||||
|
@ -983,7 +983,7 @@ PyMem_Realloc(ANY *p, size_t nbytes)
|
|||
}
|
||||
|
||||
void
|
||||
PyMem_Free(ANY *p)
|
||||
PyMem_Free(void *p)
|
||||
{
|
||||
PyMem_FREE(p);
|
||||
}
|
||||
|
@ -991,20 +991,20 @@ PyMem_Free(ANY *p)
|
|||
|
||||
/* Python's object malloc wrappers (see objimpl.h) */
|
||||
|
||||
ANY *
|
||||
void *
|
||||
PyObject_Malloc(size_t nbytes)
|
||||
{
|
||||
return PyObject_MALLOC(nbytes);
|
||||
}
|
||||
|
||||
ANY *
|
||||
PyObject_Realloc(ANY *p, size_t nbytes)
|
||||
void *
|
||||
PyObject_Realloc(void *p, size_t nbytes)
|
||||
{
|
||||
return PyObject_REALLOC(p, nbytes);
|
||||
}
|
||||
|
||||
void
|
||||
PyObject_Free(ANY *p)
|
||||
PyObject_Free(void *p)
|
||||
{
|
||||
PyObject_FREE(p);
|
||||
}
|
||||
|
|
|
@ -18,11 +18,10 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
|||
#endif
|
||||
|
||||
#include "myproto.h"
|
||||
#include "mymalloc.h" /* For ANY */
|
||||
#include "intrcheck.h"
|
||||
|
||||
/* Copied here from ceval.h -- can't include that file. */
|
||||
int Py_AddPendingCall(int (*func)(ANY *), ANY *arg);
|
||||
int Py_AddPendingCall(int (*func)(void *), void *arg);
|
||||
|
||||
|
||||
#ifdef QUICKWIN
|
||||
|
|
|
@ -210,15 +210,15 @@ PyEval_RestoreThread(PyThreadState *tstate)
|
|||
|
||||
#define NPENDINGCALLS 32
|
||||
static struct {
|
||||
int (*func)(ANY *);
|
||||
ANY *arg;
|
||||
int (*func)(void *);
|
||||
void *arg;
|
||||
} pendingcalls[NPENDINGCALLS];
|
||||
static volatile int pendingfirst = 0;
|
||||
static volatile int pendinglast = 0;
|
||||
static volatile int things_to_do = 0;
|
||||
|
||||
int
|
||||
Py_AddPendingCall(int (*func)(ANY *), ANY *arg)
|
||||
Py_AddPendingCall(int (*func)(void *), void *arg)
|
||||
{
|
||||
static int busy = 0;
|
||||
int i, j;
|
||||
|
@ -255,8 +255,8 @@ Py_MakePendingCalls(void)
|
|||
things_to_do = 0;
|
||||
for (;;) {
|
||||
int i;
|
||||
int (*func)(ANY *);
|
||||
ANY *arg;
|
||||
int (*func)(void *);
|
||||
void *arg;
|
||||
i = pendingfirst;
|
||||
if (i == pendinglast)
|
||||
break; /* Queue empty */
|
||||
|
|
Loading…
Reference in New Issue