<?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>5686</bug_id>
          
          <creation_ts>2005-11-09 08:42:45 -0800</creation_ts>
          <short_desc>make Shared::deref faster by eliminating multiple branches</short_desc>
          <delta_ts>2019-03-13 22:47:02 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195661</see_also>
          <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>23866</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-09 08:42:45 -0800</bug_when>
    <thetext> </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23867</commentid>
    <comment_count>1</comment_count>
      <attachid>4649</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-09 08:43:21 -0800</bug_when>
    <thetext>Created attachment 4649
get rid of the double if statement in deref without changing semantics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23887</commentid>
    <comment_count>2</comment_count>
      <attachid>4649</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-09 12:15:36 -0800</bug_when>
    <thetext>Comment on attachment 4649
get rid of the double if statement in deref without changing semantics

The ref changes look fine.  Changing RenderWidget not to be a subclass of
Shared seems a bit unnecessary (all the Shared functions are inline to begin
with), but it&apos;s not a big deal either.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4649</attachid>
            <date>2005-11-09 08:43:21 -0800</date>
            <delta_ts>2005-11-09 12:15:36 -0800</delta_ts>
            <desc>get rid of the double if statement in deref without changing semantics</desc>
            <filename>BetterDerefPatch.txt</filename>
            <type>text/plain</type>
            <size>4966</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL21pc2Mvc2hhcmVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwvbWlzYy9zaGFyZWQuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44CmRp
ZmYgLXAgLXUgLXIxLjgga2h0bWwvbWlzYy9zaGFyZWQuaAotLS0ga2h0bWwvbWlzYy9zaGFyZWQu
aAkyNyBTZXAgMjAwNSAyMjozNzoxOSAtMDAwMAkxLjgKKysrIGtodG1sL21pc2Mvc2hhcmVkLmgJ
MjIgT2N0IDIwMDUgMjM6MTM6MzAgLTAwMDAKQEAgLTgsNTggKzgsNDAgQEAgbmFtZXNwYWNlIGto
dG1sIHsKIHRlbXBsYXRlPGNsYXNzIHR5cGU+IGNsYXNzIFNoYXJlZAogewogcHVibGljOgotICAg
IFNoYXJlZCgpIHsgX3JlZj0wOyAvKmNvdW50ZXIrKzsqLyB9Ci0gICAgflNoYXJlZCgpIHsgLypj
b3VudGVyLS07Ki8gfQorICAgIFNoYXJlZCgpIDogbV9yZWZDb3VudCgwKSB7IH0KIAotICAgIHZv
aWQgcmVmKCkgeyBfcmVmKys7ICB9Ci0gICAgdm9pZCBkZXJlZigpIHsgCi0JaWYoX3JlZikgX3Jl
Zi0tOyAKLQlpZighX3JlZikKLQkgICAgZGVsZXRlIHN0YXRpY19jYXN0PHR5cGUgKj4odGhpcyk7
IAotICAgIH0KLSAgICBib29sIGhhc09uZVJlZigpIHsgLy9rZERlYnVnKDMwMCkgPDwgInJlZj0i
IDw8IF9yZWYgPDwgZW5kbDsKLSAgICAJcmV0dXJuIF9yZWY9PTE7IH0KLQotICAgIGludCByZWZD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIF9yZWY7IH0KLS8vICAgIHN0YXRpYyBpbnQgY291bnRlcjsK
LXByb3RlY3RlZDoKLSAgICB1bnNpZ25lZCBpbnQgX3JlZjsKKyAgICB2b2lkIHJlZigpIHsgKytt
X3JlZkNvdW50OyB9CisgICAgdm9pZCBkZXJlZigpIHsgaWYgKC0tbV9yZWZDb3VudCA8PSAwKSBk
ZWxldGUgc3RhdGljX2Nhc3Q8dHlwZSAqPih0aGlzKTsgfQorICAgIGJvb2wgaGFzT25lUmVmKCkg
eyByZXR1cm4gbV9yZWZDb3VudCA9PSAxOyB9CisgICAgaW50IHJlZkNvdW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWZDb3VudDsgfQogCiBwcml2YXRlOgotICAgIFNoYXJlZChjb25zdCBTaGFyZWQg
Jik7Ci0gICAgU2hhcmVkICZvcGVyYXRvcj0oY29uc3QgU2hhcmVkICYpOworICAgIGludCBtX3Jl
ZkNvdW50OworCisgICAgU2hhcmVkKGNvbnN0IFNoYXJlZCYpOworICAgIFNoYXJlZCYgb3BlcmF0
b3I9KGNvbnN0IFNoYXJlZCYpOwogfTsKIAogdGVtcGxhdGU8Y2xhc3MgdHlwZT4gY2xhc3MgVHJl
ZVNoYXJlZAogewogcHVibGljOgotICAgIFRyZWVTaGFyZWQoKSB7IF9yZWYgPSAwOyBtX3BhcmVu
dCA9IDA7IC8qY291bnRlcisrOyovIH0KLSAgICBUcmVlU2hhcmVkKCB0eXBlICpwYXJlbnQgKSB7
IF9yZWY9MDsgbV9wYXJlbnQgPSBwYXJlbnQ7IC8qY291bnRlcisrOyovIH0KLSAgICB+VHJlZVNo
YXJlZCgpIHsgLypjb3VudGVyLS07Ki8gfQotCi0gICAgdm9pZCByZWYoKSB7IF9yZWYrKzsgIH0K
LSAgICB2b2lkIGRlcmVmKCkgeyAKLQlpZihfcmVmKSBfcmVmLS07IAotCWlmKCFfcmVmICYmICFt
X3BhcmVudCkgewotCSAgICBkZWxldGUgc3RhdGljX2Nhc3Q8dHlwZSAqPih0aGlzKTsgCi0JfQot
ICAgIH0KLSAgICBib29sIGhhc09uZVJlZigpIHsgLy9rZERlYnVnKDMwMCkgPDwgInJlZj0iIDw8
IF9yZWYgPDwgZW5kbDsKLSAgICAJcmV0dXJuIF9yZWY9PTE7IH0KKyAgICBUcmVlU2hhcmVkKCkg
OiBtX3JlZkNvdW50KDApLCBtX3BhcmVudCgwKSB7IH0KKyAgICBUcmVlU2hhcmVkKHR5cGUgKnBh
cmVudCkgOiBtX3JlZkNvdW50KDApLCBtX3BhcmVudChwYXJlbnQpIHsgfQogCi0gICAgaW50IHJl
ZkNvdW50KCkgY29uc3QgeyByZXR1cm4gX3JlZjsgfQotLy8gICAgc3RhdGljIGludCBjb3VudGVy
OworICAgIHZvaWQgcmVmKCkgeyArK21fcmVmQ291bnQ7ICB9CisgICAgdm9pZCBkZXJlZigpIHsg
aWYgKC0tbV9yZWZDb3VudCA8PSAwICYmICFtX3BhcmVudCkgZGVsZXRlIHN0YXRpY19jYXN0PHR5
cGUgKj4odGhpcyk7IH0KKyAgICBib29sIGhhc09uZVJlZigpIHsgcmV0dXJuIG1fcmVmQ291bnQg
PT0gMTsgfQorICAgIGludCByZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmQ291bnQ7IH0K
IAogICAgIHZvaWQgc2V0UGFyZW50KHR5cGUgKnBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsg
fQogICAgIHR5cGUgKnBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CisKIHByaXZh
dGU6Ci0gICAgdW5zaWduZWQgaW50IF9yZWY7Ci1wcm90ZWN0ZWQ6CisgICAgaW50IG1fcmVmQ291
bnQ7CiAgICAgdHlwZSAqbV9wYXJlbnQ7CiAKLXByaXZhdGU6Ci0gICAgVHJlZVNoYXJlZChjb25z
dCBUcmVlU2hhcmVkICYpOwotICAgIFRyZWVTaGFyZWQgJm9wZXJhdG9yPShjb25zdCBUcmVlU2hh
cmVkICYpOworICAgIFRyZWVTaGFyZWQoY29uc3QgVHJlZVNoYXJlZCYpOworICAgIFRyZWVTaGFy
ZWQmIG9wZXJhdG9yPShjb25zdCBUcmVlU2hhcmVkJik7CiB9OwogCiB9CkluZGV4OiBraHRtbC9y
ZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2VkLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS45MQpkaWZmIC1wIC11IC1yMS45MSBraHRtbC9yZW5kZXJpbmcvcmVuZGVy
X3JlcGxhY2VkLmNwcAotLS0ga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5jcHAJMTkg
T2N0IDIwMDUgMDk6MTU6MTQgLTAwMDAJMS45MQorKysga2h0bWwvcmVuZGVyaW5nL3JlbmRlcl9y
ZXBsYWNlZC5jcHAJMjIgT2N0IDIwMDUgMjM6MTM6MzEgLTAwMDAKQEAgLTIyMSw3ICsyMjEsOCBA
QCBRQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OnNlbGVjdGlvbkNvbG9yKFFQCiAKIFJlbmRlcldpZGdl
dDo6UmVuZGVyV2lkZ2V0KERPTTo6Tm9kZUltcGwqIG5vZGUpCiAgICAgICA6IFJlbmRlclJlcGxh
Y2VkKG5vZGUpLAotCW1fZGVsZXRlV2lkZ2V0KGZhbHNlKQorICAgICAgICBtX2RlbGV0ZVdpZGdl
dChmYWxzZSksCisgICAgICAgIG1fcmVmQ291bnQoMCkKIHsKICAgICBtX3dpZGdldCA9IDA7CiAg
ICAgLy8gYSByZXBsYWNlZCBlbGVtZW50IGRvZXNuJ3Qgc3VwcG9ydCBiZWluZyBhbm9ueW1vdXMK
QEAgLTI3OSw3ICsyODAsNyBAQCB2b2lkIFJlbmRlcldpZGdldDo6ZGVzdHJveSgpCiAKIFJlbmRl
cldpZGdldDo6flJlbmRlcldpZGdldCgpCiB7Ci0gICAgS0hUTUxBc3NlcnQoIHJlZkNvdW50KCkg
PD0gMCApOworICAgIEtIVE1MQXNzZXJ0KG1fcmVmQ291bnQgPD0gMCk7CiAKICAgICBpZiAobV9k
ZWxldGVXaWRnZXQpIHsKIAlkZWxldGUgbV93aWRnZXQ7CkBAIC01MjYsNyArNTI3LDcgQEAgYm9v
bCBSZW5kZXJXaWRnZXQ6OmV2ZW50RmlsdGVyKFFPYmplY3QqIAogICAgIGVsZW0tPmRlcmVmKCk7
CiAKICAgICAvLyBzdG9wIHByb2Nlc3NpbmcgaWYgdGhlIHdpZGdldCBnZXRzIGRlbGV0ZWQsIGJ1
dCBjb250aW51ZSBpbiBhbGwgb3RoZXIgY2FzZXMKLSAgICBpZiAoaGFzT25lUmVmKCkpCisgICAg
aWYgKG1fcmVmQ291bnQgPT0gMSkKICAgICAgICAgZmlsdGVyZWQgPSB0cnVlOwogICAgIGRlcmVm
KGFyZW5hKTsKIApAQCAtNTM1LDggKzUzNiw3IEBAIGJvb2wgUmVuZGVyV2lkZ2V0OjpldmVudEZp
bHRlcihRT2JqZWN0KiAKIAogdm9pZCBSZW5kZXJXaWRnZXQ6OmRlcmVmKFJlbmRlckFyZW5hICph
cmVuYSkKIHsKLSAgICBpZiAoX3JlZikgX3JlZi0tOyAKLSAgICBpZiAoIV9yZWYpCisgICAgaWYg
KC0tbV9yZWZDb3VudCA8PSAwKQogICAgICAgICBhcmVuYURlbGV0ZShhcmVuYSwgdGhpcyk7CiB9
CiAKSW5kZXg6IGtodG1sL3JlbmRlcmluZy9yZW5kZXJfcmVwbGFjZWQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxhY2Vk
LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzYKZGlmZiAtcCAtdSAtcjEuMzYga2h0bWwvcmVu
ZGVyaW5nL3JlbmRlcl9yZXBsYWNlZC5oCi0tLSBraHRtbC9yZW5kZXJpbmcvcmVuZGVyX3JlcGxh
Y2VkLmgJMTkgT2N0IDIwMDUgMDk6MTU6MTQgLTAwMDAJMS4zNgorKysga2h0bWwvcmVuZGVyaW5n
L3JlbmRlcl9yZXBsYWNlZC5oCTIyIE9jdCAyMDA1IDIzOjEzOjMxIC0wMDAwCkBAIC03NCw3ICs3
NCw3IEBAIHByb3RlY3RlZDoKIH07CiAKIAotY2xhc3MgUmVuZGVyV2lkZ2V0IDogcHVibGljIFFP
YmplY3QsIHB1YmxpYyBSZW5kZXJSZXBsYWNlZCwgcHJpdmF0ZSBraHRtbDo6U2hhcmVkPFJlbmRl
cldpZGdldD4KK2NsYXNzIFJlbmRlcldpZGdldCA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUmVu
ZGVyUmVwbGFjZWQKIHsKICAgICBRX09CSkVDVAogcHVibGljOgpAQCAtOTMsNyArOTMsNyBAQCBw
dWJsaWM6CiAgICAgUVdpZGdldCAqd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV93aWRnZXQ7IH0K
ICAgICBLSFRNTFZpZXcqIHZpZXcoKSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KIAotICAgIFJl
bmRlckFyZW5hICpyZWYoKSB7IF9yZWYrKzsgcmV0dXJuIHJlbmRlckFyZW5hKCk7IH0KKyAgICBS
ZW5kZXJBcmVuYSAqcmVmKCkgeyArK21fcmVmQ291bnQ7IHJldHVybiByZW5kZXJBcmVuYSgpOyB9
CiAgICAgdm9pZCBkZXJlZihSZW5kZXJBcmVuYSAqYXJlbmEpOwogICAgIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSBzKTsKQEAgLTExNSw2ICsxMTUs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2RlbGV0ZVdpZGdldDsKICAgICBRV2lkZ2V0ICpt
X3dpZGdldDsKICAgICBLSFRNTFZpZXcqIG1fdmlldzsKKyAgICBpbnQgbV9yZWZDb3VudDsKIH07
CiAKIH07Cg==
</data>
<flag name="review"
          id="841"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>