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,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&amp; og) @@ -1976,15 +1976,21 @@ QPDF::isUnresolved(QPDFObjGen const&amp; 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 }