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:
Thomas Wouters 2000-07-25 12:56:38 +00:00
parent bf680266da
commit 334fb8985b
11 changed files with 44 additions and 63 deletions

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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");

View File

@ -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);

View File

@ -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);
}

View File

@ -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

View File

@ -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 */