poppler/DCTStream.cc | 6 +++--- poppler/JPEG2000Stream.cc | 14 +++++--------- 2 files changed, 8 insertions(+), 12 deletions(-)
New commits: commit deb36a4e808a08b990413bf688acd72cc007aa45 Author: Albert Astals Cid <[email protected]> Date: Fri Apr 1 23:47:08 2022 +0200 Make MSVC happy limit is always > than current and after the if we know that left is < nChars diff --git a/poppler/DCTStream.cc b/poppler/DCTStream.cc index 6034b733..48dbb6d7 100644 --- a/poppler/DCTStream.cc +++ b/poppler/DCTStream.cc @@ -5,7 +5,7 @@ // This file is licensed under the GPLv2 or later // // Copyright 2005 Jeff Muizelaar <[email protected]> -// Copyright 2005-2010, 2012, 2017, 2020, 2021 Albert Astals Cid <[email protected]> +// Copyright 2005-2010, 2012, 2017, 2020-2022 Albert Astals Cid <[email protected]> // Copyright 2009 Ryszard Trojnacki <[email protected]> // Copyright 2010 Carlos Garcia Campos <[email protected]> // Copyright 2011 Daiki Ueno <[email protected]> @@ -227,12 +227,12 @@ int DCTStream::getChars(int nChars, unsigned char *buffer) return i; } } - int left = limit - current; + intptr_t left = limit - current; if (left + i > nChars) { left = nChars - i; } memcpy(buffer + i, current, left); - current += left; + current += static_cast<int>(left); i += left; } return nChars; commit 1e9e4619671a14ff3d137f013f04f7e6904c5d2e Author: Albert Astals Cid <[email protected]> Date: Fri Apr 1 23:43:12 2022 +0200 JPEG2000Stream: Some wrangling with the data types I think this is more correct, and also makes MSVC happier diff --git a/poppler/JPEG2000Stream.cc b/poppler/JPEG2000Stream.cc index 5dd7c3dd..2b9e4474 100644 --- a/poppler/JPEG2000Stream.cc +++ b/poppler/JPEG2000Stream.cc @@ -4,7 +4,7 @@ // // A JPX stream decoder using OpenJPEG // -// Copyright 2008-2010, 2012, 2017-2021 Albert Astals Cid <[email protected]> +// Copyright 2008-2010, 2012, 2017-2022 Albert Astals Cid <[email protected]> // Copyright 2011 Daniel Glöckner <[email protected]> // Copyright 2014, 2016 Thomas Freitag <[email protected]> // Copyright 2013, 2014 Adrian Johnson <[email protected]> @@ -201,7 +201,7 @@ typedef struct JPXData_s { const unsigned char *data; int size; - int pos; + OPJ_OFF_T pos; } JPXData; #define BUFFER_INITIAL_SIZE 4096 @@ -209,16 +209,12 @@ typedef struct JPXData_s static OPJ_SIZE_T jpxRead_callback(void *p_buffer, OPJ_SIZE_T p_nb_bytes, void *p_user_data) { JPXData *jpxData = (JPXData *)p_user_data; - int len; - len = jpxData->size - jpxData->pos; - if (len < 0) { - len = 0; - } - if (len == 0) { + if (unlikely(jpxData->size <= jpxData->pos)) { return (OPJ_SIZE_T)-1; /* End of file! */ } - if ((OPJ_SIZE_T)len > p_nb_bytes) { + OPJ_SIZE_T len = jpxData->size - jpxData->pos; + if (len > p_nb_bytes) { len = p_nb_bytes; } memcpy(p_buffer, jpxData->data + jpxData->pos, len);
