/*
* 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 *)rs2s(rnorms) + offset);
return rnorms;
}