2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-20 16:52:15 +00:00

new boost/python/ssize_t.hpp; avoids potential clash of Py_ssize_t typedef and PY_SSIZE_T_MIN/MAX macros with definitions from other libraries

[SVN r35325]
This commit is contained in:
Ralf W. Grosse-Kunstleve
2006-09-26 00:25:07 +00:00
parent c7fb2f7047
commit c6f2aa4ef2
12 changed files with 166 additions and 30 deletions

View File

@@ -14,6 +14,7 @@
#include <boost/python/extract.hpp>
#include <boost/python/tuple.hpp>
#include <boost/python/list.hpp>
#include <boost/python/ssize_t.hpp>
#include <boost/python/detail/signature.hpp>
#include <boost/mpl/vector/vector10.hpp>
@@ -64,7 +65,7 @@ function::function(
= max_arity > num_keywords ? max_arity - num_keywords : 0;
Py_ssize_t tuple_size = num_keywords ? max_arity : 0;
ssize_t tuple_size = num_keywords ? max_arity : 0;
m_arg_names = object(handle<>(PyTuple_New(tuple_size)));
if (num_keywords != 0)
@@ -158,9 +159,9 @@ PyObject* function::call(PyObject* args, PyObject* keywords) const
else
{
// build a new arg tuple, will adjust its size later
assert(max_arity <= PY_SSIZE_T_MAX);
assert(max_arity <= ssize_t_max);
inner_args = handle<>(
PyTuple_New(static_cast<Py_ssize_t>(max_arity)));
PyTuple_New(static_cast<ssize_t>(max_arity)));
// Fill in the positional arguments
for (std::size_t i = 0; i < n_unnamed_actual; ++i)
@@ -295,7 +296,7 @@ void function::argument_error(PyObject* args, PyObject* /*keywords*/) const
% make_tuple(this->m_namespace, this->m_name);
list actual_args;
for (Py_ssize_t i = 0; i < PyTuple_Size(args); ++i)
for (ssize_t i = 0; i < PyTuple_Size(args); ++i)
{
char const* name = PyTuple_GetItem(args, i)->ob_type->tp_name;
actual_args.append(str(name));