diff options
author | Eike Rathke <erack@redhat.com> | 2013-05-03 00:19:59 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-05-03 12:50:11 +0200 |
commit | 7de7267f4cfcb455aabb09053c7ed681d4591867 (patch) | |
tree | 880669939c1680ce3620d6d14a72d36dd206f5a9 /vcl | |
parent | bfa360c6e761a1e9b3e34665b9b36d724979fdfd (diff) |
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
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/generic/glyphs/gcach_layout.cxx | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx index ad93b9af6dab..c27504b96de8 100644 --- a/vcl/generic/glyphs/gcach_layout.cxx +++ b/vcl/generic/glyphs/gcach_layout.cxx @@ -1019,7 +1019,6 @@ bool IcuLayoutEngine::layout(ServerFontLayout& rLayout, ImplLayoutArgs& rArgs) mpIcuLE->getGlyphs( pIcuGlyphs, rcIcu ); mpIcuLE->getCharIndices( pCharIndices, rcIcu ); mpIcuLE->getGlyphPositions( &pGlyphPositions->fX, rcIcu ); - mpIcuLE->reset(); // TODO: get rid of this, PROBLEM: crash at exit when removed if( LE_FAILURE(rcIcu) ) return false; |