<?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>30983</bug_id>
          
          <creation_ts>2009-10-31 15:47:46 -0700</creation_ts>
          <short_desc>Remove obsolete null checks from CanvasRenderingContext3DMac</short_desc>
          <delta_ts>2009-10-31 16:23:01 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159589</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 15:47:46 -0700</bug_when>
    <thetext>As part of my canvas refactoring a large number of null checks in CanvasRenderingContext3DMac become obsolete</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159590</commentid>
    <comment_count>1</comment_count>
      <attachid>42261</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 15:48:43 -0700</bug_when>
    <thetext>Created attachment 42261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159593</commentid>
    <comment_count>2</comment_count>
      <attachid>42261</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-31 15:54:38 -0700</bug_when>
    <thetext>Comment on attachment 42261
Patch

&gt; +    ASSERT(program &amp;&amp; shader);

We should always use multiple assertions instead of an &amp;&amp; in an assertion, because that way we can tell which one fails.

The title of this bug does not match the patch. The patch does not remove assertions. It adds assertions and removes unneeded runtime checks.

review- because although the problems with the patch are extremely minor, the benefit of the patch is also minor

Please fix the title and don&apos;t use &amp;&amp; in assertions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159595</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 15:57:32 -0700</bug_when>
    <thetext>Whoops, yes i am removing null checks :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159596</commentid>
    <comment_count>4</comment_count>
      <attachid>42262</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 15:58:20 -0700</bug_when>
    <thetext>Created attachment 42262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159599</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-31 16:22:51 -0700</bug_when>
    <thetext>Committed r50382</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42261</attachid>
            <date>2009-10-31 15:48:43 -0700</date>
            <delta_ts>2009-10-31 15:58:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30983-20091031154842.patch</filename>
            <type>text/plain</type>
            <size>7097</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWE3NjE2NC4uMzhlYzQ3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAwOS0xMC0zMSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBvYnNvbGV0ZSBhc3NlcnRpb25zIGZyb20gQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDNETWFjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMDk4MworCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
Q29udGV4dDNETWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjph
dHRhY2hTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRB
dHRyaWJMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y29t
cGlsZVNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGV0YWNo
U2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpmcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZnJh
bWVidWZmZXJUZXh0dXJlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmxpbmtQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzaGFk
ZXJTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVzZVByb2dy
YW0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlUHJvZ3Jh
bSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0UHJvZ3JhbUluZm9M
b2cpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlcmkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlcml2KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTG9nKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJTb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbik6CisKKzIw
MDktMTAtMzEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwogICAgICAgICBSZXZp
ZXdlZCBieSBKb24gSG9uZXljdXR0LgogCiAgICAgICAgIFdlYkdMIGFsbG93cyBvYmplY3RzIHRv
IGJlIHVzZWQgd2l0aCB0aGUgd3JvbmcgY29udGV4dApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCmluZGV4IDQ3NjE3ZDgu
LjEyNTZhNjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBo
aWNzQ29udGV4dDNETWFjLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9H
cmFwaGljc0NvbnRleHQzRE1hYy5jcHAKQEAgLTI0OCwxNiArMjQ4LDE0IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUodW5zaWduZWQgbG9uZyB0ZXh0dXJlKQogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjphdHRhY2hTaGFkZXIoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSwg
Q2FudmFzU2hhZGVyKiBzaGFkZXIpCiB7Ci0gICAgaWYgKCFwcm9ncmFtIHx8ICFzaGFkZXIpCi0g
ICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQocHJvZ3JhbSAmJiBzaGFkZXIpOwogICAgIGVuc3Vy
ZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsQXR0YWNoU2hhZGVyKChHTHVpbnQpIHBy
b2dyYW0tPm9iamVjdCgpLCAoR0x1aW50KSBzaGFkZXItPm9iamVjdCgpKTsKIH0KIAogdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6YmluZEF0dHJpYkxvY2F0aW9uKENhbnZhc1Byb2dyYW0qIHByb2dy
YW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICBpZiAo
IXByb2dyYW0pCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQocHJvZ3JhbSk7CiAgICAgZW5z
dXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xCaW5kQXR0cmliTG9jYXRpb24oKEdM
dWludCkgcHJvZ3JhbS0+b2JqZWN0KCksIGluZGV4LCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogfQpA
QCAtMzgwLDkgKzM3OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvbG9yTWFzayhib29s
IHJlZCwgYm9vbCBncmVlbiwgYm9vbCBibHVlLCBib29sIGFscGhhKQogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpjb21waWxlU2hhZGVyKENhbnZhc1NoYWRlciogc2hhZGVyKQogewotICAgIGlm
ICghc2hhZGVyKQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgQVNTRVJUKHNoYWRlcik7CiAg
ICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xDb21waWxlU2hhZGVyKChH
THVpbnQpIHNoYWRlci0+b2JqZWN0KCkpOwogfQpAQCAtNDI1LDkgKzQyMSw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UoZG91YmxlIHpOZWFyLCBkb3VibGUgekZhcikKIAog
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGV0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dy
YW0sIENhbnZhc1NoYWRlciogc2hhZGVyKQogewotICAgIGlmICghcHJvZ3JhbSB8fCAhc2hhZGVy
KQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgQVNTRVJUKHByb2dyYW0gJiYgc2hhZGVyKTsK
ICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbERldGFjaFNoYWRlcigo
R0x1aW50KSBwcm9ncmFtLT5vYmplY3QoKSwgKEdMdWludCkgc2hhZGVyLT5vYmplY3QoKSk7CiB9
CkBAIC00ODIsMTcgKzQ3NiwxNSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpmbHVzaCgpCiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHVuc2lnbmVk
IGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgcmVu
ZGVyYnVmZmVydGFyZ2V0LCBDYW52YXNSZW5kZXJidWZmZXIqIGJ1ZmZlcikKIHsKLSAgICBpZiAo
IWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuOwotICAgIAorICAgIEFTU0VSVChidWZmZXIpOworCiAg
ICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlckVYVCh0YXJnZXQsIGF0dGFjaG1lbnQsIHJlbmRlcmJ1ZmZlcnRhcmdldCwgKEdMdWlu
dCkgYnVmZmVyLT5vYmplY3QoKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmZyYW1l
YnVmZmVyVGV4dHVyZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFj
aG1lbnQsIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBDYW52YXNUZXh0dXJlKiB0ZXh0dXJlLCBs
b25nIGxldmVsKQogewotICAgIGlmICghdGV4dHVyZSkKLSAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVCh0ZXh0dXJlKTsKICAgICAKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAg
ICAgOjpnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhUKHRhcmdldCwgYXR0YWNobWVudCwgdGV4dGFy
Z2V0LCAoR0x1aW50KSB0ZXh0dXJlLT5vYmplY3QoKSwgbGV2ZWwpOwpAQCAtNjQ1LDkgKzYzNyw3
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmVXaWR0aChkb3VibGUgd2lkdGgpCiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0p
CiB7Ci0gICAgaWYgKCFwcm9ncmFtKQotICAgICAgICByZXR1cm47Ci0gICAgCisgICAgQVNTRVJU
KHByb2dyYW0pOwogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsTGlu
a1Byb2dyYW0oKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCkpOwogfQpAQCAtNzA3LDggKzY5Nyw3
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNjaXNzb3IobG9uZyB4LCBsb25nIHksIHVuc2ln
bmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNo
YWRlclNvdXJjZShDYW52YXNTaGFkZXIqIHNoYWRlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7
Ci0gICAgaWYgKCFzaGFkZXIpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoc2hhZGVyKTsK
ICAgICAKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgY29uc3QgQ1N0cmlu
ZyYgY3MgPSBzdHJpbmcudXRmOCgpOwpAQCAtODkxLDggKzg4MCw3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnVuaWZvcm1NYXRyaXg0ZnYobG9uZyBsb2NhdGlvbiwgYm9vbCB0cmFuc3Bvc2Us
IGZsb2F0KiBhCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnVzZVByb2dyYW0oQ2FudmFzUHJv
Z3JhbSogcHJvZ3JhbSkKIHsKLSAgICBpZiAoIXByb2dyYW0pCi0gICAgICAgIHJldHVybjsKKyAg
ICBBU1NFUlQocHJvZ3JhbSk7CiAgICAgCiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmop
OwogICAgIDo6Z2xVc2VQcm9ncmFtKChHTHVpbnQpIHByb2dyYW0tPm9iamVjdCgpKTsKQEAgLTkw
MCw4ICs4ODgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1c2VQcm9ncmFtKENhbnZhc1By
b2dyYW0qIHByb2dyYW0pCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlUHJvZ3Jh
bShDYW52YXNQcm9ncmFtKiBwcm9ncmFtKQogewotICAgIGlmICghcHJvZ3JhbSkKLSAgICAgICAg
cmV0dXJuOworICAgIEFTU0VSVChwcm9ncmFtKTsKICAgICAKICAgICBlbnN1cmVDb250ZXh0KG1f
Y29udGV4dE9iaik7CiAgICAgOjpnbFZhbGlkYXRlUHJvZ3JhbSgoR0x1aW50KSBwcm9ncmFtLT5v
YmplY3QoKSk7CkBAIC0xMjg2LDggKzEyNzMsNyBAQCBQYXNzUmVmUHRyPENhbnZhc0ludEFycmF5
PiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0UHJvZ3JhbWl2KENhbnZhc1Byb2dyYW0qIHByb2dyYQog
CiBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9nKENhbnZhc1Byb2dy
YW0qIHByb2dyYW0pCiB7Ci0gICAgaWYgKCFwcm9ncmFtKQotICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CisgICAgQVNTRVJUKHByb2dyYW0pOwogICAgIAogICAgIGVuc3VyZUNvbnRleHQobV9jb250
ZXh0T2JqKTsKICAgICBHTGludCBsZW5ndGg7CkBAIC0xMzIyLDggKzEzMDgsNyBAQCBQYXNzUmVm
UHRyPENhbnZhc0ludEFycmF5PiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyaXYodW5zaWduZQogCiBpbnQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlcmkoQ2Fu
dmFzU2hhZGVyKiBzaGFkZXIsIHVuc2lnbmVkIGxvbmcgcG5hbWUpCiB7Ci0gICAgaWYgKCFzaGFk
ZXIpCi0gICAgICAgIHJldHVybiAwOworICAgIEFTU0VSVChzaGFkZXIpOwogICAgIAogICAgIGVu
c3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICBHTGludCBkYXRhOwpAQCAtMTMzMyw4ICsx
MzE4LDcgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJpKENhbnZhc1NoYWRlciog
c2hhZGVyLCB1bnNpZ25lZCBsb25nIHBuYW1lKQogCiBQYXNzUmVmUHRyPENhbnZhc0ludEFycmF5
PiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyaXYoQ2FudmFzU2hhZGVyKiBzaGFkZXIsIHVu
c2lnbmVkIGxvbmcgcG5hbWUpCiB7Ci0gICAgaWYgKCFzaGFkZXIpCi0gICAgICAgIHJldHVybiAw
OworICAgIEFTU0VSVChzaGFkZXIpOwogICAgIAogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0
T2JqKTsKICAgICBSZWZQdHI8Q2FudmFzSW50QXJyYXk+IGFycmF5ID0gQ2FudmFzSW50QXJyYXk6
OmNyZWF0ZSgxKTsKQEAgLTEzNDcsOCArMTMzMSw3IEBAIFBhc3NSZWZQdHI8Q2FudmFzSW50QXJy
YXk+IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJpdihDYW52YXNTaGFkZXIqIHNoYWRlciwK
IAogU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTG9nKENhbnZhc1NoYWRl
ciogc2hhZGVyKQogewotICAgIGlmICghc2hhZGVyKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CisgICAgQVNTRVJUKHNoYWRlcik7CiAgICAgCiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRP
YmopOwogICAgIEdMaW50IGxlbmd0aDsKQEAgLTEzNjQsOSArMTM0Nyw4IEBAIFN0cmluZyBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0U2hhZGVySW5mb0xvZyhDYW52YXNTaGFkZXIqIHNoYWRlcikKIAog
U3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiBz
aGFkZXIpCiB7Ci0gICAgaWYgKCFzaGFkZXIpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAg
ICAKKyAgICBBU1NFUlQoc2hhZGVyKTsKKwogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2Jq
KTsKICAgICBHTGludCBsZW5ndGg7CiAgICAgOjpnbEdldFNoYWRlcml2KChHTHVpbnQpIHNoYWRl
ci0+b2JqZWN0KCksIEdMX1NIQURFUl9TT1VSQ0VfTEVOR1RILCAmbGVuZ3RoKTsKQEAgLTE0NTYs
OCArMTQzOCw3IEBAIFBhc3NSZWZQdHI8Q2FudmFzSW50QXJyYXk+IEdyYXBoaWNzQ29udGV4dDNE
OjpnZXRVbmlmb3JtaXYoQ2FudmFzUHJvZ3JhbSogcHJvZ3JhCiAKIGxvbmcgR3JhcGhpY3NDb250
ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbihDYW52YXNQcm9ncmFtKiBwcm9ncmFtLCBjb25zdCBT
dHJpbmcmIG5hbWUpCiB7Ci0gICAgaWYgKCFwcm9ncmFtKQotICAgICAgICByZXR1cm4gLTE7Cisg
ICAgQVNTRVJUKHByb2dyYW0pOwogICAgIAogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2Jq
KTsKICAgICByZXR1cm4gOjpnbEdldFVuaWZvcm1Mb2NhdGlvbigoR0x1aW50KSBwcm9ncmFtLT5v
YmplY3QoKSwgbmFtZS51dGY4KCkuZGF0YSgpKTs=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42262</attachid>
            <date>2009-10-31 15:58:20 -0700</date>
            <delta_ts>2009-10-31 16:01:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30983-20091031155819.patch</filename>
            <type>text/plain</type>
            <size>7119</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWE3NjE2NC4uZjEyYTQ0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAwOS0xMC0zMSAgT2xpdmVyIEh1bnQg
IDxvbGl2ZXJAYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZSBvYnNvbGV0ZSBudWxsIGNoZWNrcyBmcm9tIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQzRE1hYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzA5ODMKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGlj
c0NvbnRleHQzRE1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
YXR0YWNoU2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpiaW5k
QXR0cmliTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNv
bXBpbGVTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRldGFj
aFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmZy
YW1lYnVmZmVyVGV4dHVyZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpsaW5rUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2hh
ZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1c2VQcm9n
cmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZVByb2dy
YW0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZv
TG9nKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJpKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJpdik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVySW5mb0xvZyk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtTG9jYXRpb24pOgorCisy
MDA5LTEwLTMxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKICAgICAgICAgUmV2
aWV3ZWQgYnkgSm9uIEhvbmV5Y3V0dC4KIAogICAgICAgICBXZWJHTCBhbGxvd3Mgb2JqZWN0cyB0
byBiZSB1c2VkIHdpdGggdGhlIHdyb25nIGNvbnRleHQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcAppbmRleCA0NzYxN2Q4
Li40NzdmOGFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFw
aGljc0NvbnRleHQzRE1hYy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
R3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCkBAIC0yNDgsMTYgKzI0OCwxNSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKHVuc2lnbmVkIGxvbmcgdGV4dHVyZSkKIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoU2hhZGVyKENhbnZhc1Byb2dyYW0qIHByb2dyYW0s
IENhbnZhc1NoYWRlciogc2hhZGVyKQogewotICAgIGlmICghcHJvZ3JhbSB8fCAhc2hhZGVyKQot
ICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHByb2dyYW0pCisgICAgQVNTRVJUKHNoYWRlcik7
CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xBdHRhY2hTaGFkZXIo
KEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCksIChHTHVpbnQpIHNoYWRlci0+b2JqZWN0KCkpOwog
fQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kQXR0cmliTG9jYXRpb24oQ2FudmFzUHJv
Z3JhbSogcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKQog
ewotICAgIGlmICghcHJvZ3JhbSkKLSAgICAgICAgcmV0dXJuOworICAgIEFTU0VSVChwcm9ncmFt
KTsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbEJpbmRBdHRyaWJM
b2NhdGlvbigoR0x1aW50KSBwcm9ncmFtLT5vYmplY3QoKSwgaW5kZXgsIG5hbWUudXRmOCgpLmRh
dGEoKSk7CiB9CkBAIC0zODAsOSArMzc5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29s
b3JNYXNrKGJvb2wgcmVkLCBib29sIGdyZWVuLCBib29sIGJsdWUsIGJvb2wgYWxwaGEpCiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvbXBpbGVTaGFkZXIoQ2FudmFzU2hhZGVyKiBzaGFkZXIp
CiB7Ci0gICAgaWYgKCFzaGFkZXIpCi0gICAgICAgIHJldHVybjsKLSAgICAKKyAgICBBU1NFUlQo
c2hhZGVyKTsKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgOjpnbENvbXBp
bGVTaGFkZXIoKEdMdWludCkgc2hhZGVyLT5vYmplY3QoKSk7CiB9CkBAIC00MjUsOSArNDIyLDgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJs
ZSB6RmFyKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXRhY2hTaGFkZXIoQ2FudmFzUHJv
Z3JhbSogcHJvZ3JhbSwgQ2FudmFzU2hhZGVyKiBzaGFkZXIpCiB7Ci0gICAgaWYgKCFwcm9ncmFt
IHx8ICFzaGFkZXIpCi0gICAgICAgIHJldHVybjsKLSAgICAKKyAgICBBU1NFUlQocHJvZ3JhbSk7
CisgICAgQVNTRVJUKHNoYWRlcik7CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwog
ICAgIDo6Z2xEZXRhY2hTaGFkZXIoKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCksIChHTHVpbnQp
IHNoYWRlci0+b2JqZWN0KCkpOwogfQpAQCAtNDgyLDE3ICs0NzgsMTUgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6Zmx1c2goKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpmcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2ht
ZW50LCB1bnNpZ25lZCBsb25nIHJlbmRlcmJ1ZmZlcnRhcmdldCwgQ2FudmFzUmVuZGVyYnVmZmVy
KiBidWZmZXIpCiB7Ci0gICAgaWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybjsKLSAgICAKKyAg
ICBBU1NFUlQoYnVmZmVyKTsKKwogICAgIGVuc3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAg
ICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQodGFyZ2V0LCBhdHRhY2htZW50LCByZW5k
ZXJidWZmZXJ0YXJnZXQsIChHTHVpbnQpIGJ1ZmZlci0+b2JqZWN0KCkpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25nIHRhcmdl
dCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdldCwgQ2Fu
dmFzVGV4dHVyZSogdGV4dHVyZSwgbG9uZyBsZXZlbCkKIHsKLSAgICBpZiAoIXRleHR1cmUpCi0g
ICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQodGV4dHVyZSk7CiAgICAgCiAgICAgZW5zdXJlQ29u
dGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xGcmFtZWJ1ZmZlclRleHR1cmUyREVYVCh0YXJn
ZXQsIGF0dGFjaG1lbnQsIHRleHRhcmdldCwgKEdMdWludCkgdGV4dHVyZS0+b2JqZWN0KCksIGxl
dmVsKTsKQEAgLTY0NSw5ICs2MzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lk
dGgoZG91YmxlIHdpZHRoKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5rUHJvZ3JhbShD
YW52YXNQcm9ncmFtKiBwcm9ncmFtKQogewotICAgIGlmICghcHJvZ3JhbSkKLSAgICAgICAgcmV0
dXJuOwotICAgIAorICAgIEFTU0VSVChwcm9ncmFtKTsKICAgICBlbnN1cmVDb250ZXh0KG1fY29u
dGV4dE9iaik7CiAgICAgOjpnbExpbmtQcm9ncmFtKChHTHVpbnQpIHByb2dyYW0tPm9iamVjdCgp
KTsKIH0KQEAgLTcwNyw4ICs2OTksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29y
KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsbwogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpzaGFkZXJTb3VyY2UoQ2FudmFzU2hhZGVyKiBzaGFkZXIsIGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIGlmICghc2hhZGVyKQotICAgICAgICByZXR1cm47
CisgICAgQVNTRVJUKHNoYWRlcik7CiAgICAgCiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRP
YmopOwogICAgIGNvbnN0IENTdHJpbmcmIGNzID0gc3RyaW5nLnV0ZjgoKTsKQEAgLTg5MSw4ICs4
ODIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtTWF0cml4NGZ2KGxvbmcgbG9j
YXRpb24sIGJvb2wgdHJhbnNwb3NlLCBmbG9hdCogYQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
Ojp1c2VQcm9ncmFtKENhbnZhc1Byb2dyYW0qIHByb2dyYW0pCiB7Ci0gICAgaWYgKCFwcm9ncmFt
KQotICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKHByb2dyYW0pOwogICAgIAogICAgIGVuc3Vy
ZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICA6OmdsVXNlUHJvZ3JhbSgoR0x1aW50KSBwcm9n
cmFtLT5vYmplY3QoKSk7CkBAIC05MDAsOCArODkwLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6dXNlUHJvZ3JhbShDYW52YXNQcm9ncmFtKiBwcm9ncmFtKQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjp2YWxpZGF0ZVByb2dyYW0oQ2FudmFzUHJvZ3JhbSogcHJvZ3JhbSkKIHsKLSAgICBp
ZiAoIXByb2dyYW0pCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQocHJvZ3JhbSk7CiAgICAg
CiAgICAgZW5zdXJlQ29udGV4dChtX2NvbnRleHRPYmopOwogICAgIDo6Z2xWYWxpZGF0ZVByb2dy
YW0oKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCkpOwpAQCAtMTI4Niw4ICsxMjc1LDcgQEAgUGFz
c1JlZlB0cjxDYW52YXNJbnRBcnJheT4gR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1pdihD
YW52YXNQcm9ncmFtKiBwcm9ncmEKIAogU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRQcm9n
cmFtSW5mb0xvZyhDYW52YXNQcm9ncmFtKiBwcm9ncmFtKQogewotICAgIGlmICghcHJvZ3JhbSkK
LSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIEFTU0VSVChwcm9ncmFtKTsKICAgICAKICAg
ICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgR0xpbnQgbGVuZ3RoOwpAQCAtMTMy
Miw4ICsxMzEwLDcgQEAgUGFzc1JlZlB0cjxDYW52YXNJbnRBcnJheT4gR3JhcGhpY3NDb250ZXh0
M0Q6OmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KHVuc2lnbmUKIAogaW50IEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRTaGFkZXJpKENhbnZhc1NoYWRlciogc2hhZGVyLCB1bnNpZ25lZCBsb25nIHBu
YW1lKQogewotICAgIGlmICghc2hhZGVyKQotICAgICAgICByZXR1cm4gMDsKKyAgICBBU1NFUlQo
c2hhZGVyKTsKICAgICAKICAgICBlbnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgR0xp
bnQgZGF0YTsKQEAgLTEzMzMsOCArMTMyMCw3IEBAIGludCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
U2hhZGVyaShDYW52YXNTaGFkZXIqIHNoYWRlciwgdW5zaWduZWQgbG9uZyBwbmFtZSkKIAogUGFz
c1JlZlB0cjxDYW52YXNJbnRBcnJheT4gR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlcml2KENh
bnZhc1NoYWRlciogc2hhZGVyLCB1bnNpZ25lZCBsb25nIHBuYW1lKQogewotICAgIGlmICghc2hh
ZGVyKQotICAgICAgICByZXR1cm4gMDsKKyAgICBBU1NFUlQoc2hhZGVyKTsKICAgICAKICAgICBl
bnN1cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgUmVmUHRyPENhbnZhc0ludEFycmF5PiBh
cnJheSA9IENhbnZhc0ludEFycmF5OjpjcmVhdGUoMSk7CkBAIC0xMzQ3LDggKzEzMzMsNyBAQCBQ
YXNzUmVmUHRyPENhbnZhc0ludEFycmF5PiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyaXYo
Q2FudmFzU2hhZGVyKiBzaGFkZXIsCiAKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hh
ZGVySW5mb0xvZyhDYW52YXNTaGFkZXIqIHNoYWRlcikKIHsKLSAgICBpZiAoIXNoYWRlcikKLSAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIEFTU0VSVChzaGFkZXIpOwogICAgIAogICAgIGVu
c3VyZUNvbnRleHQobV9jb250ZXh0T2JqKTsKICAgICBHTGludCBsZW5ndGg7CkBAIC0xMzY0LDkg
KzEzNDksOCBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlckluZm9Mb2coQ2Fu
dmFzU2hhZGVyKiBzaGFkZXIpCiAKIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVy
U291cmNlKENhbnZhc1NoYWRlciogc2hhZGVyKQogewotICAgIGlmICghc2hhZGVyKQotICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgCisgICAgQVNTRVJUKHNoYWRlcik7CisKICAgICBlbnN1
cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgR0xpbnQgbGVuZ3RoOwogICAgIDo6Z2xHZXRT
aGFkZXJpdigoR0x1aW50KSBzaGFkZXItPm9iamVjdCgpLCBHTF9TSEFERVJfU09VUkNFX0xFTkdU
SCwgJmxlbmd0aCk7CkBAIC0xNDU2LDggKzE0NDAsNyBAQCBQYXNzUmVmUHRyPENhbnZhc0ludEFy
cmF5PiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0VW5pZm9ybWl2KENhbnZhc1Byb2dyYW0qIHByb2dy
YQogCiBsb25nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtTG9jYXRpb24oQ2FudmFzUHJv
Z3JhbSogcHJvZ3JhbSwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGlmICghcHJvZ3JhbSkK
LSAgICAgICAgcmV0dXJuIC0xOworICAgIEFTU0VSVChwcm9ncmFtKTsKICAgICAKICAgICBlbnN1
cmVDb250ZXh0KG1fY29udGV4dE9iaik7CiAgICAgcmV0dXJuIDo6Z2xHZXRVbmlmb3JtTG9jYXRp
b24oKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0KCksIG5hbWUudXRmOCgpLmRhdGEoKSk7
</data>
<flag name="review"
          id="23774"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>