1 |
|
2005-05-23 Werner Lemberg <wl@gnu.org> |
2 |
|
|
3 |
|
* builds/amiga/makefile.os4 (WARNINGS), builds/compiler/gcc-dev.mk |
4 |
|
(CFLAGS), builds/compiler/gcc.mk (CFLAGS): Remove |
5 |
|
-fno-strict-aliasing. |
6 |
|
|
7 |
|
2005-05-23 Behdad Esfahbod <behdad@cs.toronto.edu> |
8 |
|
|
9 |
|
Say you have `(Foo*)x' and want to assign, pass, or return it as |
10 |
|
`(Bar*)'. If you simply say `x' or `(Bar*)x', then the C compiler |
11 |
|
would warn you that type casting incompatible pointer types breaks |
12 |
|
strict-aliasing. The solution is to cast to `(void*)' instead which |
13 |
|
is the generic pointer type, so the compiler knows that it should |
14 |
|
make no strict-aliasing assumption on `x'. But the problem with |
15 |
|
`(void*)x' is that seems like in C++, unlike C, `void*' is not a |
16 |
|
generic pointer type and assigning `void*' to `Bar*' without a cast |
17 |
|
causes an error. The solution is to cast to `Bar*' too, with |
18 |
|
`(Bar*)(void*)x' as the result -- this is what the patch does. |
19 |
|
|
20 |
|
* include/freetype/cache/ftccache.h (FTC_CACHE_LOOKUP_CMP), |
21 |
|
include/freetype/cache/ftcmru.h (FTC_MRULIST_LOOKUP_CMP): Remove |
22 |
|
cast on lvalue, use a temporary pointer instead. |
23 |
|
Cast temporarily to (void*) to not break strict aliasing. |
24 |
|
|
25 |
|
* include/freetype/internal/ftmemory.h (FT_MEM_ALLOC, |
26 |
|
FT_MEM_REALLOC, FT_MEM_QALLOC, FT_MEM_QREALLOC, FT_MEM_FREE), |
27 |
|
src/base/ftglyph.c (FT_Glyph_To_Bitmap): Cast temporarily to (void*) |
28 |
|
to not break strict aliasing. |
29 |
|
|
30 |
|
* src/base/ftinit.c (FT_USE_MODULE): Fix wrong type information. |
31 |
|
|
32 |
|
* builds/unix/configure.ac (XX_CFLAGS): Remove -fno-strict-aliasing. |
33 |
|
|
34 |
|
* src/sfnt/rules.mk (SFNT_DRV_SRC): Don't include ttsbit0.c -- |
35 |
|
it is currently loaded from ttsbit.c. |
36 |
|
|
37 |
2005-05-23 David Turner <dturner@freetype.org> |
2005-05-23 David Turner <dturner@freetype.org> |
38 |
|
|
39 |
* include/freetype/cache/ftcache.h, src/cache/ftccache.c, |
Fix Savannah bug #12213 (incorrect behaviour of the cache sub-system |
40 |
src/cache/ftcsbits.c: fixing bug #12213 (incorrect behaviour |
in low-memory conditions). |
41 |
of the cache sub-system in low-memory conditions). |
|
42 |
|
* include/freetype/cache/ftccache.h (FTC_CACHE_TRYLOOP, |
43 |
|
FTC_CACHE_TRYLOOP_END): New macros. |
44 |
|
|
45 |
|
* src/cache/ftccache.c (FTC_Cache_NewNode), src/cache/ftcsbits.c |
46 |
|
(ftc_snode_compare): Use FT_CACHE_TRYLOOP and FTC_CACE_TRYLOOP_END. |
47 |
|
|
48 |
2005-05-23 Werner Lemberg <wl@gnu.org> |
2005-05-23 Werner Lemberg <wl@gnu.org> |
49 |
|
|