Author: Devin Jeanpierre <[email protected]>
Branch: cpyext-macros-cast
Changeset: r84388:b3124c608c44
Date: 2016-05-11 09:47 -0700
http://bitbucket.org/pypy/pypy/changeset/b3124c608c44/
Log: Back out non-test changes, since I'm going to rewrite how I make the
tests pass.
hg backout cf292fe --no-commit hg status -n | grep test/ | xargs hg
revert
diff --git a/pypy/module/cpyext/cdatetime.py b/pypy/module/cpyext/cdatetime.py
--- a/pypy/module/cpyext/cdatetime.py
+++ b/pypy/module/cpyext/cdatetime.py
@@ -179,67 +179,67 @@
# Accessors
@cpython_api([PyDateTime_Date], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_GET_YEAR(space, w_obj):
+def PyDateTime_GET_YEAR(space, w_obj):
"""Return the year, as a positive int.
"""
return space.int_w(space.getattr(w_obj, space.wrap("year")))
@cpython_api([PyDateTime_Date], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_GET_MONTH(space, w_obj):
+def PyDateTime_GET_MONTH(space, w_obj):
"""Return the month, as an int from 1 through 12.
"""
return space.int_w(space.getattr(w_obj, space.wrap("month")))
@cpython_api([PyDateTime_Date], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_GET_DAY(space, w_obj):
+def PyDateTime_GET_DAY(space, w_obj):
"""Return the day, as an int from 1 through 31.
"""
return space.int_w(space.getattr(w_obj, space.wrap("day")))
@cpython_api([PyDateTime_DateTime], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DATE_GET_HOUR(space, w_obj):
+def PyDateTime_DATE_GET_HOUR(space, w_obj):
"""Return the hour, as an int from 0 through 23.
"""
return space.int_w(space.getattr(w_obj, space.wrap("hour")))
@cpython_api([PyDateTime_DateTime], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DATE_GET_MINUTE(space, w_obj):
+def PyDateTime_DATE_GET_MINUTE(space, w_obj):
"""Return the minute, as an int from 0 through 59.
"""
return space.int_w(space.getattr(w_obj, space.wrap("minute")))
@cpython_api([PyDateTime_DateTime], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DATE_GET_SECOND(space, w_obj):
+def PyDateTime_DATE_GET_SECOND(space, w_obj):
"""Return the second, as an int from 0 through 59.
"""
return space.int_w(space.getattr(w_obj, space.wrap("second")))
@cpython_api([PyDateTime_DateTime], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DATE_GET_MICROSECOND(space, w_obj):
+def PyDateTime_DATE_GET_MICROSECOND(space, w_obj):
"""Return the microsecond, as an int from 0 through 999999.
"""
return space.int_w(space.getattr(w_obj, space.wrap("microsecond")))
@cpython_api([PyDateTime_Time], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_TIME_GET_HOUR(space, w_obj):
+def PyDateTime_TIME_GET_HOUR(space, w_obj):
"""Return the hour, as an int from 0 through 23.
"""
return space.int_w(space.getattr(w_obj, space.wrap("hour")))
@cpython_api([PyDateTime_Time], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_TIME_GET_MINUTE(space, w_obj):
+def PyDateTime_TIME_GET_MINUTE(space, w_obj):
"""Return the minute, as an int from 0 through 59.
"""
return space.int_w(space.getattr(w_obj, space.wrap("minute")))
@cpython_api([PyDateTime_Time], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_TIME_GET_SECOND(space, w_obj):
+def PyDateTime_TIME_GET_SECOND(space, w_obj):
"""Return the second, as an int from 0 through 59.
"""
return space.int_w(space.getattr(w_obj, space.wrap("second")))
@cpython_api([PyDateTime_Time], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_TIME_GET_MICROSECOND(space, w_obj):
+def PyDateTime_TIME_GET_MICROSECOND(space, w_obj):
"""Return the microsecond, as an int from 0 through 999999.
"""
return space.int_w(space.getattr(w_obj, space.wrap("microsecond")))
@@ -249,13 +249,13 @@
# for types defined in a python module like lib/datetime.py.
@cpython_api([PyDateTime_Delta], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DELTA_GET_DAYS(space, w_obj):
+def PyDateTime_DELTA_GET_DAYS(space, w_obj):
return space.int_w(space.getattr(w_obj, space.wrap("days")))
@cpython_api([PyDateTime_Delta], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DELTA_GET_SECONDS(space, w_obj):
+def PyDateTime_DELTA_GET_SECONDS(space, w_obj):
return space.int_w(space.getattr(w_obj, space.wrap("seconds")))
@cpython_api([PyDateTime_Delta], rffi.INT_real, error=CANNOT_FAIL)
-def _PyDateTime_DELTA_GET_MICROSECONDS(space, w_obj):
+def PyDateTime_DELTA_GET_MICROSECONDS(space, w_obj):
return space.int_w(space.getattr(w_obj, space.wrap("microseconds")))
diff --git a/pypy/module/cpyext/floatobject.py
b/pypy/module/cpyext/floatobject.py
--- a/pypy/module/cpyext/floatobject.py
+++ b/pypy/module/cpyext/floatobject.py
@@ -49,7 +49,7 @@
return space.float_w(space.float(w_obj))
@cpython_api([PyObject], lltype.Float, error=CANNOT_FAIL)
-def _PyFloat_AS_DOUBLE(space, w_float):
+def PyFloat_AS_DOUBLE(space, w_float):
"""Return a C double representation of the contents of w_float, but
without error checking."""
return space.float_w(w_float)
diff --git a/pypy/module/cpyext/include/Python.h
b/pypy/module/cpyext/include/Python.h
--- a/pypy/module/cpyext/include/Python.h
+++ b/pypy/module/cpyext/include/Python.h
@@ -87,7 +87,6 @@
#include "pymath.h"
#include "pyport.h"
#include "warnings.h"
-#include "weakrefobject.h"
#include <stdarg.h>
#include <stdio.h>
@@ -103,7 +102,6 @@
#include "funcobject.h"
#include "code.h"
-#include "abstract.h"
#include "modsupport.h"
#include "pythonrun.h"
#include "pyerrors.h"
@@ -131,7 +129,6 @@
#include "fileobject.h"
#include "pysignals.h"
#include "pythread.h"
-#include "setobject.h"
#include "traceback.h"
/* Missing definitions */
diff --git a/pypy/module/cpyext/include/abstract.h
b/pypy/module/cpyext/include/abstract.h
--- a/pypy/module/cpyext/include/abstract.h
+++ b/pypy/module/cpyext/include/abstract.h
@@ -1,3 +1,1 @@
-#define PySequence_Fast_GET_ITEM(seq, i)
_PySequence_Fast_GET_ITEM((PyObject*)(seq), (i))
-#define PySequence_Fast_GET_SIZE(seq)
_PySequence_Fast_GET_SIZE((PyObject*)(seq))
-#define PySequence_ITEM(seq, i) _PySequence_ITEM((PyObject*)(seq), (i))
+/* empty */
diff --git a/pypy/module/cpyext/include/datetime.h
b/pypy/module/cpyext/include/datetime.h
--- a/pypy/module/cpyext/include/datetime.h
+++ b/pypy/module/cpyext/include/datetime.h
@@ -4,27 +4,6 @@
extern "C" {
#endif
-
-#define PyDateTime_GET_YEAR(o) _PyDateTime_GET_YEAR((PyDateTime_Date*)(o))
-#define PyDateTime_GET_MONTH(o) _PyDateTime_GET_MONTH((PyDateTime_Date*)(o))
-#define PyDateTime_GET_DAY(o) _PyDateTime_GET_DAY((PyDateTime_Date*)(o))
-
-#define PyDateTime_DATE_GET_HOUR(o)
_PyDateTime_DATE_GET_HOUR((PyDateTime_DateTime*)(o))
-#define PyDateTime_DATE_GET_MINUTE(o)
_PyDateTime_DATE_GET_MINUTE((PyDateTime_DateTime*)(o))
-#define PyDateTime_DATE_GET_SECOND(o)
_PyDateTime_DATE_GET_SECOND((PyDateTime_DateTime*)(o))
-#define PyDateTime_DATE_GET_MICROSECOND(o)
_PyDateTime_DATE_GET_MICROSECOND((PyDateTime_DateTime*)(o))
-
-#define PyDateTime_TIME_GET_HOUR(o)
_PyDateTime_TIME_GET_HOUR((PyDateTime_Time*)(o))
-#define PyDateTime_TIME_GET_MINUTE(o)
_PyDateTime_TIME_GET_MINUTE((PyDateTime_Time*)(o))
-#define PyDateTime_TIME_GET_SECOND(o)
_PyDateTime_TIME_GET_SECOND((PyDateTime_Time*)(o))
-#define PyDateTime_TIME_GET_MICROSECOND(o)
_PyDateTime_TIME_GET_MICROSECOND((PyDateTime_Time*)(o))
-
-#define PyDateTime_DELTA_GET_DAYS(o)
_PyDateTime_DELTA_GET_DAYS((PyDateTime_Delta*)(o))
-#define PyDateTime_DELTA_GET_SECONDS(o)
_PyDateTime_DELTA_GET_SECONDS((PyDateTime_Delta*)(o))
-#define PyDateTime_DELTA_GET_MICROSECONDS(o)
_PyDateTime_DELTA_GET_MICROSECONDS((PyDateTime_Delta*)(o))
-
-
-
/* Define structure for C API. */
typedef struct {
/* type objects */
diff --git a/pypy/module/cpyext/include/floatobject.h
b/pypy/module/cpyext/include/floatobject.h
--- a/pypy/module/cpyext/include/floatobject.h
+++ b/pypy/module/cpyext/include/floatobject.h
@@ -19,8 +19,6 @@
double ob_fval;
} PyFloatObject;
-#define PyFloat_AS_DOUBLE(o) _PyFloat_AS_DOUBLE((PyObject*)(o))
-
#define PyFloat_STR_PRECISION 12
#ifdef Py_NAN
diff --git a/pypy/module/cpyext/include/intobject.h
b/pypy/module/cpyext/include/intobject.h
--- a/pypy/module/cpyext/include/intobject.h
+++ b/pypy/module/cpyext/include/intobject.h
@@ -7,8 +7,6 @@
extern "C" {
#endif
-#define PyInt_AS_LONG(obj) _PyInt_AS_LONG((PyObject*)obj)
-
typedef struct {
PyObject_HEAD
long ob_ival;
diff --git a/pypy/module/cpyext/include/listobject.h
b/pypy/module/cpyext/include/listobject.h
--- a/pypy/module/cpyext/include/listobject.h
+++ b/pypy/module/cpyext/include/listobject.h
@@ -1,3 +1,1 @@
-#define PyList_GET_ITEM(o, i) PyList_GetItem((PyObject*)(o), (i))
-#define PyList_SET_ITEM(o, i, v) _PyList_SET_ITEM((PyObject*)(o), (i), (v))
-#define PyList_GET_SIZE(o) _PyList_GET_SIZE((PyObject*)(o))
+#define PyList_GET_ITEM PyList_GetItem
diff --git a/pypy/module/cpyext/include/setobject.h
b/pypy/module/cpyext/include/setobject.h
deleted file mode 100644
--- a/pypy/module/cpyext/include/setobject.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Int object interface */
-
-#ifndef Py_SETOBJECT_H
-#define Py_SETOBJECT_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define PySet_GET_SIZE(obj) _PySet_GET_SIZE((PyObject*)obj)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !Py_SETOBJECT_H */
diff --git a/pypy/module/cpyext/include/unicodeobject.h
b/pypy/module/cpyext/include/unicodeobject.h
--- a/pypy/module/cpyext/include/unicodeobject.h
+++ b/pypy/module/cpyext/include/unicodeobject.h
@@ -5,10 +5,6 @@
extern "C" {
#endif
-#define PyUnicode_GET_SIZE(o) _PyUnicode_GET_SIZE((PyObject*)(o))
-#define PyUnicode_GET_DATA_SIZE(o) _PyUnicode_GET_DATA_SIZE((PyObject*)(o))
-#define PyUnicode_AS_UNICODE(o) _PyUnicode_AS_UNICODE((PyObject*)(o))
-
typedef unsigned int Py_UCS4;
#ifdef HAVE_USABLE_WCHAR_T
diff --git a/pypy/module/cpyext/include/weakrefobject.h
b/pypy/module/cpyext/include/weakrefobject.h
deleted file mode 100644
--- a/pypy/module/cpyext/include/weakrefobject.h
+++ /dev/null
@@ -1,1 +0,0 @@
-#define PyWeakref_GET_OBJECT(o) PyWeakref_GetObject((PyObject*)(o))
diff --git a/pypy/module/cpyext/intobject.py b/pypy/module/cpyext/intobject.py
--- a/pypy/module/cpyext/intobject.py
+++ b/pypy/module/cpyext/intobject.py
@@ -105,7 +105,7 @@
return num.ulonglongmask()
@cpython_api([PyObject], lltype.Signed, error=CANNOT_FAIL)
-def _PyInt_AS_LONG(space, w_int):
+def PyInt_AS_LONG(space, w_int):
"""Return the value of the object w_int. No error checking is performed."""
return space.int_w(w_int)
diff --git a/pypy/module/cpyext/listobject.py b/pypy/module/cpyext/listobject.py
--- a/pypy/module/cpyext/listobject.py
+++ b/pypy/module/cpyext/listobject.py
@@ -23,7 +23,7 @@
@cpython_api([PyObject, Py_ssize_t, PyObject], PyObject, error=CANNOT_FAIL,
result_borrowed=True)
-def _PyList_SET_ITEM(space, w_list, index, w_item):
+def PyList_SET_ITEM(space, w_list, index, w_item):
"""Macro form of PyList_SetItem() without error checking. This is normally
only used to fill in new lists where there is no previous content.
@@ -88,7 +88,7 @@
return 0
@cpython_api([PyObject], Py_ssize_t, error=CANNOT_FAIL)
-def _PyList_GET_SIZE(space, w_list):
+def PyList_GET_SIZE(space, w_list):
"""Macro form of PyList_Size() without error checking.
"""
assert isinstance(w_list, W_ListObject)
@@ -102,7 +102,7 @@
"""
if not PyList_Check(space, ref):
raise oefmt(space.w_TypeError, "expected list object")
- return _PyList_GET_SIZE(space, ref)
+ return PyList_GET_SIZE(space, ref)
@cpython_api([PyObject], PyObject)
def PyList_AsTuple(space, w_list):
diff --git a/pypy/module/cpyext/sequence.py b/pypy/module/cpyext/sequence.py
--- a/pypy/module/cpyext/sequence.py
+++ b/pypy/module/cpyext/sequence.py
@@ -46,7 +46,7 @@
members of the result. Returns NULL on failure. If the object is not a
sequence, raises TypeError with m as the message text."""
if isinstance(w_obj, W_ListObject):
- # make sure we can return a borrowed obj from _PySequence_Fast_GET_ITEM
+ # make sure we can return a borrowed obj from PySequence_Fast_GET_ITEM
w_obj.convert_to_cpy_strategy(space)
return w_obj
try:
@@ -55,7 +55,7 @@
raise OperationError(space.w_TypeError, space.wrap(rffi.charp2str(m)))
@cpython_api([PyObject, Py_ssize_t], PyObject, result_borrowed=True)
-def _PySequence_Fast_GET_ITEM(space, w_obj, index):
+def PySequence_Fast_GET_ITEM(space, w_obj, index):
"""Return the ith element of o, assuming that o was returned by
PySequence_Fast(), o is not NULL, and that i is within bounds.
"""
@@ -68,7 +68,7 @@
"sequence")
@cpython_api([PyObject], Py_ssize_t, error=CANNOT_FAIL)
-def _PySequence_Fast_GET_SIZE(space, w_obj):
+def PySequence_Fast_GET_SIZE(space, w_obj):
"""Returns the length of o, assuming that o was returned by
PySequence_Fast() and that o is not NULL. The size can also be
gotten by calling PySequence_Size() on o, but
@@ -120,7 +120,7 @@
return 0
@cpython_api([PyObject, Py_ssize_t], PyObject)
-def _PySequence_ITEM(space, w_obj, i):
+def PySequence_ITEM(space, w_obj, i):
"""Return the ith element of o or NULL on failure. Macro form of
PySequence_GetItem() but without checking that
PySequence_Check(o)() is true and without adjustment for negative
@@ -134,7 +134,7 @@
def PySequence_GetItem(space, w_obj, i):
"""Return the ith element of o, or NULL on failure. This is the equivalent
of
the Python expression o[i]."""
- return _PySequence_ITEM(space, w_obj, i)
+ return PySequence_ITEM(space, w_obj, i)
@cpython_api([PyObject], PyObject)
def PySequence_List(space, w_obj):
diff --git a/pypy/module/cpyext/setobject.py b/pypy/module/cpyext/setobject.py
--- a/pypy/module/cpyext/setobject.py
+++ b/pypy/module/cpyext/setobject.py
@@ -75,7 +75,7 @@
return 0
@cpython_api([PyObject], Py_ssize_t, error=CANNOT_FAIL)
-def _PySet_GET_SIZE(space, w_s):
+def PySet_GET_SIZE(space, w_s):
"""Macro form of PySet_Size() without error checking."""
return space.int_w(space.len(w_s))
@@ -86,7 +86,7 @@
or an instance of a subtype."""
if not PySet_Check(space, ref):
raise oefmt(space.w_TypeError, "expected set object")
- return _PySet_GET_SIZE(space, ref)
+ return PySet_GET_SIZE(space, ref)
@cpython_api([PyObject, PyObject], rffi.INT_real, error=-1)
def PySet_Contains(space, w_obj, w_key):
diff --git a/pypy/module/cpyext/unicodeobject.py
b/pypy/module/cpyext/unicodeobject.py
--- a/pypy/module/cpyext/unicodeobject.py
+++ b/pypy/module/cpyext/unicodeobject.py
@@ -192,23 +192,23 @@
def PyUnicode_AS_DATA(space, ref):
"""Return a pointer to the internal buffer of the object. o has to be a
PyUnicodeObject (not checked)."""
- return rffi.cast(rffi.CCHARP, _PyUnicode_AS_UNICODE(space, ref))
+ return rffi.cast(rffi.CCHARP, PyUnicode_AS_UNICODE(space, ref))
@cpython_api([PyObject], Py_ssize_t, error=CANNOT_FAIL)
-def _PyUnicode_GET_DATA_SIZE(space, w_obj):
+def PyUnicode_GET_DATA_SIZE(space, w_obj):
"""Return the size of the object's internal buffer in bytes. o has to be a
PyUnicodeObject (not checked)."""
- return rffi.sizeof(lltype.UniChar) * _PyUnicode_GET_SIZE(space, w_obj)
+ return rffi.sizeof(lltype.UniChar) * PyUnicode_GET_SIZE(space, w_obj)
@cpython_api([PyObject], Py_ssize_t, error=CANNOT_FAIL)
-def _PyUnicode_GET_SIZE(space, w_obj):
+def PyUnicode_GET_SIZE(space, w_obj):
"""Return the size of the object. o has to be a PyUnicodeObject (not
checked)."""
assert isinstance(w_obj, unicodeobject.W_UnicodeObject)
return space.len_w(w_obj)
@cpython_api([PyObject], rffi.CWCHARP, error=CANNOT_FAIL)
-def _PyUnicode_AS_UNICODE(space, ref):
+def PyUnicode_AS_UNICODE(space, ref):
"""Return a pointer to the internal Py_UNICODE buffer of the object. ref
has to be a PyUnicodeObject (not checked)."""
ref_unicode = rffi.cast(PyUnicodeObject, ref)
@@ -227,7 +227,7 @@
w_type = from_ref(space, rffi.cast(PyObject, ref.c_ob_type))
if not space.is_true(space.issubtype(w_type, space.w_unicode)):
raise oefmt(space.w_TypeError, "expected unicode object")
- return _PyUnicode_AS_UNICODE(space, ref)
+ return PyUnicode_AS_UNICODE(space, ref)
@cpython_api([PyObject], Py_ssize_t, error=-1)
def PyUnicode_GetSize(space, ref):
@@ -247,7 +247,7 @@
string may or may not be 0-terminated. It is the responsibility of the
caller
to make sure that the wchar_t string is 0-terminated in case this is
required by the application."""
- c_str = _PyUnicode_AS_UNICODE(space, rffi.cast(PyObject, ref))
+ c_str = PyUnicode_AS_UNICODE(space, rffi.cast(PyObject, ref))
c_length = ref.c_length
# If possible, try to copy the 0-termination as well
diff --git a/pypy/module/cpyext/weakrefobject.py
b/pypy/module/cpyext/weakrefobject.py
--- a/pypy/module/cpyext/weakrefobject.py
+++ b/pypy/module/cpyext/weakrefobject.py
@@ -37,6 +37,13 @@
"""
return space.call_function(w_ref) # borrowed ref
+@cpython_api([PyObject], PyObject, result_borrowed=True)
+def PyWeakref_GET_OBJECT(space, w_ref):
+ """Similar to PyWeakref_GetObject(), but implemented as a macro that does
no
+ error checking.
+ """
+ return space.call_function(w_ref) # borrowed ref
+
@cpython_api([PyObject], PyObject)
def PyWeakref_LockObject(space, w_ref):
"""Return the referenced object from a weak reference. If the referent is
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit