From f6893242148460170253ef0ae51a6cd4b5ec8f95 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Wed, 25 Jul 2012 22:32:14 -0400 Subject: [PATCH] Restore coverage case Previous commit lost coverage case for buffer-based replaceStreamData. --- ChangeLog | 6 ++++++ examples/pdf-double-page-size.cc | 10 +++------- qpdf/test_driver.cc | 18 +++++++++--------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index add0c5c7..22950432 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2012-07-25 Jay Berkenbilt + + * From Tobias: add QPDFObjectHandle::replaceStreamData that takes + a std::string analogous to the QPDFObjectHandle::newStream that + takes a string that was added earlier. + 2012-07-21 Jay Berkenbilt * Change configure to have image comparison tests disabled by diff --git a/examples/pdf-double-page-size.cc b/examples/pdf-double-page-size.cc index c2eb48a3..8a1867aa 100644 --- a/examples/pdf-double-page-size.cc +++ b/examples/pdf-double-page-size.cc @@ -61,12 +61,7 @@ int main(int argc, char* argv[]) char const* password = (argc == 4) ? argv[3] : ""; // Text to prepend to each page's contents - char const* content = "2 0 0 2 0 0 cm\n"; - - // Copy text into a buffer without the null terminator - PointerHolder b = new Buffer(strlen(content)); - unsigned char* bp = b->getBuffer(); - memcpy(bp, (unsigned char*)content, strlen(content)); + std::string content = "2 0 0 2 0 0 cm\n"; try { @@ -80,7 +75,8 @@ int main(int argc, char* argv[]) QPDFObjectHandle& page = *iter; // Prepend the buffer to the page's contents - page.addPageContents(QPDFObjectHandle::newStream(&qpdf, b), true); + page.addPageContents( + QPDFObjectHandle::newStream(&qpdf, content), true); // Double the size of each of the content boxes doubleBoxSize(page, "/MediaBox"); diff --git a/qpdf/test_driver.cc b/qpdf/test_driver.cc index 6cbb7882..3861c403 100644 --- a/qpdf/test_driver.cc +++ b/qpdf/test_driver.cc @@ -455,11 +455,9 @@ void runtest(int n, char const* filename1, char const* filename2) { throw std::logic_error("test 7 run on file with no QStream"); } - PointerHolder b = new Buffer(20); - unsigned char* bp = b->getBuffer(); - memcpy(bp, (char*)"new data for stream\n", 20); // no null! qstream.replaceStreamData( - b, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); + "new data for stream\n", + QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); QPDFWriter w(pdf, "a.pdf"); w.setStaticID(true); w.setStreamDataMode(qpdf_s_preserve); @@ -509,8 +507,12 @@ void runtest(int n, char const* filename1, char const* filename2) else if (n == 9) { QPDFObjectHandle root = pdf.getRoot(); + // Explicitly exercise the Buffer version of newStream + PointerHolder buf = new Buffer(20); + unsigned char* bp = buf->getBuffer(); + memcpy(bp, (char*)"data for new stream\n", 20); // no null! QPDFObjectHandle qstream = QPDFObjectHandle::newStream( - &pdf, "data for new stream\n"); + &pdf, buf); QPDFObjectHandle rstream = QPDFObjectHandle::newStream(&pdf); try { @@ -521,11 +523,9 @@ void runtest(int n, char const* filename1, char const* filename2) { std::cout << "exception: " << e.what() << std::endl; } - PointerHolder buf = new Buffer(22); - unsigned char* bp = buf->getBuffer(); - memcpy(bp, (char*)"data for other stream\n", 22); // no null! rstream.replaceStreamData( - buf, QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); + "data for other stream\n", + QPDFObjectHandle::newNull(), QPDFObjectHandle::newNull()); root.replaceKey("/QStream", qstream); root.replaceKey("/RStream", rstream); QPDFWriter w(pdf, "a.pdf");