On 20/06/2012 10:05 AM, Graydon Hoare wrote:
On 19/06/2012 4:12 AM, Shohei Wada wrote:

Is there any good datatype to copy out and keep the c-string?
Of course str is useless in this case, and it seems [c_char] has same
problem.
(vec::as_buf's signature is as_buf<E, T>(v: [const E], f: fn(*E) -> T)
-> T,
I may not allowed to return *E from the closure)
So I think I should use libc::malloc/memcpy/free and std::c_vec to
make sure the c-string survive. Is this right?
...
I.e. if you write your code so it keeps the strings alive for the
duration of your needs, presently, you will only have a slight
additional bit of code to write, to keep an arena alive as well, when we
finish the upgrade to slices.

Er, of course, you can also insulate yourself against this change entirely if you want to use c_vec, malloc/memcpy/free, as you note. I'm just pointing out where we're going, longer-term. That longer-term interface should be slightly less error-prone (we'll do all the null sniffing and termination automatically, for example).

-Graydon
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to