Jeff Clites <[EMAIL PROTECTED]> wrote:
> ab\x{212b}de //clength is 12
> ----------^
> ... end up with is 5 (2 + 1 + 2)
Ok, ok. You are right. As the string goes into constants and isn't
changed, we'll do it right, which is, as metioned,
d + 1 + length_todo
> [Note: _string_upscale is currently simple, but not optimized. We
> should enhance it for the case where we can upscale in place because we
> know that we have enough storage already allocated accommodate
> max(passed in length, current length). That's what would let the above
> be a savings.]
It should probably only allocate the string memory - no header. As in
unmake_COW() s. "STRING for_alloc;". Then copy over the memory bits.
You can't reallocate the string though. When it's possible in
place--better.
And finally *all* string allocation functions need the flags to decide
if to use constants pools or not (e.g. string_make_empty).
> JEff
leo