diff --git a/libqpdf/qpdf-c.cc b/libqpdf/qpdf-c.cc index 5740cba..377a6b1 100644 --- a/libqpdf/qpdf-c.cc +++ b/libqpdf/qpdf-c.cc @@ -833,28 +833,25 @@ static qpdf_oh new_object(qpdf_data qpdf, QPDFObjectHandle const& qoh) { qpdf_oh oh = ++qpdf->next_oh; // never return 0 - qpdf->oh_cache[oh] = std::make_shared(qoh); + qpdf->oh_cache[oh] = qoh; return oh; } qpdf_oh qpdf_oh_new_object(qpdf_data qpdf, qpdf_oh oh) { - QTC::TC("qpdf", "qpdf-c called qpdf_new_object"); - return new_object(qpdf, *(qpdf->oh_cache[oh])); + return new_object(qpdf, qpdf->oh_cache[oh]); } void qpdf_oh_release(qpdf_data qpdf, qpdf_oh oh) { - QTC::TC("qpdf", "qpdf-c called qpdf_oh_release"); qpdf->oh_cache.erase(oh); } void qpdf_oh_release_all(qpdf_data qpdf) { - QTC::TC("qpdf", "qpdf-c called qpdf_oh_release_all"); qpdf->oh_cache.clear(); } @@ -904,8 +901,7 @@ qpdf_get_root(qpdf_data qpdf) qpdf_oh qpdf_get_object_by_id(qpdf_data qpdf, int objid, int generation) { - QTC::TC("qpdf", "qpdf-c called qpdf_get_object_by_id"); - return new_object(qpdf, qpdf->qpdf->getObjectByID(objid, generation)); + return new_object(qpdf, qpdf->qpdf->getObject(objid, generation)); } template @@ -918,9 +914,7 @@ do_with_oh( { return trap_oh_errors(qpdf, fallback, [fn, oh](qpdf_data q) { auto i = q->oh_cache.find(oh); - bool result = ((i != q->oh_cache.end()) && (i->second).get()); - if (!result) { - QTC::TC("qpdf", "qpdf-c invalid object handle"); + if (i == q->oh_cache.end()) { throw QPDFExc( qpdf_e_internal, q->qpdf->getFilename(), @@ -928,7 +922,7 @@ do_with_oh( 0, "attempted access to unknown object handle"); } - return fn(*(q->oh_cache[oh])); + return fn(i->second); }); } diff --git a/libqpdf/qpdf/qpdf-c_impl.hh b/libqpdf/qpdf/qpdf-c_impl.hh index 866b625..a79a5d6 100644 --- a/libqpdf/qpdf/qpdf-c_impl.hh +++ b/libqpdf/qpdf/qpdf-c_impl.hh @@ -39,7 +39,7 @@ struct _qpdf_data // QPDFObjectHandle support bool silence_errors{false}; bool oh_error_occurred{false}; - std::map> oh_cache; + std::map oh_cache; qpdf_oh next_oh{0}; std::set cur_iter_dict_keys; std::set::const_iterator dict_iter; diff --git a/qpdf/qpdf.testcov b/qpdf/qpdf.testcov index 92428c5..0c5ea5e 100644 --- a/qpdf/qpdf.testcov +++ b/qpdf/qpdf.testcov @@ -263,10 +263,6 @@ QPDFJob found shared resources in leaf 0 QPDFJob found shared xobject in leaf 0 QPDFObjectHandle need_newline 1 QPDFJob pages range omitted with . 0 -qpdf-c invalid object handle 0 -qpdf-c called qpdf_oh_release 0 -qpdf-c called qpdf_oh_release_all 0 -qpdf-c called qpdf_new_object 0 qpdf-c called qpdf_get_trailer 0 qpdf-c called qpdf_get_root 0 qpdf-c called qpdf_oh_is_bool 0 @@ -365,7 +361,6 @@ qpdf-c registered progress reporter 0 qpdf-c called qpdf_oh_new_uninitialized 0 qpdf-c warn about oh error 1 qpdf-c cleanup warned about unhandled error 0 -qpdf-c called qpdf_get_object_by_id 0 qpdf-c called qpdf_replace_object 0 qpdf-c called qpdf_update_all_pages_cache 0 qpdf-c called qpdf_find_page_by_id 0