547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
|
# File 'ext/blockapi.c', line 547
static VALUE
blkenc_savedict(int argc, VALUE argv[], VALUE enc)
{
struct blockencoder *p = encoder_context(enc);
VALUE dict;
if (argc == 0) {
dict = rb_str_buf_new(p->prefixsize);
} else if (argc == 1) {
dict = argv[0];
aux_str_reserve(dict, p->prefixsize);
} else {
rb_error_arity(argc, 0, 1);
}
memcpy(RSTRING_PTR(dict), p->prefix, p->prefixsize);
if (p->prefixsize > 0) {
rb_str_set_len(dict, p->prefixsize);
return dict;
} else {
return Qnil;
}
}
|