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.26 by root, Mon Sep 22 02:15:43 2008 UTC vs.
Revision 1.28 by root, Wed Dec 17 00:04:56 2008 UTC

218 else 218 else
219 return newSVpvn ("", 0); 219 return newSVpvn ("", 0);
220} 220}
221 221
222static void 222static void
223need_storable(void) 223need_storable (void)
224{ 224{
225 load_module (PERL_LOADMOD_NOIMPORT, serializer_package, Nullsv); 225 require_pv (SvPVbyte_nolen (serializer_package));
226 226
227 storable_mstore = GvCV (gv_fetchpv (SvPVbyte_nolen (serializer_mstore ), TRUE, SVt_PVCV)); 227 storable_mstore = (CV *)SvREFCNT_inc (GvCV (gv_fetchpv (SvPVbyte_nolen (serializer_mstore ), TRUE, SVt_PVCV)));
228 storable_mretrieve = GvCV (gv_fetchpv (SvPVbyte_nolen (serializer_mretrieve), TRUE, SVt_PVCV)); 228 storable_mretrieve = (CV *)SvREFCNT_inc (GvCV (gv_fetchpv (SvPVbyte_nolen (serializer_mretrieve), TRUE, SVt_PVCV)));
229} 229}
230 230
231MODULE = Compress::LZF PACKAGE = Compress::LZF 231MODULE = Compress::LZF PACKAGE = Compress::LZF
232 232
233BOOT: 233BOOT:
243 PROTOTYPE: $$$ 243 PROTOTYPE: $$$
244 PPCODE: 244 PPCODE:
245 SvSetSV (serializer_package , package ); 245 SvSetSV (serializer_package , package );
246 SvSetSV (serializer_mstore , mstore ); 246 SvSetSV (serializer_mstore , mstore );
247 SvSetSV (serializer_mretrieve, mretrieve); 247 SvSetSV (serializer_mretrieve, mretrieve);
248 storable_mstore = 248 SvREFCNT_dec (storable_mstore ); storable_mstore = 0;
249 storable_mretrieve = 0; 249 SvREFCNT_dec (storable_mretrieve); storable_mretrieve = 0;
250 250
251void 251void
252compress(data) 252compress(data)
253 SV * data 253 SV * data
254 PROTOTYPE: $ 254 PROTOTYPE: $
300 PUSHMARK (SP); 300 PUSHMARK (SP);
301 XPUSHs (sv); 301 XPUSHs (sv);
302 PUTBACK; 302 PUTBACK;
303 303
304 if (1 != call_sv ((SV *)storable_mstore, G_SCALAR)) 304 if (1 != call_sv ((SV *)storable_mstore, G_SCALAR))
305 croak ("Storable::mstore didn't return a single scalar"); 305 croak ("%s didn't return a single scalar", SvPVbyte_nolen (serializer_mstore));
306 306
307 SPAGAIN; 307 SPAGAIN;
308 308
309 sv = POPs; 309 sv = POPs;
310 pv = SvPV_nolen (sv); 310 pv = SvPV_nolen (sv);
380 PUSHMARK (SP); 380 PUSHMARK (SP);
381 XPUSHs (sv); 381 XPUSHs (sv);
382 PUTBACK; 382 PUTBACK;
383 383
384 if (1 != call_sv ((SV *)storable_mretrieve, G_SCALAR)) 384 if (1 != call_sv ((SV *)storable_mretrieve, G_SCALAR))
385 croak ("Storable::mstore didn't return a single scalar"); 385 croak ("%s didn't return a single scalar", SvPVbyte_nolen (serializer_mretrieve));
386 386
387 SPAGAIN; 387 SPAGAIN;
388 388
389 if (deref) 389 if (deref)
390 SETs (sv_2mortal (SvREFCNT_inc (SvRV (TOPs)))); 390 SETs (sv_2mortal (SvREFCNT_inc (SvRV (TOPs))));
428 PUSHMARK (SP); 428 PUSHMARK (SP);
429 XPUSHs (sv); 429 XPUSHs (sv);
430 PUTBACK; 430 PUTBACK;
431 431
432 if (1 != call_sv ((SV *)storable_mretrieve, G_SCALAR)) 432 if (1 != call_sv ((SV *)storable_mretrieve, G_SCALAR))
433 croak ("Storable::mstore didn't return a single scalar"); 433 croak ("%s didn't return a single scalar", SvPVbyte_nolen (serializer_mretrieve));
434 434
435 SPAGAIN; 435 SPAGAIN;
436 436
437 if (deref) 437 if (deref)
438 { 438 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines