<?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>4420</bug_id>
          
          <creation_ts>2005-08-13 22:58:59 -0700</creation_ts>
          <short_desc>make border drawing faster by removing code to alloc/dealloc NSBezierPath</short_desc>
          <delta_ts>2005-08-14 20:01:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16603</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-13 22:58:59 -0700</bug_when>
    <thetext>There are some borders in the JavaScript iBench that are drawn with bezier path code. The allocation and 
deallocation of NSBezierPath is showing on the profile. We should fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16604</commentid>
    <comment_count>1</comment_count>
      <attachid>3368</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-13 23:00:17 -0700</bug_when>
    <thetext>Created attachment 3368
patch to use CoreGraphics directly instead of using NSBezierPath</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16605</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-13 23:00:40 -0700</bug_when>
    <thetext>I measured a 1% improvement on the benchmark with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16635</commentid>
    <comment_count>3</comment_count>
      <attachid>3368</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-08-14 02:00:29 -0700</bug_when>
    <thetext>Comment on attachment 3368
patch to use CoreGraphics directly instead of using NSBezierPath

CGContextStrokeLineSegments could potentially be even faster than this, at
least when not filling the path.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3368</attachid>
            <date>2005-08-13 23:00:17 -0700</date>
            <delta_ts>2005-08-14 02:00:29 -0700</delta_ts>
            <desc>patch to use CoreGraphics directly instead of using NSBezierPath</desc>
            <filename>BezierPathPatch.txt</filename>
            <type>text/plain</type>
            <size>3062</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTI3CmRpZmYgLXAgLXUgLXIxLjEyNyBXZWJDb3JlL2t3cS9LV1FQYWludGVyLm1tCi0tLSBXZWJD
b3JlL2t3cS9LV1FQYWludGVyLm1tCTcgSnVsIDIwMDUgMDg6MDM6MjIgLTAwMDAJMS4xMjcKKysr
IFdlYkNvcmUva3dxL0tXUVBhaW50ZXIubW0JMjYgSnVsIDIwMDUgMDQ6MjQ6MzkgLTAwMDAKQEAg
LTM5NCw1NCArMzk0LDU0IEBAIHZvaWQgUVBhaW50ZXI6OmRyYXdMaW5lU2VnbWVudHMoY29uc3Qg
UVAKICAgICBpZiAoZGF0YS0+c3RhdGUucGFpbnRpbmdEaXNhYmxlZCkKICAgICAgICAgcmV0dXJu
OwogICAgIAotICAgIF9kcmF3UG9pbnRzIChwb2ludHMsIDAsIGluZGV4LCBubGluZXMsIGZhbHNl
KTsKKyAgICBfZHJhd1BvaW50cyhwb2ludHMsIDAsIGluZGV4LCBubGluZXMsIGZhbHNlKTsKIH0K
IAogdm9pZCBRUGFpbnRlcjo6ZHJhd1BvbHlsaW5lKGNvbnN0IFFQb2ludEFycmF5ICZwb2ludHMs
IGludCBpbmRleCwgaW50IG5wb2ludHMpCiB7Ci0gICAgX2RyYXdQb2ludHMgKHBvaW50cywgMCwg
aW5kZXgsIG5wb2ludHMsIGZhbHNlKTsKKyAgICBfZHJhd1BvaW50cyhwb2ludHMsIDAsIGluZGV4
LCBucG9pbnRzLCBmYWxzZSk7CiB9CiAKLXZvaWQgUVBhaW50ZXI6OmRyYXdQb2x5Z29uKGNvbnN0
IFFQb2ludEFycmF5ICZwb2ludHMsIGJvb2wgd2luZGluZywgaW50IGluZGV4LCAKLSAgICBpbnQg
bnBvaW50cykKK3ZvaWQgUVBhaW50ZXI6OmRyYXdQb2x5Z29uKGNvbnN0IFFQb2ludEFycmF5ICZw
b2ludHMsIGJvb2wgd2luZGluZywgaW50IGluZGV4LCBpbnQgbnBvaW50cykKIHsKLSAgICBfZHJh
d1BvaW50cyAocG9pbnRzLCB3aW5kaW5nLCBpbmRleCwgbnBvaW50cywgdHJ1ZSk7CisgICAgX2Ry
YXdQb2ludHMocG9pbnRzLCB3aW5kaW5nLCBpbmRleCwgbnBvaW50cywgdHJ1ZSk7CiB9CiAKIHZv
aWQgUVBhaW50ZXI6OmRyYXdDb252ZXhQb2x5Z29uKGNvbnN0IFFQb2ludEFycmF5ICZwb2ludHMp
CiB7Ci0gICAgX2RyYXdQb2ludHMgKHBvaW50cywgZmFsc2UsIDAsIC0xLCB0cnVlKTsKKyAgICBf
ZHJhd1BvaW50cyhwb2ludHMsIGZhbHNlLCAwLCAtMSwgdHJ1ZSk7CiB9CiAKLXZvaWQgUVBhaW50
ZXI6Ol9kcmF3UG9pbnRzIChjb25zdCBRUG9pbnRBcnJheSAmX3BvaW50cywgYm9vbCB3aW5kaW5n
LCBpbnQgaW5kZXgsIGludCBfbnBvaW50cywgYm9vbCBmaWxsKQordm9pZCBRUGFpbnRlcjo6X2Ry
YXdQb2ludHMoY29uc3QgUVBvaW50QXJyYXkgJl9wb2ludHMsIGJvb2wgd2luZGluZywgaW50IGlu
ZGV4LCBpbnQgX25wb2ludHMsIGJvb2wgZmlsbCkKIHsKICAgICBpZiAoZGF0YS0+c3RhdGUucGFp
bnRpbmdEaXNhYmxlZCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICBpbnQgbnBvaW50
cyA9IF9ucG9pbnRzICE9IC0xID8gX25wb2ludHMgOiBfcG9pbnRzLnNpemUoKS1pbmRleDsKLSAg
ICBOU1BvaW50IHBvaW50c1tucG9pbnRzXTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IG5wb2lu
dHM7IGkrKykgewotICAgICAgICBwb2ludHNbaV0ueCA9IF9wb2ludHNbaW5kZXgraV0ueCgpOwot
ICAgICAgICBwb2ludHNbaV0ueSA9IF9wb2ludHNbaW5kZXgraV0ueSgpOwotICAgIH0KLSAgICAg
ICAgICAgIAotICAgIE5TQmV6aWVyUGF0aCAqcGF0aCA9IFtbTlNCZXppZXJQYXRoIGFsbG9jXSBp
bml0XTsKLSAgICBbcGF0aCBhcHBlbmRCZXppZXJQYXRoV2l0aFBvaW50czomcG9pbnRzWzBdIGNv
dW50Om5wb2ludHNdOwotICAgIFtwYXRoIGNsb3NlUGF0aF07IC8vIFF0IGFsd2F5cyBjbG9zZXMg
dGhlIHBhdGguICBEZXRlcm1pbmVkIGVtcGlyaWNhbGx5LgotICAgIAorICAgIGludCBucG9pbnRz
ID0gX25wb2ludHMgIT0gLTEgPyBfbnBvaW50cyA6IF9wb2ludHMuc2l6ZSgpIC0gaW5kZXg7Cisg
ICAgaWYgKG5wb2ludHMgPD0gMSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0dDb250ZXh0UmVm
IGNvbnRleHQgPSAoQ0dDb250ZXh0UmVmKVtbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIGdyYXBoaWNzUG9ydF07CisKKyAgICBDR0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7Cisg
ICAgQ0dDb250ZXh0TW92ZVRvUG9pbnQoY29udGV4dCwgX3BvaW50c1swXS54KCksIF9wb2ludHNb
MF0ueSgpKTsKKyAgICBmb3IgKGludCBpID0gMTsgaSA8IG5wb2ludHM7IGkrKykKKyAgICAgICAg
Q0dDb250ZXh0QWRkTGluZVRvUG9pbnQoY29udGV4dCwgX3BvaW50c1tpXS54KCksIF9wb2ludHNb
aV0ueSgpKTsKKyAgICBDR0NvbnRleHRDbG9zZVBhdGgoY29udGV4dCk7CisKICAgICBpZiAoZmls
bCAmJiBkYXRhLT5zdGF0ZS5icnVzaC5zdHlsZSgpICE9IE5vQnJ1c2gpIHsKLSAgICAgICAgW3Bh
dGggc2V0V2luZGluZ1J1bGU6d2luZGluZyA/IE5TTm9uWmVyb1dpbmRpbmdSdWxlIDogTlNFdmVu
T2RkV2luZGluZ1J1bGVdOwogICAgICAgICBfc2V0Q29sb3JGcm9tQnJ1c2goKTsKLSAgICAgICAg
W3BhdGggZmlsbF07CisgICAgICAgIGlmICh3aW5kaW5nKQorICAgICAgICAgICAgQ0dDb250ZXh0
RmlsbFBhdGgoY29udGV4dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIENHQ29udGV4dEVP
RmlsbFBhdGgoY29udGV4dCk7CiAgICAgfQogCiAgICAgaWYgKGRhdGEtPnN0YXRlLnBlbi5zdHls
ZSgpICE9IE5vUGVuKSB7CiAgICAgICAgIF9zZXRDb2xvckZyb21QZW4oKTsKLSAgICAgICAgW3Bh
dGggc2V0TGluZVdpZHRoOmRhdGEtPnN0YXRlLnBlbi53aWR0aCgpXTsKLSAgICAgICAgW3BhdGgg
c3Ryb2tlXTsKKyAgICAgICAgQ0dDb250ZXh0U2V0TGluZVdpZHRoKGNvbnRleHQsIGRhdGEtPnN0
YXRlLnBlbi53aWR0aCgpKTsKKyAgICAgICAgQ0dDb250ZXh0U3Ryb2tlUGF0aChjb250ZXh0KTsK
ICAgICB9Ci0gICAgCi0gICAgW3BhdGggcmVsZWFzZV07CiB9CiAKIAo=
</data>
<flag name="review"
          id="361"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>