ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Compress-LZF/LZF.xs
(Generate patch)

Comparing Compress-LZF/LZF.xs (file contents):
Revision 1.12 by root, Fri May 17 18:59:24 2002 UTC vs.
Revision 1.13 by root, Sat May 18 21:48:39 2002 UTC

162 usize = (usize << 6) | (*src++ & 0x3f); 162 usize = (usize << 6) | (*src++ & 0x3f);
163 usize = (usize << 6) | (*src++ & 0x3f); 163 usize = (usize << 6) | (*src++ & 0x3f);
164 usize = (usize << 6) | (*src++ & 0x3f); 164 usize = (usize << 6) | (*src++ & 0x3f);
165 } 165 }
166 else 166 else
167 croak ("compressed data corrupted"); 167 croak ("compressed data corrupted (invalid length)");
168 168
169 ret = NEWSV (0, usize); 169 ret = NEWSV (0, usize);
170 SvPOK_only (ret); 170 SvPOK_only (ret);
171 dst = SvPVX (ret); 171 dst = SvPVX (ret);
172 172
173 if (lzf_decompress (src, csize, dst, usize) != usize) 173 if (lzf_decompress (src, csize, dst, usize) != usize)
174 croak ("compressed data corrupted", csize, skip, usize); 174 croak ("compressed data corrupted (size mismatch)", csize, skip, usize);
175 } 175 }
176 else 176 else
177 { 177 {
178 usize = csize - 1; 178 usize = csize - 1;
179 ret = NEWSV (0, usize); 179 ret = NEWSV (0, usize);
266 if (ix) /* compress */ 266 if (ix) /* compress */
267 sv = sv_2mortal (compress_sv (sv, deref ? MAGIC_CR_deref : MAGIC_CR, -1)); 267 sv = sv_2mortal (compress_sv (sv, deref ? MAGIC_CR_deref : MAGIC_CR, -1));
268 268
269 XPUSHs (sv); 269 XPUSHs (sv);
270 } 270 }
271 else if (SvTYPE (sv) == SVt_PV && IN_RANGE (SvPVX (sv)[0], MAGIC_LO, MAGIC_HI)) 271 else if (SvPOKp (sv) && IN_RANGE (SvPVX (sv)[0], MAGIC_LO, MAGIC_HI))
272 XPUSHs (sv_2mortal (compress_sv (sv, MAGIC_C, MAGIC_U))); /* need to prefix only */ 272 XPUSHs (sv_2mortal (compress_sv (sv, MAGIC_C, MAGIC_U))); /* need to prefix only */
273 else if (ix == 2) /* compress always */ 273 else if (ix == 2) /* compress always */
274 XPUSHs (sv_2mortal (compress_sv (sv, MAGIC_C, -1))); 274 XPUSHs (sv_2mortal (compress_sv (sv, MAGIC_C, -1)));
275 else /* don't compress */ 275 else /* don't compress */
276 XPUSHs (sv_2mortal (SvREFCNT_inc (sv))); 276 XPUSHs (sv_2mortal (SvREFCNT_inc (sv)));

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines