f9028f1945
The problem is that the graphics cache only counts the size of the SVG text, which is stored in SvgData::maSvgDataArray. However the SvgData::maSequence may use a lot more memory, as it may contain de-compressed bitmaps that are stored as base64-encoded PNGs in the SVG text. For example icon-themes/galaxy/brand/flat_logo.svg is 812 Ko but contains 60 Mo of bitmaps. This may cause excessive memory usage and failure to export documents due to OOM; according to valgrind massif, the bitmap buffers use 90% of the heap. Add a new interface com::sun:⭐:util::XAccounting, and implement it in drawinglayer BasePrimitive2D. VCL SvgData can't access drawinglayer via C++ directly so this looks like the best approach. Change-Id: I5a7c3147733e23473c1decabed24c1f79d951c7d Reviewed-on: https://gerrit.libreoffice.org/30669 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> |
||
---|---|---|
.. | ||
animations | ||
apple_remote | ||
avmedia | ||
basegfx | ||
basic | ||
canvas | ||
codemaker | ||
com/sun/star/uno | ||
comphelper | ||
connectivity | ||
cppcanvas | ||
cppu | ||
cppuhelper | ||
cppunittester | ||
dbaccess | ||
desktop | ||
drawinglayer | ||
editeng | ||
filter | ||
formula | ||
framework | ||
helpcompiler | ||
i18nlangtag | ||
i18nutil | ||
jvmaccess | ||
jvmfwk | ||
LibreOfficeKit | ||
linguistic | ||
o3tl | ||
onlineupdate | ||
oox | ||
opencl | ||
osl | ||
package | ||
registry | ||
rsc | ||
rtl | ||
sal | ||
salhelper | ||
sax | ||
sfx2 | ||
shell | ||
sot | ||
store | ||
svl | ||
svtools | ||
svx | ||
systools/win32 | ||
test | ||
toolkit | ||
tools | ||
touch | ||
tubes | ||
typelib | ||
ucbhelper | ||
uno | ||
unoidl | ||
unotest | ||
unotools | ||
vbahelper | ||
vcl | ||
wntgcci | ||
wntgccx | ||
xmloff | ||
xmlreader | ||
xmlscript | ||
default.rc | ||
postmac.h | ||
postwin.h | ||
premac.h | ||
prewin.h | ||
version.hrc |