| Index: samples/pdfium_test.cc
|
| diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
|
| index f244d8a44056976c31e4c9e4b0e1ddc1447a2da4..da2d1f6977fa45e71fdf72ea756e96a9426a68e3 100644
|
| --- a/samples/pdfium_test.cc
|
| +++ b/samples/pdfium_test.cc
|
| @@ -7,7 +7,6 @@
|
| #include <stdlib.h>
|
| #include <string.h>
|
|
|
| -#include <list>
|
| #include <sstream>
|
| #include <string>
|
| #include <utility>
|
| @@ -95,10 +94,10 @@ static void WritePpm(const char* pdf_name, int num, const void* buffer_void,
|
| fprintf(fp, "P6\n# PDF test render\n%d %d\n255\n", width, height);
|
| // Source data is B, G, R, unused.
|
| // Dest data is R, G, B.
|
| - char* result = new char[out_len];
|
| + std::vector<char> result(out_len);
|
| for (int h = 0; h < height; ++h) {
|
| const char* src_line = buffer + (stride * h);
|
| - char* dest_line = result + (width * h * 3);
|
| + char* dest_line = result.data() + (width * h * 3);
|
| for (int w = 0; w < width; ++w) {
|
| // R
|
| dest_line[w * 3] = src_line[(w * 4) + 2];
|
| @@ -108,8 +107,7 @@ static void WritePpm(const char* pdf_name, int num, const void* buffer_void,
|
| dest_line[(w * 3) + 2] = src_line[w * 4];
|
| }
|
| }
|
| - fwrite(result, out_len, 1, fp);
|
| - delete[] result;
|
| + fwrite(result.data(), out_len, 1, fp);
|
| fclose(fp);
|
| }
|
|
|
| @@ -362,10 +360,11 @@ void ExampleUnsupportedHandler(UNSUPPORT_INFO*, int type) {
|
| }
|
|
|
| bool ParseCommandLine(const std::vector<std::string>& args,
|
| - Options* options, std::list<std::string>* files) {
|
| - if (args.empty()) {
|
| + Options* options,
|
| + std::vector<std::string>* files) {
|
| + if (args.empty())
|
| return false;
|
| - }
|
| +
|
| options->exe_path = args[0];
|
| size_t cur_idx = 1;
|
| for (; cur_idx < args.size(); ++cur_idx) {
|
| @@ -447,9 +446,9 @@ bool ParseCommandLine(const std::vector<std::string>& args,
|
| break;
|
| }
|
| }
|
| - for (size_t i = cur_idx; i < args.size(); i++) {
|
| + for (size_t i = cur_idx; i < args.size(); i++)
|
| files->push_back(args[i]);
|
| - }
|
| +
|
| return true;
|
| }
|
|
|
| @@ -528,9 +527,9 @@ bool RenderPage(const std::string& name,
|
| const Options& options,
|
| const std::string& events) {
|
| FPDF_PAGE page = FPDF_LoadPage(doc, page_index);
|
| - if (!page) {
|
| + if (!page)
|
| return false;
|
| - }
|
| +
|
| FPDF_TEXTPAGE text_page = FPDFText_LoadPage(page);
|
| FORM_OnAfterLoadPage(page, form);
|
| FORM_DoPageAAction(page, form, FPDFPAGE_AACTION_OPEN);
|
| @@ -539,9 +538,9 @@ bool RenderPage(const std::string& name,
|
| SendPageEvents(form, page, events);
|
|
|
| double scale = 1.0;
|
| - if (!options.scale_factor_as_string.empty()) {
|
| + if (!options.scale_factor_as_string.empty())
|
| std::stringstream(options.scale_factor_as_string) >> scale;
|
| - }
|
| +
|
| int width = static_cast<int>(FPDF_GetPageWidth(page) * scale);
|
| int height = static_cast<int>(FPDF_GetPageHeight(page) * scale);
|
| int alpha = FPDFPage_HasTransparency(page) ? 1 : 0;
|
| @@ -648,9 +647,9 @@ void RenderPdf(const std::string& name,
|
| if (FPDFAvail_IsLinearized(pdf_avail) == PDF_LINEARIZED) {
|
| doc = FPDFAvail_GetDocument(pdf_avail, nullptr);
|
| if (doc) {
|
| - while (nRet == PDF_DATA_NOTAVAIL) {
|
| + while (nRet == PDF_DATA_NOTAVAIL)
|
| nRet = FPDFAvail_IsDocAvail(pdf_avail, &hints);
|
| - }
|
| +
|
| if (nRet == PDF_DATA_ERROR) {
|
| fprintf(stderr, "Unknown error in checking if doc was available.\n");
|
| return;
|
| @@ -724,20 +723,19 @@ void RenderPdf(const std::string& name,
|
| for (int i = 0; i < page_count; ++i) {
|
| if (bIsLinearized) {
|
| nRet = PDF_DATA_NOTAVAIL;
|
| - while (nRet == PDF_DATA_NOTAVAIL) {
|
| + while (nRet == PDF_DATA_NOTAVAIL)
|
| nRet = FPDFAvail_IsPageAvail(pdf_avail, i, &hints);
|
| - }
|
| +
|
| if (nRet == PDF_DATA_ERROR) {
|
| fprintf(stderr, "Unknown error in checking if page %d is available.\n",
|
| i);
|
| return;
|
| }
|
| }
|
| - if (RenderPage(name, doc, form, i, options, events)) {
|
| + if (RenderPage(name, doc, form, i, options, events))
|
| ++rendered_pages;
|
| - } else {
|
| + else
|
| ++bad_pages;
|
| - }
|
| }
|
|
|
| FORM_DoDocumentAAction(form, FPDFDOC_AACTION_WC);
|
| @@ -781,19 +779,20 @@ static void ShowConfig() {
|
| printf("%s\n", config.c_str());
|
| }
|
|
|
| -static const char usage_string[] =
|
| +static const char kUsageString[] =
|
| "Usage: pdfium_test [OPTION] [FILE]...\n"
|
| " --show-config - print build options and exit\n"
|
| " --send-events - send input described by .evt file\n"
|
| " --bin-dir=<path> - override path to v8 external data\n"
|
| " --font-dir=<path> - override path to external fonts\n"
|
| " --scale=<number> - scale output size by number (e.g. 0.5)\n"
|
| - " --txt - write page text in UTF32-LE <pdf-name>.<page-number>.txt\n"
|
| #ifdef _WIN32
|
| " --bmp - write page images <pdf-name>.<page-number>.bmp\n"
|
| " --emf - write page meta files <pdf-name>.<page-number>.emf\n"
|
| #endif // _WIN32
|
| + " --txt - write page text in UTF32-LE <pdf-name>.<page-number>.txt\n"
|
| " --png - write page images <pdf-name>.<page-number>.png\n"
|
| + " --ppm - write page images <pdf-name>.<page-number>.ppm\n"
|
| #ifdef PDF_ENABLE_SKIA
|
| " --skp - write page images <pdf-name>.<page-number>.skp\n"
|
| #endif
|
| @@ -802,9 +801,9 @@ static const char usage_string[] =
|
| int main(int argc, const char* argv[]) {
|
| std::vector<std::string> args(argv, argv + argc);
|
| Options options;
|
| - std::list<std::string> files;
|
| + std::vector<std::string> files;
|
| if (!ParseCommandLine(args, &options, &files)) {
|
| - fprintf(stderr, "%s", usage_string);
|
| + fprintf(stderr, "%s", kUsageString);
|
| return 1;
|
| }
|
|
|
| @@ -851,9 +850,7 @@ int main(int argc, const char* argv[]) {
|
|
|
| FSDK_SetUnSpObjProcessHandler(&unsuppored_info);
|
|
|
| - while (!files.empty()) {
|
| - std::string filename = files.front();
|
| - files.pop_front();
|
| + for (const std::string& filename : files) {
|
| size_t file_length = 0;
|
| std::unique_ptr<char, pdfium::FreeDeleter> file_contents =
|
| GetFileContents(filename.c_str(), &file_length);
|
|
|