Commit dca70f13e77a5b20ba4f438350a67e48baa796d0

Authored by m-holger
Committed by Jay Berkenbilt
1 parent e9980efe

Add method QPDFTokenizer::Token::isInteger

include/qpdf/QPDFTokenizer.hh
... ... @@ -107,6 +107,11 @@ class QPDFTokenizer
107 107 (this->type != tt_bad) && (this->type == rhs.type) &&
108 108 (this->value == rhs.value));
109 109 }
  110 + bool
  111 + isInteger() const
  112 + {
  113 + return this->type == tt_integer;
  114 + }
110 115  
111 116 private:
112 117 token_type_e type;
... ...
libqpdf/QPDF.cc
... ... @@ -461,8 +461,7 @@ QPDF::findStartxref()
461 461 {
462 462 QPDFTokenizer::Token t = readToken(this->m->file);
463 463 if (t == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "startxref")) {
464   - t = readToken(this->m->file);
465   - if (t.getType() == QPDFTokenizer::tt_integer) {
  464 + if (readToken(this->m->file).isInteger()) {
466 465 // Position in front of offset token
467 466 this->m->file->seek(this->m->file->getLastOffset(), SEEK_SET);
468 467 return true;
... ... @@ -612,10 +611,10 @@ QPDF::reconstruct_xref(QPDFExc& e)
612 611 if (token_start >= next_line_start) {
613 612 // don't process yet -- wait until we get to the line
614 613 // containing this token
615   - } else if (t1.getType() == QPDFTokenizer::tt_integer) {
  614 + } else if (t1.isInteger()) {
616 615 QPDFTokenizer::Token t2 = readToken(this->m->file, MAX_LEN);
617 616 QPDFTokenizer::Token t3 = readToken(this->m->file, MAX_LEN);
618   - if ((t2.getType() == QPDFTokenizer::tt_integer) &&
  617 + if ((t2.isInteger()) &&
619 618 (t3 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj"))) {
620 619 int obj = QUtil::string_to_int(t1.getValue().c_str());
621 620 int gen = QUtil::string_to_int(t2.getValue().c_str());
... ... @@ -1682,8 +1681,8 @@ QPDF::readObjectAtOffset(
1682 1681 QPDFTokenizer::Token tgen = readToken(this->m->file);
1683 1682 QPDFTokenizer::Token tobj = readToken(this->m->file);
1684 1683  
1685   - bool objidok = (tobjid.getType() == QPDFTokenizer::tt_integer);
1686   - int genok = (tgen.getType() == QPDFTokenizer::tt_integer);
  1684 + bool objidok = tobjid.isInteger();
  1685 + int genok = tgen.isInteger();
1687 1686 int objok = (tobj == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj"));
1688 1687  
1689 1688 QTC::TC("qpdf", "QPDF check objid", objidok ? 1 : 0);
... ... @@ -1945,10 +1944,10 @@ QPDF::resolveObjectsInStream(int obj_stream_number)
1945 1944 for (int i = 0; i < n; ++i) {
1946 1945 QPDFTokenizer::Token tnum = readToken(input);
1947 1946 QPDFTokenizer::Token toffset = readToken(input);
1948   - if (!((tnum.getType() == QPDFTokenizer::tt_integer) &&
1949   - (toffset.getType() == QPDFTokenizer::tt_integer))) {
  1947 + if (!(tnum.isInteger() && toffset.isInteger())) {
1950 1948 throw damagedPDF(
1951 1949 input,
  1950 + this->m->last_object_description,
1952 1951 input->getLastOffset(),
1953 1952 "expected integer in object stream header");
1954 1953 }
... ...
libqpdf/QPDF_linearization.cc
... ... @@ -124,8 +124,7 @@ QPDF::isLinearized()
124 124 QPDFTokenizer::Token t2 = readToken(this->m->file);
125 125 QPDFTokenizer::Token t3 = readToken(this->m->file);
126 126 QPDFTokenizer::Token t4 = readToken(this->m->file);
127   - if ((t1.getType() == QPDFTokenizer::tt_integer) &&
128   - (t2.getType() == QPDFTokenizer::tt_integer) &&
  127 + if (t1.isInteger() && t2.isInteger() &&
129 128 (t3 == QPDFTokenizer::Token(QPDFTokenizer::tt_word, "obj")) &&
130 129 (t4.getType() == QPDFTokenizer::tt_dict_open)) {
131 130 lindict_obj = toI(QUtil::string_to_ll(t1.getValue().c_str()));
... ...