Mike Gran <spk...@yahoo.com> writes: > Right now it seems that zero-length shared substring of a wide string is > wide. A zero-length substring still shares the stringbuf of the > original string. [...] > What do you think about that? Do zero-length substrings need to > still share stringbufs with their parent strings?
I think the answer is: no they don't, and avoiding that might be a worthwhile optimization, mainly to avoid needlessly holding a reference to a potentially large stringbuf. > In any case, a string-copy of a narrow substring of an otherwise wide string > should be a new narrow string. This should apply to zero-length > substrings as well. This isn't happening, because we're missing > a scm_i_try_narrow_string in string-copy, which is a bug. I just fixed this. > Looks like for zero-length input strings, u32_conv_from_encoding can > return NULL. Interesting! Anyway, we now avoid calling `u32_conv_from_encoding' for empty strings. Thanks, Mark