166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
# File 'ext/fast_xs/fast_xs.c', line 166
VALUE fast_xs(VALUE self)
{
long i;
struct RArray *array;
char *s, *c;
long s_len = 0;
VALUE *tmp;
array = RARRAY(rb_rescue(unpack_utf8, self, unpack_uchar, self));
tmp = RARRAY_PTR(array);
for (i = RARRAY_LEN(array); --i >= 0; tmp++)
s_len += escaped_len(NUM2INT(*tmp));
c = s = alloca(s_len + 1);
tmp = RARRAY_PTR(array);
for (i = RARRAY_LEN(array); --i >= 0; tmp++)
c += escape(c, NUM2INT(*tmp));
*c = '\0';
return rb_str_new(s, s_len);
}
|