odd "rGlyphData.ExtDataRef().mpData != Format::NONE" (vcl/headless/svptext.cxx)

Stephan Bergmann sbergman at redhat.com
Fri Jul 12 09:57:44 PDT 2013


On 06/20/2013 05:38 PM, Caolán McNamara wrote:
> On Thu, 2013-06-20 at 16:15 +0200, Stephan Bergmann wrote:
>> that might either be a bad way of checking
>> rGlyphData.ExtDataRef().mpData is non-null that just happens to work out
>> as intended, or might be a broken attempt at checking that
>> rGlyphData.ExtDataRef().meInfo is not Format::NONE.
>>
>> Anybody an idea what might be the better interpretation?
>
> I rather suspect that either is equivalent, I'd vote for meInfo is not
> Format::NONE to match the new SvpGcpHelper condition.
>
> But, can you see anyplace where meInfo *or* mpInfo is actually
> set/changed away from the ctor defaults of 0, 0. i.e. is it the case
> that all the conditionals off ExtGlyphData are constants. And I can't
> see anyplace where that pGcpHelper gets deleted (in the normal
> condition). The ServerFont::SetExtended call doesn't seem to actually do
> anything either.

Indeed, looks like the original code would leak memory.  And once you 
start to fix that, the existing code goes into double deletes...  :) 
Hopefully fixed for the better now, 
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=dd547e4a8c1895aa89e699810323c933d9ac415b> 
"Fix headless mode glyph cache memory handling."

Stephan


More information about the LibreOffice mailing list