From: Tobias Oetiker Date: Sun, 31 Aug 2008 10:52:49 +0000 (+0000) Subject: use the standart info free function X-Git-Tag: 1.3.2~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4ff1499d7d1d501c82092ecf0affb9a3989d7ecc;p=thirdparty%2Frrdtool-1.x.git 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 bf9a6123..25d44a51 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 0648840e..d2a7ace0 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; }