From 99e6a1d9b80927892ff62d1bb43e67e27f858b48 Mon Sep 17 00:00:00 2001 From: rdb Date: Wed, 10 Jul 2019 13:56:05 +0200 Subject: [PATCH] dtoolutil: iostream should use Py_ssize_t instead of int --- dtool/src/dtoolutil/iostream_ext.cxx | 12 ++++++------ dtool/src/dtoolutil/iostream_ext.h | 8 ++++---- dtool/src/parser-inc/iostream | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/dtool/src/dtoolutil/iostream_ext.cxx b/dtool/src/dtoolutil/iostream_ext.cxx index 47f6140e59..09cfaff6d7 100644 --- a/dtool/src/dtoolutil/iostream_ext.cxx +++ b/dtool/src/dtoolutil/iostream_ext.cxx @@ -24,12 +24,12 @@ extern struct Dtool_PyTypedObject Dtool_std_istream; * If the given size is -1, all bytes are read from the stream. */ PyObject *Extension:: -read(int size) { +read(Py_ssize_t size) { if (size < 0) { return readall(); } - char *buffer; + char *buffer = nullptr; std::streamsize read_bytes = 0; if (size > 0) { @@ -62,7 +62,7 @@ read(int size) { * will always be greater than 0 until EOF is reached. */ PyObject *Extension:: -read1(int size) { +read1(Py_ssize_t size) { std::streambuf *buf = _this->rdbuf(); nassertr(buf != nullptr, nullptr); @@ -171,7 +171,7 @@ readinto(PyObject *b) { * Returns empty string when the end of file is reached. */ PyObject *Extension:: -readline(int size) { +readline(Py_ssize_t size) { std::streambuf *buf = _this->rdbuf(); nassertr(buf != nullptr, nullptr); @@ -207,7 +207,7 @@ readline(int size) { * for readline(). */ PyObject *Extension:: -readlines(int hint) { +readlines(Py_ssize_t hint) { PyObject *lst = PyList_New(0); if (lst == nullptr) { return nullptr; @@ -223,7 +223,7 @@ readlines(int hint) { py_line = readline(-1); } } else { - size_t totchars = 0; + Py_ssize_t totchars = 0; while (Py_SIZE(py_line) > 0) { totchars += Py_SIZE(py_line); PyList_Append(lst, py_line); diff --git a/dtool/src/dtoolutil/iostream_ext.h b/dtool/src/dtoolutil/iostream_ext.h index e8413afa91..54d3ab1a43 100644 --- a/dtool/src/dtoolutil/iostream_ext.h +++ b/dtool/src/dtoolutil/iostream_ext.h @@ -31,13 +31,13 @@ template<> class Extension : public ExtensionBase { public: - PyObject *read(int size=-1); - PyObject *read1(int size=-1); + PyObject *read(Py_ssize_t size=-1); + PyObject *read1(Py_ssize_t size=-1); PyObject *readall(); std::streamsize readinto(PyObject *b); - PyObject *readline(int size=-1); - PyObject *readlines(int hint=-1); + PyObject *readline(Py_ssize_t size=-1); + PyObject *readlines(Py_ssize_t hint=-1); PyObject *__iter__(PyObject *self); }; diff --git a/dtool/src/parser-inc/iostream b/dtool/src/parser-inc/iostream index c6c2edffab..93a736890e 100644 --- a/dtool/src/parser-inc/iostream +++ b/dtool/src/parser-inc/iostream @@ -50,13 +50,13 @@ namespace std { __published: istream(const istream&) = delete; - __extension PyObject *read(int size=-1); - __extension PyObject *read1(int size=-1); + __extension PyObject *read(Py_ssize_t size=-1); + __extension PyObject *read1(Py_ssize_t size=-1); __extension PyObject *readall(); __extension std::streamsize readinto(PyObject *b); - __extension PyObject *readline(int size=-1); - __extension PyObject *readlines(int hint=-1); + __extension PyObject *readline(Py_ssize_t size=-1); + __extension PyObject *readlines(Py_ssize_t hint=-1); __extension PyObject *__iter__(PyObject *self); int get();