A rope is a recursive data structure where each node in the rope holds a set of pointers, each of which may reference either a string (in UStringImpl form) or another rope node. A low bit in each pointer is used to distinguish between rope & string elements, in a fashion similar to the recently-removed PtrAndFlags class (see https://bugs.webkit.org/show_bug.cgi?id=33731 ). Again, this causes a problem for Leaks – refactor to remove the magic pointer mangling.
Created attachment 48841 [details] The patch No performance impact.
Attachment 48841 [details] did not pass style-queue: Failed to run "WebKitTools/Scripts/check-webkit-style" exit_code: 1 JavaScriptCore/runtime/UStringImpl.h:187: More than one command on the same line [whitespace/newline] [4] JavaScriptCore/runtime/UStringImpl.h:187: More than one command on the same line in if [whitespace/parens] [4] JavaScriptCore/runtime/UStringImpl.h:328: More than one command on the same line [whitespace/newline] [4] JavaScriptCore/runtime/UStringImpl.h:328: More than one command on the same line in if [whitespace/parens] [4] Total errors found: 4 If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 48841 [details] The patch r=me
Fixed in r54843.