From 77fabe4382e2ca52ce2bd326c4f69d8933f62178 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 20 Aug 2021 02:18:50 -0400 Subject: [PATCH] Use py::ssize_t instead of ssize_t. The latter is not portable, and apparently only worked by fluke. --- src/qpdf/pipeline.cpp | 4 ++-- src/qpdf/qpdf_pagelist.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/qpdf/pipeline.cpp b/src/qpdf/pipeline.cpp index f5f3a3c0..6f530d24 100644 --- a/src/qpdf/pipeline.cpp +++ b/src/qpdf/pipeline.cpp @@ -26,12 +26,12 @@ void Pl_PythonOutput::write(unsigned char *buf, size_t len) { py::gil_scoped_acquire gil; - ssize_t so_far = 0; + py::ssize_t so_far = 0; while (len > 0) { auto view_buffer = py::memoryview::from_memory(buf, len); py::object result = this->stream.attr("write")(view_buffer); try { - so_far = result.cast(); + so_far = result.cast(); } catch (const py::cast_error &e) { throw py::type_error("Unexpected return type of write()"); } diff --git a/src/qpdf/qpdf_pagelist.cpp b/src/qpdf/qpdf_pagelist.cpp index 5e824794..b51020a7 100644 --- a/src/qpdf/qpdf_pagelist.cpp +++ b/src/qpdf/qpdf_pagelist.cpp @@ -25,7 +25,7 @@ static void assert_pyobject_is_page_helper(py::handle obj) } } -size_t uindex_from_index(PageList &pl, ssize_t index) +size_t uindex_from_index(PageList &pl, py::ssize_t index) { if (index < 0) index += pl.count(); @@ -216,19 +216,19 @@ void init_pagelist(py::module_ &m) { py::class_(m, "PageList") .def("__getitem__", - [](PageList &pl, ssize_t index) { + [](PageList &pl, py::ssize_t index) { size_t uindex = uindex_from_index(pl, index); return pl.get_page(uindex); }) .def("__getitem__", &PageList::get_pages) .def("__setitem__", - [](PageList &pl, ssize_t index, py::object page) { + [](PageList &pl, py::ssize_t index, py::object page) { size_t uindex = uindex_from_index(pl, index); pl.set_page(uindex, page); }) .def("__setitem__", &PageList::set_pages_from_iterable) .def("__delitem__", - [](PageList &pl, ssize_t index) { + [](PageList &pl, py::ssize_t index) { size_t uindex = uindex_from_index(pl, index); pl.delete_page(uindex); }) @@ -236,7 +236,7 @@ void init_pagelist(py::module_ &m) .def("__len__", &PageList::count) .def( "p", - [](PageList &pl, ssize_t pnum) { + [](PageList &pl, py::ssize_t pnum) { if (pnum <= 0) // Indexing past end is checked in .get_page throw py::index_error( "page access out of range in 1-based indexing"); @@ -254,7 +254,7 @@ void init_pagelist(py::module_ &m) }) .def( "insert", - [](PageList &pl, ssize_t index, py::object obj) { + [](PageList &pl, py::ssize_t index, py::object obj) { size_t uindex = uindex_from_index(pl, index); pl.insert_page(uindex, obj); }, @@ -316,7 +316,7 @@ void init_pagelist(py::module_ &m) .def( "remove", [](PageList &pl, py::kwargs kwargs) { - auto pnum = kwargs["p"].cast(); + auto pnum = kwargs["p"].cast(); if (pnum <= 0) // Indexing past end is checked in .get_page throw py::index_error( "page access out of range in 1-based indexing");