X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2FArray.cc;h=27ecbe9e7a1ae4a1559da5c3ac125d9ab71a4a5b;hb=884f739665dc56e66f51e104350f2affd33f2dd8;hp=9681b6854cc981797ce7ab91ecb0b047c0244b71;hpb=d9f9a6449f377b4c933b75d57541b19c6d088994;p=evince.git diff --git a/pdf/xpdf/Array.cc b/pdf/xpdf/Array.cc index 9681b685..27ecbe9e 100644 --- a/pdf/xpdf/Array.cc +++ b/pdf/xpdf/Array.cc @@ -2,14 +2,17 @@ // // Array.cc // -// Copyright 1996 Derek B. Noonburg +// Copyright 1996-2003 Glyph & Cog, LLC // //======================================================================== -#ifdef __GNUC__ +#include + +#ifdef USE_GCC_PRAGMAS #pragma implementation #endif +#include #include #include "gmem.h" #include "Object.h" @@ -19,7 +22,8 @@ // Array //------------------------------------------------------------------------ -Array::Array() { +Array::Array(XRef *xrefA) { + xref = xrefA; elems = NULL; size = length = 0; ref = 1; @@ -43,9 +47,23 @@ void Array::add(Object *elem) { } Object *Array::get(int i, Object *obj) { - return elems[i].fetch(obj); + if (i < 0 || i >= length) { +#ifdef DEBUG_MEM + abort(); +#else + return obj->initNull(); +#endif + } + return elems[i].fetch(xref, obj); } Object *Array::getNF(int i, Object *obj) { + if (i < 0 || i >= length) { +#ifdef DEBUG_MEM + abort(); +#else + return obj->initNull(); +#endif + } return elems[i].copy(obj); }