From: Jarkko Hietaniemi Date: Thu, 24 Aug 2000 04:41:30 +0000 (+0000) Subject: Upgrade to Storable 0.7.4, from Raphael Manfredi, X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f0ffaed856a9300733f7d8fd70fef3f296c8d4c9;p=p5sagit%2Fp5-mst-13.2.git Upgrade to Storable 0.7.4, from Raphael Manfredi, plus the typo fix from Peter Prymmer. p4raw-id: //depot/perl@6792 --- diff --git a/ext/Storable/ChangeLog b/ext/Storable/ChangeLog index 3f130a9..db04bf7 100644 --- a/ext/Storable/ChangeLog +++ b/ext/Storable/ChangeLog @@ -1,3 +1,17 @@ +Thu Aug 24 01:02:02 MEST 2000 Raphael Manfredi + +. Description: + + + ANSI-fied most of the code, preparing for Perl core integration. + The next version of Storable will be 0.8, and will be integrated + into the Perl core (development branch). + + Dispatch tables were moved upfront to relieve some compilers, + especially on AIX and Windows platforms. + + Merged 64-bit fixes from perl5-porters. + Mon Aug 14 09:22:04 MEST 2000 Raphael Manfredi . Description: diff --git a/ext/Storable/Makefile.PL b/ext/Storable/Makefile.PL index fc5cc8f..f9e37a5 100644 --- a/ext/Storable/Makefile.PL +++ b/ext/Storable/Makefile.PL @@ -1,4 +1,4 @@ -# $Id: Makefile.PL,v 0.7 2000/08/03 22:04:44 ram Exp $ +# $Id: Makefile.PL,v 0.7.1.1 2000/08/23 22:49:18 ram Exp $ # # Copyright (c) 1995-2000, Raphael Manfredi # @@ -6,6 +6,9 @@ # as specified in the README file that comes with the distribution. # # $Log: Makefile.PL,v $ +# Revision 0.7.1.1 2000/08/23 22:49:18 ram +# patch3: added MAN3PODS +# # Revision 0.7 2000/08/03 22:04:44 ram # Baseline for second beta release. # diff --git a/ext/Storable/Storable.pm b/ext/Storable/Storable.pm index 15d194c..326fbde 100644 --- a/ext/Storable/Storable.pm +++ b/ext/Storable/Storable.pm @@ -1,4 +1,4 @@ -;# $Id: Storable.pm,v 0.7.1.2 2000/08/14 07:18:40 ram Exp $ +;# $Id: Storable.pm,v 0.7.1.3 2000/08/23 22:49:25 ram Exp $ ;# ;# Copyright (c) 1995-2000, Raphael Manfredi ;# @@ -6,6 +6,9 @@ ;# as specified in the README file that comes with the distribution. ;# ;# $Log: Storable.pm,v $ +;# Revision 0.7.1.3 2000/08/23 22:49:25 ram +;# patch3: updated version number +;# ;# Revision 0.7.1.2 2000/08/14 07:18:40 ram ;# patch2: increased version number ;# @@ -32,7 +35,7 @@ package Storable; @ISA = qw(Exporter DynaLoader); use AutoLoader; use vars qw($forgive_me $VERSION); -$VERSION = '0.702'; +$VERSION = '0.703'; *AUTOLOAD = \&AutoLoader::AUTOLOAD; # Grrr... # diff --git a/ext/Storable/Storable.xs b/ext/Storable/Storable.xs index 2283932..197cfe7 100644 --- a/ext/Storable/Storable.xs +++ b/ext/Storable/Storable.xs @@ -3,7 +3,7 @@ */ /* - * $Id: Storable.xs,v 0.7.1.2 2000/08/14 07:19:27 ram Exp $ + * $Id: Storable.xs,v 0.7.1.3 2000/08/23 23:00:41 ram Exp $ * * Copyright (c) 1995-2000, Raphael Manfredi * @@ -11,6 +11,11 @@ * as specified in the README file that comes with the distribution. * * $Log: Storable.xs,v $ + * Revision 0.7.1.3 2000/08/23 23:00:41 ram + * patch3: ANSI-fied most of the code, preparing for Perl core integration + * patch3: dispatch tables moved upfront to relieve some compilers + * patch3: merged 64-bit fixes from perl5-porters + * * Revision 0.7.1.2 2000/08/14 07:19:27 ram * patch2: added a refcnt dec in retrieve_tied_key() * @@ -50,6 +55,9 @@ /* * Earlier versions of perl might be used, we can't assume they have the latest! */ + +#ifndef PERL_VERSION /* For perls < 5.6 */ +#define PERL_VERSION PATCHLEVEL #ifndef newRV_noinc #define newRV_noinc(sv) ((Sv = newRV(sv)), --SvREFCNT(SvRV(Sv)), Sv) #endif @@ -61,6 +69,14 @@ #ifndef HvSHAREKEYS_off #define HvSHAREKEYS_off(hv) /* Ignore */ #endif +#ifndef INT2PTR +#define INT2PTR(t,v) (t)(IV)(v) +#endif +#ifndef AvFILLp /* Older perls (<=5.003) lack AvFILLp */ +#define AvFILLp AvFILL +#endif +typedef double NV; /* Older perls lack the NV type */ +#endif /* PERL_VERSION -- perls < 5.6 */ #ifdef DEBUGME #ifndef DASSERT @@ -645,6 +661,7 @@ static int store_hash(stcxt_t *cxt, HV *hv); static int store_tied(stcxt_t *cxt, SV *sv); static int store_tied_item(stcxt_t *cxt, SV *sv); static int store_other(stcxt_t *cxt, SV *sv); +static int store_blessed(stcxt_t *cxt, SV *sv, int type, HV *pkg); static int (*sv_store[])() = { store_ref, /* svis_REF */ @@ -745,8 +762,7 @@ static SV *(*sv_retrieve[])() = { #define RETRIEVE(c,x) (*(c)->retrieve_vtbl[(x) >= SX_ERROR ? SX_ERROR : (x)]) -static SV *mbuf2sv(); -static int store_blessed(); +static SV *mbuf2sv(void); /*** *** Context management. @@ -757,7 +773,8 @@ static int store_blessed(); * * Called once per "thread" (interpreter) to initialize some global context. */ -static void init_perinterp() { +static void init_perinterp(void) +{ INIT_STCXT; cxt->netorder = 0; /* true if network order used */ @@ -769,11 +786,11 @@ static void init_perinterp() { * * Initialize a new store context for real recursion. */ -static void init_store_context(cxt, f, optype, network_order) -stcxt_t *cxt; -PerlIO *f; -int optype; -int network_order; +static void init_store_context( + stcxt_t *cxt, + PerlIO *f, + int optype, + int network_order) { TRACEME(("init_store_context")); @@ -817,7 +834,7 @@ int network_order; * * It is reported fixed in 5.005, hence the #if. */ -#if PATCHLEVEL < 5 +#if PERL_VERSION >= 5 #define HBUCKETS 4096 /* Buckets for %hseen */ HvMAX(cxt->hseen) = HBUCKETS - 1; /* keys %hseen = $HBUCKETS; */ #endif @@ -832,7 +849,7 @@ int network_order; cxt->hclass = newHV(); /* Where seen classnames are stored */ -#if PATCHLEVEL < 5 +#if PERL_VERSION >= 5 HvMAX(cxt->hclass) = HBUCKETS - 1; /* keys %hclass = $HBUCKETS; */ #endif @@ -853,8 +870,7 @@ int network_order; * * Clean store context by */ -static void clean_store_context(cxt) -stcxt_t *cxt; +static void clean_store_context(stcxt_t *cxt) { HE *he; @@ -1032,7 +1048,7 @@ stcxt_t *cxt; * * Tells whether we're in the middle of a store operation. */ -int is_storing() +int is_storing(void) { dSTCXT; @@ -1044,7 +1060,7 @@ int is_storing() * * Tells whether we're in the middle of a retrieve operation. */ -int is_retrieving() +int is_retrieving(void) { dSTCXT; @@ -1059,7 +1075,7 @@ int is_retrieving() * This is typically out-of-band information that might prove useful * to people wishing to convert native to network order data when used. */ -int last_op_in_netorder() +int last_op_in_netorder(void) { dSTCXT; @@ -1078,10 +1094,10 @@ int last_op_in_netorder() * Returns the routine reference as an SV*, or null if neither the package * nor its ancestors know about the method. */ -static SV *pkg_fetchmeth(cache, pkg, method) -HV *cache; -HV *pkg; -char *method; +static SV *pkg_fetchmeth( + HV *cache, + HV *pkg, + char *method) { GV *gv; SV *sv; @@ -1116,10 +1132,10 @@ char *method; * * Force cached value to be undef: hook ignored even if present. */ -static void pkg_hide(cache, pkg, method) -HV *cache; -HV *pkg; -char *method; +static void pkg_hide( + HV *cache, + HV *pkg, + char *method) { (void) hv_store(cache, HvNAME(pkg), strlen(HvNAME(pkg)), newSVsv(&PL_sv_undef), 0); @@ -1133,10 +1149,10 @@ char *method; * Returns the routine reference as an SV*, or null if the object does not * know about the method. */ -static SV *pkg_can(cache, pkg, method) -HV *cache; -HV *pkg; -char *method; +static SV *pkg_can( + HV *cache, + HV *pkg, + char *method) { SV **svh; SV *sv; @@ -1174,12 +1190,12 @@ char *method; * Call routine as obj->hook(av) in scalar context. * Propagates the single returned value if not called in void context. */ -static SV *scalar_call(obj, hook, cloning, av, flags) -SV *obj; -SV *hook; -int cloning; -AV *av; -I32 flags; +static SV *scalar_call( + SV *obj, + SV *hook, + int cloning, + AV *av, + I32 flags) { dSP; int count; @@ -1229,17 +1245,17 @@ I32 flags; * Call routine obj->hook(cloning) in list context. * Returns the list of returned values in an array. */ -static AV *array_call(obj, hook, cloning) -SV *obj; -SV *hook; -int cloning; +static AV *array_call( + SV *obj, + SV *hook, + int cloning) { dSP; int count; AV *av; int i; - TRACEME(("arrary_call (cloning=%d)", cloning)); + TRACEME(("array_call (cloning=%d)", cloning)); ENTER; SAVETMPS; @@ -1274,11 +1290,11 @@ int cloning; * * Return true if the class was known, false if the ID was just generated. */ -static int known_class(cxt, name, len, classnum) -stcxt_t *cxt; -char *name; /* Class name */ -int len; /* Name length */ -I32 *classnum; +static int known_class( + stcxt_t *cxt, + char *name, /* Class name */ + int len, /* Name length */ + I32 *classnum) { SV **svh; HV *hclass = cxt->hclass; @@ -1318,9 +1334,7 @@ I32 *classnum; * Store a reference. * Layout is SX_REF or SX_OVERLOAD . */ -static int store_ref(cxt, sv) -stcxt_t *cxt; -SV *sv; +static int store_ref(stcxt_t *cxt, SV *sv) { TRACEME(("store_ref (0x%lx)", (unsigned long) sv)); @@ -1354,9 +1368,7 @@ SV *sv; * If integer or double, the layout is SX_INTEGER or SX_DOUBLE . * Small integers (within [-127, +127]) are stored as SX_BYTE . */ -static int store_scalar(cxt, sv) -stcxt_t *cxt; -SV *sv; +static int store_scalar(stcxt_t *cxt, SV *sv) { IV iv; char *pv; @@ -1511,9 +1523,7 @@ SV *sv; * Layout is SX_ARRAY followed by each item, in increading index order. * Each item is stored as . */ -static int store_array(cxt, av) -stcxt_t *cxt; -AV *av; +static int store_array(stcxt_t *cxt, AV *av) { SV **sav; I32 len = av_len(av) + 1; @@ -1558,9 +1568,7 @@ AV *av; * Borrowed from perl source file pp_ctl.c, where it is used by pp_sort. */ static int -sortcmp(a, b) -const void *a; -const void *b; +sortcmp(const void *a, const void *b) { return sv_cmp(*(SV * const *) a, *(SV * const *) b); } @@ -1576,9 +1584,7 @@ const void *b; * Keys are stored as , the section being omitted * if length is 0. */ -static int store_hash(cxt, hv) -stcxt_t *cxt; -HV *hv; +static int store_hash(stcxt_t *cxt, HV *hv) { I32 len = HvKEYS(hv); I32 i; @@ -1735,9 +1741,7 @@ out: * dealing with a tied hash, we store SX_TIED_HASH , where * stands for the serialization of the tied hash. */ -static int store_tied(cxt, sv) -stcxt_t *cxt; -SV *sv; +static int store_tied(stcxt_t *cxt, SV *sv) { MAGIC *mg; int ret = 0; @@ -1805,9 +1809,7 @@ SV *sv; * SX_TIED_KEY * SX_TIED_IDX */ -static int store_tied_item(cxt, sv) -stcxt_t *cxt; -SV *sv; +static int store_tied_item(stcxt_t *cxt, SV *sv) { MAGIC *mg; int ret; @@ -1891,11 +1893,12 @@ SV *sv; * recursion, until we reach flags indicating no recursion, at which point * we know we've resynchronized with a single layout, after . */ -static int store_hook(cxt, sv, type, pkg, hook) -stcxt_t *cxt; -SV *sv; -HV *pkg; -SV *hook; +static int store_hook( + stcxt_t *cxt, + SV *sv, + int type, + HV *pkg, + SV *hook) { I32 len; char *class; @@ -2190,11 +2193,11 @@ SV *hook; * where is the classname index, stored on 0 or 4 bytes depending * on the high-order bit in flag (same encoding as above for ). */ -static int store_blessed(cxt, sv, type, pkg) -stcxt_t *cxt; -SV *sv; -int type; -HV *pkg; +static int store_blessed( + stcxt_t *cxt, + SV *sv, + int type, + HV *pkg) { SV *hook; I32 len; @@ -2271,9 +2274,7 @@ HV *pkg; * true value, then don't croak, just warn, and store a placeholder string * instead. */ -static int store_other(cxt, sv) -stcxt_t *cxt; -SV *sv; +static int store_other(stcxt_t *cxt, SV *sv) { STRLEN len; static char buf[80]; @@ -2320,8 +2321,7 @@ SV *sv; * Returns the type of the SV, identified by an integer. That integer * may then be used to index the dynamic routine dispatch table. */ -static int sv_type(sv) -SV *sv; +static int sv_type(SV *sv) { switch (SvTYPE(sv)) { case SVt_NULL: @@ -2379,9 +2379,7 @@ SV *sv; * object (one for which storage has started -- it may not be over if we have * a self-referenced structure). This data set forms a stored . */ -static int store(cxt, sv) -stcxt_t *cxt; -SV *sv; +static int store(stcxt_t *cxt, SV *sv) { SV **svh; int ret; @@ -2465,8 +2463,7 @@ SV *sv; * Note that no byte ordering info is emitted when is true, since * integers will be emitted in network order in that case. */ -static int magic_write(cxt) -stcxt_t *cxt; +static int magic_write(stcxt_t *cxt) { char buf[256]; /* Enough room for 256 hexa digits */ unsigned char c; @@ -2524,12 +2521,12 @@ stcxt_t *cxt; * It is required to provide a non-null `res' when the operation type is not * dclone() and store() is performed to memory. */ -static int do_store(f, sv, optype, network_order, res) -PerlIO *f; -SV *sv; -int optype; -int network_order; -SV **res; +static int do_store( + PerlIO *f, + SV *sv, + int optype, + int network_order, + SV **res) { dSTCXT; int status; @@ -2641,12 +2638,10 @@ SV **res; * Store the transitive data closure of given object to disk. * Returns 0 on error, a true value otherwise. */ -int pstore(f, sv) -PerlIO *f; -SV *sv; +int pstore(PerlIO *f, SV *sv) { TRACEME(("pstore")); - return do_store(f, sv, 0, FALSE, (SV**)0); + return do_store(f, sv, 0, FALSE, (SV**) 0); } @@ -2656,12 +2651,10 @@ SV *sv; * Same as pstore(), but network order is used for integers and doubles are * emitted as strings. */ -int net_pstore(f, sv) -PerlIO *f; -SV *sv; +int net_pstore(PerlIO *f, SV *sv) { TRACEME(("net_pstore")); - return do_store(f, sv, 0, TRUE, (SV**)0); + return do_store(f, sv, 0, TRUE, (SV**) 0); } /*** @@ -2673,7 +2666,7 @@ SV *sv; * * Build a new SV out of the content of the internal memory buffer. */ -static SV *mbuf2sv() +static SV *mbuf2sv(void) { dSTCXT; @@ -2686,15 +2679,14 @@ static SV *mbuf2sv() * Store the transitive data closure of given object to memory. * Returns undef on error, a scalar value containing the data otherwise. */ -SV *mstore(sv) -SV *sv; +SV *mstore(SV *sv) { dSTCXT; SV *out; TRACEME(("mstore")); - if (!do_store((PerlIO*)0, sv, 0, FALSE, &out)) + if (!do_store((PerlIO*) 0, sv, 0, FALSE, &out)) return &PL_sv_undef; return out; @@ -2706,15 +2698,14 @@ SV *sv; * Same as mstore(), but network order is used for integers and doubles are * emitted as strings. */ -SV *net_mstore(sv) -SV *sv; +SV *net_mstore(SV *sv) { dSTCXT; SV *out; TRACEME(("net_mstore")); - if (!do_store((PerlIO*)0, sv, 0, TRUE, &out)) + if (!do_store((PerlIO*) 0, sv, 0, TRUE, &out)) return &PL_sv_undef; return out; @@ -2730,8 +2721,7 @@ SV *sv; * Return an error via croak, since it is not possible that we get here * under normal conditions, when facing a file produced via pstore(). */ -static SV *retrieve_other(cxt) -stcxt_t *cxt; +static SV *retrieve_other(stcxt_t *cxt) { if ( cxt->ver_major != STORABLE_BIN_MAJOR && @@ -2756,8 +2746,7 @@ stcxt_t *cxt; * Layout is SX_IX_BLESS with SX_IX_BLESS already read. * can be coded on either 1 or 5 bytes. */ -static SV *retrieve_idx_blessed(cxt) -stcxt_t *cxt; +static SV *retrieve_idx_blessed(stcxt_t *cxt) { I32 idx; char *class; @@ -2799,8 +2788,7 @@ stcxt_t *cxt; * Layout is SX_BLESS with SX_BLESS already read. * can be coded on either 1 or 5 bytes. */ -static SV *retrieve_blessed(cxt) -stcxt_t *cxt; +static SV *retrieve_blessed(stcxt_t *cxt) { I32 len; SV *sv; @@ -2856,8 +2844,7 @@ stcxt_t *cxt; * is an unknown amount of serialized objects after the SX_HOOK mark. Until * we reach a marker with the recursion bit cleared. */ -static SV *retrieve_hook(cxt) -stcxt_t *cxt; +static SV *retrieve_hook(stcxt_t *cxt) { I32 len; char buf[LG_BLESS + 1]; /* Avoid malloc() if possible */ @@ -3106,8 +3093,7 @@ stcxt_t *cxt; * Retrieve reference to some other scalar. * Layout is SX_REF , with SX_REF already read. */ -static SV *retrieve_ref(cxt) -stcxt_t *cxt; +static SV *retrieve_ref(stcxt_t *cxt) { SV *rv; SV *sv; @@ -3161,8 +3147,7 @@ stcxt_t *cxt; * Retrieve reference to some other scalar with overloading. * Layout is SX_OVERLOAD , with SX_OVERLOAD already read. */ -static SV *retrieve_overloaded(cxt) -stcxt_t *cxt; +static SV *retrieve_overloaded(stcxt_t *cxt) { SV *rv; SV *sv; @@ -3210,8 +3195,7 @@ stcxt_t *cxt; * Retrieve tied array * Layout is SX_TIED_ARRAY , with SX_TIED_ARRAY already read. */ -static SV *retrieve_tied_array(cxt) -stcxt_t *cxt; +static SV *retrieve_tied_array(stcxt_t *cxt) { SV *tv; SV *sv; @@ -3240,8 +3224,7 @@ stcxt_t *cxt; * Retrieve tied hash * Layout is SX_TIED_HASH , with SX_TIED_HASH already read. */ -static SV *retrieve_tied_hash(cxt) -stcxt_t *cxt; +static SV *retrieve_tied_hash(stcxt_t *cxt) { SV *tv; SV *sv; @@ -3298,8 +3281,7 @@ stcxt_t *cxt; * Retrieve reference to value in a tied hash. * Layout is SX_TIED_KEY , with SX_TIED_KEY already read. */ -static SV *retrieve_tied_key(cxt) -stcxt_t *cxt; +static SV *retrieve_tied_key(stcxt_t *cxt) { SV *tv; SV *sv; @@ -3331,8 +3313,7 @@ stcxt_t *cxt; * Retrieve reference to value in a tied array. * Layout is SX_TIED_IDX , with SX_TIED_IDX already read. */ -static SV *retrieve_tied_idx(cxt) -stcxt_t *cxt; +static SV *retrieve_tied_idx(stcxt_t *cxt) { SV *tv; SV *sv; @@ -3365,8 +3346,7 @@ stcxt_t *cxt; * The scalar is "long" in that is larger than LG_SCALAR so it * was not stored on a single byte. */ -static SV *retrieve_lscalar(cxt) -stcxt_t *cxt; +static SV *retrieve_lscalar(stcxt_t *cxt) { STRLEN len; SV *sv; @@ -3411,8 +3391,7 @@ stcxt_t *cxt; * The scalar is "short" so is single byte. If it is 0, there * is no section. */ -static SV *retrieve_scalar(cxt) -stcxt_t *cxt; +static SV *retrieve_scalar(stcxt_t *cxt) { int len; SV *sv; @@ -3466,8 +3445,7 @@ stcxt_t *cxt; * Retrieve defined integer. * Layout is SX_INTEGER , whith SX_INTEGER already read. */ -static SV *retrieve_integer(cxt) -stcxt_t *cxt; +static SV *retrieve_integer(stcxt_t *cxt) { SV *sv; IV iv; @@ -3490,8 +3468,7 @@ stcxt_t *cxt; * Retrieve defined integer in network order. * Layout is SX_NETINT , whith SX_NETINT already read. */ -static SV *retrieve_netint(cxt) -stcxt_t *cxt; +static SV *retrieve_netint(stcxt_t *cxt) { SV *sv; int iv; @@ -3519,8 +3496,7 @@ stcxt_t *cxt; * Retrieve defined double. * Layout is SX_DOUBLE , whith SX_DOUBLE already read. */ -static SV *retrieve_double(cxt) -stcxt_t *cxt; +static SV *retrieve_double(stcxt_t *cxt) { SV *sv; NV nv; @@ -3543,8 +3519,7 @@ stcxt_t *cxt; * Retrieve defined byte (small integer within the [-128, +127] range). * Layout is SX_BYTE , whith SX_BYTE already read. */ -static SV *retrieve_byte(cxt) -stcxt_t *cxt; +static SV *retrieve_byte(stcxt_t *cxt) { SV *sv; int siv; @@ -3567,8 +3542,7 @@ stcxt_t *cxt; * * Return the undefined value. */ -static SV *retrieve_undef(cxt) -stcxt_t *cxt; +static SV *retrieve_undef(stcxt_t *cxt) { SV* sv; @@ -3585,8 +3559,7 @@ stcxt_t *cxt; * * Return the immortal undefined value. */ -static SV *retrieve_sv_undef(cxt) -stcxt_t *cxt; +static SV *retrieve_sv_undef(stcxt_t *cxt) { SV *sv = &PL_sv_undef; @@ -3601,8 +3574,7 @@ stcxt_t *cxt; * * Return the immortal yes value. */ -static SV *retrieve_sv_yes(cxt) -stcxt_t *cxt; +static SV *retrieve_sv_yes(stcxt_t *cxt) { SV *sv = &PL_sv_yes; @@ -3617,8 +3589,7 @@ stcxt_t *cxt; * * Return the immortal no value. */ -static SV *retrieve_sv_no(cxt) -stcxt_t *cxt; +static SV *retrieve_sv_no(stcxt_t *cxt) { SV *sv = &PL_sv_no; @@ -3637,8 +3608,7 @@ stcxt_t *cxt; * * When we come here, SX_ARRAY has been read already. */ -static SV *retrieve_array(cxt) -stcxt_t *cxt; +static SV *retrieve_array(stcxt_t *cxt) { I32 len; I32 i; @@ -3689,8 +3659,7 @@ stcxt_t *cxt; * * When we come here, SX_HASH has been read already. */ -static SV *retrieve_hash(cxt) -stcxt_t *cxt; +static SV *retrieve_hash(stcxt_t *cxt) { I32 len; I32 size; @@ -3763,8 +3732,7 @@ stcxt_t *cxt; * * When we come here, SX_ARRAY has been read already. */ -static SV *old_retrieve_array(cxt) -stcxt_t *cxt; +static SV *old_retrieve_array(stcxt_t *cxt) { I32 len; I32 i; @@ -3798,9 +3766,9 @@ stcxt_t *cxt; continue; /* av_extend() already filled us with undef */ } if (c != SX_ITEM) - (void) retrieve_other(0); /* Will croak out */ + (void) retrieve_other((stcxt_t *) 0); /* Will croak out */ TRACEME(("(#%d) item", i)); - sv = retrieve(cxt); /* Retrieve item */ + sv = retrieve(cxt); /* Retrieve item */ if (!sv) return (SV *) 0; if (av_store(av, i, sv) == 0) @@ -3824,8 +3792,7 @@ stcxt_t *cxt; * * When we come here, SX_HASH has been read already. */ -static SV *old_retrieve_hash(cxt) -stcxt_t *cxt; +static SV *old_retrieve_hash(stcxt_t *cxt) { I32 len; I32 size; @@ -3874,7 +3841,7 @@ stcxt_t *cxt; if (!sv) return (SV *) 0; } else - (void) retrieve_other(0); /* Will croak out */ + (void) retrieve_other((stcxt_t *) 0); /* Will croak out */ /* * Get key. @@ -3885,7 +3852,7 @@ stcxt_t *cxt; GETMARK(c); if (c != SX_KEY) - (void) retrieve_other(0); /* Will croak out */ + (void) retrieve_other((stcxt_t *) 0); /* Will croak out */ RLEN(size); /* Get key size */ KBUFCHK(size); /* Grow hash key read pool if needed */ if (size) @@ -3921,8 +3888,7 @@ stcxt_t *cxt; * Note that there's no byte ordering info emitted when network order was * used at store time. */ -static SV *magic_check(cxt) -stcxt_t *cxt; +static SV *magic_check(stcxt_t *cxt) { char buf[256]; char byteorder[256]; @@ -4041,8 +4007,7 @@ magic_ok: * root SV (which may be an AV or an HV for what we care). * Returns null if there is a problem. */ -static SV *retrieve(cxt) -stcxt_t *cxt; +static SV *retrieve(stcxt_t *cxt) { int type; SV **svh; @@ -4187,10 +4152,10 @@ first_time: /* Will disappear when support for old format is dropped */ * Retrieve data held in file and return the root object. * Common routine for pretrieve and mretrieve. */ -static SV *do_retrieve(f, in, optype) -PerlIO *f; -SV *in; -int optype; +static SV *do_retrieve( + PerlIO *f, + SV *in, + int optype) { dSTCXT; SV *sv; @@ -4351,8 +4316,7 @@ int optype; * * Retrieve data held in file and return the root object, undef on error. */ -SV *pretrieve(f) -PerlIO *f; +SV *pretrieve(PerlIO *f) { TRACEME(("pretrieve")); return do_retrieve(f, Nullsv, 0); @@ -4363,11 +4327,10 @@ PerlIO *f; * * Retrieve data held in scalar and return the root object, undef on error. */ -SV *mretrieve(sv) -SV *sv; +SV *mretrieve(SV *sv) { TRACEME(("mretrieve")); - return do_retrieve((PerlIO*)0, sv, 0); + return do_retrieve((PerlIO*) 0, sv, 0); } /*** @@ -4383,8 +4346,7 @@ SV *sv; * there. Not that efficient, but it should be faster than doing it from * pure perl anyway. */ -SV *dclone(sv) -SV *sv; +SV *dclone(SV *sv) { dSTCXT; int size; @@ -4406,7 +4368,7 @@ SV *sv; * we need to allocate one because we're deep cloning from a hook. */ - if (!do_store((PerlIO*)0, sv, ST_CLONE, FALSE, (SV**)0)) + if (!do_store((PerlIO*) 0, sv, ST_CLONE, FALSE, (SV**) 0)) return &PL_sv_undef; /* Error during store */ /* @@ -4428,7 +4390,7 @@ SV *sv; TRACEME(("dclone stored %d bytes", size)); MBUF_INIT(size); - out = do_retrieve((PerlIO*)0, Nullsv, ST_CLONE); /* Will free non-root context */ + out = do_retrieve((PerlIO*) 0, Nullsv, ST_CLONE); /* Will free non-root context */ TRACEME(("dclone returns 0x%lx", (unsigned long) out));