X-Git-Url: https://git.octo.it/?a=blobdiff_plain;ds=sidebyside;f=bindings%2Fperl-shared%2FRRDs.xs;h=029b3beeebe0a3de3190e29d5e0f8419ac6c7ad3;hb=88f9f8473259baa892d8819b7cf374c0e561103f;hp=bf9a6123ec6f6e23ab9e75c68a1dad80e9f13e4e;hpb=e8035ef0550f1a293292aa05f7422da8fbff6298;p=rrdtool.git diff --git a/bindings/perl-shared/RRDs.xs b/bindings/perl-shared/RRDs.xs index bf9a612..029b3be 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); /* @@ -448,3 +444,13 @@ rrd_restore(...) OUTPUT: RETVAL +int +rrd_flushcached(...) + PROTOTYPE: @ + PREINIT: + int i; + char **argv; + CODE: + rrdcode(rrd_flushcached); + OUTPUT: + RETVAL