Project

General

Profile

Actions

Feature #13252

open

C API for creating strings without copying

Added by tenderlovemaking (Aaron Patterson) over 4 years ago. Updated over 4 years ago.

Status:
Assigned
Priority:
Normal
Target version:
-
[ruby-core:79763]

Description

Hi,

I'd like to have a C API that allows me to create String objects without copying the underlying char *. Basically a C API similar to the rb_str_new_static, but have the GC free the underlying char * when the object dies. The use case is that at work we have C libraries that allocate char * and we want to pass those to Ruby land without copying the buffer. Here is an example of what we're doing now:

https://github.com/arthurnn/memcached/commit/1886546944b420dc6953096ba1f5eae772001e31#diff-f508f9b8263ea397534b2b3f8efed987R147

I'd like it if there was a public API for doing something like this.

Thank you!

P.S. I am sure I can't be the first to ask for this, but I couldn't find a similar issue in RedMine, so if this has been answered I apologize.
P.P.S. I've added a patch for kind of what I want.


Files

out.diff (1.66 KB) out.diff tenderlovemaking (Aaron Patterson), 02/25/2017 12:19 AM
Actions

Also available in: Atom PDF