@@ -69,7 +69,7 @@ static void deinterleave_buffer(void *dest, const void *src,
6969 dest8 [i * wordsize + j ] = src8 [j * (n / wordsize ) + i ];
7070}
7171
72- static void add_padding (void * dest , const void * src , size_t total ,
72+ static void add_padding (void * dest , const void * src , size_t src_length ,
7373 size_t line_size , size_t padding_size ,
7474 int pixel_size , int pp )
7575{
@@ -80,8 +80,8 @@ static void add_padding(void *dest, const void *src, size_t total,
8080 pixel = zero_pixel ;
8181 j = 0 ;
8282 i = 0 ;
83- while (i < total ) {
84- ls = MIN (total - i , line_size );
83+ while (i < src_length ) {
84+ ls = MIN (src_length - i , line_size );
8585 memcpy ((char * )dest + j , (char * )src + i , ls );
8686 j += ls ;
8787 i += ls ;
@@ -94,15 +94,15 @@ static void add_padding(void *dest, const void *src, size_t total,
9494 }
9595}
9696
97- static void remove_padding (void * buf , size_t total ,
97+ static void remove_padding (void * buf , size_t buf_length ,
9898 size_t line_size , size_t padding_size ,
9999 int pixel_size )
100100{
101101 size_t i , j ;
102102 size_t padded_line_size = line_size + padding_size ;
103103
104104 i = line_size ;
105- for (j = padded_line_size ; j < total ; j += padded_line_size ) {
105+ for (j = padded_line_size ; j < buf_length ; j += padded_line_size ) {
106106 memmove ((char * )buf + i , (char * )buf + j , line_size );
107107 i += line_size ;
108108 }
@@ -121,7 +121,6 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
121121 size_t scanlines ;
122122 size_t padbuf_size ;
123123 int pixel_size ;
124- int pad_scanline ;
125124 int interleave ;
126125
127126 strm .block_size = param -> pixels_per_block ;
@@ -134,7 +133,6 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
134133 padbuf = 0 ;
135134
136135 interleave = param -> bits_per_pixel == 32 || param -> bits_per_pixel == 64 ;
137- pad_scanline = param -> pixels_per_scanline % param -> pixels_per_block ;
138136 if (interleave ) {
139137 strm .bits_per_sample = 8 ;
140138 buf = malloc (sourceLen );
@@ -150,30 +148,25 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
150148
151149 pixel_size = bits_to_bytes (strm .bits_per_sample );
152150
153- if (pad_scanline ) {
154- scanlines = (sourceLen / pixel_size + param -> pixels_per_scanline - 1 )
155- / param -> pixels_per_scanline ;
156- padbuf_size = strm .rsi * strm .block_size * pixel_size * scanlines ;
157- padbuf = malloc (padbuf_size );
158- if (padbuf == NULL ) {
159- status = SZ_MEM_ERROR ;
160- goto CLEANUP ;
161- }
151+ scanlines = (sourceLen / pixel_size + param -> pixels_per_scanline - 1 )
152+ / param -> pixels_per_scanline ;
153+ padbuf_size = strm .rsi * strm .block_size * pixel_size * scanlines ;
154+ padbuf = malloc (padbuf_size );
155+ if (padbuf == NULL ) {
156+ status = SZ_MEM_ERROR ;
157+ goto CLEANUP ;
158+ }
162159
163- padding_size =
164- (strm .rsi * strm .block_size - param -> pixels_per_scanline )
165- * pixel_size ;
160+ padding_size =
161+ (strm .rsi * strm .block_size - param -> pixels_per_scanline )
162+ * pixel_size ;
166163
167- add_padding (padbuf , buf , sourceLen ,
168- param -> pixels_per_scanline * pixel_size ,
169- padding_size , pixel_size ,
170- strm .flags & AEC_DATA_PREPROCESS );
171- strm .next_in = padbuf ;
172- strm .avail_in = padbuf_size ;
173- } else {
174- strm .next_in = buf ;
175- strm .avail_in = sourceLen ;
176- }
164+ add_padding (padbuf , buf , sourceLen ,
165+ param -> pixels_per_scanline * pixel_size ,
166+ padding_size , pixel_size ,
167+ strm .flags & AEC_DATA_PREPROCESS );
168+ strm .next_in = padbuf ;
169+ strm .avail_in = padbuf_size ;
177170
178171 aec_status = aec_buffer_encode (& strm );
179172 if (aec_status == AEC_STREAM_ERROR )
@@ -183,7 +176,7 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
183176 * destLen = strm .total_out ;
184177
185178CLEANUP :
186- if (pad_scanline && padbuf )
179+ if (padbuf )
187180 free (padbuf );
188181 if (interleave && buf )
189182 free (buf );
0 commit comments