summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--include/qpdf/QPDFObjectHandle.hh13
-rw-r--r--libqpdf/QPDFObjectHandle.cc6
3 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 28bf6840..a71b3f18 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2013-06-14 Jay Berkenbilt <ejb@ql.org>
+ * Add new QPDFObjectHandle::getObjGen() method and indiciate in
+ comments that its use is favored over getObjectID() and
+ getGeneration() for most cases.
+
* Add new QPDFObjGen object to represent an object ID/generation
pair.
diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh
index ed02d3bb..81400056 100644
--- a/include/qpdf/QPDFObjectHandle.hh
+++ b/include/qpdf/QPDFObjectHandle.hh
@@ -16,6 +16,7 @@
#include <set>
#include <map>
+#include <qpdf/QPDFObjGen.hh>
#include <qpdf/PointerHolder.hh>
#include <qpdf/Buffer.hh>
#include <qpdf/InputSource.hh>
@@ -454,7 +455,17 @@ class QPDFObjectHandle
QPDFObjectHandle const& filter,
QPDFObjectHandle const& decode_parms);
- // return 0 for direct objects
+ // Access object ID and generation. For direct objects, return
+ // object ID 0.
+
+ // NOTE: Be careful about calling getObjectID() and
+ // getGeneration() directly as this can lead to the pattern of
+ // depending on object ID or generation without the other. In
+ // general, when keeping track of object IDs, it's better to use
+ // QPDFObjGen instead.
+
+ QPDF_DLL
+ QPDFObjGen getObjGen() const;
QPDF_DLL
int getObjectID() const;
QPDF_DLL
diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc
index 373cd7bd..9a1aae4a 100644
--- a/libqpdf/QPDFObjectHandle.cc
+++ b/libqpdf/QPDFObjectHandle.cc
@@ -535,6 +535,12 @@ QPDFObjectHandle::replaceStreamData(PointerHolder<StreamDataProvider> provider,
provider, filter, decode_parms);
}
+QPDFObjGen
+QPDFObjectHandle::getObjGen() const
+{
+ return QPDFObjGen(this->objid, this->generation);
+}
+
int
QPDFObjectHandle::getObjectID() const
{