| Summary: | Cannot create StringImpl from empty string literal | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Yusuke Suzuki <ysuzuki> | ||||
| Component: | New Bugs | Assignee: | Yusuke Suzuki <ysuzuki> | ||||
| Status: | NEW --- | ||||||
| Severity: | Normal | CC: | ahmad.saleem792, ap, benjamin, bfulgham, cdumez, changseok, cmarcelo, darin, esprehn+autocc, ews-watchlist, fred.wang, glenn, hi, joepeck, keith_miller, kondapallykalyan, mark.lam, msaboff, pdr, saam, simon.fraser, tzagallo, webkit-bug-importer | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Attachments: |
|
||||||
|
Description
Yusuke Suzuki
2020-10-11 04:38:27 PDT
Created attachment 411047 [details]
Patch
Comment on attachment 411047 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=411047&action=review > Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:370 > + return jsNontrivialString(vm, emptyString()); Not sure what we really need in this unreachable place, but if we want to use an empty string, then how about using jsEmptyString(vm)? > Source/JavaScriptCore/runtime/SamplingProfiler.cpp:1033 > + String hash = emptyString(); No initializer is needed here, since String already initializes to the null string. Note that the code below always overwrites the value of hash anyway. I would suggest initializing to "<nil>"_s and then removing the else below, or not initializing at all. > Source/WTF/wtf/text/ASCIILiteral.h:68 > + ASSERT_UNDER_CONSTEXPR_CONTEXT(n); Nice! Does it work? > Source/WebCore/page/NavigatorBase.cpp:92 > + platformName.construct(uname(&osname) >= 0 ? String(osname.sysname) + " "_str + String(osname.machine) : emptyString()); This is seems excessively inefficient. Using emptyString() is fine, I suppose. But the code before should be makeString(osname.sysname, ' ', osname.machine) so we don’t create and destroy so many temporary strings. > Source/WebCore/platform/UserAgentQuirks.cpp:191 > + return emptyString(); In this unreachable place it seems like we could return ASCIILiteral::null() and the function could return ASCIILiteral. Could also return a null string instead of an empty one, which is slightly more efficient. This r+ patch didn't landed and I checked via bug ID on Webkit GitHub repo. Is this needed? Appreciate if someone can comment or do the needful. Thanks! We still haven’t made this improvements. I had a set of comments for Yusuke before landing. He didn’t yet address them, and I think he intended to. Not sure how whether we should drop this or return to it. Oops, I forgot this patch! |