Remove unneeded StringValue() calls in chunk_serialize().
[ruby-eet.git] / ext / ext.c
index 266cbfbbcb05f49fb843f761ea391bd832f84e3d..63096a7e744cd9cad366a946c97bf217036f630a 100644 (file)
--- a/ext/ext.c
+++ b/ext/ext.c
@@ -1,5 +1,5 @@
 /*
- * $Id: ext.c 65 2005-06-28 18:40:59Z tilman $
+ * $Id: ext.c 67 2005-06-29 15:44:09Z tilman $
  *
  * Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de)
  *
@@ -51,7 +51,7 @@ static VALUE cStream, cChunk,
              eBadElementError,
              sym_lossy, sym_level, sym_quality, sym_char, sym_short,
              sym_long_long, sym_double;
-static ID id_include, id_serialize, id_keys,
+static ID id_include, id_serialize, id_keys, id_pack,
           id_to_eet_chunks, id_to_eet_name, id_to_eet_properties,
           id_tag, id_data;
 
@@ -497,11 +497,9 @@ chunk_serialize (VALUE self)
        struct RString *tag, *data;
 
        tmp = rb_ivar_get (self, id_tag);
-       StringValue (tmp);
        tag = RSTRING (tmp);
 
        tmp = rb_ivar_get (self, id_data);
-       StringValue (tmp);
        data = RSTRING (tmp);
 
        buf_len = 9 + tag->len + data->len;
@@ -620,7 +618,7 @@ int_to_eet_chunks (int argc, VALUE *argv, VALUE self)
                cfmt = "q";
 
        args[0] = tag;
-       args[1] = rb_funcall (ary, rb_intern ("pack"), 1, rb_str_new2 (cfmt));
+       args[1] = rb_funcall (ary, id_pack, 1, rb_str_new2 (cfmt));
        chunk = rb_class_new_instance (2, args, cChunk);
 
        return rb_ary_new3 (1, chunk);
@@ -700,6 +698,7 @@ Init_eet_ext ()
        id_include = rb_intern ("include?");
        id_serialize = rb_intern ("serialize");
        id_keys = rb_intern ("keys");
+       id_pack = rb_intern ("pack");
        id_to_eet_chunks = rb_intern ("to_eet_chunks");
        id_to_eet_name = rb_intern ("to_eet_name");
        id_to_eet_properties = rb_intern ("to_eet_properties");