From c86a163084d5a5fd5182c2523a07d52388a4c672 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sat, 13 Nov 2010 13:16:28 -0600 Subject: also don't leak the instance on error --- Stash.xs | 2 ++ 1 file changed, 2 insertions(+) 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"); } -- cgit v1.2.3-54-g00ecf