freetype-cvs
[Top][All Lists]
Advanced

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

[ft-cvs] freetype2 ChangeLog builds/amiga/include/freety...


From: Werner LEMBERG
Subject: [ft-cvs] freetype2 ChangeLog builds/amiga/include/freety...
Date: Sun, 21 Dec 2008 10:29:30 +0000

CVSROOT:        /cvsroot/freetype
Module name:    freetype2
Changes by:     Werner LEMBERG <wl>     08/12/21 10:29:30

Modified files:
        .              : ChangeLog 
        builds/amiga/include/freetype/config: ftmodule.h 
        include/freetype/config: ftmodule.h 
        src/autofit    : module.mk 
        src/base       : ftinit.c 
        src/bdf        : module.mk 
        src/cff        : module.mk 
        src/cid        : module.mk 
        src/gxvalid    : module.mk 
        src/otvalid    : module.mk 
        src/pcf        : module.mk 
        src/pfr        : module.mk 
        src/psaux      : module.mk 
        src/pshinter   : module.mk 
        src/psnames    : module.mk 
        src/raster     : module.mk 
        src/sfnt       : module.mk 
        src/smooth     : module.mk 
        src/truetype   : module.mk 
        src/type1      : module.mk 
        src/type42     : module.mk 
        src/winfonts   : module.mk 

Log message:
        FT_USE_MODULE declares things as:
        
          extern const FT_Module_Class
        
        (or similar for C++).  However, the actual types of the variables
        being declared are often different, e.g., FT_Driver_ClassRec or
        FT_Renderer_Class.  (Some are, indeed, FT_Module_Class.)
        
        This works with most C compilers (since those structs begin with an
        FT_Module_Class struct), but technically it's undefined behavior.
        
        To quote the ISO/IEC 9899:TC2 final committee draft, section 6.2.7
        paragraph 2:
        
          All declarations that refer to the same object or function shall
          have compatible type; otherwise, the behavior is undefined.
        
        (And they are not compatible types.)
        
        Most C compilers don't reject (or even detect!) code which has this
        issue, but the GCC LTO development branch compiler does.  (It
        outputs the types of the objects while generating .o files, along
        with a bunch of other information, then compares them when doing the
        final link-time code generation pass.)
        
        Patch from Savannah bug #25133.
        
        * src/base/ftinit.c (FT_USE_MODULE): Include variable type.
        
        * builds/amiga/include/freetype/config/ftmodule.h,
        include/freetype/config/ftmodule.h, */module.mk: Updated to declare
        pass correct types to FT_USE_MODULE.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/freetype2/ChangeLog?cvsroot=freetype&r1=1.1852&r2=1.1853
http://cvs.savannah.gnu.org/viewcvs/freetype2/builds/amiga/include/freetype/config/ftmodule.h?cvsroot=freetype&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/freetype2/include/freetype/config/ftmodule.h?cvsroot=freetype&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/autofit/module.mk?cvsroot=freetype&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/base/ftinit.c?cvsroot=freetype&r1=1.40&r2=1.41
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/bdf/module.mk?cvsroot=freetype&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/cff/module.mk?cvsroot=freetype&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/cid/module.mk?cvsroot=freetype&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/gxvalid/module.mk?cvsroot=freetype&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/otvalid/module.mk?cvsroot=freetype&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/pcf/module.mk?cvsroot=freetype&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/pfr/module.mk?cvsroot=freetype&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/psaux/module.mk?cvsroot=freetype&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/pshinter/module.mk?cvsroot=freetype&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/psnames/module.mk?cvsroot=freetype&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/raster/module.mk?cvsroot=freetype&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/sfnt/module.mk?cvsroot=freetype&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/smooth/module.mk?cvsroot=freetype&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/truetype/module.mk?cvsroot=freetype&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/type1/module.mk?cvsroot=freetype&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/type42/module.mk?cvsroot=freetype&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/freetype2/src/winfonts/module.mk?cvsroot=freetype&r1=1.4&r2=1.5




reply via email to

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