X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Upper.xs;h=cba5d3d048b81e46ad212c51ae6714df5e89d2e5;hb=b608ef9d319ec77f82c32837676ab68cc2e6b4cc;hp=cd093dea83fdb52c8771d94f461f5da65598ff53;hpb=b74d16df98351c4bacb0a1a9d029ce7d7924591f;p=perl%2Fmodules%2FScope-Upper.git diff --git a/Upper.xs b/Upper.xs index cd093de..cba5d3d 100644 --- a/Upper.xs +++ b/Upper.xs @@ -137,7 +137,6 @@ STATIC I32 su_av_key2idx(pTHX_ AV *av, I32 key) { if (SvRMAGICAL(av)) { const MAGIC * const tied_magic = mg_find((SV *) av, PERL_MAGIC_tied); if (tied_magic) { - int adjust_index = 1; SV * const * const negative_indices_glob = hv_fetch(SvSTASH(SvRV(SvTIED_obj((SV *) (av), tied_magic))), NEGATIVE_INDICES_VAR, 16, 0); @@ -248,7 +247,7 @@ STATIC void su_save_helem(pTHX_ HV *hv, SV *keysv, SV *val) { if (val) { /* local $x{$keysv} = $val; */ SvSetMagicSV(*svp, val); } else { /* local $x{$keysv}; delete $x{$keysv}; */ - hv_delete_ent(hv, keysv, G_DISCARD, HeHASH(he)); + (void)hv_delete_ent(hv, keysv, G_DISCARD, HeHASH(he)); } } @@ -296,11 +295,12 @@ STATIC void su_call(pTHX_ void *ud_) { * when the new sub scope will be created in call_sv. */ #if SU_HAS_PERL(5, 10, 0) - if (dieing) + if (dieing) { if (cxstack_ix < cxstack_max) ++cxstack_ix; else cxstack_ix = Perl_cxinc(aTHX); + } #endif call_sv(ud->cb, G_VOID); @@ -421,7 +421,6 @@ STATIC void su_localize(pTHX_ void *ud_) { break; default: gv = (GV *) save_scalar(gv); -maybe_deref: if (deref) /* val != NULL */ val = SvRV(val); break; @@ -492,7 +491,6 @@ STATIC void su_pop(pTHX_ void *ud) { STATIC I32 su_init(pTHX_ I32 cxix, void *ud, I32 size) { #define su_init(L, U, S) su_init(aTHX_ (L), (U), (S)) I32 i, depth = 0, *origin; - I32 cur, last, step; LEAVE; @@ -581,6 +579,8 @@ STATIC void su_unwind(pTHX_ void *ud_) { SV **savesp = MY_CXT.savesp; I32 mark; + PERL_UNUSED_VAR(ud_); + if (savesp) PL_stack_sp = savesp; @@ -629,11 +629,11 @@ STATIC void su_unwind(pTHX_ void *ud_) { if (CxTYPE(cx) == CXt_BLOCK && (C) >= i) { \ --cx; \ if (CxTYPE(cx) == CXt_SUB && cx->blk_sub.cv == GvCV(PL_DBsub)) { \ - (C) -= i + 1; \ - break; \ - } \ - } else \ - break; \ + (C) -= i + 1; \ + break; \ + } \ + } else \ + break; \ } while (++i <= SU_SKIP_DB_MAX); \ } STMT_END @@ -722,12 +722,15 @@ BOOT: newXSproto("Scope::Upper::unwind", XS_Scope__Upper_unwind, file, NULL); } +#if SU_THREADSAFE + void CLONE(...) PROTOTYPE: DISABLE CODE: -#if SU_THREADSAFE + PERL_UNUSED_VAR(items); MY_CXT_CLONE; + #endif /* SU_THREADSAFE */ SV *