Commit e5edfc786f0dab9435379a7420c17695128466b2
1 parent
ee7824cf
QPDFJob: convert infilename to shared pointer
Showing
3 changed files
with
13 additions
and
13 deletions
include/qpdf/QPDFJob.hh
libqpdf/QPDFJob.cc
| ... | ... | @@ -414,7 +414,6 @@ QPDFJob::QPDFJob() : |
| 414 | 414 | replace_input(false), |
| 415 | 415 | check_is_encrypted(false), |
| 416 | 416 | check_requires_password(false), |
| 417 | - infilename(0), | |
| 418 | 417 | outfilename(0), |
| 419 | 418 | m(new Members()) |
| 420 | 419 | { |
| ... | ... | @@ -451,7 +450,7 @@ QPDFJob::run() |
| 451 | 450 | std::shared_ptr<QPDF> pdf_ph; |
| 452 | 451 | try |
| 453 | 452 | { |
| 454 | - pdf_ph = processFile(o.infilename, o.password.get()); | |
| 453 | + pdf_ph = processFile(o.infilename.get(), o.password.get()); | |
| 455 | 454 | } |
| 456 | 455 | catch (QPDFExc& e) |
| 457 | 456 | { |
| ... | ... | @@ -2554,7 +2553,7 @@ QPDFJob::handlePageSpecs( |
| 2554 | 2553 | QPDFJob::PageSpec& page_spec = *iter; |
| 2555 | 2554 | if (page_spec.filename == ".") |
| 2556 | 2555 | { |
| 2557 | - page_spec.filename = o.infilename; | |
| 2556 | + page_spec.filename = o.infilename.get(); | |
| 2558 | 2557 | } |
| 2559 | 2558 | } |
| 2560 | 2559 | |
| ... | ... | @@ -2582,7 +2581,7 @@ QPDFJob::handlePageSpecs( |
| 2582 | 2581 | // Create a QPDF object for each file that we may take pages from. |
| 2583 | 2582 | std::map<std::string, QPDF*> page_spec_qpdfs; |
| 2584 | 2583 | std::map<std::string, ClosedFileInputSource*> page_spec_cfis; |
| 2585 | - page_spec_qpdfs[o.infilename] = &pdf; | |
| 2584 | + page_spec_qpdfs[o.infilename.get()] = &pdf; | |
| 2586 | 2585 | std::vector<QPDFPageData> parsed_specs; |
| 2587 | 2586 | std::map<unsigned long long, std::set<QPDFObjGen> > copied_pages; |
| 2588 | 2587 | for (std::vector<QPDFJob::PageSpec>::iterator iter = o.page_specs.begin(); |
| ... | ... | @@ -3364,7 +3363,7 @@ QPDFJob::doSplitPages(QPDF& pdf, bool& warnings) |
| 3364 | 3363 | QUtil::uint_to_string(last, QIntC::to_int(pageno_len)); |
| 3365 | 3364 | } |
| 3366 | 3365 | std::string outfile = before + page_range + after; |
| 3367 | - if (QUtil::same_file(o.infilename, outfile.c_str())) | |
| 3366 | + if (QUtil::same_file(o.infilename.get(), outfile.c_str())) | |
| 3368 | 3367 | { |
| 3369 | 3368 | throw std::runtime_error( |
| 3370 | 3369 | "split pages would overwrite input file with " + outfile); |
| ... | ... | @@ -3392,7 +3391,7 @@ QPDFJob::writeOutfile(QPDF& pdf) |
| 3392 | 3391 | // Append but don't prepend to the path to generate a |
| 3393 | 3392 | // temporary name. This saves us from having to split the path |
| 3394 | 3393 | // by directory and non-directory. |
| 3395 | - temp_out = std::string(o.infilename) + ".~qpdf-temp#"; | |
| 3394 | + temp_out = std::string(o.infilename.get()) + ".~qpdf-temp#"; | |
| 3396 | 3395 | // o.outfilename will be restored to 0 before temp_out |
| 3397 | 3396 | // goes out of scope. |
| 3398 | 3397 | o.outfilename = temp_out.c_str(); |
| ... | ... | @@ -3421,14 +3420,14 @@ QPDFJob::writeOutfile(QPDF& pdf) |
| 3421 | 3420 | { |
| 3422 | 3421 | // We must close the input before we can rename files |
| 3423 | 3422 | pdf.closeInputSource(); |
| 3424 | - std::string backup = std::string(o.infilename) + ".~qpdf-orig"; | |
| 3423 | + std::string backup = std::string(o.infilename.get()) + ".~qpdf-orig"; | |
| 3425 | 3424 | bool warnings = pdf.anyWarnings(); |
| 3426 | 3425 | if (! warnings) |
| 3427 | 3426 | { |
| 3428 | 3427 | backup.append(1, '#'); |
| 3429 | 3428 | } |
| 3430 | - QUtil::rename_file(o.infilename, backup.c_str()); | |
| 3431 | - QUtil::rename_file(temp_out.c_str(), o.infilename); | |
| 3429 | + QUtil::rename_file(o.infilename.get(), backup.c_str()); | |
| 3430 | + QUtil::rename_file(temp_out.c_str(), o.infilename.get()); | |
| 3432 | 3431 | if (warnings) |
| 3433 | 3432 | { |
| 3434 | 3433 | *(this->m->cerr) | ... | ... |
libqpdf/QPDFJob_argv.cc
| ... | ... | @@ -68,7 +68,7 @@ ArgParser::argPositional(char* arg) |
| 68 | 68 | { |
| 69 | 69 | if (o.infilename == 0) |
| 70 | 70 | { |
| 71 | - o.infilename = arg; | |
| 71 | + o.infilename = QUtil::make_shared_cstr(arg); | |
| 72 | 72 | } |
| 73 | 73 | else if (o.outfilename == 0) |
| 74 | 74 | { |
| ... | ... | @@ -211,7 +211,7 @@ ArgParser::argPasswordFile(char* parameter) |
| 211 | 211 | void |
| 212 | 212 | ArgParser::argEmpty() |
| 213 | 213 | { |
| 214 | - o.infilename = ""; | |
| 214 | + o.infilename = QUtil::make_shared_cstr(""); | |
| 215 | 215 | } |
| 216 | 216 | |
| 217 | 217 | void |
| ... | ... | @@ -1513,7 +1513,8 @@ ArgParser::doFinalChecks() |
| 1513 | 1513 | } |
| 1514 | 1514 | } |
| 1515 | 1515 | |
| 1516 | - if ((! o.split_pages) && QUtil::same_file(o.infilename, o.outfilename)) | |
| 1516 | + if ((! o.split_pages) && | |
| 1517 | + QUtil::same_file(o.infilename.get(), o.outfilename)) | |
| 1517 | 1518 | { |
| 1518 | 1519 | QTC::TC("qpdf", "qpdf same file error"); |
| 1519 | 1520 | usage("input file and output file are the same;" | ... | ... |