diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | poppler/XRef.cc | 22 |
2 files changed, 18 insertions, 9 deletions
@@ -1,3 +1,8 @@ +2006-04-01 Albert Astals Cid <aacid@kde.org> + + * poppler/XRef.cc: Fix parsing of some TOCs, bug was due a int to uint + comparison, sorry for introducing that bug. Fixes bug 6454 + 2006-03-20 Jeff Muizelaar <jeff@infidigm.net> * glib/poppler-page.cc: Avoid strdup in poppler_page_get_property and diff --git a/poppler/XRef.cc b/poppler/XRef.cc index e569505b..bbfb2462 100644 --- a/poppler/XRef.cc +++ b/poppler/XRef.cc @@ -937,19 +937,23 @@ GBool XRef::getStreamEnd(Guint streamStart, Guint *streamEnd) { int XRef::getNumEntry(int offset) const { - int res = -1; - int resOffset = -1; - XRefEntry e; - for (int i = 0; i < size; ++i) + if (size > 0) { - e = entries[i]; - if (e.offset < offset && e.offset > resOffset) + int res = 0; + Guint resOffset = entries[0].offset; + XRefEntry e; + for (int i = 1; i < size; ++i) { - res = i; - resOffset = e.offset; + e = entries[i]; + if (e.offset < offset && e.offset >= resOffset) + { + res = i; + resOffset = e.offset; + } } + return res; } - return res; + else return -1; } Guint XRef::strToUnsigned(char *s) { |