Class: String

Inherits:
Object show all
Defined in:
(unknown)

Instance Method Summary collapse

Instance Method Details

#fast_xsObject



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'ext/fast_xs/fast_xs.c', line 159

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 = array->ptr;
	for (i = array->len; --i >= 0; tmp++)
		s_len += escaped_len(NUM2INT(*tmp));

	c = s = alloca(s_len + 1);

	tmp = array->ptr;
	for (i = array->len; --i >= 0; tmp++)
		c += escape(c, NUM2INT(*tmp));

	*c = '\0';
	return rb_str_new(s, s_len);
}