Browse Source

* Fix bug ID #26827

git-svn-id: trunk@31953 -
michael 9 years ago
parent
commit
8751e8bb3e
1 changed files with 9 additions and 0 deletions
  1. 9 0
      packages/paszlib/src/infcodes.pas

+ 9 - 0
packages/paszlib/src/infcodes.pas

@@ -150,6 +150,15 @@ begin
           z.next_in := p;
           s.write := q;
           inflate_codes := inflate_flush(s,z,r);
+
+          //if this is the last block, there are no bytes left in stream and the block end code follows, finish processing this block
+          if s.last then
+          begin
+            t := c^.sub.code.tree;
+            if t^.exop and 32 <> 0 then
+              break;
+          end;
+
           exit;
         end;
         dec(n);