perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Torsten Foertsch <torsten.foert...@gmx.net>
Subject possible pnotes refcounting bug ?
Date Thu, 11 Oct 2007 13:18:15 GMT
Hi,

this is a snippet from modperl_util.c:modperl_pnotes()

    if (key) {
        STRLEN len;
        char *k = SvPV(key, len);

        if (val) {
            retval = *hv_store(*pnotes, k, len, SvREFCNT_inc(val), 0);
        }
        else if (hv_exists(*pnotes, k, len)) {
            retval = *hv_fetch(*pnotes, k, len, FALSE);
        }
    }
    else {
        retval = newRV_inc((SV *)*pnotes);
    }

    return retval ? SvREFCNT_inc(retval) : &PL_sv_undef;

I am wondering whether the REFCNT is always right. *pnotes is a HV. If the 
function is called without a key argument the else branch newRV_inc 
increments the REFCNT of the HV, right? Then the return statement in the last 
line increments it again? Am I wrong?

Torsten

Mime
View raw message