Commit 5039da0b91a981b438cbb1c7a7325fde12e2632b
1 parent
d88231e0
Add QPDFObjectHandle::getObjGen()
This is safer than getObjectID() and getGeneration() for many uses.
Showing
3 changed files
with
22 additions
and
1 deletions
ChangeLog
| 1 | 2013-06-14 Jay Berkenbilt <ejb@ql.org> | 1 | 2013-06-14 Jay Berkenbilt <ejb@ql.org> |
| 2 | 2 | ||
| 3 | + * Add new QPDFObjectHandle::getObjGen() method and indiciate in | ||
| 4 | + comments that its use is favored over getObjectID() and | ||
| 5 | + getGeneration() for most cases. | ||
| 6 | + | ||
| 3 | * Add new QPDFObjGen object to represent an object ID/generation | 7 | * Add new QPDFObjGen object to represent an object ID/generation |
| 4 | pair. | 8 | pair. |
| 5 | 9 |
include/qpdf/QPDFObjectHandle.hh
| @@ -16,6 +16,7 @@ | @@ -16,6 +16,7 @@ | ||
| 16 | #include <set> | 16 | #include <set> |
| 17 | #include <map> | 17 | #include <map> |
| 18 | 18 | ||
| 19 | +#include <qpdf/QPDFObjGen.hh> | ||
| 19 | #include <qpdf/PointerHolder.hh> | 20 | #include <qpdf/PointerHolder.hh> |
| 20 | #include <qpdf/Buffer.hh> | 21 | #include <qpdf/Buffer.hh> |
| 21 | #include <qpdf/InputSource.hh> | 22 | #include <qpdf/InputSource.hh> |
| @@ -454,7 +455,17 @@ class QPDFObjectHandle | @@ -454,7 +455,17 @@ class QPDFObjectHandle | ||
| 454 | QPDFObjectHandle const& filter, | 455 | QPDFObjectHandle const& filter, |
| 455 | QPDFObjectHandle const& decode_parms); | 456 | QPDFObjectHandle const& decode_parms); |
| 456 | 457 | ||
| 457 | - // return 0 for direct objects | 458 | + // Access object ID and generation. For direct objects, return |
| 459 | + // object ID 0. | ||
| 460 | + | ||
| 461 | + // NOTE: Be careful about calling getObjectID() and | ||
| 462 | + // getGeneration() directly as this can lead to the pattern of | ||
| 463 | + // depending on object ID or generation without the other. In | ||
| 464 | + // general, when keeping track of object IDs, it's better to use | ||
| 465 | + // QPDFObjGen instead. | ||
| 466 | + | ||
| 467 | + QPDF_DLL | ||
| 468 | + QPDFObjGen getObjGen() const; | ||
| 458 | QPDF_DLL | 469 | QPDF_DLL |
| 459 | int getObjectID() const; | 470 | int getObjectID() const; |
| 460 | QPDF_DLL | 471 | QPDF_DLL |
libqpdf/QPDFObjectHandle.cc
| @@ -535,6 +535,12 @@ QPDFObjectHandle::replaceStreamData(PointerHolder<StreamDataProvider> provider, | @@ -535,6 +535,12 @@ QPDFObjectHandle::replaceStreamData(PointerHolder<StreamDataProvider> provider, | ||
| 535 | provider, filter, decode_parms); | 535 | provider, filter, decode_parms); |
| 536 | } | 536 | } |
| 537 | 537 | ||
| 538 | +QPDFObjGen | ||
| 539 | +QPDFObjectHandle::getObjGen() const | ||
| 540 | +{ | ||
| 541 | + return QPDFObjGen(this->objid, this->generation); | ||
| 542 | +} | ||
| 543 | + | ||
| 538 | int | 544 | int |
| 539 | QPDFObjectHandle::getObjectID() const | 545 | QPDFObjectHandle::getObjectID() const |
| 540 | { | 546 | { |