aboutsummaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFObjectHandle.cc
AgeCommit message (Collapse)Author
2022-01-27Fix QPDFObjectHandle::isOrHasNamem-holger
Ensure isOrHasName returns true if object is an array and the name is present anywhere in the array.
2022-01-27Remove some if statements and simplify some boolean expressionsm-holger
Use QPDFObjectHandle::isNameAndEquals, isDictionaryOfType and isStreamOfType.
2022-01-27Allow testing for subtype without specifying type in isDictionaryOfType etcm-holger
Accept empty string as type parameter in QPDFObjectHandle::isDictionaryOfType and isStreamOfType to allow for dictionaries with optional type.
2022-01-22Add new convenience methods QPDFObjectHandle::isNameAndEquals, etcm-holger
Add methods isNameAndEquals, isDictionaryOfType, isStreamOfType
2021-12-10Use a specific error code for type warnings and clarify docsJay Berkenbilt
2021-11-04Check object ownership when addingJay Berkenbilt
When adding a QPDFObjectHandle to an array or dictionary, if possible, check if the new object belongs to the same QPDF. This makes it much easier to find incorrect code than waiting for the situation to be detected when the file is written.
2021-03-04Revert non-binary-compatible handleWarning change -- see TODO (ABI)Jay Berkenbilt
2021-03-04Don't use handleWarning, which is being revertedJay Berkenbilt
2021-03-04Check for reserved after dereferenceJay Berkenbilt
2021-03-04Add optional conflict detection to mergeResourcesJay Berkenbilt
Also improve behavior around direct vs. indirect resources.
2021-03-03Enhancements to ParserCallbacksJay Berkenbilt
2021-02-25Have QPDFObjectHandle notice when replaceObject was calledJay Berkenbilt
This results in a performance penalty of 1% to 2% when replaceObject and swapObjects are never called and a somewhat larger penalty if they are called, but it's worth it to avoid very confusing behavior as discussed in depth in qpdf#507.
2021-02-25Always call dereference() before querying obj pointerJay Berkenbilt
2021-02-22Change from QPDF{Array,Dict}Items to aitems() and ditems()Jay Berkenbilt
2021-02-21QPDFObjectHandle::copyStreamJay Berkenbilt
2021-02-21Enhance QPDFMatrix APIJay Berkenbilt
2021-02-21Fix isPagesObject and isPageObjectJay Berkenbilt
There are lots of things with /Kids that are not pages. Repair the pages tree, then do a reliable check.
2021-02-20Allow --rotate=0Jay Berkenbilt
2021-02-15Add QPDFObjectHandle::parse for strings with contextJay Berkenbilt
2021-02-14Add functional versions of QPDFObjectHandle::replaceStreamDataJay Berkenbilt
Also fix a bug in checking consistency of length for stream data providers. Length should not be checked or recorded if the provider says it failed to generate the data.
2021-02-13QUtil::double_to_string: trim trailing zeroes with option to disableJay Berkenbilt
2021-01-31Improve memory safety of dict/array iteratorsJay Berkenbilt
2021-01-30Add C++ iterator API around array and dictionary objectsJay Berkenbilt
2021-01-29Make QPDFObjectHandle::is* return false for uninitialized objectsJay Berkenbilt
2021-01-17Add warn() to QPDF's public APIJay Berkenbilt
2021-01-02Make more QPDFPageObjectHelper methods work with form XObjectJay Berkenbilt
2021-01-02Bug fix: avoid extraneous pipeline finish calls with multiple contentsJay Berkenbilt
Avoid calling finish() multiple times on the pipeline passed to pipeContentStreams. This commit also fixes a bug in which qpdf was not exiting with the proper exit status if warnings found while splitting pages; this was exposed by a test case that changed.
2021-01-02Add several methods for working with form XObjects (fixes #436)Jay Berkenbilt
Make some more methods in QPDFPageObjectHelper work with form XObjects, provide forEach methods to walk through nested form XObjects, possibly recursively. This should make it easier to work with form XObjects from user code.
2021-01-02QPDFPageObjectHelper: getPageImages -> getImagesJay Berkenbilt
2021-01-02QPDFPageObjectHelper::getPageImages: support form XObjectsJay Berkenbilt
2021-01-01Add QPDFObjectHandle::isFormXObjectJay Berkenbilt
2020-12-28Add QPDFObjectHandle::setFilterOnWriteJay Berkenbilt
2020-12-26Add QPDFObjectHandle::makeDirect(bool allow_streams)Jay Berkenbilt
2020-11-11Treat direct page as runtime rather than logic error (fuzz issue 27393)Jay Berkenbilt
2020-10-23Avoid merging adjacent tokens when concatenating contents (fixes #444)Jay Berkenbilt
2020-04-16Fix warnings reported by -Wshadow=local (fixes #431)Jay Berkenbilt
2020-04-06Allow propagation of errors and retry through StreamDataProviderJay Berkenbilt
StreamDataProvider::provideStreamData now has a rich enough API for it to effectively proxy to pipeStreamData.
2020-04-04Avoid potential segfault in warning methodsJay Berkenbilt
2020-04-03Add QPDFObjectHandle::unsafeShallowCopyJay Berkenbilt
2020-04-03Performance: remove Members indirection for QPDFObjectHandleJay Berkenbilt
2020-03-31Refactor QPDFPageObjectHelper::removeUnreferencedResources()Jay Berkenbilt
Refactor removeUnreferencedResources to prepare for filtering form XObjects.
2019-10-22Parse Contents in signature dictionary without encryptionMasamichi Hosoda
Various PDF digital signing tools do not encrypt /Contents value in signature dictionary. Adobe Acrobat Reader DC can handle a PDF with the /Contents value not encrypted. Write Contents in signature dictionary without encryption Tests ensure that string /Contents are not handled specially when not found in sig dicts.
2019-10-22Add QPDFObject::getParsedOffset()Masamichi Hosoda
2019-09-20Correct reversed Rectangle coordinates (fixes #363)Jay Berkenbilt
2019-09-20Warn for duplicated dictionary keys (fixes #345)Jay Berkenbilt
2019-08-26Fix fuzz issue 16301Jay Berkenbilt
2019-08-23Pass offset and length to ParserCallbacks::handleObjectJay Berkenbilt
2019-08-22Test for direct, rather than resolved nulls in parserJay Berkenbilt
Just because we know an indirect reference is null, doesn't mean we shouldn't keep it indirect.
2019-08-22Protect against coding error of re-entrant parsingJay Berkenbilt
2019-08-20Handle invalid name tokens symmetrically for PDF < 1.2 (fixes #332)Jay Berkenbilt