freetype
[Top][All Lists]
Advanced

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

[ft] Problems with FreeType cache


From: bcoconni
Subject: [ft] Problems with FreeType cache
Date: Sat, 19 Apr 2008 13:50:28 +0200

Hi all,

I am the maintainer of a library which renders text using OpenGL 
(http://quesoglc.sourceforge.net). It uses FreeType to handle all the fonts 
management. Recently, one of the user of my library complained that he 
experienced segfaults :

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6e40920 (LWP 16590)]
0xb7d95f64 in FT_New_Size () from /usr/lib/libfreetype.so.6
(gdb) bt
#0  0xb7d95f64 in FT_New_Size () from /usr/lib/libfreetype.so.6
#1  0xb7ddb1ba in ftc_scaler_lookup_size () from /usr/lib/libfreetype.so.6
#2  0xb7dd9458 in FTC_MruList_New () from /usr/lib/libfreetype.so.6
#3  0xb7dd9674 in FTC_Manager_LookupSize () from /usr/lib/libfreetype.so.6
#4  0x08054c14 in __glcFaceDescPrepareGlyph (This=0x81126a0,
    inContext=0x80f0bc8, inScaleX=128, inScaleY=128, inGlyphIndex=43)
    at ../src/ofacedesc.c:407

and an extract of the code where FTC_Manager_LookupSize is called :

scaler.face_id = (FTC_FaceID)This;
scaler.width = (FT_UInt)(inScaleX * 64.);
scaler.height = (FT_UInt)(inScaleY * 64.);
scaler.pixel = (FT_Int)0;
scaler.x_res = (FT_UInt)(inContext->renderState.resolution < GLC_EPSILON ? 72 : 
inContext->renderState.resolution);
scaler.y_res = (FT_UInt)(inContext->renderState.resolution < GLC_EPSILON ? 72 : 
inContext->renderState.resolution);

if (FTC_Manager_LookupSize(inContext->cache, &scaler, &size)) {
  __glcRaiseError(GLC_RESOURCE_ERROR);
  return GL_FALSE;
}

This->face = size->face;

This user uses FreeType 2.3.5 on Linux just as I do. But everything works fine 
on my side. Furthermore, if this user disables the use of the FreeType cache in 
my library then the segfaults disappear.

Any idea of where I should look for ?

Thanks and regards,

Bertrand.





reply via email to

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