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 | 1185 | void stopOnError(std::string const& message); |
| 1186 | 1186 | QPDFObjectHandle reserveObjectIfNotExists(QPDFObjGen const& og); |
| 1187 | 1187 | QPDFObjectHandle reserveStream(QPDFObjGen const& og); |
| 1188 | + QPDFObjGen nextObjGen(); | |
| 1188 | 1189 | QPDFObjectHandle |
| 1189 | 1190 | newIndirect(QPDFObjGen const&, std::shared_ptr<QPDFObject> const&); |
| 1190 | 1191 | QPDFObjectHandle makeIndirectObject(std::shared_ptr<QPDFObject> const& obj); | ... | ... |
libqpdf/QPDF.cc
| ... | ... | @@ -1976,15 +1976,21 @@ QPDF::isUnresolved(QPDFObjGen const& og) |
| 1976 | 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 | 1982 | int max_objid = toI(getObjectCount()); |
| 1983 | 1983 | if (max_objid == std::numeric_limits<int>::max()) { |
| 1984 | 1984 | throw std::range_error( |
| 1985 | 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 | 1994 | m->obj_cache[next] = ObjCache(obj, -1, -1); |
| 1989 | 1995 | return newIndirect(next, m->obj_cache[next].object); |
| 1990 | 1996 | } | ... | ... |