Trying again > As always, make regen after application. > > * embed.fnc: Many additions of NN and NULLOK to pointers. I'm down to > 332 pointers yet to be explicitly specified, from about 480 last week. > > * op.c: One consting. > > * pad.c: Replaced "0" with "Nullch" > > * pp_sys.c: Localized some vars in pp_chdir, and removed repeated calls > to GvHVn, a complicated macro. Saves about 100 bytes of object code. > > * regcomp.c: One consting. > > * utf8.c: One consting. > > -- > Andy Lester => [EMAIL PROTECTED] => www.petdance.com => AIM:petdance >
-- Andy Lester => [EMAIL PROTECTED] => www.petdance.com => AIM:petdance
diff -pur bleadperl/embed.fnc bw/trunk/embed.fnc --- bleadperl/embed.fnc 2005-07-15 11:59:36.000000000 -0500 +++ bw/trunk/embed.fnc 2005-07-18 10:30:43.000000000 -0500 @@ -226,13 +226,13 @@ ApR |I32 |dowantarray Ap |void |dump_all Ap |void |dump_eval #if defined(DUMP_FDS) -Ap |void |dump_fds |char* s +Ap |void |dump_fds |NN char* s #endif -Ap |void |dump_form |const GV* gv +Ap |void |dump_form |NN const GV* gv Ap |void |gv_dump |NN GV* gv Ap |void |op_dump |NN const OP* arg -Ap |void |pmop_dump |PMOP* pm -Ap |void |dump_packsubs |const HV* stash +Ap |void |pmop_dump |NULLOK PMOP* pm +Ap |void |dump_packsubs |NN const HV* stash Ap |void |dump_sub |NN const GV* gv Apd |void |fbm_compile |NN SV* sv|U32 flags ApdR |char* |fbm_instr |NN unsigned char* big|NN unsigned char* bigend \ @@ -266,10 +266,10 @@ Apd |GV* |gv_fetchmeth_autoload |HV* sta Apd |GV* |gv_fetchmethod |HV* stash|const char* name Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \ |I32 autoload -Ap |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type -Ap |void |gv_fullname |SV* sv|const GV* gv -Apmb |void |gv_fullname3 |SV* sv|const GV* gv|const char* prefix -Ap |void |gv_fullname4 |SV* sv|const GV* gv|const char* prefix|bool keepmain +Ap |GV* |gv_fetchpv |NN const char* name|I32 add|I32 sv_type +Ap |void |gv_fullname |NN SV* sv|NN const GV* gv +Apmb |void |gv_fullname3 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix +Ap |void |gv_fullname4 |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain Ap |void |gv_init |NN GV* gv|HV* stash|NN const char* name|STRLEN len|int multi Apd |HV* |gv_stashpv |const char* name|I32 create Apd |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create @@ -447,18 +447,18 @@ Afp |SV* |mess |NN const char* pat|... Ap |SV* |vmess |NN const char* pat|NULLOK va_list* args p |void |qerror |SV* err Apd |void |sortsv |SV ** array|size_t num_elts|SVCOMPARE_t cmp -Apd |int |mg_clear |SV* sv -Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen -pd |void |mg_localize |SV* sv|SV* nsv +Apd |int |mg_clear |NN SV* sv +Apd |int |mg_copy |NN SV* sv|NN SV* nsv|const char* key|I32 klen +pd |void |mg_localize |NN SV* sv|NN SV* nsv ApdR |MAGIC* |mg_find |NULLOK const SV* sv|int type -Apd |int |mg_free |SV* sv -Apd |int |mg_get |SV* sv -Apd |U32 |mg_length |SV* sv -Apd |void |mg_magical |SV* sv -Apd |int |mg_set |SV* sv -Ap |I32 |mg_size |SV* sv -Ap |void |mini_mktime |struct tm *pm -p |OP* |mod |OP* o|I32 type +Apd |int |mg_free |NN SV* sv +Apd |int |mg_get |NN SV* sv +Apd |U32 |mg_length |NN SV* sv +Apd |void |mg_magical |NN SV* sv +Apd |int |mg_set |NN SV* sv +Ap |I32 |mg_size |NN SV* sv +Ap |void |mini_mktime |NN struct tm *pm +p |OP* |mod |NULLOK OP* o|I32 type p |int |mode_from_discipline|SV* discp Ap |char* |moreswitches |char* s p |OP* |my |NN OP* o @@ -499,7 +499,7 @@ Apa |OP* |newANONHASH |OP* o Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block Apa |OP* |newASSIGNOP |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right Apa |OP* |newCONDOP |I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop -Apd |CV* |newCONSTSUB |NULLOK HV* stash|NN const char* name|NULLOK SV* sv +Apd |CV* |newCONSTSUB |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv Ap |void |newFORM |I32 floor|NULLOK OP* o|NULLOK OP* block Apa |OP* |newFOROP |I32 flags|char* label|line_t forline \ |OP* sclr|OP* expr|OP*block|OP*cont @@ -513,7 +513,7 @@ Apa |OP* |newRANGE |I32 flags|OP* left|O Apa |OP* |newSLICEOP |I32 flags|OP* subscript|OP* listop Apa |OP* |newSTATEOP |I32 flags|char* label|OP* o Ap |CV* |newSUB |I32 floor|OP* o|OP* proto|OP* block -Apd |CV* |newXS |NN const char* name|XSUBADDR_t f|NN const char* filename +Apd |CV* |newXS |NN const char* name|NN XSUBADDR_t f|NN const char* filename Apda |AV* |newAV Apa |OP* |newAVREF |NN OP* o Apa |OP* |newBINOP |I32 type|I32 flags|OP* first|OP* last @@ -613,14 +613,14 @@ p |OP* |pmtrans |NN OP* o|NN OP* expr|OP Ap |void |pop_scope p |OP* |prepend_elem |I32 optype|OP* head|OP* tail Ap |void |push_scope -p |OP* |ref |OP* o|I32 type -p |OP* |refkids |OP* o|I32 type +p |OP* |ref |NULLOK OP* o|I32 type +p |OP* |refkids |NULLOK OP* o|I32 type Ap |void |regdump |NN regexp* r Ap |SV* |regclass_swash |const struct regnode *n|bool doinit|SV **listsvp|SV **altsvp Ap |I32 |pregexec |NN regexp* prog|NN char* stringarg \ |NN char* strend|NN char* strbeg|I32 minend \ |NN SV* screamer|U32 nosave -Ap |void |pregfree |struct regexp* r +Ap |void |pregfree |NULLOK struct regexp* r Ap |regexp*|pregcomp |NN char* exp|NN char* xend|NN PMOP* pm Ap |char* |re_intuit_start|regexp* prog|SV* sv|char* strpos \ |char* strend|U32 flags \ @@ -636,7 +636,7 @@ ApP |char* |rninstr |NN const char* big| |NN const char* little|NN const char* lend Ap |Sighandler_t|rsignal |int i|Sighandler_t t p |int |rsignal_restore|int i|Sigsave_t* t -p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2 +p |int |rsignal_save |int i|Sighandler_t t1|NN Sigsave_t* t2 Ap |Sighandler_t|rsignal_state|int i p |void |rxres_free |NN void** rsp p |void |rxres_restore |NN void** rsp|NN REGEXP* prx @@ -650,24 +650,24 @@ Apda |char* |savesharedpv |const char* p Apda |char* |savesvpv |NN SV* sv Ap |void |savestack_grow Ap |void |savestack_grow_cnt |I32 need -Ap |void |save_aelem |const AV* av|I32 idx|SV **sptr +Ap |void |save_aelem |NN const AV* av|I32 idx|NN SV **sptr Ap |I32 |save_alloc |I32 size|I32 pad -Ap |void |save_aptr |AV** aptr -Ap |AV* |save_ary |GV* gv -Ap |void |save_bool |bool* boolp -Ap |void |save_clearsv |SV** svp -Ap |void |save_delete |HV* hv|char* key|I32 klen +Ap |void |save_aptr |NN AV** aptr +Ap |AV* |save_ary |NN GV* gv +Ap |void |save_bool |NN bool* boolp +Ap |void |save_clearsv |NN SV** svp +Ap |void |save_delete |NN HV* hv|NN char* key|I32 klen Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|void* p Ap |void |save_freesv |SV* sv p |void |save_freeop |OP* o Ap |void |save_freepv |char* pv -Ap |void |save_generic_svref|SV** sptr -Ap |void |save_generic_pvref|char** str -Ap |void |save_shared_pvref|char** str +Ap |void |save_generic_svref|NN SV** sptr +Ap |void |save_generic_pvref|NN char** str +Ap |void |save_shared_pvref|NN char** str Ap |void |save_gp |NN GV* gv|I32 empty Ap |HV* |save_hash |NN GV* gv -Ap |void |save_helem |HV* hv|SV *key|SV **sptr +Ap |void |save_helem |NN HV* hv|NN SV *key|NN SV **sptr Apr |void |save_hints Ap |void |save_hptr |NN HV** hptr Ap |void |save_I16 |NN I16* intp @@ -820,11 +820,12 @@ Ap |SV* |swash_init |NN const char* pkg| Ap |UV |swash_fetch |NN SV *sv|NN const U8 *ptr|bool do_utf8 Ap |void |taint_env Ap |void |taint_proper |NULLOK const char* f|NN const char* s -Apd |UV |to_utf8_case |NN const U8 *p|NN U8* ustrp|STRLEN *lenp|SV **swash|const char *normal|const char *special -Apd |UV |to_utf8_lower |NN const U8 *p|NN U8* ustrp|STRLEN *lenp -Apd |UV |to_utf8_upper |NN const U8 *p|NN U8* ustrp|STRLEN *lenp -Apd |UV |to_utf8_title |NN const U8 *p|NN U8* ustrp|STRLEN *lenp -Apd |UV |to_utf8_fold |NN const U8 *p|NN U8* ustrp|STRLEN *lenp +Apd |UV |to_utf8_case |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \ + |NN SV **swashp|const char *normal|const char *special +Apd |UV |to_utf8_lower |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apd |UV |to_utf8_upper |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apd |UV |to_utf8_title |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apd |UV |to_utf8_fold |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp #if defined(UNLINK_ALL_VERSIONS) Ap |I32 |unlnk |NN char* f #endif @@ -1196,7 +1197,7 @@ Es |void |cl_and |NN struct regnode_cha Es |void |cl_or |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl \ |NN const struct regnode_charclass_class *or_with Es |I32 |study_chunk |NN struct RExC_state_t* pRExC_state|NN regnode **scanp \ - |NN I32 *deltap|NN regnode *last|NN struct scan_data_t *data \ + |NN I32 *deltap|NN regnode *last|NULLOK struct scan_data_t *data \ |U32 flags|U32 depth Es |I32 |add_data |NN struct RExC_state_t*|I32 n|NN const char *s rs |void |re_croak2 |NN const char* pat1|NN const char* pat2|... diff -pur bleadperl/op.c bw/trunk/op.c --- bleadperl/op.c 2005-07-15 11:59:36.000000000 -0500 +++ bw/trunk/op.c 2005-07-16 21:19:24.000000000 -0500 @@ -4630,7 +4630,7 @@ Used by C<xsubpp> to hook up XSUBs as Pe CV * Perl_newXS(pTHX_ const char *name, XSUBADDR_t subaddr, const char *filename) { - GV *gv = gv_fetchpv(name ? name : + GV * const gv = gv_fetchpv(name ? name : (PL_curstash ? "__ANON__" : "__ANON__::__ANON__"), GV_ADDMULTI, SVt_PVCV); register CV *cv; diff -pur bleadperl/pad.c bw/trunk/pad.c --- bleadperl/pad.c 2005-07-13 12:05:56.000000000 -0500 +++ bw/trunk/pad.c 2005-07-16 21:16:52.000000000 -0500 @@ -1505,7 +1505,7 @@ Perl_cv_clone(pTHX_ CV *proto) SV* const_sv = op_const_sv(CvSTART(cv), cv); if (const_sv) { SvREFCNT_dec(cv); - cv = newCONSTSUB(CvSTASH(proto), 0, const_sv); + cv = newCONSTSUB(CvSTASH(proto), Nullch, const_sv); } else { CvCONST_off(cv); diff -pur bleadperl/pp_sys.c bw/trunk/pp_sys.c --- bleadperl/pp_sys.c 2005-07-16 03:35:08.000000000 -0500 +++ bw/trunk/pp_sys.c 2005-07-16 21:06:55.000000000 -0500 @@ -3543,11 +3543,10 @@ PP(pp_chdir) { dSP; dTARGET; const char *tmps = 0; - GV *gv = 0; - SV **svp; + GV *gv = NULL; if( MAXARG == 1 ) { - SV *sv = POPs; + SV * const sv = POPs; if (SvTYPE(sv) == SVt_PVGV) { gv = (GV*)sv; } @@ -3560,10 +3559,13 @@ PP(pp_chdir) } if( !gv && (!tmps || !*tmps) ) { - if ( (svp = hv_fetch(GvHVn(PL_envgv), "HOME", 4, FALSE)) - || (svp = hv_fetch(GvHVn(PL_envgv), "LOGDIR", 6, FALSE)) + HV * const table = GvHVn(PL_envgv); + SV **svp; + + if ( (svp = hv_fetch(table, "HOME", 4, FALSE)) + || (svp = hv_fetch(table, "LOGDIR", 6, FALSE)) #ifdef VMS - || (svp = hv_fetch(GvHVn(PL_envgv), "SYS$LOGIN", 9, FALSE)) + || (svp = hv_fetch(table, "SYS$LOGIN", 9, FALSE)) #endif ) { @@ -3581,7 +3583,7 @@ PP(pp_chdir) TAINT_PROPER("chdir"); if (gv) { #ifdef HAS_FCHDIR - IO* io = GvIO(gv); + IO* const io = GvIO(gv); if (io) { if (IoIFP(io)) { PUSHi(fchdir(PerlIO_fileno(IoIFP(io))) >= 0); diff -pur bleadperl/regcomp.c bw/trunk/regcomp.c --- bleadperl/regcomp.c 2005-07-15 11:59:36.000000000 -0500 +++ bw/trunk/regcomp.c 2005-07-16 21:15:29.000000000 -0500 @@ -1540,7 +1540,8 @@ S_make_trie(pTHX_ RExC_state_t *pRExC_st STATIC I32 -S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, I32 *deltap, regnode *last, scan_data_t *data, U32 flags, U32 depth) +S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, I32 *deltap, + regnode *last, scan_data_t *data, U32 flags, U32 depth) /* scanp: Start here (read-write). */ /* deltap: Write maxlen-minlen here. */ /* last: Stop before this one. */ @@ -2001,7 +2002,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_ } sv_catpvn(data->last_found, STRING(scan), STR_LEN(scan)); { - SV * sv = data->last_found; + SV * const sv = data->last_found; MAGIC * const mg = SvUTF8(sv) && SvMAGICAL(sv) ? mg_find(sv, PERL_MAGIC_utf8) : NULL; if (mg && mg->mg_len >= 0) diff -pur bleadperl/utf8.c bw/trunk/utf8.c --- bleadperl/utf8.c 2005-07-15 11:59:36.000000000 -0500 +++ bw/trunk/utf8.c 2005-07-16 21:43:19.000000000 -0500 @@ -1451,7 +1451,8 @@ The "normal" is a string like "ToLower" =cut */ UV -Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp, const char *normal, const char *special) +Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, + SV **swashp, const char *normal, const char *special) { U8 tmpbuf[UTF8_MAXBYTES_CASE+1]; STRLEN len = 0; @@ -1625,7 +1626,7 @@ Perl_swash_init(pTHX_ const char* pkg, c { dVAR; SV* retval; - SV* tokenbufsv = sv_newmortal(); + SV* const tokenbufsv = sv_newmortal(); dSP; const size_t pkg_len = strlen(pkg); const size_t name_len = strlen(name);