--- rubyrrdtool.c.orig 2012-02-29 10:43:56.000000000 +0100 +++ rubyrrdtool.c 2012-02-29 10:46:06.992914897 +0100 @@ -94,7 +94,7 @@ Check_Type(strs, T_ARRAY); /* set the array length */ - a.len = RARRAY(strs)->len; + a.len = RARRAY_LEN(strs); if (name_f) { a.len++; } if (dummy_f) { a.len++; } a.strs = ALLOC_N(char*, a.len); @@ -115,7 +115,7 @@ /* add the rrdname if needed */ if (name_f) { - a.strs[i] = strdup(STR2CSTR(rrd)); + a.strs[i] = strdup(StringValueCStr(rrd)); i++; } @@ -302,7 +302,7 @@ pdp_step = NUM2LONG(ostep); last_up = (time_t)NUM2LONG(update); #ifdef R_RRD_DBG - snprintf(buf, NUM_BUF_SZ, "n=[%s] : step=%lu : up=%ld", STR2CSTR(rrd), + snprintf(buf, NUM_BUF_SZ, "n=[%s] : step=%lu : up=%ld", StringValueCStr(rrd), pdp_step, (long int)last_up); buf[NUM_BUF_SZ] = 0; _dbug(R_RRD_DEBUG_SIM, buf); @@ -313,7 +313,7 @@ #endif /* now run the command */ - result = rrd_create_r(STR2CSTR(rrd), pdp_step, last_up, a.len, a.strs); + result = rrd_create_r(StringValueCStr(rrd), pdp_step, last_up, a.len, a.strs); #ifdef R_RRD_DBG _dbug(R_RRD_DEBUG_SIM, "cleanup"); @@ -368,7 +368,7 @@ /* type checking */ Check_Type(output, T_STRING); - ret = rrd_dump_r(STR2CSTR(rrd), STR2CSTR(output)); + ret = rrd_dump_r(StringValueCStr(rrd), StringValueCStr(output)); if (ret == -1) { RRD_RAISE; rval = Qnil; @@ -413,7 +413,7 @@ idx = NUM2INT(orra_idx); } - when = rrd_first_r(STR2CSTR(rrd), idx); + when = rrd_first_r(StringValueCStr(rrd), idx); if (when == -1) { RRD_RAISE; rval = Qnil; @@ -423,7 +423,7 @@ #ifdef R_RRD_DBG snprintf(buf, NUM_BUF_SZ, "first: rrd=[%s] : idx=%d : val=%ld", - STR2CSTR(rrd), idx, when); + StringValueCStr(rrd), idx, when); buf[NUM_BUF_SZ] = 0; _dbug(R_RRD_DEBUG_SIM, buf); #endif @@ -456,7 +456,7 @@ rrd = rb_iv_get(self, "@rrdname"); - when = rrd_last_r(STR2CSTR(rrd)); + when = rrd_last_r(StringValueCStr(rrd)); if (when == -1) { RRD_RAISE; rval = Qnil; @@ -465,7 +465,7 @@ } #ifdef R_RRD_DBG - snprintf(buf, NUM_BUF_SZ, "last: rrd=[%s] : val=%ld", STR2CSTR(rrd), when); + snprintf(buf, NUM_BUF_SZ, "last: rrd=[%s] : val=%ld", StringValueCStr(rrd), when); buf[NUM_BUF_SZ] = 0; _dbug(R_RRD_DEBUG_SIM, buf); #endif @@ -579,14 +579,14 @@ tmpl = StringValue(otemp); #ifdef R_RRD_DBG - snprintf(buf, NUM_BUF_SZ, "n=[%s] : tmpl=%s", STR2CSTR(rrd), STR2CSTR(tmpl)); + snprintf(buf, NUM_BUF_SZ, "n=[%s] : tmpl=%s", StringValueCStr(rrd), StringValueCStr(tmpl)); buf[NUM_BUF_SZ] = 0; _dbug(R_RRD_DEBUG_SIM, buf); #endif a = s_arr_new(self, false, false, args); /* now run the command */ - result = rrd_update_r(STR2CSTR(rrd), STR2CSTR(tmpl), a.len, a.strs); + result = rrd_update_r(StringValueCStr(rrd), StringValueCStr(tmpl), a.len, a.strs); /* cleanup */ s_arr_del(a); @@ -717,14 +717,14 @@ #ifdef R_RRD_DBG snprintf(buf, NUM_BUF_SZ, "restore: xml=%s rrd=%s", - STR2CSTR(xml), STR2CSTR(rrd)); + StringValueCStr(xml), StringValueCStr(rrd)); buf[NUM_BUF_SZ] = 0; _dbug(R_RRD_DEBUG_SIM, buf); #endif a = s_arr_new(self, false, false, args); - s_arr_push(STR2CSTR(rrd), &a); - s_arr_push(STR2CSTR(xml), &a); - s_arr_push(STR2CSTR(xml), &a); + s_arr_push(StringValueCStr(rrd), &a); + s_arr_push(StringValueCStr(xml), &a); + s_arr_push(StringValueCStr(xml), &a); /* now run the command */ result = rrd_restore(a.len, a.strs); @@ -998,7 +998,7 @@ reset_rrd_state(); rrd = rb_iv_get(self, "@rrdname"); - data = rrd_info_r(STR2CSTR(rrd)); + data = rrd_info_r(StringValueCStr(rrd)); RRD_CHECK_ERROR; @@ -1054,7 +1054,7 @@ rrdname = StringValue(ofname); rb_iv_set(self, "@rrdname", rrdname); #ifdef R_RRD_DBG - snprintf(buf, NUM_BUF_SZ, "rrdname=[%s]", STR2CSTR(rrdname)); + snprintf(buf, NUM_BUF_SZ, "rrdname=[%s]", StringValueCStr(rrdname)); buf[NUM_BUF_SZ] = 0; _dbug(R_RRD_DEBUG_SIM, buf); #endif