Commit b3d71e1f58aa767dfa8eac3e723ecc164131f306
Committed by
Jay Berkenbilt
1 parent
486c273a
Add private overload of QPDF::makeIndirectObject taking a QPDFObject shared_ptr
Showing
2 changed files
with
9 additions
and
3 deletions
include/qpdf/QPDF.hh
| ... | ... | @@ -1187,6 +1187,7 @@ class QPDF |
| 1187 | 1187 | QPDFObjectHandle reserveStream(QPDFObjGen const& og); |
| 1188 | 1188 | QPDFObjectHandle |
| 1189 | 1189 | newIndirect(QPDFObjGen const&, std::shared_ptr<QPDFObject> const&); |
| 1190 | + QPDFObjectHandle makeIndirectObject(std::shared_ptr<QPDFObject> const& obj); | |
| 1190 | 1191 | bool isCached(QPDFObjGen const& og); |
| 1191 | 1192 | bool isUnresolved(QPDFObjGen const& og); |
| 1192 | 1193 | void updateCache( | ... | ... |
libqpdf/QPDF.cc
| ... | ... | @@ -1977,7 +1977,7 @@ QPDF::isUnresolved(QPDFObjGen const& og) |
| 1977 | 1977 | } |
| 1978 | 1978 | |
| 1979 | 1979 | QPDFObjectHandle |
| 1980 | -QPDF::makeIndirectObject(QPDFObjectHandle oh) | |
| 1980 | +QPDF::makeIndirectObject(std::shared_ptr<QPDFObject> const& obj) | |
| 1981 | 1981 | { |
| 1982 | 1982 | int max_objid = toI(getObjectCount()); |
| 1983 | 1983 | if (max_objid == std::numeric_limits<int>::max()) { |
| ... | ... | @@ -1985,12 +1985,17 @@ QPDF::makeIndirectObject(QPDFObjectHandle oh) |
| 1985 | 1985 | "max object id is too high to create new objects"); |
| 1986 | 1986 | } |
| 1987 | 1987 | QPDFObjGen next(max_objid + 1, 0); |
| 1988 | - m->obj_cache[next] = | |
| 1989 | - ObjCache(QPDFObjectHandle::ObjAccessor::getObject(oh), -1, -1); | |
| 1988 | + m->obj_cache[next] = ObjCache(obj, -1, -1); | |
| 1990 | 1989 | return newIndirect(next, m->obj_cache[next].object); |
| 1991 | 1990 | } |
| 1992 | 1991 | |
| 1993 | 1992 | QPDFObjectHandle |
| 1993 | +QPDF::makeIndirectObject(QPDFObjectHandle oh) | |
| 1994 | +{ | |
| 1995 | + return makeIndirectObject(QPDFObjectHandle::ObjAccessor::getObject(oh)); | |
| 1996 | +} | |
| 1997 | + | |
| 1998 | +QPDFObjectHandle | |
| 1994 | 1999 | QPDF::reserveObjectIfNotExists(QPDFObjGen const& og) |
| 1995 | 2000 | { |
| 1996 | 2001 | if (!isCached(og) && m->xref_table.count(og) == 0) { | ... | ... |