/* * 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 frb_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_LEN(rnorms) < offset + ir->max_doc(ir)) { rb_raise(rb_eArgError, "supplied a string of length:%ld to " "IndexReader#get_norms_into but needed a string of length " "offset:%d + maxdoc:%d", RSTRING_LEN(rnorms), offset, ir->max_doc(ir)); } ir_get_norms_into(ir, frb_field(rfield), (uchar *)rs2s(rnorms) + offset); return rnorms; }