Class: String

Inherits:
Object
  • Object
show all
Defined in:
(unknown)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_j_bytes(a) ⇒ Object



4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
# File 'ext/primitive/primitive.c', line 4324

static VALUE
r_String_from_j_bytes(VALUE self, VALUE a)
{
	if (TYPE(a) == T_DATA && RBASIC(a)->klass == r_ByteArray) {
		ByteArray *p;
		Data_Get_Struct(a, ByteArray, p);
		return rb_str_new((char*) p->data, p->length);
	}
	rb_raise(rb_eTypeError, "expected byte[]");
}

Instance Method Details

#to_j_bytesObject



4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
# File 'ext/primitive/primitive.c', line 4334

static VALUE
r_String_to_j_bytes(VALUE self)
{
	long len = RSTRING_LEN(self);
	if (len > 0x000000007FFFFFFFL)
		rb_raise(rb_eRangeError, "string too big");
	int32_t n = (int32_t) len;
	char *data = RSTRING_PTR(self);
	ByteArray *p = xmalloc(sizeof(ByteArray) + sizeof(int8_t) * (size_t) n);
	if (p == NULL)
		rb_raise(rb_eNoMemError, "NoMemoryError");
	p->length = n;
	int32_t i;
	for (i = 0; i < n; i += 1)
		p->data[i] = data[i];
	return Data_Wrap_Struct(r_ByteArray, NULL, NULL, p);
}