<?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>30778</bug_id>
          
          <creation_ts>2009-10-26 09:18:32 -0700</creation_ts>
          <short_desc>GraphicsContext3D should be using fastMalloc</short_desc>
          <delta_ts>2009-12-01 08:10:20 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>157793</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-10-26 09:18:32 -0700</bug_when>
    <thetext>GraphicsContext3D has a bunch of malloc() calls that should be using fastMalloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167585</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 06:45:42 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/51535</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167586</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 06:50:31 -0800</bug_when>
    <thetext>Sorry, closed wrong bug. Ignore previous comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167596</commentid>
    <comment_count>3</comment_count>
      <attachid>44074</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 07:31:05 -0800</bug_when>
    <thetext>Created attachment 44074
Patch with updated test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167597</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-01 07:31:23 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44074 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167605</commentid>
    <comment_count>5</comment_count>
      <attachid>44074</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-01 07:47:19 -0800</bug_when>
    <thetext>Comment on attachment 44074
Patch with updated test case

&gt; -    GLchar* info = (GLchar*) malloc(length);
&gt; +    GLchar* info = (GLchar*) fastMalloc(length);
&gt; +    if (!info)
&gt; +        return &quot;&quot;;
&gt; +
&gt;      ::glGetProgramInfoLog((GLuint) program-&gt;object(), length, &amp;size, info);
&gt;      String s(info);
&gt;      free(info);

If you use fastMalloc, you need to use fastFree, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167607</commentid>
    <comment_count>6</comment_count>
      <attachid>44074</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-01 07:49:50 -0800</bug_when>
    <thetext>Comment on attachment 44074
Patch with updated test case

&gt; +// Test program and shader gets
&gt; +var parseError = &quot;ERROR: 0:1: &apos;I&apos; : syntax error syntax error\nERROR: Parser found no code to compile in source strings.\n&quot;;
&gt; +var errorVertString = &quot;I am a bad vertex shader\n&quot;;
&gt; +var errorFragString = &quot;I am a bad fragment shader\n&quot;;
&gt; +shouldBe(&apos;gl.getProgramInfoLog(standardProgram)&apos;, &apos;&quot;&quot;&apos;);
&gt; +shouldBe(&apos;gl.getShaderInfoLog(errorVert)&apos;, &apos;parseError&apos;);
&gt; +shouldBe(&apos;gl.getShaderInfoLog(errorFrag)&apos;, &apos;parseError&apos;);
&gt; +shouldBe(&apos;gl.getShaderSource(errorVert)&apos;, &apos;errorVertString&apos;);
&gt; +shouldBe(&apos;gl.getShaderSource(errorFrag)&apos;, &apos;errorFragString&apos;);

If you don&apos;t quote the second parameter to these functions you&apos;ll see the actual error messages in the test output, which might be good. Maybe you should be using shouldBeEqualToString instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167617</commentid>
    <comment_count>7</comment_count>
      <attachid>44079</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 08:05:40 -0800</bug_when>
    <thetext>Created attachment 44079
Replacement patch

Adds fastFree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167619</commentid>
    <comment_count>8</comment_count>
      <attachid>44079</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-12-01 08:06:50 -0800</bug_when>
    <thetext>Comment on attachment 44079
Replacement patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167623</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-12-01 08:10:09 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/51537</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44074</attachid>
            <date>2009-12-01 07:31:05 -0800</date>
            <delta_ts>2009-12-01 08:05:40 -0800</delta_ts>
            <desc>Patch with updated test case</desc>
            <filename>30778.patch</filename>
            <type>text/plain</type>
            <size>6135</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTUzNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMTItMDEgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgbWFsbG9jcyB0byBmYXN0TWFsbG9jcyBpbiBHcmFwaGljc0NvbnRleHQzRC4gQWxzbyBh
ZGRlZCBlcnJvciByZXR1cm5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDc3OAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBo
aWNzQ29udGV4dDNETWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpnZXRQcm9ncmFtSW5mb0xvZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0U2hhZGVySW5mb0xvZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVG9UZXh0dXJlKToK
KwogMjAwOS0xMi0wMSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRl
eHQzRE1hYy5jcHAJKHJldmlzaW9uIDUxNTM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OTcsNyAr
OTk3LDEwIEBAIFN0cmluZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0UHJvZ3JhbUluZm8KICAgICA6
OmdsR2V0UHJvZ3JhbWl2KChHTHVpbnQpIHByb2dyYW0tPm9iamVjdCgpLCBHTF9JTkZPX0xPR19M
RU5HVEgsICZsZW5ndGgpOwogICAgIAogICAgIEdMc2l6ZWkgc2l6ZTsKLSAgICBHTGNoYXIqIGlu
Zm8gPSAoR0xjaGFyKikgbWFsbG9jKGxlbmd0aCk7CisgICAgR0xjaGFyKiBpbmZvID0gKEdMY2hh
ciopIGZhc3RNYWxsb2MobGVuZ3RoKTsKKyAgICBpZiAoIWluZm8pCisgICAgICAgIHJldHVybiAi
IjsKKwogICAgIDo6Z2xHZXRQcm9ncmFtSW5mb0xvZygoR0x1aW50KSBwcm9ncmFtLT5vYmplY3Qo
KSwgbGVuZ3RoLCAmc2l6ZSwgaW5mbyk7CiAgICAgU3RyaW5nIHMoaW5mbyk7CiAgICAgZnJlZShp
bmZvKTsKQEAgLTEwMjcsNyArMTAzMCwxMCBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6Omdl
dFNoYWRlckluZm9MCiAgICAgOjpnbEdldFNoYWRlcml2KChHTHVpbnQpIHNoYWRlci0+b2JqZWN0
KCksIEdMX0lORk9fTE9HX0xFTkdUSCwgJmxlbmd0aCk7CiAgICAgCiAgICAgR0xzaXplaSBzaXpl
OwotICAgIEdMY2hhciogaW5mbyA9IChHTGNoYXIqKSBtYWxsb2MobGVuZ3RoKTsKKyAgICBHTGNo
YXIqIGluZm8gPSAoR0xjaGFyKikgZmFzdE1hbGxvYyhsZW5ndGgpOworICAgIGlmICghaW5mbykK
KyAgICAgICAgcmV0dXJuICIiOworICAgICAgICAKICAgICA6OmdsR2V0U2hhZGVySW5mb0xvZygo
R0x1aW50KSBzaGFkZXItPm9iamVjdCgpLCBsZW5ndGgsICZzaXplLCBpbmZvKTsKICAgICBTdHJp
bmcgcyhpbmZvKTsKICAgICBmcmVlKGluZm8pOwpAQCAtMTA0Myw3ICsxMDQ5LDEwIEBAIFN0cmlu
ZyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVyU291cmMKICAgICA6OmdsR2V0U2hhZGVyaXYo
KEdMdWludCkgc2hhZGVyLT5vYmplY3QoKSwgR0xfU0hBREVSX1NPVVJDRV9MRU5HVEgsICZsZW5n
dGgpOwogICAgIAogICAgIEdMc2l6ZWkgc2l6ZTsKLSAgICBHTGNoYXIqIGluZm8gPSAoR0xjaGFy
KikgbWFsbG9jKGxlbmd0aCk7CisgICAgR0xjaGFyKiBpbmZvID0gKEdMY2hhciopIGZhc3RNYWxs
b2MobGVuZ3RoKTsKKyAgICBpZiAoIWluZm8pCisgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAg
CiAgICAgOjpnbEdldFNoYWRlclNvdXJjZSgoR0x1aW50KSBzaGFkZXItPm9iamVjdCgpLCBsZW5n
dGgsICZzaXplLCBpbmZvKTsKICAgICBTdHJpbmcgcyhpbmZvKTsKICAgICBmcmVlKGluZm8pOwpA
QCAtMTExNyw3ICsxMTI2LDEwIEBAIHN0YXRpYyB2b2lkIGltYWdlVG9UZXh0dXJlKEltYWdlKiBp
bWFnZSwKICAgICBzaXplX3QgdGV4dHVyZVdpZHRoID0gQ0dJbWFnZUdldFdpZHRoKHRleHR1cmVJ
bWFnZSk7CiAgICAgc2l6ZV90IHRleHR1cmVIZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KHRleHR1
cmVJbWFnZSk7CiAgICAgCi0gICAgR0x1Ynl0ZSogdGV4dHVyZURhdGEgPSAoR0x1Ynl0ZSopIG1h
bGxvYyh0ZXh0dXJlV2lkdGggKiB0ZXh0dXJlSGVpZ2h0ICogNCk7CisgICAgR0x1Ynl0ZSogdGV4
dHVyZURhdGEgPSAoR0x1Ynl0ZSopIGZhc3RNYWxsb2ModGV4dHVyZVdpZHRoICogdGV4dHVyZUhl
aWdodCAqIDQpOworICAgIGlmICghdGV4dHVyZURhdGEpCisgICAgICAgIHJldHVybjsKKyAgICAg
ICAgCiAgICAgQ0dDb250ZXh0UmVmIHRleHR1cmVDb250ZXh0ID0gQ0dCaXRtYXBDb250ZXh0Q3Jl
YXRlKHRleHR1cmVEYXRhLCB0ZXh0dXJlV2lkdGgsIHRleHR1cmVIZWlnaHQsIDgsIHRleHR1cmVX
aWR0aCAqIDQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDR0ltYWdlR2V0Q29sb3JTcGFjZSh0ZXh0dXJlSW1hZ2UpLCBrQ0dJbWFnZUFs
cGhhUHJlbXVsdGlwbGllZExhc3QpOwogICAgIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTE1MzUpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAor
MjAwOS0xMi0wMSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIGdl
dFByb2dyYW1JbmZvTG9nLCBnZXRTaGFkZXJJbmZvTG9nIGFuZCBnZXRTaGFkZXJTb3VyY2UgdG8g
V2ViR0wgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMwNzc4CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNh
bGxzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVz
dHMvZ2wtb2JqZWN0LWdldC1jYWxscy5qczoKKwogMjAwOS0xMi0wMSAgQ2hyaXMgTWFycmluICA8
Y21hcnJpbkBhcHBsZS5jb20+CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA1MTUzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVj
dC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsMTEgQEAg
VGVzdCBvZiBnZXQgY2FsbHMgYWdhaW5zdCBHTCBvYmplY3RzIGxpawogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKK1BBU1MgZ2wuZ2V0UHJvZ3JhbUluZm9Mb2coc3RhbmRhcmRQcm9ncmFt
KSBpcyAiIgorUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKGVycm9yVmVydCkgaXMgcGFyc2VFcnJv
cgorUEFTUyBnbC5nZXRTaGFkZXJJbmZvTG9nKGVycm9yRnJhZykgaXMgcGFyc2VFcnJvcgorUEFT
UyBnbC5nZXRTaGFkZXJTb3VyY2UoZXJyb3JWZXJ0KSBpcyBlcnJvclZlcnRTdHJpbmcKK1BBU1Mg
Z2wuZ2V0U2hhZGVyU291cmNlKGVycm9yRnJhZykgaXMgZXJyb3JGcmFnU3RyaW5nCiBQQVNTIGds
LmdldEJ1ZmZlclBhcmFtZXRlcihnbC5BUlJBWV9CVUZGRVIsIGdsLkJVRkZFUl9TSVpFKSBpcyAx
NgogUEFTUyBnbC5nZXRCdWZmZXJQYXJhbWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJf
VVNBR0UpIGlzIGdsLkRZTkFNSUNfRFJBVwogUEFTUyBnbC5nZXRFcnJvcigpIGlzIDAKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nbC1vYmplY3QtZ2V0
LWNhbGxzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3Nj
cmlwdC10ZXN0cy9nbC1vYmplY3QtZ2V0LWNhbGxzLmpzCShyZXZpc2lvbiA1MTUzNCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nbC1vYmplY3QtZ2V0LWNh
bGxzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0
IG9mIGdldCBjYWxscyBhZ2FpbnN0IEdMIG9iamVjdHMgbGlrZSBnZXRCdWZmZXJQYXJhbWV0ZXIs
IGV0Yy4iKTsKIAogdmFyIGdsID0gY3JlYXRlM0RDb250ZXh0KCk7CisKK3ZhciBlcnJvclZlcnQg
PSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUik7CitnbC5zaGFkZXJTb3VyY2UoZXJy
b3JWZXJ0LCAiSSBhbSBhIGJhZCB2ZXJ0ZXggc2hhZGVyIik7CitnbC5jb21waWxlU2hhZGVyKGVy
cm9yVmVydCk7CisKK3ZhciBlcnJvckZyYWcgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRf
U0hBREVSKTsKK2dsLnNoYWRlclNvdXJjZShlcnJvckZyYWcsICJJIGFtIGEgYmFkIGZyYWdtZW50
IHNoYWRlciIpOworZ2wuY29tcGlsZVNoYWRlcihlcnJvckZyYWcpOworCiB2YXIgc3RhbmRhcmRW
ZXJ0ID0gbG9hZFN0YW5kYXJkVmVydGV4U2hhZGVyKGdsKTsKIHZhciBzdGFuZGFyZEZyYWcgPSBs
b2FkU3RhbmRhcmRGcmFnbWVudFNoYWRlcihnbCk7CiB2YXIgc3RhbmRhcmRQcm9ncmFtID0gZ2wu
Y3JlYXRlUHJvZ3JhbSgpOwpAQCAtOCw2ICsxNywxNiBAQCBnbC5hdHRhY2hTaGFkZXIoc3RhbmRh
cmRQcm9ncmFtLCBzdGFuZGFyCiBnbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQcm9ncmFtLCBzdGFu
ZGFyZEZyYWcpOwogZ2wubGlua1Byb2dyYW0oc3RhbmRhcmRQcm9ncmFtKTsKIAorLy8gVGVzdCBw
cm9ncmFtIGFuZCBzaGFkZXIgZ2V0cwordmFyIHBhcnNlRXJyb3IgPSAiRVJST1I6IDA6MTogJ0kn
IDogc3ludGF4IGVycm9yIHN5bnRheCBlcnJvclxuRVJST1I6IFBhcnNlciBmb3VuZCBubyBjb2Rl
IHRvIGNvbXBpbGUgaW4gc291cmNlIHN0cmluZ3MuXG4iOwordmFyIGVycm9yVmVydFN0cmluZyA9
ICJJIGFtIGEgYmFkIHZlcnRleCBzaGFkZXJcbiI7Cit2YXIgZXJyb3JGcmFnU3RyaW5nID0gIkkg
YW0gYSBiYWQgZnJhZ21lbnQgc2hhZGVyXG4iOworc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1JbmZv
TG9nKHN0YW5kYXJkUHJvZ3JhbSknLCAnIiInKTsKK3Nob3VsZEJlKCdnbC5nZXRTaGFkZXJJbmZv
TG9nKGVycm9yVmVydCknLCAncGFyc2VFcnJvcicpOworc2hvdWxkQmUoJ2dsLmdldFNoYWRlcklu
Zm9Mb2coZXJyb3JGcmFnKScsICdwYXJzZUVycm9yJyk7CitzaG91bGRCZSgnZ2wuZ2V0U2hhZGVy
U291cmNlKGVycm9yVmVydCknLCAnZXJyb3JWZXJ0U3RyaW5nJyk7CitzaG91bGRCZSgnZ2wuZ2V0
U2hhZGVyU291cmNlKGVycm9yRnJhZyknLCAnZXJyb3JGcmFnU3RyaW5nJyk7CisKIC8vIFRlc3Qg
Z2V0QnVmZmVyUGFyYW1ldGVyCiB2YXIgYnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CiBnbC5i
aW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgYnVmZmVyKTsK
</data>
<flag name="review"
          id="25850"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44079</attachid>
            <date>2009-12-01 08:05:40 -0800</date>
            <delta_ts>2009-12-01 08:06:49 -0800</delta_ts>
            <desc>Replacement patch</desc>
            <filename>30778.patch</filename>
            <type>text/plain</type>
            <size>6738</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTUzNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMTItMDEgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENo
YW5nZWQgbWFsbG9jcyB0byBmYXN0TWFsbG9jcyBpbiBHcmFwaGljc0NvbnRleHQzRC4gQWxzbyBh
ZGRlZCBlcnJvciByZXR1cm5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDc3OAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBo
aWNzQ29udGV4dDNETWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpnZXRQcm9ncmFtSW5mb0xvZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0U2hhZGVySW5mb0xvZyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0U2hhZGVyU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVG9UZXh0dXJlKToK
KwogMjAwOS0xMi0wMSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dDNETWFjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRl
eHQzRE1hYy5jcHAJKHJldmlzaW9uIDUxNTM0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OTcsMTAg
Kzk5NywxMyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvCiAgICAg
OjpnbEdldFByb2dyYW1pdigoR0x1aW50KSBwcm9ncmFtLT5vYmplY3QoKSwgR0xfSU5GT19MT0df
TEVOR1RILCAmbGVuZ3RoKTsKICAgICAKICAgICBHTHNpemVpIHNpemU7Ci0gICAgR0xjaGFyKiBp
bmZvID0gKEdMY2hhciopIG1hbGxvYyhsZW5ndGgpOworICAgIEdMY2hhciogaW5mbyA9IChHTGNo
YXIqKSBmYXN0TWFsbG9jKGxlbmd0aCk7CisgICAgaWYgKCFpbmZvKQorICAgICAgICByZXR1cm4g
IiI7CisKICAgICA6OmdsR2V0UHJvZ3JhbUluZm9Mb2coKEdMdWludCkgcHJvZ3JhbS0+b2JqZWN0
KCksIGxlbmd0aCwgJnNpemUsIGluZm8pOwogICAgIFN0cmluZyBzKGluZm8pOwotICAgIGZyZWUo
aW5mbyk7CisgICAgZmFzdEZyZWUoaW5mbyk7CiAgICAgcmV0dXJuIHM7CiB9CiAKQEAgLTEwMjcs
MTAgKzEwMzAsMTMgQEAgU3RyaW5nIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTAog
ICAgIDo6Z2xHZXRTaGFkZXJpdigoR0x1aW50KSBzaGFkZXItPm9iamVjdCgpLCBHTF9JTkZPX0xP
R19MRU5HVEgsICZsZW5ndGgpOwogICAgIAogICAgIEdMc2l6ZWkgc2l6ZTsKLSAgICBHTGNoYXIq
IGluZm8gPSAoR0xjaGFyKikgbWFsbG9jKGxlbmd0aCk7CisgICAgR0xjaGFyKiBpbmZvID0gKEdM
Y2hhciopIGZhc3RNYWxsb2MobGVuZ3RoKTsKKyAgICBpZiAoIWluZm8pCisgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICAgCiAgICAgOjpnbEdldFNoYWRlckluZm9Mb2coKEdMdWludCkgc2hhZGVy
LT5vYmplY3QoKSwgbGVuZ3RoLCAmc2l6ZSwgaW5mbyk7CiAgICAgU3RyaW5nIHMoaW5mbyk7Ci0g
ICAgZnJlZShpbmZvKTsKKyAgICBmYXN0RnJlZShpbmZvKTsKICAgICByZXR1cm4gczsKIH0KIApA
QCAtMTA0MywxMCArMTA0OSwxMyBAQCBTdHJpbmcgR3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRl
clNvdXJjCiAgICAgOjpnbEdldFNoYWRlcml2KChHTHVpbnQpIHNoYWRlci0+b2JqZWN0KCksIEdM
X1NIQURFUl9TT1VSQ0VfTEVOR1RILCAmbGVuZ3RoKTsKICAgICAKICAgICBHTHNpemVpIHNpemU7
Ci0gICAgR0xjaGFyKiBpbmZvID0gKEdMY2hhciopIG1hbGxvYyhsZW5ndGgpOworICAgIEdMY2hh
ciogaW5mbyA9IChHTGNoYXIqKSBmYXN0TWFsbG9jKGxlbmd0aCk7CisgICAgaWYgKCFpbmZvKQor
ICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIAogICAgIDo6Z2xHZXRTaGFkZXJTb3VyY2UoKEdM
dWludCkgc2hhZGVyLT5vYmplY3QoKSwgbGVuZ3RoLCAmc2l6ZSwgaW5mbyk7CiAgICAgU3RyaW5n
IHMoaW5mbyk7Ci0gICAgZnJlZShpbmZvKTsKKyAgICBmYXN0RnJlZShpbmZvKTsKICAgICByZXR1
cm4gczsKIH0KIApAQCAtMTExNyw3ICsxMTI2LDEwIEBAIHN0YXRpYyB2b2lkIGltYWdlVG9UZXh0
dXJlKEltYWdlKiBpbWFnZSwKICAgICBzaXplX3QgdGV4dHVyZVdpZHRoID0gQ0dJbWFnZUdldFdp
ZHRoKHRleHR1cmVJbWFnZSk7CiAgICAgc2l6ZV90IHRleHR1cmVIZWlnaHQgPSBDR0ltYWdlR2V0
SGVpZ2h0KHRleHR1cmVJbWFnZSk7CiAgICAgCi0gICAgR0x1Ynl0ZSogdGV4dHVyZURhdGEgPSAo
R0x1Ynl0ZSopIG1hbGxvYyh0ZXh0dXJlV2lkdGggKiB0ZXh0dXJlSGVpZ2h0ICogNCk7CisgICAg
R0x1Ynl0ZSogdGV4dHVyZURhdGEgPSAoR0x1Ynl0ZSopIGZhc3RNYWxsb2ModGV4dHVyZVdpZHRo
ICogdGV4dHVyZUhlaWdodCAqIDQpOworICAgIGlmICghdGV4dHVyZURhdGEpCisgICAgICAgIHJl
dHVybjsKKyAgICAgICAgCiAgICAgQ0dDb250ZXh0UmVmIHRleHR1cmVDb250ZXh0ID0gQ0dCaXRt
YXBDb250ZXh0Q3JlYXRlKHRleHR1cmVEYXRhLCB0ZXh0dXJlV2lkdGgsIHRleHR1cmVIZWlnaHQs
IDgsIHRleHR1cmVXaWR0aCAqIDQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDR0ltYWdlR2V0Q29sb3JTcGFjZSh0ZXh0dXJlSW1hZ2Up
LCBrQ0dJbWFnZUFscGhhUHJlbXVsdGlwbGllZExhc3QpOwogICAgIApAQCAtMTEyNSw3ICsxMTM3
LDcgQEAgc3RhdGljIHZvaWQgaW1hZ2VUb1RleHR1cmUoSW1hZ2UqIGltYWdlLAogICAgIENHQ29u
dGV4dFJlbGVhc2UodGV4dHVyZUNvbnRleHQpOwogICAgIAogICAgIDo6Z2xUZXhJbWFnZTJEKHRh
cmdldCwgbGV2ZWwsIEdMX1JHQkEsIHRleHR1cmVXaWR0aCwgdGV4dHVyZUhlaWdodCwgMCwgR0xf
UkdCQSwgR0xfVU5TSUdORURfQllURSwgdGV4dHVyZURhdGEpOwotICAgIGZyZWUodGV4dHVyZURh
dGEpOworICAgIGZhc3RGcmVlKHRleHR1cmVEYXRhKTsKIH0KIAogaW50IEdyYXBoaWNzQ29udGV4
dDNEOjp0ZXhJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVk
IGludGVybmFsZm9ybWF0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LCB1bnNpZ25l
ZCBib3JkZXIsIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgV2ViR0xBcnJheSogcGl4
ZWxzKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTE1MzUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMi0wMSAgQ2hyaXMgTWFycmlu
ICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIGdldFByb2dyYW1JbmZvTG9nLCBnZXRTaGFk
ZXJJbmZvTG9nIGFuZCBnZXRTaGFkZXJTb3VyY2UgdG8gV2ViR0wgdGVzdHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNzc4CisKKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9nbC1vYmplY3QtZ2V0LWNhbGxzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9zY3JpcHQtdGVzdHMvZ2wtb2JqZWN0LWdldC1jYWxscy5q
czoKKwogMjAwOS0xMi0wMSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CiAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ds
LW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MTUzNCkKKysrIExheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2dsLW9iamVjdC1nZXQtY2FsbHMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsMTEgQEAgVGVzdCBvZiBnZXQgY2FsbHMgYWdhaW5z
dCBHTCBvYmplY3RzIGxpawogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKK1BBU1MgZ2wu
Z2V0UHJvZ3JhbUluZm9Mb2coc3RhbmRhcmRQcm9ncmFtKSBpcyAiIgorUEFTUyBnbC5nZXRTaGFk
ZXJJbmZvTG9nKGVycm9yVmVydCkgaXMgcGFyc2VFcnJvcgorUEFTUyBnbC5nZXRTaGFkZXJJbmZv
TG9nKGVycm9yRnJhZykgaXMgcGFyc2VFcnJvcgorUEFTUyBnbC5nZXRTaGFkZXJTb3VyY2UoZXJy
b3JWZXJ0KSBpcyBlcnJvclZlcnRTdHJpbmcKK1BBU1MgZ2wuZ2V0U2hhZGVyU291cmNlKGVycm9y
RnJhZykgaXMgZXJyb3JGcmFnU3RyaW5nCiBQQVNTIGdsLmdldEJ1ZmZlclBhcmFtZXRlcihnbC5B
UlJBWV9CVUZGRVIsIGdsLkJVRkZFUl9TSVpFKSBpcyAxNgogUEFTUyBnbC5nZXRCdWZmZXJQYXJh
bWV0ZXIoZ2wuQVJSQVlfQlVGRkVSLCBnbC5CVUZGRVJfVVNBR0UpIGlzIGdsLkRZTkFNSUNfRFJB
VwogUEFTUyBnbC5nZXRFcnJvcigpIGlzIDAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL3NjcmlwdC10ZXN0cy9nbC1vYmplY3QtZ2V0LWNhbGxzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL3NjcmlwdC10ZXN0cy9nbC1vYmplY3QtZ2V0
LWNhbGxzLmpzCShyZXZpc2lvbiA1MTUzNCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dl
YmdsL3NjcmlwdC10ZXN0cy9nbC1vYmplY3QtZ2V0LWNhbGxzLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsMTUgQEAKIGRlc2NyaXB0aW9uKCJUZXN0IG9mIGdldCBjYWxscyBhZ2FpbnN0IEdM
IG9iamVjdHMgbGlrZSBnZXRCdWZmZXJQYXJhbWV0ZXIsIGV0Yy4iKTsKIAogdmFyIGdsID0gY3Jl
YXRlM0RDb250ZXh0KCk7CisKK3ZhciBlcnJvclZlcnQgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVS
VEVYX1NIQURFUik7CitnbC5zaGFkZXJTb3VyY2UoZXJyb3JWZXJ0LCAiSSBhbSBhIGJhZCB2ZXJ0
ZXggc2hhZGVyIik7CitnbC5jb21waWxlU2hhZGVyKGVycm9yVmVydCk7CisKK3ZhciBlcnJvckZy
YWcgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsKK2dsLnNoYWRlclNvdXJj
ZShlcnJvckZyYWcsICJJIGFtIGEgYmFkIGZyYWdtZW50IHNoYWRlciIpOworZ2wuY29tcGlsZVNo
YWRlcihlcnJvckZyYWcpOworCiB2YXIgc3RhbmRhcmRWZXJ0ID0gbG9hZFN0YW5kYXJkVmVydGV4
U2hhZGVyKGdsKTsKIHZhciBzdGFuZGFyZEZyYWcgPSBsb2FkU3RhbmRhcmRGcmFnbWVudFNoYWRl
cihnbCk7CiB2YXIgc3RhbmRhcmRQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwpAQCAtOCw2
ICsxNywxNiBAQCBnbC5hdHRhY2hTaGFkZXIoc3RhbmRhcmRQcm9ncmFtLCBzdGFuZGFyCiBnbC5h
dHRhY2hTaGFkZXIoc3RhbmRhcmRQcm9ncmFtLCBzdGFuZGFyZEZyYWcpOwogZ2wubGlua1Byb2dy
YW0oc3RhbmRhcmRQcm9ncmFtKTsKIAorLy8gVGVzdCBwcm9ncmFtIGFuZCBzaGFkZXIgZ2V0cwor
dmFyIHBhcnNlRXJyb3IgPSAiRVJST1I6IDA6MTogJ0knIDogc3ludGF4IGVycm9yIHN5bnRheCBl
cnJvclxuRVJST1I6IFBhcnNlciBmb3VuZCBubyBjb2RlIHRvIGNvbXBpbGUgaW4gc291cmNlIHN0
cmluZ3MuXG4iOwordmFyIGVycm9yVmVydFN0cmluZyA9ICJJIGFtIGEgYmFkIHZlcnRleCBzaGFk
ZXJcbiI7Cit2YXIgZXJyb3JGcmFnU3RyaW5nID0gIkkgYW0gYSBiYWQgZnJhZ21lbnQgc2hhZGVy
XG4iOworc2hvdWxkQmUoJ2dsLmdldFByb2dyYW1JbmZvTG9nKHN0YW5kYXJkUHJvZ3JhbSknLCAn
IiInKTsKK3Nob3VsZEJlKCdnbC5nZXRTaGFkZXJJbmZvTG9nKGVycm9yVmVydCknLCAncGFyc2VF
cnJvcicpOworc2hvdWxkQmUoJ2dsLmdldFNoYWRlckluZm9Mb2coZXJyb3JGcmFnKScsICdwYXJz
ZUVycm9yJyk7CitzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyU291cmNlKGVycm9yVmVydCknLCAnZXJy
b3JWZXJ0U3RyaW5nJyk7CitzaG91bGRCZSgnZ2wuZ2V0U2hhZGVyU291cmNlKGVycm9yRnJhZykn
LCAnZXJyb3JGcmFnU3RyaW5nJyk7CisKIC8vIFRlc3QgZ2V0QnVmZmVyUGFyYW1ldGVyCiB2YXIg
YnVmZmVyID0gZ2wuY3JlYXRlQnVmZmVyKCk7CiBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZF
UiwgYnVmZmVyKTsK
</data>
<flag name="review"
          id="25857"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>