VALUE rb_str_new_cstr(const char *string) { if (truffle_is_truffle_object((VALUE) string)) { return (VALUE) truffle_invoke(RUBY_CEXT, "to_ruby_string", string); } else { return (VALUE) truffle_invoke(RUBY_CEXT, "rb_str_new_cstr", truffle_read_string(string)); } }
char *ensure_truffle_chararray_n(const char *x, int n) { if (truffle_is_truffle_object(x)) { return x; } else { IMPORT_CALLHELPER(); return truffle_invoke(obj, "bytesToNativeCharArray", truffle_read_n_bytes(x, n)); } }
VALUE rb_str_new(const char *string, long length) { if (string == NULL) { return (VALUE) truffle_invoke(RUBY_CEXT, "rb_str_new_nul", length); } else if (truffle_is_truffle_object((VALUE) string)) { return (VALUE) truffle_invoke(RUBY_CEXT, "rb_str_new", string, length); } else { return (VALUE) truffle_invoke(RUBY_CEXT, "rb_str_new_cstr", truffle_read_n_string(string, length)); } }