Commit 8b073eed280abcd926a37100ea740efb1cdc85c4

Authored by Jay Berkenbilt
1 parent 398354b6

checkpoint


git-svn-id: svn+q:///qpdf/trunk@831 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing 1 changed file with 19 additions and 35 deletions
libqpdf/qpdf-c.cc
... ... @@ -30,14 +30,6 @@ struct _qpdf_data
30 30 // Parameters for functions we call
31 31 char const* filename;
32 32 char const* password;
33   -
34   - // must set filename and password
35   - void call_read();
36   -
37   - // must set filename
38   - void call_init_write();
39   -
40   - void call_write();
41 33 };
42 34  
43 35 _qpdf_data::_qpdf_data() :
... ... @@ -52,43 +44,29 @@ _qpdf_data::~_qpdf_data()
52 44 delete qpdf;
53 45 }
54 46  
55   -void
56   -_qpdf_data::call_read()
  47 +// must set qpdf->filename and qpdf->password
  48 +static void call_read(qpdf_data qpdf)
57 49 {
58   - qpdf->processFile(filename, password);
  50 + qpdf->qpdf->processFile(qpdf->filename, qpdf->password);
59 51 }
60 52  
61   -void
62   -_qpdf_data::call_init_write()
  53 +// must set qpdf->filename
  54 +static void call_init_write(qpdf_data qpdf)
63 55 {
64   - if (qpdf_writer)
65   - {
66   - QTC::TC("qpdf", "qpdf-c called qpdf_init_write multiple times");
67   - delete qpdf_writer;
68   - qpdf_writer = 0;
69   - }
70   - try
71   - {
72   - qpdf_writer = new QPDFWriter(*qpdf, filename);
73   - }
74   - catch (...)
75   - {
76   - throw;
77   - }
  56 + qpdf->qpdf_writer = new QPDFWriter(*(qpdf->qpdf), qpdf->filename);
78 57 }
79 58  
80   -void
81   -_qpdf_data::call_write()
  59 +static void call_write(qpdf_data qpdf)
82 60 {
83   - qpdf_writer->write();
  61 + qpdf->qpdf_writer->write();
84 62 }
85 63  
86   -static QPDF_ERROR_CODE trap_errors(qpdf_data qpdf, void (_qpdf_data::*fn)())
  64 +static QPDF_ERROR_CODE trap_errors(qpdf_data qpdf, void (*fn)(qpdf_data))
87 65 {
88 66 QPDF_ERROR_CODE status = QPDF_SUCCESS;
89 67 try
90 68 {
91   - (qpdf->*fn)();
  69 + fn(qpdf);
92 70 }
93 71 catch (QPDFExc& e)
94 72 {
... ... @@ -227,7 +205,7 @@ QPDF_ERROR_CODE qpdf_read(qpdf_data qpdf, char const* filename,
227 205 QPDF_ERROR_CODE status = QPDF_SUCCESS;
228 206 qpdf->filename = filename;
229 207 qpdf->password = password;
230   - status = trap_errors(qpdf, &_qpdf_data::call_read);
  208 + status = trap_errors(qpdf, &call_read);
231 209 QTC::TC("qpdf", "qpdf-c called qpdf_read", status);
232 210 return status;
233 211 }
... ... @@ -315,8 +293,14 @@ QPDF_BOOL qpdf_allow_modify_all(qpdf_data qpdf)
315 293 QPDF_ERROR_CODE qpdf_init_write(qpdf_data qpdf, char const* filename)
316 294 {
317 295 QPDF_ERROR_CODE status = QPDF_SUCCESS;
  296 + if (qpdf->qpdf_writer)
  297 + {
  298 + QTC::TC("qpdf", "qpdf-c called qpdf_init_write multiple times");
  299 + delete qpdf->qpdf_writer;
  300 + qpdf->qpdf_writer = 0;
  301 + }
318 302 qpdf->filename = filename;
319   - status = trap_errors(qpdf, &_qpdf_data::call_init_write);
  303 + status = trap_errors(qpdf, &call_init_write);
320 304 QTC::TC("qpdf", "qpdf-c called qpdf_init_write", status);
321 305 return status;
322 306 }
... ... @@ -426,7 +410,7 @@ void qpdf_force_pdf_version(qpdf_data qpdf, char const* version)
426 410 QPDF_ERROR_CODE qpdf_write(qpdf_data qpdf)
427 411 {
428 412 QPDF_ERROR_CODE status = QPDF_SUCCESS;
429   - status = trap_errors(qpdf, &_qpdf_data::call_write);
  413 + status = trap_errors(qpdf, &call_write);
430 414 QTC::TC("qpdf", "qpdf-c called qpdf_write", status);
431 415 return status;
432 416 }
... ...