[ruby-core:93633] [Ruby master Feature#15923] New independent string without memcpy
From:
XrXr@...
Date:
2019-07-09 14:14:05 UTC
List:
ruby-core #93633
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: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>