goo/NetPBMWriter.h | 2 +- goo/gmem.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-)
New commits: commit 4eeb3380ea77d277ace735f191f303564a25a0e3 Author: Albert Astals Cid <[email protected]> Date: Thu May 12 22:42:02 2022 +0200 greallocn: Make gcc 12.1 happier Without this hint that bytes is always going to be > 0 we got a million of warnings like In function ‘void gfree(void*)’, inlined from ‘void* greallocn(void*, int, int, bool, bool)’ at goo/gmem.h:178:14, inlined from ‘void CharCodeToUnicode::setMapping(CharCode, Unicode*, int)’ at poppler/CharCodeToUnicode.cc:648:60: goo/gmem.h:65:14: warning: pointer used after ‘void free(void*)’ [-Wuse-after-free] 65 | std::free(p); | ~~~~~~~~~^~~ In function ‘void gfree(void*)’, inlined from ‘void* grealloc(void*, size_t, bool)’ at goo/gmem.h:73:14, inlined from ‘void* greallocn(void*, int, int, bool, bool)’ at goo/gmem.h:174:27, inlined from ‘void CharCodeToUnicode::setMapping(CharCode, Unicode*, int)’ at poppler/CharCodeToUnicode.cc:648:60: goo/gmem.h:65:14: note: call to ‘void free(void*)’ here 65 | std::free(p); | ~~~~~~~~~^~~ diff --git a/goo/gmem.h b/goo/gmem.h index 5d5fb1ec..100c9b36 100644 --- a/goo/gmem.h +++ b/goo/gmem.h @@ -14,7 +14,7 @@ // under GPL version 2 or later // // Copyright (C) 2005 Takashi Iwai <[email protected]> -// Copyright (C) 2007-2010, 2017, 2019 Albert Astals Cid <[email protected]> +// Copyright (C) 2007-2010, 2017, 2019, 2022 Albert Astals Cid <[email protected]> // Copyright (C) 2008 Jonathan Kew <[email protected]> // Copyright (C) 2018 Adam Reichold <[email protected]> // Copyright (C) 2021 Even Rouault <[email protected]> @@ -27,6 +27,7 @@ #ifndef GMEM_H #define GMEM_H +#include <cassert> #include <cstring> #include <cstdlib> #include <cstdio> @@ -169,6 +170,7 @@ inline void *greallocn(void *p, int count, int size, bool checkoverflow = false, std::abort(); } + assert(bytes > 0); if (void *q = grealloc(p, bytes, checkoverflow)) { return q; } commit e7f0fd89d937d28a77539fb9782a2b59eb51e5a8 Author: Albert Astals Cid <[email protected]> Date: Thu May 12 22:38:40 2022 +0200 NetPBMWriter: Change destructor Makes gcc 12.1 happier, i think it was a gcc bug anyway, but the new code is a bit "better" anyway, the warning i was getting is In file included from utils/ImageOutputDev.cc:44: In destructor ‘virtual NetPBMWriter::~NetPBMWriter()’, inlined from ‘virtual NetPBMWriter::~NetPBMWriter()’ at goo/NetPBMWriter.h:41:31, inlined from ‘void ImageOutputDev::writeImage(GfxState*, Object*, Stream*, int, int, GfxImageColorMap*, bool)’ at utils/ImageOutputDev.cc:636:16: goo/NetPBMWriter.h:41:31: warning: array subscript ‘NetPBMWriter[0]’ is partly outside array bounds of ‘ImgWriter [2]’ [-Warray-bounds] 41 | ~NetPBMWriter() override {}; | ^ utils/ImageOutputDev.cc: In member function ‘void ImageOutputDev::writeImage(GfxState*, Object*, Stream*, int, int, GfxImageColorMap*, bool)’: utils/ImageOutputDev.cc:620:57: note: object of size 16 allocated by ‘operator new’ 620 | writer = new PNGWriter(PNGWriter::MONOCHROME); | ^ utils/ImageOutputDev.cc:623:51: note: object of size 16 allocated by ‘operator new’ 623 | writer = new PNGWriter(PNGWriter::GRAY); | ^ utils/ImageOutputDev.cc:627:52: note: object of size 16 allocated by ‘operator new’ 627 | writer = new PNGWriter(PNGWriter::RGB48); | ^ utils/ImageOutputDev.cc:630:50: note: object of size 16 allocated by ‘operator new’ 630 | writer = new PNGWriter(PNGWriter::RGB); | ^ diff --git a/goo/NetPBMWriter.h b/goo/NetPBMWriter.h index 3075d730..a942a574 100644 --- a/goo/NetPBMWriter.h +++ b/goo/NetPBMWriter.h @@ -38,7 +38,7 @@ public: }; explicit NetPBMWriter(Format formatA = RGB); - ~NetPBMWriter() override {}; + ~NetPBMWriter() override = default; bool init(FILE *f, int width, int height, double /*hDPI*/, double /*vDPI*/) override;
