diff --git a/src/perl/PMDA/PMDA.xs b/src/perl/PMDA/PMDA.xs index a6d16b2..7eaaff1 100644 --- a/src/perl/PMDA/PMDA.xs +++ b/src/perl/PMDA/PMDA.xs @@ -1000,8 +1000,7 @@ add_indom(self,indom,insts,help,longhelp) sts = update_indom(insts, p->it_indom, &p->it_set); if (sts < 0) XSRETURN_UNDEF; - if (p->it_set) - p->it_numinst = sts; + p->it_numinst = sts; RETVAL = itab_size++; /* used in calls to replace_indom() */ hash = pmInDomStr(indom); @@ -1029,13 +1028,14 @@ replace_indom(self,index,insts) else { p = indomtab + index; /* was this indom previously setup via an array? */ - if (p->it_set) + if (p->it_set) { release_list_indom(p->it_set, p->it_numinst); + p->it_numinst = 0; + } sts = update_indom(insts, p->it_indom, &p->it_set); if (sts < 0) XSRETURN_UNDEF; - if (p->it_set) - p->it_numinst = sts; + p->it_numinst = sts; RETVAL = sts; } OUTPUT: