2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-09-27 12:39:06 +00:00
qpdf/qpdf/sizes.cc
Jay Berkenbilt 07edf96440 Remove methods of private classes from ABI
Prior to the cmake conversion, several private classes had methods
that were exported into the shared library so they could be tested
with libtests. With cmake, we build libtests using an object library,
so this is no longer necessary. The methods that are disappearing from
the ABI were never exposed through public headers, so no code should
be using them. Removal had to wait until the window for ABI-breaking
changes was open.
2022-04-09 17:33:29 -04:00

131 lines
4.3 KiB
C++

// See "ABI checks" in README-maintainer and comments in check_abi.
#include <iostream>
#include <qpdf/Buffer.hh>
#include <qpdf/BufferInputSource.hh>
#include <qpdf/ClosedFileInputSource.hh>
#include <qpdf/FileInputSource.hh>
#include <qpdf/InputSource.hh>
#include <qpdf/JSON.hh>
#include <qpdf/PDFVersion.hh>
#include <qpdf/Pipeline.hh>
#include <qpdf/Pl_Buffer.hh>
#include <qpdf/Pl_Concatenate.hh>
#include <qpdf/Pl_Count.hh>
#include <qpdf/Pl_DCT.hh>
#include <qpdf/Pl_Discard.hh>
#include <qpdf/Pl_Flate.hh>
#include <qpdf/Pl_QPDFTokenizer.hh>
#include <qpdf/Pl_RunLength.hh>
#include <qpdf/Pl_StdioFile.hh>
#include <qpdf/QPDF.hh>
#include <qpdf/QPDFAcroFormDocumentHelper.hh>
#include <qpdf/QPDFAnnotationObjectHelper.hh>
#include <qpdf/QPDFCryptoProvider.hh>
#include <qpdf/QPDFEFStreamObjectHelper.hh>
#include <qpdf/QPDFEmbeddedFileDocumentHelper.hh>
#include <qpdf/QPDFExc.hh>
#include <qpdf/QPDFFileSpecObjectHelper.hh>
#include <qpdf/QPDFFormFieldObjectHelper.hh>
#include <qpdf/QPDFJob.hh>
#include <qpdf/QPDFMatrix.hh>
#include <qpdf/QPDFNameTreeObjectHelper.hh>
#include <qpdf/QPDFNumberTreeObjectHelper.hh>
#include <qpdf/QPDFObjGen.hh>
#include <qpdf/QPDFObject.hh>
#include <qpdf/QPDFObjectHandle.hh>
#include <qpdf/QPDFOutlineDocumentHelper.hh>
#include <qpdf/QPDFOutlineObjectHelper.hh>
#include <qpdf/QPDFPageDocumentHelper.hh>
#include <qpdf/QPDFPageLabelDocumentHelper.hh>
#include <qpdf/QPDFPageObjectHelper.hh>
#include <qpdf/QPDFStreamFilter.hh>
#include <qpdf/QPDFSystemError.hh>
#include <qpdf/QPDFTokenizer.hh>
#include <qpdf/QPDFUsage.hh>
#include <qpdf/QPDFWriter.hh>
#include <qpdf/QPDFXRefEntry.hh>
#define ignore_class(cls)
#define print_size(cls) std::cout << #cls << " " << sizeof(cls) << std::endl
// This is public because of QPDF_DLL_CLASS on InputSource
// -------
ignore_class(InputSource::Members);
// These are not classes
// -------
ignore_class(QUtil);
ignore_class(QTC);
int
main()
{
// Print the size of every class in the public API. This file is
// read by the check_abi script at the top of the repository as
// part of the binary compatibility checks performed before each
// release.
print_size(Buffer);
print_size(BufferInputSource);
print_size(ClosedFileInputSource);
print_size(FileInputSource);
print_size(InputSource);
print_size(JSON);
print_size(PDFVersion);
print_size(Pipeline);
print_size(Pl_Buffer);
print_size(Pl_Concatenate);
print_size(Pl_Count);
print_size(Pl_DCT);
print_size(Pl_Discard);
print_size(Pl_Flate);
print_size(Pl_QPDFTokenizer);
print_size(Pl_RunLength);
print_size(Pl_StdioFile);
print_size(QPDF);
print_size(QPDFAcroFormDocumentHelper);
print_size(QPDFAnnotationObjectHelper);
print_size(QPDFCryptoProvider);
print_size(QPDFEFStreamObjectHelper);
print_size(QPDFEmbeddedFileDocumentHelper);
print_size(QPDFExc);
print_size(QPDFFileSpecObjectHelper);
print_size(QPDFFormFieldObjectHelper);
print_size(QPDFJob);
print_size(QPDFJob::AttConfig);
print_size(QPDFJob::Config);
print_size(QPDFJob::CopyAttConfig);
print_size(QPDFJob::EncConfig);
print_size(QPDFJob::PagesConfig);
print_size(QPDFJob::UOConfig);
print_size(QPDFMatrix);
print_size(QPDFNameTreeObjectHelper);
print_size(QPDFNameTreeObjectHelper::iterator);
print_size(QPDFNumberTreeObjectHelper);
print_size(QPDFNumberTreeObjectHelper::iterator);
print_size(QPDFObjGen);
print_size(QPDFObject);
print_size(QPDFObjectHandle);
print_size(QPDFObjectHandle::ParserCallbacks);
print_size(QPDFObjectHandle::QPDFArrayItems);
print_size(QPDFObjectHandle::QPDFArrayItems::iterator);
print_size(QPDFObjectHandle::QPDFDictItems);
print_size(QPDFObjectHandle::QPDFDictItems::iterator);
print_size(QPDFObjectHandle::StreamDataProvider);
print_size(QPDFObjectHandle::TokenFilter);
print_size(QPDFOutlineDocumentHelper);
print_size(QPDFOutlineObjectHelper);
print_size(QPDFPageDocumentHelper);
print_size(QPDFPageLabelDocumentHelper);
print_size(QPDFPageObjectHelper);
print_size(QPDFStreamFilter);
print_size(QPDFSystemError);
print_size(QPDFTokenizer);
print_size(QPDFTokenizer::Token);
print_size(QPDFUsage);
print_size(QPDFWriter);
print_size(QPDFXRefEntry);
return 0;
}