Class: String
- Inherits:
-
Object
- Object
- String
- 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_bytes ⇒ Object
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);
}
|