<?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>114030</bug_id>
          
          <creation_ts>2013-04-05 06:03:26 -0700</creation_ts>
          <short_desc>Avoid double hash table lookups in TextureMapperGL</short_desc>
          <delta_ts>2013-04-05 06:24:30 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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 name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>869726</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-05 06:03:26 -0700</bug_when>
    <thetext>In TextureMapperGL, we often need to check if a key is present in the hash table:
- if it is return the associated value,
- if it is not create the value, add it to the hash table and return it.

We currently use Vector::find() to check if it exists, and then Vector::set() to add the value to the hash table if it doesn&apos;t. This results in  2 hash lookups. We could leverage the AddResult return value of Vector::add() to do the same thing with a single hash lookup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869727</commentid>
    <comment_count>1</comment_count>
      <attachid>196623</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-04-05 06:07:33 -0700</bug_when>
    <thetext>Created attachment 196623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869732</commentid>
    <comment_count>2</comment_count>
      <attachid>196623</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-04-05 06:16:42 -0700</bug_when>
    <thetext>Comment on attachment 196623
Patch

Seems a bit like a micro-optimization, as those cases only happen the first time you use a particular shader/vbo.
But OK :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869735</commentid>
    <comment_count>3</comment_count>
      <attachid>196623</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-05 06:24:28 -0700</bug_when>
    <thetext>Comment on attachment 196623
Patch

Clearing flags on attachment: 196623

Committed r147742: &lt;http://trac.webkit.org/changeset/147742&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869736</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-05 06:24:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196623</attachid>
            <date>2013-04-05 06:07:33 -0700</date>
            <delta_ts>2013-04-05 06:24:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>114030_texturemappergl_hash.patch</filename>
            <type>text/plain</type>
            <size>6058</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzM2UwMThhLi40MmJlMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTMtMDQtMDUgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIEF2b2lkIGRvdWJsZSBoYXNoIHRhYmxlIGxvb2t1cHMgaW4gVGV4dHVy
ZU1hcHBlckdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTQwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgVmVjdG9yOjphZGQoKSBhbmQgbGV2ZXJhZ2UgaXRzIHJldHVybmVkIEFkZFJlc3VsdCB2
YWx1ZSBpbnN0ZWFkIG9mCisgICAgICAgIGNhbGxpbmcgVmVjdG9yOjpmaW5kKCkgdGhlbiBWZWN0
b3I6OnNldCgpIGlmIHRoZSBrZXkgZG9lcyBub3QgYWxyZWFkeQorICAgICAgICBleGlzdCBpbiB0
aGUgbWFwLiBUaGlzIHJlc3VsdHMgaW4gYSBzaW5nbGUgaGFzaCBsb29rdXAgaW5zdGVhZCBvZiB0
d28KKyAgICAgICAgaW4gdGhpcyBjYXNlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVo
YXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0xEYXRhOjpT
aGFyZWRHTERhdGE6OmdldFNoYWRlclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckdMRGF0YTo6Z2V0U3RhdGljVkJPKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJHTDo6ZHJhd1VzaW5nQ3VzdG9tRmlsdGVyKToKKwogMjAxMy0wNC0wNCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgQ2hyb21pdW0gY29kZSBm
cm9tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRleCBhOGJh
OTY3Li45MjUzNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcApAQCAtODgsMTMgKzg4LDExIEBA
IHB1YmxpYzoKIAogICAgICAgICBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
PiBnZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9w
dGlvbnMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEhhc2hNYXA8VGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06Ok9wdGlvbnMsIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPjo6
aXRlcmF0b3IgaXQgPSBtX3Byb2dyYW1zLmZpbmQob3B0aW9ucyk7Ci0gICAgICAgICAgICBpZiAo
aXQgIT0gbV9wcm9ncmFtcy5lbmQoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gaXQtPnZhbHVl
OworICAgICAgICAgICAgSGFzaE1hcDxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9u
cywgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+OjpBZGRSZXN1bHQgcmVzdWx0
ID0gbV9wcm9ncmFtcy5hZGQob3B0aW9ucywgMCk7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmlz
TmV3RW50cnkpCisgICAgICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpjcmVhdGUobV9jb250ZXh0LCBvcHRpb25zKTsKIAotICAg
ICAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OmNyZWF0ZShtX2NvbnRleHQsIG9wdGlvbnMpOwotICAg
ICAgICAgICAgbV9wcm9ncmFtcy5hZGQob3B0aW9ucywgcHJvZ3JhbSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gcHJvZ3JhbTsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVl
OwogICAgICAgICB9CiAKICAgICAgICAgSGFzaE1hcDxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6T3B0aW9ucywgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+IG1fcHJvZ3Jh
bXM7CkBAIC0xNTgsMTUgKzE1NiwxNSBAQCBwdWJsaWM6CiAKIFBsYXRmb3JtM0RPYmplY3QgVGV4
dHVyZU1hcHBlckdMRGF0YTo6Z2V0U3RhdGljVkJPKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVp
cHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpCiB7Ci0gICAgSGFzaE1hcDxjb25zdCB2b2lkKiwg
UGxhdGZvcm0zRE9iamVjdD46Oml0ZXJhdG9yIGl0ID0gdmJvcy5maW5kKGRhdGEpOwotICAgIGlm
IChpdCAhPSB2Ym9zLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQtPnZhbHVlOwotCi0gICAgUGxh
dGZvcm0zRE9iamVjdCB2Ym8gPSBjb250ZXh0LT5jcmVhdGVCdWZmZXIoKTsKLSAgICBjb250ZXh0
LT5iaW5kQnVmZmVyKHRhcmdldCwgdmJvKTsKLSAgICBjb250ZXh0LT5idWZmZXJEYXRhKHRhcmdl
dCwgc2l6ZSwgZGF0YSwgR3JhcGhpY3NDb250ZXh0M0Q6OlNUQVRJQ19EUkFXKTsKLSAgICB2Ym9z
LmFkZChkYXRhLCB2Ym8pOwotICAgIHJldHVybiB2Ym87CisgICAgSGFzaE1hcDxjb25zdCB2b2lk
KiwgUGxhdGZvcm0zRE9iamVjdD46OkFkZFJlc3VsdCByZXN1bHQgPSB2Ym9zLmFkZChkYXRhLCAw
KTsKKyAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpIHsKKyAgICAgICAgUGxhdGZvcm0zRE9iamVj
dCB2Ym8gPSBjb250ZXh0LT5jcmVhdGVCdWZmZXIoKTsKKyAgICAgICAgY29udGV4dC0+YmluZEJ1
ZmZlcih0YXJnZXQsIHZibyk7CisgICAgICAgIGNvbnRleHQtPmJ1ZmZlckRhdGEodGFyZ2V0LCBz
aXplLCBkYXRhLCBHcmFwaGljc0NvbnRleHQzRDo6U1RBVElDX0RSQVcpOworICAgICAgICByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlID0gdmJvOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlOwogfQogCiBUZXh0dXJlTWFwcGVyR0xEYXRhOjp+VGV4dHVyZU1hcHBlckdM
RGF0YSgpCkBAIC05MDQsMTQgKzkwMiwxMCBAQCBib29sIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1Vz
aW5nQ3VzdG9tRmlsdGVyKEJpdG1hcFRleHR1cmUmIHRhcmdldCwgY29uc3QgQml0bWFwVAogICAg
ICAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGN1c3RvbUZpbHRlci0+
cHJvZ3JhbSgpOwogICAgICAgICByZW5kZXJlciA9IEN1c3RvbUZpbHRlclJlbmRlcmVyOjpjcmVh
dGUobV9jb250ZXh0M0QsIHByb2dyYW0tPnByb2dyYW1UeXBlKCksIGN1c3RvbUZpbHRlci0+cGFy
YW1ldGVycygpLCAKICAgICAgICAgICAgIGN1c3RvbUZpbHRlci0+bWVzaFJvd3MoKSwgY3VzdG9t
RmlsdGVyLT5tZXNoQ29sdW1ucygpLCBjdXN0b21GaWx0ZXItPm1lc2hUeXBlKCkpOwotICAgICAg
ICBSZWZQdHI8Q3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtPiBjb21waWxlZFByb2dyYW07Ci0g
ICAgICAgIEN1c3RvbUZpbHRlclByb2dyYW1NYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2N1c3RvbUZp
bHRlclByb2dyYW1zLmZpbmQocHJvZ3JhbS0+cHJvZ3JhbUluZm8oKSk7Ci0gICAgICAgIGlmIChp
dGVyID09IG1fY3VzdG9tRmlsdGVyUHJvZ3JhbXMuZW5kKCkpIHsKLSAgICAgICAgICAgIGNvbXBp
bGVkUHJvZ3JhbSA9IEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbTo6Y3JlYXRlKG1fY29udGV4
dDNELCBwcm9ncmFtLT52ZXJ0ZXhTaGFkZXJTdHJpbmcoKSwgcHJvZ3JhbS0+ZnJhZ21lbnRTaGFk
ZXJTdHJpbmcoKSwgcHJvZ3JhbS0+cHJvZ3JhbVR5cGUoKSk7Ci0gICAgICAgICAgICBtX2N1c3Rv
bUZpbHRlclByb2dyYW1zLnNldChwcm9ncmFtLT5wcm9ncmFtSW5mbygpLCBjb21waWxlZFByb2dy
YW0pOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNvbXBpbGVkUHJvZ3JhbSA9IGl0ZXIt
PnZhbHVlOwotICAgICAgICByZW5kZXJlci0+c2V0Q29tcGlsZWRQcm9ncmFtKGNvbXBpbGVkUHJv
Z3JhbS5yZWxlYXNlKCkpOworICAgICAgICBDdXN0b21GaWx0ZXJQcm9ncmFtTWFwOjpBZGRSZXN1
bHQgcmVzdWx0ID0gbV9jdXN0b21GaWx0ZXJQcm9ncmFtcy5hZGQocHJvZ3JhbS0+cHJvZ3JhbUlu
Zm8oKSwgMCk7CisgICAgICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgIHJl
c3VsdC5pdGVyYXRvci0+dmFsdWUgPSBDdXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW06OmNyZWF0
ZShtX2NvbnRleHQzRCwgcHJvZ3JhbS0+dmVydGV4U2hhZGVyU3RyaW5nKCksIHByb2dyYW0tPmZy
YWdtZW50U2hhZGVyU3RyaW5nKCksIHByb2dyYW0tPnByb2dyYW1UeXBlKCkpOworICAgICAgICBy
ZW5kZXJlci0+c2V0Q29tcGlsZWRQcm9ncmFtKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OlZBTElEQVRFRF9D
VVNUT006IHsKQEAgLTkyMSwxMyArOTE1LDEwIEBAIGJvb2wgVGV4dHVyZU1hcHBlckdMOjpkcmF3
VXNpbmdDdXN0b21GaWx0ZXIoQml0bWFwVGV4dHVyZSYgdGFyZ2V0LCBjb25zdCBCaXRtYXBUCiAg
ICAgICAgIHJlbmRlcmVyID0gQ3VzdG9tRmlsdGVyUmVuZGVyZXI6OmNyZWF0ZShtX2NvbnRleHQz
RCwgcHJvZ3JhbS0+cHJvZ3JhbUluZm8oKS5wcm9ncmFtVHlwZSgpLCBjdXN0b21GaWx0ZXItPnBh
cmFtZXRlcnMoKSwKICAgICAgICAgICAgIGN1c3RvbUZpbHRlci0+bWVzaFJvd3MoKSwgY3VzdG9t
RmlsdGVyLT5tZXNoQ29sdW1ucygpLCBjdXN0b21GaWx0ZXItPm1lc2hUeXBlKCkpOwogICAgICAg
ICBSZWZQdHI8Q3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtPiBjb21waWxlZFByb2dyYW07Ci0g
ICAgICAgIEN1c3RvbUZpbHRlclByb2dyYW1NYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2N1c3RvbUZp
bHRlclByb2dyYW1zLmZpbmQocHJvZ3JhbS0+cHJvZ3JhbUluZm8oKSk7Ci0gICAgICAgIGlmIChp
dGVyID09IG1fY3VzdG9tRmlsdGVyUHJvZ3JhbXMuZW5kKCkpIHsKLSAgICAgICAgICAgIGNvbXBp
bGVkUHJvZ3JhbSA9IEN1c3RvbUZpbHRlckNvbXBpbGVkUHJvZ3JhbTo6Y3JlYXRlKG1fY29udGV4
dDNELCBwcm9ncmFtLT52YWxpZGF0ZWRWZXJ0ZXhTaGFkZXIoKSwgcHJvZ3JhbS0+dmFsaWRhdGVk
RnJhZ21lbnRTaGFkZXIoKSwgcHJvZ3JhbS0+cHJvZ3JhbUluZm8oKS5wcm9ncmFtVHlwZSgpKTsK
LSAgICAgICAgICAgIG1fY3VzdG9tRmlsdGVyUHJvZ3JhbXMuc2V0KHByb2dyYW0tPnByb2dyYW1J
bmZvKCksIGNvbXBpbGVkUHJvZ3JhbSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgY29t
cGlsZWRQcm9ncmFtID0gaXRlci0+dmFsdWU7Ci0gICAgICAgIHJlbmRlcmVyLT5zZXRDb21waWxl
ZFByb2dyYW0oY29tcGlsZWRQcm9ncmFtLnJlbGVhc2UoKSk7CisgICAgICAgIEN1c3RvbUZpbHRl
clByb2dyYW1NYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBtX2N1c3RvbUZpbHRlclByb2dyYW1zLmFk
ZChwcm9ncmFtLT5wcm9ncmFtSW5mbygpLCAwKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc05ld0Vu
dHJ5KQorICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IEN1c3RvbUZpbHRlckNv
bXBpbGVkUHJvZ3JhbTo6Y3JlYXRlKG1fY29udGV4dDNELCBwcm9ncmFtLT52YWxpZGF0ZWRWZXJ0
ZXhTaGFkZXIoKSwgcHJvZ3JhbS0+dmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIoKSwgcHJvZ3JhbS0+
cHJvZ3JhbUluZm8oKS5wcm9ncmFtVHlwZSgpKTsKKyAgICAgICAgcmVuZGVyZXItPnNldENvbXBp
bGVkUHJvZ3JhbShyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIGRlZmF1bHQ6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>