From: XrXr@... Date: 2019-07-09T14:14:05+00:00 Subject: [ruby-core:93633] [Ruby master Feature#15923] New independent string without memcpy Issue #15923 has been updated by alanwu (Alan Wu). Instead of working on a separate buffer then asking Ruby to take ownership, you could make changes to the buffer of a string: ```c VALUE new_string = rb_str_new("", 0); rb_str_resize(new_string, size_you_want); do_work(RSTRING_PTR(new_string), RSTRING_LEN(new_string)); ``` Would this be good enough? ---------------------------------------- Feature #15923: New independent string without memcpy https://bugs.ruby-lang.org/issues/15923#change-79241 * Author: puchuu (Andrew Aladjev) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Hello. I've just tried to implement extension for ruby that will provide large binary strings. I've inspected latest ruby source code and found 2 functions: _rb_str_new_ and _rb_str_new_static_ . * _rb_str_new_ allocates new memory and uses _memcpy_ to copy from source string to new memory. * _rb_str_new_static_ uses existing source string as it is, but adds _STR_NOFREE_ flag. Is it possible to create independent string from source string without memcpy that will be freed automatically? Thank you. -- https://bugs.ruby-lang.org/ Unsubscribe: