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
This commit is contained in:
parent
bfa360c6e7
commit
7de7267f4c
1 changed files with 0 additions and 1 deletions
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue