]> git.vpit.fr Git - perl/modules/indirect.git/blobdiff - indirect.xs
Stop leaking the SVs stored in the hints structure.
[perl/modules/indirect.git] / indirect.xs
index 0bfc3cd83679cabaa0d3390c7fa372090c36331f..beec19f7c470035e994c7d746297862b6d539d4a 100644 (file)
@@ -253,7 +253,6 @@ STATIC void indirect_ptable_clone(pTHX_ ptable_ent *ent, void *ud_) {
 
  h2       = PerlMemShared_malloc(sizeof *h2);
  h2->code = indirect_clone(h1->code, ud->owner);
- SvREFCNT_inc(h2->code);
 #if I_WORKAROUND_REQUIRE_PROPAGATION
  h2->require_tag = PTR2IV(indirect_clone(INT2PTR(SV *, h1->require_tag),
                                          ud->owner));
@@ -262,7 +261,6 @@ STATIC void indirect_ptable_clone(pTHX_ ptable_ent *ent, void *ud_) {
 #else  /*  I_HINT_STRUCT */
 
  h2 = indirect_clone(h1, ud->owner);
- SvREFCNT_inc(h2);
 
 #endif /* !I_HINT_STRUCT */
 
@@ -405,8 +403,7 @@ STATIC SV *indirect_hint(pTHX) {
                                        indirect_hash);
 #else
  {
-  SV **val = hv_fetch(GvHV(PL_hintgv), __PACKAGE__, __PACKAGE_LEN__,
-                                                                 indirect_hash);
+  SV **val = hv_fetch(GvHV(PL_hintgv), __PACKAGE__, __PACKAGE_LEN__, 0);
   if (!val)
    return 0;
   hint = *val;