summaryrefslogtreecommitdiff
path: root/source/xps
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2015-03-04 19:29:22 +0000
committerRobin Watts <robin.watts@artifex.com>2015-03-24 19:49:59 +0000
commit563c482145d65c4006f5842c8860ab1b09f5a229 (patch)
treec2b32f42ee3fd9b112f541db3c1d10a6dd21d30d /source/xps
parentf533104d6e66b3fc6d3b63b98ec7fe4fb175b366 (diff)
downloadmupdf-563c482145d65c4006f5842c8860ab1b09f5a229.tar.xz
Reduce pdf_obj memory usage.
Historically pdf_obj was a structure with a header and a union in it. As time has gone by more stuff has been put into the header, and the different arms of the union have changed in size. We've even adopted the idea of different 'kinds' of pdf_obj's being different sizes (names and strings for examples). Here we rework the system slightly; we minimise the header, and split out everything into different structures. Every different 'kind' of pdf_obj is now it's own structure, just as big as it needs to be. Key changes: * refs is now a short rather than an int. We are never going to need more than 32767 refs (indeed, if we ever need more than about 3 (10 at the outside), something has gone very wrong!). This aids structure packing. * Only arrays, dicts and refs actually need the pdf_document pointer. * Only arrays and dicts need the parent_num pointer.
Diffstat (limited to 'source/xps')
0 files changed, 0 insertions, 0 deletions