diff options
Diffstat (limited to 'blocksort.c')
-rw-r--r-- | blocksort.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/blocksort.c b/blocksort.c index ec42672..aba3efc 100644 --- a/blocksort.c +++ b/blocksort.c | |||
@@ -8,7 +8,7 @@ | |||
8 | This file is a part of bzip2 and/or libbzip2, a program and | 8 | This file is a part of bzip2 and/or libbzip2, a program and |
9 | library for lossless, block-sorting data compression. | 9 | library for lossless, block-sorting data compression. |
10 | 10 | ||
11 | Copyright (C) 1996-2000 Julian R Seward. All rights reserved. | 11 | Copyright (C) 1996-2002 Julian R Seward. All rights reserved. |
12 | 12 | ||
13 | Redistribution and use in source and binary forms, with or without | 13 | Redistribution and use in source and binary forms, with or without |
14 | modification, are permitted provided that the following conditions | 14 | modification, are permitted provided that the following conditions |
@@ -981,7 +981,14 @@ void mainSort ( UInt32* ptr, | |||
981 | } | 981 | } |
982 | } | 982 | } |
983 | 983 | ||
984 | AssertH ( copyStart[ss]-1 == copyEnd[ss], 1007 ); | 984 | AssertH ( (copyStart[ss]-1 == copyEnd[ss]) |
985 | || | ||
986 | /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1. | ||
987 | Necessity for this case is demonstrated by compressing | ||
988 | a sequence of approximately 48.5 million of character | ||
989 | 251; 1.0.0/1.0.1 will then die here. */ | ||
990 | (copyStart[ss] == 0 && copyEnd[ss] == nblock-1), | ||
991 | 1007 ) | ||
985 | 992 | ||
986 | for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK; | 993 | for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK; |
987 | 994 | ||