freetype
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft] rendering differences between 2.8 and 2.81


From: Srinivasa Rao Kanaparthi
Subject: Re: [ft] rendering differences between 2.8 and 2.81
Date: Thu, 26 Oct 2017 18:37:59 +0800

Hi Werner,

I will capture the details and will send soon.

If my understanding is right, the fix is to prevent the memory returned
from a ft_mem_realloc() gets zeroed twice when called with current count 0.

But the problem introduced is when new_count is less than cur_count (*See
the break point below*), the memory is not zeroed even once. So
uninitialized block of memory. Please correct me if my observation is wrong.

[image: Inline image 2]

On a side note, our memory management is using TLSF memory allocation
system (allocates from a pre-configured static buffer pool, on request). So
we do replace malloc/realloc/free stdlib calls by TLSF memory interfaces.
Thats only the difference in terms of memory management.
http://www.gii.upv.es/tlsf/

Thanks,
Srinivas

On Thu, Oct 26, 2017 at 3:02 PM, Werner LEMBERG <address@hidden> wrote:

>
> [Please always CC the list so that other interested persons can read
> your replies.]
>
> > The below solves my issue
> >
> >           block = memory->alloc(memory, new_count * item_size);
> >   if (!error && (new_count * item_size) > 0)
> >   FT_MEM_ZERO(block, (new_count * item_size));
> >
> > The difference between the commit
> > 0aca17cf53f099f9ea34b3797949076073b60b5d and
> > bd28952e23bcd268a623ea5202e1cde4a92defe4 is both allocates memory,
> > but only one initializes the allocated block to 0's.
> >
> > After initializing the memory block to 0's my rendering problem is
> > resolved.
>
> Interesting.  The commit was introduced to exactly avoid calling
> FT_MEM_ZERO, cf.
>
>   https://savannah.nongnu.org/bugs/?51816
>
> So please provide a small, compilable C code snippet that exhibits
> your problem![*] As far as I know, none of the FreeType demo programs
> show such artifacts, so it must be special to your code calling
> FreeType...
>
>
>     Werner
>
>
> [*] If you compile the FreeType library with
>
>       #define FT_DEBUG_LEVEL_ERROR
>       #define FT_DEBUG_LEVEL_TRACE
>
>     you can then call an application with
>
>       FT2_DEBUG=bitmap:3 your_program
>
>     to get md5 checksums from the generated glyph renderings.
>

PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]