Package: libfreetype6
Version: 2.3.11-1.1
Severity: normal
Hi,
FT_Render_Glyph() return "invalid outline" at x86_64 architecture.
so I can't display some OpenType fonts correctly.
This bug can be reproduced by the following method:
$ ftview -f 7000 -r 72 78 /usr/share/fonts/opentype/ipafont/ipamp.ttf
- Press "a" turn off anti-alias, some glyph vanish.
- Press "q" for quilt
Execution completed successfully.
Fails = 3
I find patch fixed this bug in package of VineLinux.
# But I can't see this pactch correct behaver...
Regards,
---
Youhei SASAKI <[email protected]>
<[email protected]>
GPG fingerprint:
4096/RSA: 66A4 EA70 4FE2 4055 8D6A C2E6 9394 F354 891D 7E07
1024/DSA: 8BF1 ABFE 00D2 526D 6822 2AC6 13E0 381D AEE9 95F4
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.34 (SMP w/4 CPU cores)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages libfreetype6 depends on:
ii libc6 2.11.1-1 Embedded GNU C Library: Shared lib
ii zlib1g 1:1.2.3.4.dfsg-3 compression library - runtime
libfreetype6 recommends no packages.
libfreetype6 suggests no packages.
-- no debconf information
diff -up freetype-2.3.11/src/raster/ftraster.c.invalid_outline
freetype-2.3.11/src/raster/ftraster.c
--- freetype-2.3.11/src/raster/ftraster.c.invalid_outline 2009-09-13
05:31:16.000000000 +0900
+++ freetype-2.3.11/src/raster/ftraster.c 2009-10-13 19:47:28.000000000
+0900
@@ -301,8 +301,8 @@
typedef unsigned int UInt;
typedef short Short;
typedef unsigned short UShort, *PUShort;
- typedef long Long, *PLong;
- typedef unsigned long ULong;
+ typedef int Long, *PLong;
+ typedef unsigned int ULong;
typedef unsigned char Byte, *PByte;
typedef char Bool;
@@ -310,7 +310,7 @@
typedef union Alignment_
{
- long l;
+ int l;
void* p;
void (*f)(void);
@@ -354,8 +354,8 @@
/* Bit 3: profile orientation (up/down) */
/* Bit 4: is top profile? */
/* Bit 5: is bottom profile? */
- long height; /* profile's height in scanlines */
- long start; /* profile's starting scanline */
+ int height; /* profile's height in scanlines */
+ int start; /* profile's starting scanline */
unsigned countL; /* number of lines to step before this */
/* profile becomes drawable */
@@ -379,7 +379,7 @@
#define AlignProfileSize \
- ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( long ) )
+ ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( int ) )
#ifdef FT_STATIC_RASTER
@@ -545,7 +545,7 @@
typedef struct TRaster_
{
char* buffer;
- long buffer_size;
+ int buffer_size;
void* memory;
PWorker worker;
Byte grays[5];
@@ -3438,7 +3438,7 @@
static void
ft_black_reset( PRaster raster,
char* pool_base,
- long pool_size )
+ int pool_size )
{
if ( raster )
{
@@ -3464,7 +3464,7 @@
static void
ft_black_set_mode( PRaster raster,
- unsigned long mode,
+ unsigned int mode,
const char* palette )
{
#ifdef FT_RASTER_OPTION_ANTI_ALIASING