Vanilla.PDF
1.5.1
Cross-platform toolkit for creating and modifying PDF documents
Enumerate xref
error_type
process_file(
FileHandle
* file,
int
nested) {
XrefChainHandle
* chain = NULL;
XrefChainIteratorHandle
* chain_iterator = NULL;
boolean_type
valid =
VANILLAPDF_RV_FALSE
;
RETURN_ERROR_IF_NOT_SUCCESS(
File_XrefChain
(file, &chain));
RETURN_ERROR_IF_NOT_SUCCESS(
XrefChain_GetIterator
(chain, &chain_iterator));
while
(
VANILLAPDF_ERROR_SUCCESS
==
XrefChainIterator_IsValid
(chain_iterator, &valid)
&&
VANILLAPDF_RV_TRUE
== valid) {
XrefHandle
* xref = NULL;
RETURN_ERROR_IF_NOT_SUCCESS(
XrefChainIterator_GetValue
(chain_iterator, &xref));
RETURN_ERROR_IF_NOT_SUCCESS(process_xref(xref, nested));
RETURN_ERROR_IF_NOT_SUCCESS(
Xref_Release
(xref));
RETURN_ERROR_IF_NOT_SUCCESS(
XrefChainIterator_Next
(chain_iterator));
}
RETURN_ERROR_IF_NOT_SUCCESS(
XrefChainIterator_Release
(chain_iterator));
RETURN_ERROR_IF_NOT_SUCCESS(
XrefChain_Release
(chain));
return
VANILLAPDF_TEST_ERROR_SUCCESS;
}