Ruby/C question

I am working with libxml-ruby, the Ruby wrapper for the C libxml. I don't
understand one section (rxml_reader_io). The line below ('result' is the Ruby
VALUE for the object):

  rb_ivar_set(result, IO_ATTR, io);


IO_ATTR = ID2SYM(rb_intern("@io"));

The comments lead me believe that the first line is setting an instance
variable, but the second line is defining a symbol, :io or maybe :@io.

It seems to me that the first line should be:

  rb_ivar_set(result, rb_intern("@io"), io);

or equivalent.

The other question is there anyway to access the value set in the first
statement from Ruby? Or do I have to correct the library source and rebuild?