<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>6410</bug_id>
          
          <creation_ts>2006-01-07 06:00:54 -0800</creation_ts>
          <short_desc>Performance regression in text relayout due to bad BidiContext equality testing</short_desc>
          <delta_ts>2006-01-10 07:30:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>27919</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-01-07 06:00:54 -0800</bug_when>
    <thetext>The fix for bug 5172 added that for two line-ends to match (and thus for relayout to stop), they should 
also have the same bidi context. The bug is that the == operator for BidiContexts always returns false for 
contexts that don&apos;t have a parent, so in most cases, relayout will unnecessarily proceed through the last 
line.

Fix coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27921</commentid>
    <comment_count>1</comment_count>
      <attachid>5525</attachid>
    <who name="">mitz</who>
    <bug_when>2006-01-07 06:12:33 -0800</bug_when>
    <thetext>Created attachment 5525
Fix the BidiContext ==</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27927</commentid>
    <comment_count>2</comment_count>
      <attachid>5525</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-07 08:45:15 -0800</bug_when>
    <thetext>Comment on attachment 5525
Fix the BidiContext ==

Good catch. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27928</commentid>
    <comment_count>3</comment_count>
      <attachid>5525</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-07 08:46:45 -0800</bug_when>
    <thetext>Comment on attachment 5525
Fix the BidiContext ==

Another way to write this is:

    return c1.parent == c2.parent || (c1.parent &amp;&amp; *c1.parent == *c2.parent);

Not sure whether I like my version better or yours.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27930</commentid>
    <comment_count>4</comment_count>
      <attachid>5525</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-07 08:57:18 -0800</bug_when>
    <thetext>Comment on attachment 5525
Fix the BidiContext ==

Oops, my bad.

The alternative version is:

    return c1.parent == c2.parent || (c1.parent &amp;&amp; c2.parent &amp;&amp; *c1.parent ==
*c2.parent);

My previous suggestion was wrong and could lead to nil-deref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28139</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-01-10 07:30:17 -0800</bug_when>
    <thetext>Eric landed my asymmetric version :-)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5525</attachid>
            <date>2006-01-07 06:12:33 -0800</date>
            <delta_ts>2006-01-07 08:45:15 -0800</delta_ts>
            <desc>Fix the BidiContext ==</desc>
            <filename>BidiContext operator==.patch</filename>
            <type>text/plain</type>
            <size>1698</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9X
ZWJDb3JlL0NoYW5nZUxvZyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS45NwpkaWZmIC1wIC11IC1y
MS45NyBXZWJDb3JlL0NoYW5nZUxvZwotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJNyBKYW4gMjAwNiAx
MDozMzoyNSAtMDAwMAkxLjk3CisrKyBXZWJDb3JlL0NoYW5nZUxvZwk3IEphbiAyMDA2IDE0OjE4
OjU5IC0wMDAwCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDYtMDEtIyMgIE1pdHogUGV0dGVsICA8b3Bl
bmRhcndpbi5vcmdAbWl0enBldHRlbC5jb20+CisKKyAgICAgICAgTm8gdGVzdHMgcG9zc2libGUs
IG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFy
d2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQxMAorICAgICAgICAgIFBlcmZvcm1hbmNlIHJlZ3Jl
c3Npb24gaW4gdGV4dCByZWxheW91dCBkdWUgdG8gYmFkIEJpZGlDb250ZXh0CisgICAgICAgICAg
ZXF1YWxpdHkgdGVzdGluZworCisgICAgICAgICoga2h0bWwvcmVuZGVyaW5nL2JpZGkuY3BwOgor
ICAgICAgICAoa2h0bWw6Om9wZXJhdG9yPT0pOiBSZXR1cm4gdHJ1ZSBpZiBCaWRpQ29udGV4dHMg
bWF0Y2ggYW5kIGJvdGggZG9uJ3QKKyAgICAgICAgaGF2ZSBhIHBhcmVudC4KKwogMjAwNi0wMS0w
NyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYWNpZWouCkluZGV4OiBXZWJDb3JlL2todG1sL3JlbmRlcmluZy9iaWRpLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlkaS5j
cHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTY0CmRpZmYgLXAgLXUgLXIxLjE2NCBXZWJDb3Jl
L2todG1sL3JlbmRlcmluZy9iaWRpLmNwcAotLS0gV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvYmlk
aS5jcHAJMTkgRGVjIDIwMDUgMTk6NTI6NDggLTAwMDAJMS4xNjQKKysrIFdlYkNvcmUva2h0bWwv
cmVuZGVyaW5nL2JpZGkuY3BwCTcgSmFuIDIwMDYgMTA6MDM6MTQgLTAwMDAKQEAgLTIzNCw3ICsy
MzQsOSBAQCBib29sIG9wZXJhdG9yPT0oY29uc3QgQmlkaUNvbnRleHQmIGMxLCBjCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGlmIChjMS5sZXZlbCAhPSBjMi5sZXZlbCB8fCBjMS5vdmVycmlk
ZSAhPSBjMi5vdmVycmlkZSB8fCBjMS5kaXIgIT0gYzIuZGlyIHx8IGMxLmJhc2ljRGlyICE9IGMy
LmJhc2ljRGlyKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGMxLnBhcmVudCAm
JiBjMi5wYXJlbnQgJiYgKmMxLnBhcmVudCA9PSAqYzIucGFyZW50OworICAgIGlmICghYzEucGFy
ZW50KQorICAgICAgICByZXR1cm4gIWMyLnBhcmVudDsKKyAgICByZXR1cm4gYzIucGFyZW50ICYm
ICpjMS5wYXJlbnQgPT0gKmMyLnBhcmVudDsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBCaWRpQ29udGV4dCYgYzEsIGNvbnN0IEJpZGlDb250ZXh0JiBjMikK
</data>
<flag name="review"
          id="1204"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>