/* * call-seq: * index_reader.get_norms_into(field, buffer, offset) -> buffer * * Expert: Get the norm values into a string +buffer+ starting at +offset+. */ static VALUE frt_ir_get_norms_into(VALUE self, VALUE rfield, VALUE rnorms, VALUE roffset) { IndexReader *ir = (IndexReader *)DATA_PTR(self); int offset; offset = FIX2INT(roffset); Check_Type(rnorms, T_STRING); if (RSTRING(rnorms)->len < offset + ir->max_doc(ir)) { rb_raise(rb_eArgError, "supplied a string of length:%d to " "IndexReader#get_norms_into but needed a string of length " "offset:%d + maxdoc:%d", RSTRING(rnorms)->len, offset, ir->max_doc(ir)); } ir_get_norms_into(ir, frt_field(rfield), (uchar *)RSTRING(rnorms)->ptr + offset); return rnorms; }