2
0
mirror of https://github.com/boostorg/python.git synced 2026-01-26 06:42:27 +00:00

Python 2.5 compatibility

[SVN r34017]
This commit is contained in:
Ralf W. Grosse-Kunstleve
2006-05-18 22:41:14 +00:00
parent 66ac61450e
commit caa9cb8268
9 changed files with 45 additions and 19 deletions

View File

@@ -21,10 +21,25 @@ str_base::str_base(const char* s)
: object(detail::new_reference(::PyString_FromString(s)))
{}
namespace {
Py_ssize_t str_size_as_py_ssize_t(std::size_t n)
{
if (n > PY_SSIZE_T_MAX)
{
throw std::range_error("str size > PY_SSIZE_T_MAX");
}
return static_cast<Py_ssize_t>(n);
}
} // namespace <anonymous>
str_base::str_base(char const* start, char const* finish)
: object(
detail::new_reference(
::PyString_FromStringAndSize(start, finish - start)
::PyString_FromStringAndSize(
start, str_size_as_py_ssize_t(finish - start)
)
)
)
{}
@@ -32,7 +47,9 @@ str_base::str_base(char const* start, char const* finish)
str_base::str_base(char const* start, std::size_t length) // new str
: object(
detail::new_reference(
::PyString_FromStringAndSize(start, length)
::PyString_FromStringAndSize(
start, str_size_as_py_ssize_t(length)
)
)
)
{}