Commit 8521ad99b03c24040dbc0387966118ebc81f8933

Werner Lemberg 2016-08-16T13:44:38

[lzw] Optimize last commit. * src/lzw/ftzopen.c (ft_lzwstate_get_code): Move check into conditional clause.

diff --git a/ChangeLog b/ChangeLog
index a22c693..8aaa78e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2016-08-16  Werner Lemberg  <wl@gnu.org>
 
+	[lzw] Optimize last commit.
+
+	* src/lzw/ftzopen.c (ft_lzwstate_get_code): Move check into
+	conditional clause.
+
+2016-08-16  Werner Lemberg  <wl@gnu.org>
+
 	[lzw] Avoid invalid left shift.
 
 	Reported as
diff --git a/src/lzw/ftzopen.c b/src/lzw/ftzopen.c
index ae79fdd..9e66ba9 100644
--- a/src/lzw/ftzopen.c
+++ b/src/lzw/ftzopen.c
@@ -65,16 +65,16 @@
     FT_Int    result;
 
 
-    if ( num_bits > LZW_MAX_BITS )
-      return -1;
-
     if ( state->buf_clear                    ||
          offset >= state->buf_size           ||
          state->free_ent >= state->free_bits )
     {
       if ( state->free_ent >= state->free_bits )
       {
-        state->num_bits  = ++num_bits;
+        state->num_bits = ++num_bits;
+        if ( num_bits > LZW_MAX_BITS )
+          return -1;
+
         state->free_bits = state->num_bits < state->max_bits
                            ? (FT_UInt)( ( 1UL << num_bits ) - 256 )
                            : state->max_free + 1;