diff options
author | Michael Meeks <mmeeks@src.gnome.org> | 1999-08-23 13:13:52 (GMT) |
---|---|---|
committer | Michael Meeks <mmeeks@src.gnome.org> | 1999-08-23 13:13:52 (GMT) |
commit | 6bf8080516ffe50afba89f1f07f486000423bcd8 (patch) | |
tree | 79e578d99e8a0380d0c1f07700e3bee0c5c7e3be /pdf/xpdf/XRef.cc | |
parent | ae5543d95470154936edb9f777d0d6c1c74a226f (diff) |
New version using Derek's merged Stream stuff,
disabled helper utils build until I sync with Derek.
Diffstat (limited to 'pdf/xpdf/XRef.cc')
-rw-r--r-- | pdf/xpdf/XRef.cc | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/pdf/xpdf/XRef.cc b/pdf/xpdf/XRef.cc index c725a4a..f3672de 100644 --- a/pdf/xpdf/XRef.cc +++ b/pdf/xpdf/XRef.cc @@ -38,7 +38,7 @@ XRef *xref = NULL; // XRef //------------------------------------------------------------------------ -XRef::XRef(Stream *str1) { +XRef::XRef(BaseStream *str) { XRef *oldXref; int pos; int i; @@ -53,14 +53,14 @@ XRef::XRef(Stream *str1) { xref = NULL; // read the trailer - str = str1; + this->str = str; start = str->getStart(); - pos = readTrailer(str); + pos = readTrailer(); // if there was a problem with the trailer, // try to reconstruct the xref table if (pos == 0) { - if (!(ok = constructXRef(str))) { + if (!(ok = constructXRef())) { xref = oldXref; return; } @@ -72,7 +72,7 @@ XRef::XRef(Stream *str1) { entries[i].offset = -1; entries[i].used = gFalse; } - while (readXRef(str, &pos)) ; + while (readXRef(&pos)) ; // if there was a problem with the xref table, // try to reconstruct it @@ -80,7 +80,7 @@ XRef::XRef(Stream *str1) { gfree(entries); size = 0; entries = NULL; - if (!(ok = constructXRef(str))) { + if (!(ok = constructXRef())) { xref = oldXref; return; } @@ -105,7 +105,7 @@ XRef::~XRef() { // Read startxref position, xref table size, and root. Returns // first xref position. -int XRef::readTrailer(Stream *str) { +int XRef::readTrailer() { Parser *parser; Object obj; char buf[xrefSearchSize+1]; @@ -166,7 +166,7 @@ int XRef::readTrailer(Stream *str) { // read trailer dict obj.initNull(); - parser = new Parser(new Lexer(str->subStream (start + pos1, -1, &obj))); + parser = new Parser(new Lexer(str->makeSubStream(start + pos1, -1, &obj))); parser->getObj(&trailerDict); if (trailerDict.isDict()) { trailerDict.dictLookupNF("Size", &obj); @@ -193,7 +193,7 @@ int XRef::readTrailer(Stream *str) { } // Read an xref table and the prev pointer from the trailer. -GBool XRef::readXRef(Stream *str, int *pos) { +GBool XRef::readXRef(int *pos) { Parser *parser; Object obj, obj2; char s[20]; @@ -258,7 +258,7 @@ GBool XRef::readXRef(Stream *str, int *pos) { // read prev pointer from trailer dictionary obj.initNull(); - parser = new Parser(new Lexer(str->subStream (str->getPos(), -1, &obj))); + parser = new Parser(new Lexer(str->makeSubStream(str->getPos(), -1, &obj))); parser->getObj(&obj); if (!obj.isCmd("trailer")) goto err1; @@ -287,7 +287,7 @@ GBool XRef::readXRef(Stream *str, int *pos) { } // Attempt to construct an xref table for a damaged file. -GBool XRef::constructXRef(Stream *str) { +GBool XRef::constructXRef() { Parser *parser; Object obj; char buf[256]; @@ -311,7 +311,8 @@ GBool XRef::constructXRef(Stream *str) { // got trailer dictionary if (!strncmp(p, "trailer", 7)) { obj.initNull(); - parser = new Parser(new Lexer(str->subStream(start + pos + 8, -1, &obj))); + parser = new Parser(new Lexer( + str->makeSubStream(start + pos + 8, -1, &obj))); if (!trailerDict.isNone()) trailerDict.free(); parser->getObj(&trailerDict); @@ -414,7 +415,8 @@ Object *XRef::fetch(int num, int gen, Object *obj) { e = &entries[num]; if (e->gen == gen && e->offset >= 0) { obj1.initNull(); - parser = new Parser(new Lexer(str->subStream(start + e->offset, -1, &obj1))); + parser = new Parser(new Lexer( + str->makeSubStream(start + e->offset, -1, &obj1))); parser->getObj(&obj1); parser->getObj(&obj2); parser->getObj(&obj3); |