On 01/06/12 15:11, Mark H Weaver wrote:
Bruce Korb<bk...@gnu.org> writes:
scm_from_locale_stringn() makes an optimization when the length is zero.
It returns an immutable string of length zero.
Good catch!
Two possible fixes:
1. remove the "optimization"
2. check the length in scm_string_upcase_x before choking.
I see a third possible fix, which I think I like best:
3. Make scm_nullstr into a mutable string. After all, it can't be
changed anyway, and the _only_ reference to it is from
scm_from_stringn, so the result should always be mutable.
What do other people think?
Mark
I think you are presuming that that is the only source of zero length
immutable strings.
Are you completely certain?
Anyway:
Running socket.test
ERROR: socket.test: AF_INET6/SOCK_STREAM: bind - arguments: ((system-error "bind" "~A"
("Cannot assign requested address") (99)))
ERROR: socket.test: AF_INET6/SOCK_STREAM: bind/sockaddr - arguments: ((system-error "bind"
"~A" ("Cannot assign requested address") (99)))
I'm going to assume that whatever that is, it isn't related to my change.
Tho perhaps yours. I am not sure I understand all the ramifications of your
change.