-
https://ssl.icu-project.org/trac/ticket/10107Eike Rathke yazdı
do not call LayoutEngine::reset() Calling reset() disposes everything the LayoutEngine knows in its current state. While this may have prevented some obscure crash during exit in the past (call was added 2003-03-27), it definitely leads to a crash if the updated LayoutEngine "patch" http://download.icu-project.org/files/icu4c/51.1/icu-51-layout-fix-10107.tgz is applied as that sets fGlyphStorage=NULL (it doesn't delete LEGlyphStorage though and thus may leak, but that patch is in the wild now) and a later call to mpIcuLE->layoutChars() tries to access fGlyphStorage->...() if mpIcuLE is reused. For the patch mentioned see http://site.icu-project.org/download/51#TOC-Known-Issues and http://bugs.icu-project.org/trac/ticket/10107 Change-Id: I1b8f5c446c174d7d12b896b3ecd2a266645e8abc (cherry picked from commit 7de7267f) implemented IcuFontFromServerFont::getFontTable(LETag,size_t&) so that ICU versions trying to call LEFontInstance::getFontTable(LETag,size_t&) actually call it instead of IcuFontFromServerFont::getFontTable(LETag) See http://site.icu-project.org/download/51#TOC-Known-Issues "NOTE: Applications must implement LEFontInstance::getFontTable(LETag, size_t &length) in their LEFontInstance subclasses, so that ICU can properly bounds-check font tables." See also https://ssl.icu-project.org/trac/ticket/10107 (cherry picked from commit 428bde35) Conflicts: vcl/generic/glyphs/gcach_layout.cxx Change-Id: Ic20b7e8dda4e84734eb6de0ccba82b0dea481d55 Reviewed-on: https://gerrit.libreoffice.org/3755Reviewed-by:
Miklos Vajna <vmiklos@suse.cz> Tested-by:
Miklos Vajna <vmiklos@suse.cz>
992f74f4