diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc b/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc deleted file mode 100644 index 2fa71d130be..00000000000 --- a/Build/source/libs/poppler/poppler-src/fofi/FoFiBase.cc +++ /dev/null @@ -1,204 +0,0 @@ -//======================================================================== -// -// FoFiBase.cc -// -// Copyright 1999-2003 Glyph & Cog, LLC -// -//======================================================================== - -//======================================================================== -// -// Modified under the Poppler project - http://poppler.freedesktop.org -// -// All changes made under the Poppler project to this file are licensed -// under GPL version 2 or later -// -// Copyright (C) 2008 Ed Avis <eda@waniasset.com> -// Copyright (C) 2011 Jim Meyering <jim@meyering.net> -// Copyright (C) 2016 Albert Astals Cid <aacid@kde.org> -// -// To see a description of the changes please see the Changelog file that -// came with your tarball or type make ChangeLog if you are building from git -// -//======================================================================== - -#include <config.h> - -#ifdef USE_GCC_PRAGMAS -#pragma implementation -#endif - -#include <stdio.h> -#include <limits.h> -#include "goo/gmem.h" -#include "poppler/Error.h" -#include "FoFiBase.h" - -//------------------------------------------------------------------------ -// FoFiBase -//------------------------------------------------------------------------ - -FoFiBase::FoFiBase(char *fileA, int lenA, GBool freeFileDataA) { - fileData = file = (Guchar *)fileA; - len = lenA; - freeFileData = freeFileDataA; -} - -FoFiBase::~FoFiBase() { - if (freeFileData) { - gfree(fileData); - } -} - -char *FoFiBase::readFile(char *fileName, int *fileLen) { - FILE *f; - char *buf; - int n; - - if (!(f = fopen(fileName, "rb"))) { - error(errIO, -1, "Cannot open '{0:s}'", fileName); - return nullptr; - } - if (fseek(f, 0, SEEK_END) != 0) { - error(errIO, -1, "Cannot seek to end of '{0:s}'", fileName); - fclose(f); - return nullptr; - } - n = (int)ftell(f); - if (n < 0) { - error(errIO, -1, "Cannot determine length of '{0:s}'", fileName); - fclose(f); - return nullptr; - } - if (fseek(f, 0, SEEK_SET) != 0) { - error(errIO, -1, "Cannot seek to start of '{0:s}'", fileName); - fclose(f); - return nullptr; - } - buf = (char *)gmalloc(n); - if ((int)fread(buf, 1, n, f) != n) { - gfree(buf); - fclose(f); - return nullptr; - } - fclose(f); - *fileLen = n; - return buf; -} - -int FoFiBase::getS8(int pos, GBool *ok) { - int x; - - if (pos < 0 || pos >= len) { - *ok = gFalse; - return 0; - } - x = file[pos]; - if (x & 0x80) { - x |= ~0xff; - } - return x; -} - -int FoFiBase::getU8(int pos, GBool *ok) { - if (pos < 0 || pos >= len) { - *ok = gFalse; - return 0; - } - return file[pos]; -} - -int FoFiBase::getS16BE(int pos, GBool *ok) { - int x; - - if (pos < 0 || pos+1 >= len || pos > INT_MAX - 1) { - *ok = gFalse; - return 0; - } - x = file[pos]; - x = (x << 8) + file[pos+1]; - if (x & 0x8000) { - x |= ~0xffff; - } - return x; -} - -int FoFiBase::getU16BE(int pos, GBool *ok) { - int x; - - if (pos < 0 || pos+1 >= len || pos > INT_MAX - 1) { - *ok = gFalse; - return 0; - } - x = file[pos]; - x = (x << 8) + file[pos+1]; - return x; -} - -int FoFiBase::getS32BE(int pos, GBool *ok) { - int x; - - if (pos < 0 || pos+3 >= len || pos > INT_MAX - 3) { - *ok = gFalse; - return 0; - } - x = file[pos]; - x = (x << 8) + file[pos+1]; - x = (x << 8) + file[pos+2]; - x = (x << 8) + file[pos+3]; - if (x & 0x80000000) { - x |= ~0xffffffff; - } - return x; -} - -Guint FoFiBase::getU32BE(int pos, GBool *ok) { - Guint x; - - if (pos < 0 || pos+3 >= len || pos > INT_MAX - 3) { - *ok = gFalse; - return 0; - } - x = file[pos]; - x = (x << 8) + file[pos+1]; - x = (x << 8) + file[pos+2]; - x = (x << 8) + file[pos+3]; - return x; -} - -Guint FoFiBase::getU32LE(int pos, GBool *ok) { - Guint x; - - if (pos < 0 || pos+3 >= len || pos > INT_MAX - 3) { - *ok = gFalse; - return 0; - } - x = file[pos+3]; - x = (x << 8) + file[pos+2]; - x = (x << 8) + file[pos+1]; - x = (x << 8) + file[pos]; - return x; -} - -Guint FoFiBase::getUVarBE(int pos, int size, GBool *ok) { - Guint x; - int i; - - if (pos < 0 || pos + size > len || pos > INT_MAX - size) { - *ok = gFalse; - return 0; - } - x = 0; - for (i = 0; i < size; ++i) { - x = (x << 8) + file[pos + i]; - } - return x; -} - -GBool FoFiBase::checkRegion(int pos, int size) { - return pos >= 0 && - pos < INT_MAX - size && - size < INT_MAX - pos && - pos + size >= pos && - pos + size <= len; -} |