aboutsummaryrefslogtreecommitdiff
path: root/freetype/src/lzw
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-12-22 14:14:24 +0000
committermarha <marha@users.sourceforge.net>2009-12-22 14:14:24 +0000
commit4284aeba874b9168f2228c59639bec8346a56796 (patch)
treed51ffb4507e0cae24b0875d8bb6b2c037829a684 /freetype/src/lzw
parentc438f190eedc71ee8dd14e14fec660e98d3dc0bf (diff)
parent0695dfb71ca6fe132d15a4d0890e8a868183adf9 (diff)
downloadvcxsrv-4284aeba874b9168f2228c59639bec8346a56796.tar.gz
vcxsrv-4284aeba874b9168f2228c59639bec8346a56796.tar.bz2
vcxsrv-4284aeba874b9168f2228c59639bec8346a56796.zip
svn merge ^/branches/released
Diffstat (limited to 'freetype/src/lzw')
-rw-r--r--freetype/src/lzw/ftlzw.c4
-rw-r--r--freetype/src/lzw/ftzopen.c9
-rw-r--r--freetype/src/lzw/ftzopen.h4
3 files changed, 12 insertions, 5 deletions
diff --git a/freetype/src/lzw/ftlzw.c b/freetype/src/lzw/ftlzw.c
index 72be84ebf..3a0cd3bf8 100644
--- a/freetype/src/lzw/ftlzw.c
+++ b/freetype/src/lzw/ftlzw.c
@@ -42,6 +42,10 @@
#ifdef FT_CONFIG_OPTION_USE_LZW
+#ifdef FT_CONFIG_OPTION_PIC
+#error "lzw code does not support PIC yet"
+#endif
+
#include "ftzopen.h"
diff --git a/freetype/src/lzw/ftzopen.c b/freetype/src/lzw/ftzopen.c
index 4e36e8e16..905eabb08 100644
--- a/freetype/src/lzw/ftzopen.c
+++ b/freetype/src/lzw/ftzopen.c
@@ -8,7 +8,7 @@
/* be used to parse compressed PCF fonts, as found with many X11 server */
/* distributions. */
/* */
-/* Copyright 2005, 2006, 2007 by David Turner. */
+/* Copyright 2005, 2006, 2007, 2009 by David Turner. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
@@ -113,8 +113,8 @@
{
FT_Memory memory = state->memory;
FT_Error error;
- FT_UInt old_size = state->stack_size;
- FT_UInt new_size = old_size;
+ FT_Offset old_size = state->stack_size;
+ FT_Offset new_size = old_size;
new_size = new_size + ( new_size >> 1 ) + 4;
@@ -332,6 +332,9 @@
while ( code >= 256U )
{
+ if ( !state->prefix )
+ goto Eof;
+
FTLZW_STACK_PUSH( state->suffix[code - 256] );
code = state->prefix[code - 256];
}
diff --git a/freetype/src/lzw/ftzopen.h b/freetype/src/lzw/ftzopen.h
index edc03b02e..34b37fd6b 100644
--- a/freetype/src/lzw/ftzopen.h
+++ b/freetype/src/lzw/ftzopen.h
@@ -118,7 +118,7 @@
FT_Int buf_offset;
FT_Int buf_size;
FT_Bool buf_clear;
- FT_Int buf_total;
+ FT_Offset buf_total;
FT_UInt max_bits; /* max code bits, from file header */
FT_Int block_mode; /* block mode flag, from file header */
@@ -137,7 +137,7 @@
FT_Byte* stack; /* character stack */
FT_UInt stack_top;
- FT_UInt stack_size;
+ FT_Offset stack_size;
FT_Byte stack_0[FT_LZW_DEFAULT_STACK_SIZE]; /* minimize heap alloc */
FT_Stream source; /* source stream */