[Vm-dev] FT2Plugin for Freetype: Freetype-Plugin-eem.70.mcz

David T. Lewis lewis at mail.msen.com
Tue Apr 29 00:08:06 UTC 2014


On Mon, Apr 28, 2014 at 10:51:17PM +0000, squeak-dev-noreply at lists.squeakfoundation.org wrote:
>  
> Eliot Miranda uploaded a new version of Freetype-Plugin to project FT2Plugin for Freetype:
> http://www.squeaksource.com/FreetypePlugin/Freetype-Plugin-eem.70.mcz
> 
> ==================== Summary ====================
> 
> Name: Freetype-Plugin-eem.70
> Author: eem
> Time: 28 April 2014, 2:50:46.158 pm
> UUID: 99cf7736-f540-4e37-9afd-301215ea96b5
> Ancestors: Freetype-Plugin-eem.69
> 
> Several uses of the results of arrayValueOf: were *before* the interpreterProxy failed check of that result, potentially causing null pointer defererences on failure.
> 
> Eliminated bogus uses of baseHeaderSize in favour of firstIndexableField:.
> 
> Simplified ftHandleValueFromReceiver: and rely on calling primitiveFail in clients (as all but two cases already did).
> 
> Simplified a few ip success: errorCode == 0. ip failed ifTrue: [^nil]'s.

Eliot,

This change breaks the trunk, see below.

FT2Plugin has been working in both trunk and oscog for quite a while, so this
is something new. Reverting to the prior version (Freetype-Plugin-dtl.66) resolves
the problem.

Dave


Building C object FT2Plugin/CMakeFiles/FT2Plugin.dir/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c.o
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveEmboldenFaceGlyphSlotOutline’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:534:40: warning: dereferencing ‘void *’ pointer [enabled by default]
  errorCode = FT_Outline_Embolden( &face->glyph->outline, strength );
                                        ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:534:40: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveGetFaceCharMap’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:674:16: warning: dereferencing ‘void *’ pointer [enabled by default]
  charmap = face->charmap;
                ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:674:16: error: request for member ‘charmap’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveGetFaceCharMapsIntoArray’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:730:20: warning: dereferencing ‘void *’ pointer [enabled by default]
  numCharmaps = face->num_charmaps;
                    ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:730:20: error: request for member ‘num_charmaps’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:736:16: warning: dereferencing ‘void *’ pointer [enabled by default]
  charmap = face->charmaps;
                ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:736:16: error: request for member ‘charmaps’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveGetPostscriptName’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:888:9: warning: assignment discards ‘const’ qualifier from pointer target type [enabled by default]
  buffer = FT_Get_Postscript_Name(face);
         ^
In file included from /usr/include/freetype2/freetype/tttables.h:25:0,
                 from /home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:38:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveHasKerning’:
/usr/include/freetype2/freetype/freetype.h:1134:17: warning: dereferencing ‘void *’ pointer [enabled by default]
           ( face->face_flags & FT_FACE_FLAG_KERNING )
                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:991:21: note: in expansion of macro ‘FT_HAS_KERNING’
  _return_value = (((FT_HAS_KERNING( face )) << 1) | 1);
                     ^
/usr/include/freetype2/freetype/freetype.h:1134:17: error: request for member ‘face_flags’ in something not a structure or union
           ( face->face_flags & FT_FACE_FLAG_KERNING )
                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:991:21: note: in expansion of macro ‘FT_HAS_KERNING’
  _return_value = (((FT_HAS_KERNING( face )) << 1) | 1);
                     ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveLoadFaceBbox’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1112:12: warning: dereferencing ‘void *’ pointer [enabled by default]
  if (!(face->face_flags & FT_FACE_FLAG_SCALABLE)) {
            ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1112:12: error: request for member ‘face_flags’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1119:61: warning: dereferencing ‘void *’ pointer [enabled by default]
  pointOop = interpreterProxy->makePointwithxValueyValue(face->bbox.xMin, face->bbox.yMin);
                                                             ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1119:61: error: request for member ‘bbox’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1119:78: warning: dereferencing ‘void *’ pointer [enabled by default]
  pointOop = interpreterProxy->makePointwithxValueyValue(face->bbox.xMin, face->bbox.yMin);
                                                                              ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1119:78: error: request for member ‘bbox’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1123:61: warning: dereferencing ‘void *’ pointer [enabled by default]
  pointOop = interpreterProxy->makePointwithxValueyValue(face->bbox.xMax, face->bbox.yMax);
                                                             ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1123:61: error: request for member ‘bbox’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1123:78: warning: dereferencing ‘void *’ pointer [enabled by default]
  pointOop = interpreterProxy->makePointwithxValueyValue(face->bbox.xMax, face->bbox.yMax);
                                                                              ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1123:78: error: request for member ‘bbox’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveLoadFaceFields’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1167:63: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(1, rcvr, face->num_faces);
                                                               ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1167:63: error: request for member ‘num_faces’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1168:63: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(2, rcvr, face->face_index);
                                                               ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1168:63: error: request for member ‘face_index’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1169:63: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(3, rcvr, face->face_flags);
                                                               ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1169:63: error: request for member ‘face_flags’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1170:63: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(4, rcvr, face->style_flags);
                                                               ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1170:63: error: request for member ‘style_flags’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1171:63: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(5, rcvr, face->num_glyphs);
                                                               ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1171:63: error: request for member ‘num_glyphs’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1173:42: warning: dereferencing ‘void *’ pointer [enabled by default]
  strOop = ftAllocateStringForPointer(face->family_name);
                                          ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1173:42: error: request for member ‘family_name’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1177:42: warning: dereferencing ‘void *’ pointer [enabled by default]
  strOop = ftAllocateStringForPointer(face->style_name);
                                          ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1177:42: error: request for member ‘style_name’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1180:63: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(8, rcvr, face->num_fixed_sizes);
                                                               ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1180:63: error: request for member ‘num_fixed_sizes’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1181:64: warning: dereferencing ‘void *’ pointer [enabled by default]
  interpreterProxy->storeIntegerofObjectwithValue(10, rcvr, face->num_charmaps);
                                                                ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1181:64: error: request for member ‘num_charmaps’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1182:10: warning: dereferencing ‘void *’ pointer [enabled by default]
  if (face->face_flags & FT_FACE_FLAG_SCALABLE) {
          ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1182:10: error: request for member ‘face_flags’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1187:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(13, rcvr, face->units_per_EM);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1187:65: error: request for member ‘units_per_EM’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1188:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(14, rcvr, face->ascender);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1188:65: error: request for member ‘ascender’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1189:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(15, rcvr, face->descender);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1189:65: error: request for member ‘descender’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1190:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(16, rcvr, face->height);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1190:65: error: request for member ‘height’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1191:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(17, rcvr, face->max_advance_width);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1191:65: error: request for member ‘max_advance_width’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1192:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(18, rcvr, face->max_advance_height);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1192:65: error: request for member ‘max_advance_height’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1193:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(19, rcvr, face->underline_position);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1193:65: error: request for member ‘underline_position’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1194:65: warning: dereferencing ‘void *’ pointer [enabled by default]
   interpreterProxy->storeIntegerofObjectwithValue(20, rcvr, face->underline_thickness);
                                                                 ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1194:65: error: request for member ‘underline_thickness’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveLoadGlyphSlotFromFace’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1285:11: warning: dereferencing ‘void *’ pointer [enabled by default]
  gs = face->glyph;
           ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1285:11: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveLoadOutlineArraysFromFace’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1376:11: warning: dereferencing ‘void *’ pointer [enabled by default]
  gs = face->glyph;
           ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1376:11: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveLoadOutlineSizesFromFace’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1474:11: warning: dereferencing ‘void *’ pointer [enabled by default]
  gs = face->glyph;
           ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1474:11: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveNewMemoryFaceFromExternalMemoryAndIndex’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1594:54: error: expected expression before ‘return’
  ifNil(memPointer, interpreterProxy->primitiveFail(),return null);
                                                      ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveNumberOfOutlineCountours’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1651:11: warning: dereferencing ‘void *’ pointer [enabled by default]
  gs = face->glyph;
           ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1651:11: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveRenderGlyphIntoForm’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1708:50: warning: dereferencing ‘void *’ pointer [enabled by default]
  errorCode = FT_Outline_Get_Bitmap(library, &face->glyph->outline, &bitmap);
                                                  ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1708:50: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveRenderGlyphIntoFormWithRenderMode’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1761:50: warning: dereferencing ‘void *’ pointer [enabled by default]
  errorCode = FT_Outline_Get_Bitmap(library, &face->glyph->outline, &bitmap);
                                                  ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1761:50: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveTransformFaceGlyphSlotOutline’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1957:30: warning: dereferencing ‘void *’ pointer [enabled by default]
   FT_Outline_Transform( &face->glyph->outline, &matrix );
                              ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:1957:30: error: request for member ‘glyph’ in something not a structure or union
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c: In function ‘primitiveTranslateFaceGlyphSlotOutline’:
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:2001:30: warning: dereferencing ‘void *’ pointer [enabled by default]
   FT_Outline_Translate( &face->glyph->outline, delta.x, delta.y );
                              ^
/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c:2001:30: error: request for member ‘glyph’ in something not a structure or union
make[2]: *** [FT2Plugin/CMakeFiles/FT2Plugin.dir/home/lewis/squeak/VM/src/plugins/FT2Plugin/FT2Plugin.c.o] Error 1
make[1]: *** [FT2Plugin/CMakeFiles/FT2Plugin.dir/all] Error 2
make: *** [all] Error 2





More information about the Vm-dev mailing list