Code

Imported upstream version 1.3.8.
[pkg-rrdtool.git] / bindings / ruby / main.c
index 40ed33a6e1feca87eab3c3dc22caaa1827742159..bc314f6c5cfc3cc0217a37752773200255556ff0 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: main.c 1411 2008-06-08 16:47:22Z oetiker $
+/* $Id: main.c 1791 2009-04-14 13:55:29Z oetiker $
  * Substantial penalty for early withdrawal.
  */
 
@@ -32,7 +32,7 @@ string_arr string_arr_new(
     int       i;
 
     Check_Type(rb_strings, T_ARRAY);
-    a.len = RARRAY(rb_strings)->len + 1;
+    a.len = RARRAY_LEN(rb_strings) + 1;
 
     a.strings = malloc(a.len * sizeof(char *));
     a.strings[0] = "dummy"; /* first element is a dummy element */
@@ -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;
 }
 
@@ -191,21 +189,21 @@ VALUE rb_rrd_info(
     VALUE self,
     VALUE args)
 {
-    return rrd_infocall(rrd_info, args);
+    return rb_rrd_infocall(rrd_info, args);
 }
 
 VALUE rb_rrd_updatev(
     VALUE self,
     VALUE args)
 {
-    return rrd_infocall(rrd_update_v, args);
+    return rb_rrd_infocall(rrd_update_v, args);
 }
 
 VALUE rb_rrd_graphv(
     VALUE self,
     VALUE args)
 {
-    return rrd_infocall(rrd_graph_v, args);
+    return rb_rrd_infocall(rrd_graph_v, args);
 }
 
 
@@ -302,7 +300,7 @@ VALUE rb_rrd_last(
     string_arr_delete(a);
 
     RRD_CHECK_ERROR
-        return rb_funcall(rb_cTime, rb_intern("at"), 1, INT2FIX(last));
+        return rb_funcall(rb_cTime, rb_intern("at"), 1, UINT2NUM(last));
 }
 
 void Init_RRD(