From: oetiker Date: Sun, 31 Aug 2008 10:52:49 +0000 (+0000) Subject: use the standart info free function X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=commitdiff_plain;h=a29dab85609367336251746c67f88fd1d1e66d13;hp=d78f30397113a57d55fe74f853ef0c6502b06751 use the standart info free function git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1473 a5681a0c-68f1-0310-ab6d-d61299d08faa --- 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); /* diff --git a/bindings/ruby/main.c b/bindings/ruby/main.c index 0648840..d2a7ace 100644 --- a/bindings/ruby/main.c +++ b/bindings/ruby/main.c @@ -155,6 +155,7 @@ VALUE rb_rrd_infocall( RRD_CHECK_ERROR result = rb_hash_new(); + p = data; while (data) { VALUE key = rb_str_new2(data->key); @@ -171,19 +172,16 @@ VALUE rb_rrd_infocall( break; case RD_I_STR: rb_hash_aset(result, key, rb_str_new2(data->value.u_str)); - rrd_freemem(data->value.u_str); break; case RD_I_BLO: rb_hash_aset(result, key, rb_str_new(data->value.u_blo.ptr, data->value.u_blo.size)); - rrd_freemem(data->value.u_blo.ptr); break; } - p = data; data = data->next; - rrd_freemem(p); } + rrd_info_free(p); return result; }