… | |
… | |
220 | } |
220 | } |
221 | |
221 | |
222 | static void |
222 | static void |
223 | need_storable (void) |
223 | need_storable (void) |
224 | { |
224 | { |
225 | require_pv (SvPVbyte_nolen (serializer_package)); |
225 | eval_sv (sv_2mortal (Perl_newSVpvf ("require %s", SvPVbyte_nolen (serializer_package))), G_VOID | G_DISCARD); |
226 | |
226 | |
227 | storable_mstore = (CV *)SvREFCNT_inc (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 = (CV *)SvREFCNT_inc (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 | |
… | |
… | |
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 | { |