diff --git a/ext/htmlgrid/grid.c b/ext/htmlgrid/grid.c index 56a50ef..6db471e 100644 --- a/ext/htmlgrid/grid.c +++ b/ext/htmlgrid/grid.c @@ -288,14 +288,16 @@ VALUE grid_width(self) VALUE grid_cat_attribute(pair, string) VALUE pair, string; { - VALUE val; + VALUE val, tmp1, tmp2; char *key, *value; long len; val = rb_ary_entry(pair, 1); if(val == Qnil) return string; - key = STR2CSTR(rb_ary_entry(pair, 0)); - value = STR2CSTR(rb_funcall(val, rb_intern("to_s"), 0)); + tmp1 = rb_ary_entry(pair, 0); + key = StringValuePtr(tmp1); + tmp2 = rb_funcall(val, rb_intern("to_s"), 0); + value = StringValuePtr(tmp2); char attr[strlen(key) + strlen(value) + 5]; len = sprintf(attr, " %s=\"%s\"", key, value); return rb_str_cat(string, attr, len); @@ -333,8 +335,9 @@ VALUE grid_store_allowed_attribute(pair, attrs) VALUE pair, attrs; { char* key; - - key = STR2CSTR(rb_ary_entry(pair, 0)); + VALUE tmp; + tmp = rb_ary_entry(pair, 0); + key = StringValuePtr(tmp); if( strcasecmp(key, "align") == 0 || strcasecmp(key, "class") == 0 || strcasecmp(key, "colspan") == 0 @@ -749,7 +752,7 @@ void grid_field_add_tag(cf, tagname) cField * cf; VALUE tagname; { - strcpy(cf->tag, STR2CSTR(tagname)); + strcpy(cf->tag, StringValuePtr(tagname)); } VALUE grid_add_tag(argc, argv, self)