X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=bindings%2Fperl-shared%2FRRDs.xs;h=25d44a51c555aa30312608e803fd4c121998dfc8;hb=d4110e29da41ce702bcc3327e86768c6f266915e;hp=b2a70d951b8b2174abdb2d50a9f4932a9955a199;hpb=8d278938aef5adefa2915dd446abc028cc764550;p=rrdtool.git diff --git a/bindings/perl-shared/RRDs.xs b/bindings/perl-shared/RRDs.xs index b2a70d9..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); /* @@ -203,7 +199,7 @@ rrd_tune(...) RETVAL -void +SV * rrd_graph(...) PROTOTYPE: @ PREINIT: @@ -249,7 +245,7 @@ rrd_graph(...) PUSHs(sv_2mortal(newSViv(xsize))); PUSHs(sv_2mortal(newSViv(ysize))); -void +SV * rrd_fetch(...) PROTOTYPE: @ PREINIT: @@ -302,7 +298,7 @@ rrd_fetch(...) PUSHs(sv_2mortal(newRV_noinc((SV*)names))); PUSHs(sv_2mortal(newRV_noinc((SV*)retar))); -void +SV * rrd_times(start, end) char *start char *end