Commit 11314a9551b66921ad7fa4f977ca17c1f5ed3030

Authored by Jay Berkenbilt
1 parent 22f5b01f

Don't declare any PCRE objects static.

ChangeLog
  1 +2011-12-28 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Since PCRE is not necessarily thread safe, don't declare any
  4 + PCRE objects to be static.
  5 +
  6 + * Disregard stderr output from ghostscript when using it to
  7 + compare images in the test suite; see comments in qpdf.test for
  8 + details.
  9 +
  10 + * Fixed a few documentation errors.
  11 +
1 12 2011-08-11 Jay Berkenbilt <ejb@ql.org>
2 13  
3 14 * 2.3.0: release
... ...
libqpdf/QPDF.cc
... ... @@ -364,8 +364,8 @@ QPDF::getWarnings()
364 364 void
365 365 QPDF::parse(char const* password)
366 366 {
367   - static PCRE header_re("^%PDF-(1.\\d+)\\b");
368   - static PCRE eof_re("(?s:startxref\\s+(\\d+)\\s+%%EOF\\b)");
  367 + PCRE header_re("^%PDF-(1.\\d+)\\b");
  368 + PCRE eof_re("(?s:startxref\\s+(\\d+)\\s+%%EOF\\b)");
369 369  
370 370 if (password)
371 371 {
... ... @@ -475,9 +475,9 @@ QPDF::setTrailer(QPDFObjectHandle obj)
475 475 void
476 476 QPDF::reconstruct_xref(QPDFExc& e)
477 477 {
478   - static PCRE obj_re("^\\s*(\\d+)\\s+(\\d+)\\s+obj\\b");
479   - static PCRE endobj_re("^\\s*endobj\\b");
480   - static PCRE trailer_re("^\\s*trailer\\b");
  478 + PCRE obj_re("^\\s*(\\d+)\\s+(\\d+)\\s+obj\\b");
  479 + PCRE endobj_re("^\\s*endobj\\b");
  480 + PCRE trailer_re("^\\s*trailer\\b");
481 481  
482 482 warn(QPDFExc(qpdf_e_damaged_pdf, this->file->getName(), "", 0,
483 483 "file is damaged"));
... ... @@ -615,8 +615,8 @@ QPDF::read_xref(off_t xref_offset)
615 615 int
616 616 QPDF::read_xrefTable(off_t xref_offset)
617 617 {
618   - static PCRE xref_first_re("^\\s*(\\d+)\\s+(\\d+)");
619   - static PCRE xref_entry_re("(?s:(^\\d{10}) (\\d{5}) ([fn])[ \r\n]{2}$)");
  618 + PCRE xref_first_re("^\\s*(\\d+)\\s+(\\d+)");
  619 + PCRE xref_entry_re("(?s:(^\\d{10}) (\\d{5}) ([fn])[ \r\n]{2}$)");
620 620  
621 621 std::vector<ObjGen> deleted_items;
622 622  
... ... @@ -1461,7 +1461,7 @@ int
1461 1461 QPDF::recoverStreamLength(PointerHolder<InputSource> input,
1462 1462 int objid, int generation, off_t stream_offset)
1463 1463 {
1464   - static PCRE endobj_re("^\s*endobj\b");
  1464 + PCRE endobj_re("^\s*endobj\b");
1465 1465  
1466 1466 // Try to reconstruct stream length by looking for
1467 1467 // endstream(\r\n?|\n)endobj
... ...
libqpdf/QPDFTokenizer.cc
... ... @@ -47,7 +47,7 @@ QPDFTokenizer::reset()
47 47 void
48 48 QPDFTokenizer::presentCharacter(char ch)
49 49 {
50   - static PCRE num_re("^[\+\-]?(?:\.\d+|\d+(?:\.\d+)?)$");
  50 + PCRE num_re("^[\+\-]?(?:\.\d+|\d+(?:\.\d+)?)$");
51 51  
52 52 if (state == st_token_ready)
53 53 {
... ...
libqpdf/QPDF_linearization.cc
... ... @@ -92,7 +92,7 @@ QPDF::isLinearized()
92 92 memset(buf, '\0', tbuf_size);
93 93 this->file->read(buf, tbuf_size - 1);
94 94  
95   - static PCRE lindict_re("(?s:(\d+)\s+0\s+obj\s*<<)");
  95 + PCRE lindict_re("(?s:(\d+)\s+0\s+obj\s*<<)");
96 96  
97 97 int lindict_obj = -1;
98 98 char* p = buf;
... ...