Hello, I'm compiling WebKit with a malloc() implementation that returns NULL for malloc(0). According to C99, this is valid: "If the size of the space requested is zero, the behavior is implementation- deļ¬ned: either a null pointer is returned, or the behavior is as if the size were some nonzero value, except that the returned pointer shall not be used to access an object."
I noticed that this caused a problem in one particular place (WTF::StringImpl::getData16SlowCase()) where the code allocates (constant * length) bytes for an (empty) string, and provides an accessor that exposes this pointer. This pointer was being passed to ICU, which didn't perform the requested function because it looked like one of the arguments was invalid, even though it was just empty. I have worked around this one particular occurrence in my local version of WebKit fork, but I'm wondering how often this pattern occurs. Is my fix worth upstreaming? Is it worth trying to find, "fix," and upstream every occurrence of this pattern? Or is this particular behavior of malloc() an unstated requirement of building WebKit? If the latter is true, perhaps it's worth explicitly stating this somewhere? What is the opinion of the community? Thanks, Myles _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev