From: Jesse Luehrs Date: Sat, 13 Nov 2010 19:16:28 +0000 (-0600) Subject: also don't leak the instance on error X-Git-Tag: 0.14~27 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c86a163084d5a5fd5182c2523a07d52388a4c672;p=gitmo%2FPackage-Stash-XS.git also don't leak the instance on error --- diff --git a/Stash.xs b/Stash.xs index d0a9a70..12931d6 100644 --- a/Stash.xs +++ b/Stash.xs @@ -280,12 +280,14 @@ new(class, package_name) if (!hv_store(instance, "name", 4, SvREFCNT_inc_simple_NN(package_name), 0)) { SvREFCNT_dec(package_name); + SvREFCNT_dec(instance); croak("Couldn't initialize the 'name' key, hv_store failed"); } namespace = gv_stashpv(SvPV_nolen(package_name), GV_ADD); nsref = newRV_inc((SV*)namespace); if (!hv_store(instance, "namespace", 9, nsref, 0)) { SvREFCNT_dec(nsref); + SvREFCNT_dec(instance); croak("Couldn't initialize the 'namespace' key, hv_store failed"); }