From a29dab85609367336251746c67f88fd1d1e66d13 Mon Sep 17 00:00:00 2001 From: oetiker Date: Sun, 31 Aug 2008 10:52:49 +0000 Subject: [PATCH] use the standart info free function git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1473 a5681a0c-68f1-0310-ab6d-d61299d08faa --- bindings/perl-shared/RRDs.xs | 10 +++------- bindings/ruby/main.c | 6 ++---- 2 files changed, 5 insertions(+), 11 deletions(-) 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; } -- 2.11.0