Commit 0a3c533186e3b4957fbf318e9507fe52d3f71cbd
Committed by
Jay Berkenbilt
1 parent
b3d71e1f
Add private method QPDF::nextObjGen
Showing
2 changed files
with
10 additions
and
3 deletions
include/qpdf/QPDF.hh
| @@ -1185,6 +1185,7 @@ class QPDF | @@ -1185,6 +1185,7 @@ class QPDF | ||
| 1185 | void stopOnError(std::string const& message); | 1185 | void stopOnError(std::string const& message); |
| 1186 | QPDFObjectHandle reserveObjectIfNotExists(QPDFObjGen const& og); | 1186 | QPDFObjectHandle reserveObjectIfNotExists(QPDFObjGen const& og); |
| 1187 | QPDFObjectHandle reserveStream(QPDFObjGen const& og); | 1187 | QPDFObjectHandle reserveStream(QPDFObjGen const& og); |
| 1188 | + QPDFObjGen nextObjGen(); | ||
| 1188 | QPDFObjectHandle | 1189 | QPDFObjectHandle |
| 1189 | newIndirect(QPDFObjGen const&, std::shared_ptr<QPDFObject> const&); | 1190 | newIndirect(QPDFObjGen const&, std::shared_ptr<QPDFObject> const&); |
| 1190 | QPDFObjectHandle makeIndirectObject(std::shared_ptr<QPDFObject> const& obj); | 1191 | QPDFObjectHandle makeIndirectObject(std::shared_ptr<QPDFObject> const& obj); |
libqpdf/QPDF.cc
| @@ -1976,15 +1976,21 @@ QPDF::isUnresolved(QPDFObjGen const& og) | @@ -1976,15 +1976,21 @@ QPDF::isUnresolved(QPDFObjGen const& og) | ||
| 1976 | return !isCached(og) || m->obj_cache[og].object->isUnresolved(); | 1976 | return !isCached(og) || m->obj_cache[og].object->isUnresolved(); |
| 1977 | } | 1977 | } |
| 1978 | 1978 | ||
| 1979 | -QPDFObjectHandle | ||
| 1980 | -QPDF::makeIndirectObject(std::shared_ptr<QPDFObject> const& obj) | 1979 | +QPDFObjGen |
| 1980 | +QPDF::nextObjGen() | ||
| 1981 | { | 1981 | { |
| 1982 | int max_objid = toI(getObjectCount()); | 1982 | int max_objid = toI(getObjectCount()); |
| 1983 | if (max_objid == std::numeric_limits<int>::max()) { | 1983 | if (max_objid == std::numeric_limits<int>::max()) { |
| 1984 | throw std::range_error( | 1984 | throw std::range_error( |
| 1985 | "max object id is too high to create new objects"); | 1985 | "max object id is too high to create new objects"); |
| 1986 | } | 1986 | } |
| 1987 | - QPDFObjGen next(max_objid + 1, 0); | 1987 | + return QPDFObjGen(max_objid + 1, 0); |
| 1988 | +} | ||
| 1989 | + | ||
| 1990 | +QPDFObjectHandle | ||
| 1991 | +QPDF::makeIndirectObject(std::shared_ptr<QPDFObject> const& obj) | ||
| 1992 | +{ | ||
| 1993 | + QPDFObjGen next{nextObjGen()}; | ||
| 1988 | m->obj_cache[next] = ObjCache(obj, -1, -1); | 1994 | m->obj_cache[next] = ObjCache(obj, -1, -1); |
| 1989 | return newIndirect(next, m->obj_cache[next].object); | 1995 | return newIndirect(next, m->obj_cache[next].object); |
| 1990 | } | 1996 | } |