X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=bindings%2Fperl-shared%2FRRDs.xs;fp=bindings%2Fperl-shared%2FRRDs.xs;h=25d44a51c555aa30312608e803fd4c121998dfc8;hb=a29dab85609367336251746c67f88fd1d1e66d13;hp=bf9a6123ec6f6e23ab9e75c68a1dad80e9f13e4e;hpb=d78f30397113a57d55fe74f853ef0c6502b06751;p=rrdtool.git diff --git a/bindings/perl-shared/RRDs.xs b/bindings/perl-shared/RRDs.xs index bf9a612..25d44a5 100644 --- a/bindings/perl-shared/RRDs.xs +++ b/bindings/perl-shared/RRDs.xs @@ -78,8 +78,8 @@ extern "C" { free(argv); \ if (rrd_test_error()) XSRETURN_UNDEF; \ hash = newHV(); \ + save=data; \ while (data) { \ - save=data; \ /* the newSV will get copied by hv so we create it as a mortal \ to make sure it does not keep hanging round after the fact */ \ switch (data->type) { \ @@ -97,18 +97,14 @@ extern "C" { break; \ case RD_I_STR: \ hvs(newSVpv(data->value.u_str,0)); \ - rrd_freemem(data->value.u_str); \ break; \ case RD_I_BLO: \ hvs(newSVpv(data->value.u_blo.ptr,data->value.u_blo.size)); \ - rrd_freemem(data->value.u_blo.ptr); \ break; \ } \ - rrd_freemem(data->key); \ data = data->next; \ - rrd_freemem(save); \ - } \ - rrd_freemem(data); \ + } \ + rrd_info_free(save); \ RETVAL = newRV_noinc((SV*)hash); /*