Commit 0a3c533186e3b4957fbf318e9507fe52d3f71cbd

Authored by m-holger
Committed by Jay Berkenbilt
1 parent b3d71e1f

Add private method QPDF::nextObjGen

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&amp; 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 }
... ...