<?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>38842</bug_id>
          
          <creation_ts>2010-05-10 06:35:47 -0700</creation_ts>
          <short_desc>[GStreamer] float variables misused</short_desc>
          <delta_ts>2010-05-31 09:38:46 -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>WebKitGTK</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>
          
          <blocked>39202</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>223282</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-10 06:35:47 -0700</bug_when>
    <thetext>In the player code we currently use 0.0 for float variables. But 0.0 is usually for doubles. We should use 0.0f instead. There are also missing casts around GST_SECOND.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223284</commentid>
    <comment_count>1</comment_count>
      <attachid>55549</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-10 06:39:33 -0700</bug_when>
    <thetext>Created attachment 55549
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223807</commentid>
    <comment_count>2</comment_count>
      <attachid>55549</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-05-11 01:20:33 -0700</bug_when>
    <thetext>Comment on attachment 55549
proposed patch

Please don&apos;t use static_cast&lt;float&gt;. narrowPrecisionToFloat is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223830</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-11 02:25:19 -0700</bug_when>
    <thetext>As discussed on IRC with krit, if we were to use narrowPrecisionToFloat() we&apos;d need to add templates in FloatConversion.h for the glib types. It doesn&apos;t seem to make much sense as that function only performs a static_cast&lt;float&gt; underneath. It just complicates code readability in my opinion ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223915</commentid>
    <comment_count>4</comment_count>
      <attachid>55549</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-11 07:19:16 -0700</bug_when>
    <thetext>Comment on attachment 55549
proposed patch

Asking for another review as per previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228262</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-20 01:21:29 -0700</bug_when>
    <thetext>I&apos;m not sure why narrowPrecisionToFloat exists.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231177</commentid>
    <comment_count>6</comment_count>
      <attachid>55549</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-05-27 01:19:53 -0700</bug_when>
    <thetext>Comment on attachment 55549
proposed patch

Just a couple of comments:


&gt;-        width = gst_util_uint64_scale_int(originalHeight, displayWidth, displayHeight);
&gt;+        width = static_cast&lt;int&gt;(gst_util_uint64_scale_int(originalHeight, displayWidth, displayHeight));
&gt;         height = originalHeight;

There&apos;s precision loss in this kind of casting.

&gt;-    float currentPosition = playbackPosition(m_playBin) * GST_SECOND;
&gt;+    float currentPosition = playbackPosition(m_playBin) * static_cast&lt;float&gt;(GST_SECOND);

This seems strange to me; for one I&apos;d assume the casting would happen automatically, but if it does not, it seems more reasonable to cast the whole operation instead of just one operand (which also happens to be a constant).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231408</commentid>
    <comment_count>7</comment_count>
      <attachid>57263</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-27 11:55:30 -0700</bug_when>
    <thetext>Created attachment 57263
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231409</commentid>
    <comment_count>8</comment_count>
      <attachid>57263</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-27 11:56:39 -0700</bug_when>
    <thetext>Comment on attachment 57263
proposed patch

New version tackling the issues pointed out by Xan</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232400</commentid>
    <comment_count>9</comment_count>
      <attachid>57263</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-05-31 08:50:21 -0700</bug_when>
    <thetext>Comment on attachment 57263
proposed patch

-    GstClockTime sec = (GstClockTime)(time * GST_SECOND);
+    GstClockTime sec = (GstClockTime)(time * static_cast&lt;float&gt;(GST_SECOND));

You forgot this, please fix when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232423</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2010-05-31 09:37:24 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/60442
Thanks for the review :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55549</attachid>
            <date>2010-05-10 06:39:33 -0700</date>
            <delta_ts>2010-05-27 11:55:30 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>6411</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkYWI4MGQwNTkyNmViODc2N2I5Y2ExYjYzNjA2MzU3ZTg1OWE3ZGE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI2IEFwciAyMDEwIDE3OjE0OjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKysrKysrKysKIC4uLi9nc3RyZWFtZXIvTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCAgICAgIHwgICAzMiArKysrKysrKysrLS0tLS0tLS0t
LQogMiBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0
Yjc3YmEuLjgwYzE0NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMTAgIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtHU3RyZWFtZXJdIGZsb2F0IHZhcmlhYmxlcyBtaXN1c2VkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODg0MgorCisg
ICAgICAgIFVzZSAwLjBmIGZvciBmbG9hdCB2YXJpYWJsZXMgaW5zdGVhZCBvZiAwLjAuIEFsc28g
YWRkZWQgc29tZQorICAgICAgICBtaXNzaW5nIGNhc3RzIGFyb3VuZCBHU1RfU0VDT05ELgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwbGF5YmFja1Bvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjdXJyZW50VGltZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNlZWspOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpuYXR1cmFsU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFJh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptYXhU
aW1lU2Vla2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjptYXhUaW1lTG9hZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lcjo6dG90YWxCeXRlcyk6CisKIDIwMTAtMDUtMTAgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5vdCByZXZpZXdlZDogcm9sbGJhY2sg
dGhlIGNvbW1pdCByNTkwNjIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmlu
ZGV4IDhmNmM5ZTAuLjU1MmY1ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
LmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5n
ZWRDYWxsYmFjayhHT2JqZWN0ICplbGVtZW50LCBHUGFyYW1TcGVjICpwc3BlYywKIHN0YXRpYyBm
bG9hdCBwbGF5YmFja1Bvc2l0aW9uKEdzdEVsZW1lbnQqIHBsYXliaW4pCiB7CiAKLSAgICBmbG9h
dCByZXQgPSAwLjA7CisgICAgZmxvYXQgcmV0ID0gMC4wZjsKIAogICAgIEdzdFF1ZXJ5KiBxdWVy
eSA9IGdzdF9xdWVyeV9uZXdfcG9zaXRpb24oR1NUX0ZPUk1BVF9USU1FKTsKICAgICBpZiAoIWdz
dF9lbGVtZW50X3F1ZXJ5KHBsYXliaW4sIHF1ZXJ5KSkgewpAQCAtNDE2LDEwICs0MTYsMTAgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnBhdXNlKCkKIGZsb2F0IE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6ZHVyYXRpb24oKSBjb25zdAogewogICAgIGlmICghbV9wbGF5
QmluKQotICAgICAgICByZXR1cm4gMC4wOworICAgICAgICByZXR1cm4gMC4wZjsKIAogICAgIGlm
IChtX2Vycm9yT2NjdXJlZCkKLSAgICAgICAgcmV0dXJuIDAuMDsKKyAgICAgICAgcmV0dXJuIDAu
MGY7CiAKICAgICAvLyBNZWRpYSBkdXJhdGlvbiBxdWVyeSBmYWlsZWQgYWxyZWFkeSwgZG9uJ3Qg
YXR0ZW1wdCBuZXcgdXNlbGVzcyBxdWVyaWVzLgogICAgIGlmICghbV9tZWRpYUR1cmF0aW9uS25v
d24pCkBAIC00NDUsMTMgKzQ0NSwxMyBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmR1cmF0aW9uKCkgY29uc3QKIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6
Y3VycmVudFRpbWUoKSBjb25zdAogewogICAgIGlmICghbV9wbGF5QmluKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIDAuMGY7CiAKICAgICBpZiAobV9lcnJvck9jY3VyZWQpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gMC4wZjsKIAogICAgIGlmIChtX3NlZWtp
bmcpCi0gICAgICAgIHJldHVybiBtX3NlZWtUaW1lOworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KG1fc2Vla1RpbWUpOwogCiAgICAgcmV0dXJuIHBsYXliYWNrUG9zaXRpb24obV9w
bGF5QmluKTsKIApAQCAtNDY5LDcgKzQ2OSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpzZWVrKGZsb2F0IHRpbWUpCiAgICAgaWYgKG1fZXJyb3JPY2N1cmVkKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBHc3RDbG9ja1RpbWUgc2VjID0gKEdzdENsb2NrVGltZSkodGltZSAq
IEdTVF9TRUNPTkQpOworICAgIEdzdENsb2NrVGltZSBzZWMgPSAoR3N0Q2xvY2tUaW1lKSh0aW1l
ICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KEdTVF9TRUNPTkQpKTsKICAgICBMT0dfVkVSQk9TRShNZWRp
YSwgIlNlZWs6ICUiIEdTVF9USU1FX0ZPUk1BVCwgR1NUX1RJTUVfQVJHUyhzZWMpKTsKICAgICBp
ZiAoIWdzdF9lbGVtZW50X3NlZWsobV9wbGF5QmluLCBtX3BsYXllci0+cmF0ZSgpLAogICAgICAg
ICAgICAgR1NUX0ZPUk1BVF9USU1FLApAQCAtNTU1LDE1ICs1NTUsMTUgQEAgSW50U2l6ZSBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5hdHVyYWxTaXplKCkgY29uc3QKICAgICAvLyBBcHBs
eSBEQVIgdG8gb3JpZ2luYWwgdmlkZW8gc2l6ZS4gVGhpcyBpcyB0aGUgc2FtZSBiZWhhdmlvciBh
cyBpbiB4dmltYWdlc2luaydzIHNldGNhcHMgZnVuY3Rpb24uCiAgICAgaWYgKCEob3JpZ2luYWxI
ZWlnaHQgJSBkaXNwbGF5SGVpZ2h0KSkgewogICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIktl
ZXBpbmcgdmlkZW8gb3JpZ2luYWwgaGVpZ2h0Iik7Ci0gICAgICAgIHdpZHRoID0gZ3N0X3V0aWxf
dWludDY0X3NjYWxlX2ludChvcmlnaW5hbEhlaWdodCwgZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVp
Z2h0KTsKKyAgICAgICAgd2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KGdzdF91dGlsX3VpbnQ2NF9z
Y2FsZV9pbnQob3JpZ2luYWxIZWlnaHQsIGRpc3BsYXlXaWR0aCwgZGlzcGxheUhlaWdodCkpOwog
ICAgICAgICBoZWlnaHQgPSBvcmlnaW5hbEhlaWdodDsKICAgICB9IGVsc2UgaWYgKCEob3JpZ2lu
YWxXaWR0aCAlIGRpc3BsYXlXaWR0aCkpIHsKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJL
ZWVwaW5nIHZpZGVvIG9yaWdpbmFsIHdpZHRoIik7Ci0gICAgICAgIGhlaWdodCA9IGdzdF91dGls
X3VpbnQ2NF9zY2FsZV9pbnQob3JpZ2luYWxXaWR0aCwgZGlzcGxheUhlaWdodCwgZGlzcGxheVdp
ZHRoKTsKKyAgICAgICAgaGVpZ2h0ID0gc3RhdGljX2Nhc3Q8aW50Pihnc3RfdXRpbF91aW50NjRf
c2NhbGVfaW50KG9yaWdpbmFsV2lkdGgsIGRpc3BsYXlIZWlnaHQsIGRpc3BsYXlXaWR0aCkpOwog
ICAgICAgICB3aWR0aCA9IG9yaWdpbmFsV2lkdGg7CiAgICAgfSBlbHNlIHsKICAgICAgICAgTE9H
X1ZFUkJPU0UoTWVkaWEsICJBcHByb3hpbWF0aW5nIHdoaWxlIGtlZXBpbmcgb3JpZ2luYWwgdmlk
ZW8gaGVpZ2h0Iik7Ci0gICAgICAgIHdpZHRoID0gZ3N0X3V0aWxfdWludDY0X3NjYWxlX2ludChv
cmlnaW5hbEhlaWdodCwgZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0KTsKKyAgICAgICAgd2lk
dGggPSBzdGF0aWNfY2FzdDxpbnQ+KGdzdF91dGlsX3VpbnQ2NF9zY2FsZV9pbnQob3JpZ2luYWxI
ZWlnaHQsIGRpc3BsYXlXaWR0aCwgZGlzcGxheUhlaWdodCkpOwogICAgICAgICBoZWlnaHQgPSBv
cmlnaW5hbEhlaWdodDsKICAgICB9CiAKQEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UmF0ZShmbG9hdCByYXRlKQogCiAgICAgbV9wbGF5YmFj
a1JhdGUgPSByYXRlOwogICAgIG1fY2hhbmdpbmdSYXRlID0gdHJ1ZTsKLSAgICBmbG9hdCBjdXJy
ZW50UG9zaXRpb24gPSBwbGF5YmFja1Bvc2l0aW9uKG1fcGxheUJpbikgKiBHU1RfU0VDT05EOwor
ICAgIGZsb2F0IGN1cnJlbnRQb3NpdGlvbiA9IHBsYXliYWNrUG9zaXRpb24obV9wbGF5QmluKSAq
IHN0YXRpY19jYXN0PGZsb2F0PihHU1RfU0VDT05EKTsKICAgICBHc3RTZWVrRmxhZ3MgZmxhZ3Mg
PSAoR3N0U2Vla0ZsYWdzKShHU1RfU0VFS19GTEFHX0ZMVVNIKTsKICAgICBnaW50NjQgc3RhcnQs
IGVuZDsKICAgICBib29sIG11dGUgPSBmYWxzZTsKQEAgLTY0Niw3ICs2NDYsNyBAQCB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2V0UmF0ZShmbG9hdCByYXRlKQogICAgICAgICAv
LyBJZiB3ZSBhcmUgYXQgYmVnaW5uaW5nIG9mIG1lZGlhLCBzdGFydCBmcm9tIHRoZSBlbmQgdG8K
ICAgICAgICAgLy8gYXZvaWQgaW1tZWRpYXRlIEVPUy4KICAgICAgICAgaWYgKGN1cnJlbnRQb3Np
dGlvbiA8PSAwKQotICAgICAgICAgICAgZW5kID0gZHVyYXRpb24oKSAqIEdTVF9TRUNPTkQ7Cisg
ICAgICAgICAgICBlbmQgPSBkdXJhdGlvbigpICogc3RhdGljX2Nhc3Q8ZmxvYXQ+KEdTVF9TRUNP
TkQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBlbmQgPSBjdXJyZW50UG9zaXRpb247CiAg
ICAgfQpAQCAtNzYwLDEyICs3NjAsMTIgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXI6OmZpbGxUaW1lckZpcmVkKFRpbWVyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW0KIGZsb2F0
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZVNlZWthYmxlKCkgY29uc3QKIHsK
ICAgICBpZiAobV9lcnJvck9jY3VyZWQpCi0gICAgICAgIHJldHVybiAwLjA7CisgICAgICAgIHJl
dHVybiAwLjBmOwogCiAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJtYXhUaW1lU2Vla2FibGUiKTsK
ICAgICAvLyBpbmZpbml0ZSBkdXJhdGlvbiBtZWFucyBsaXZlIHN0cmVhbQogICAgIGlmIChpc2lu
ZihkdXJhdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIDAuMDsKKyAgICAgICAgcmV0dXJuIDAuMGY7
CiAKICAgICByZXR1cm4gbWF4VGltZUxvYWRlZCgpOwogfQpAQCAtNzczLDcgKzc3Myw3IEBAIGZs
b2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZVNlZWthYmxlKCkgY29uc3QK
IGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0
CiB7CiAgICAgaWYgKG1fZXJyb3JPY2N1cmVkKQotICAgICAgICByZXR1cm4gMC4wOworICAgICAg
ICByZXR1cm4gMC4wZjsKIAogICAgIGZsb2F0IGxvYWRlZCA9IG1fbWF4VGltZUxvYWRlZDsKICAg
ICBpZiAoIWxvYWRlZCAmJiAhbV9maWxsVGltZXIuaXNBY3RpdmUoKSkKQEAgLTgwOCw3ICs4MDgs
NyBAQCB1bnNpZ25lZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnRvdGFsQnl0ZXMoKSBj
b25zdAogICAgIGdzdF9lbGVtZW50X3F1ZXJ5X2R1cmF0aW9uKG1fc291cmNlLCAmZm10LCAmbGVu
Z3RoKTsKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgInRvdGFsQnl0ZXMgJSIgR19HSU5UNjRfRk9S
TUFULCBsZW5ndGgpOwogCi0gICAgcmV0dXJuIGxlbmd0aDsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGxlbmd0aCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpjYW5jZWxMb2FkKCkKLS0gCjEuNy4x
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57263</attachid>
            <date>2010-05-27 11:55:30 -0700</date>
            <delta_ts>2010-05-31 08:50:21 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>proposed-patch.patch</filename>
            <type>text/plain</type>
            <size>6814</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBkOTdlNDlmNjhmODEzMTlmZDBlMjljMjAwNmIxYjJmM2ExYzYwY2IyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBNb24sIDI2IEFwciAyMDEwIDE3OjE0OjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2gKCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDIxICsrKysrKysrKysrCiAuLi4vZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgICAgICB8ICAgMzggKysrKysrKysrKy0tLS0tLS0tLS0K
IDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTBk
ODE4Li43NDg4N2EyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA1LTI3ICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbR1N0cmVhbWVyXSBmbG9hdCB2YXJpYWJsZXMgbWlzdXNlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg4NDIKKworICAg
ICAgICBVc2UgMC4wZiBmb3IgZmxvYXQgdmFyaWFibGVzIGluc3RlYWQgb2YgMC4wLiBBbHNvIGFk
ZGVkIHNvbWUKKyAgICAgICAgbWlzc2luZyBjYXN0cyBhcm91bmQgR1NUX1NFQ09ORC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGxheWJhY2tQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmR1cmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6Y3VycmVudFRpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZWVrKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpzZXRSYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bWF4VGlt
ZVNlZWthYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bWF4VGltZUxvYWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6OnRvdGFsQnl0ZXMpOgorCiAyMDEwLTA1LTI3ICBDaHJpcyBGbGVpemFjaCAgPGNm
bGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgTm8gcmV2aWV3LCBidWlsZCBmaXhhZ2UuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBkNjE5ZTE0Li5iNzg0MDcw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTE5NSw3ICsxOTUs
NyBAQCB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZU11dGVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCAq
ZWxlbWVudCwgR1BhcmFtU3BlYyAqcHNwZWMsCiBzdGF0aWMgZmxvYXQgcGxheWJhY2tQb3NpdGlv
bihHc3RFbGVtZW50KiBwbGF5YmluKQogewogCi0gICAgZmxvYXQgcmV0ID0gMC4wOworICAgIGZs
b2F0IHJldCA9IDAuMGY7CiAKICAgICBHc3RRdWVyeSogcXVlcnkgPSBnc3RfcXVlcnlfbmV3X3Bv
c2l0aW9uKEdTVF9GT1JNQVRfVElNRSk7CiAgICAgaWYgKCFnc3RfZWxlbWVudF9xdWVyeShwbGF5
YmluLCBxdWVyeSkpIHsKQEAgLTQxNywxMCArNDE3LDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpwYXVzZSgpCiBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OmR1cmF0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxheUJpbikKLSAgICAgICAgcmV0dXJu
IDAuMDsKKyAgICAgICAgcmV0dXJuIDAuMGY7CiAKICAgICBpZiAobV9lcnJvck9jY3VyZWQpCi0g
ICAgICAgIHJldHVybiAwLjA7CisgICAgICAgIHJldHVybiAwLjBmOwogCiAgICAgLy8gTWVkaWEg
ZHVyYXRpb24gcXVlcnkgZmFpbGVkIGFscmVhZHksIGRvbid0IGF0dGVtcHQgbmV3IHVzZWxlc3Mg
cXVlcmllcy4KICAgICBpZiAoIW1fbWVkaWFEdXJhdGlvbktub3duKQpAQCAtNDQ2LDEzICs0NDYs
MTMgQEAgZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpkdXJhdGlvbigpIGNvbnN0
CiBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmN1cnJlbnRUaW1lKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fcGxheUJpbikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biAwLjBmOwogCiAgICAgaWYgKG1fZXJyb3JPY2N1cmVkKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIDAuMGY7CiAKICAgICBpZiAobV9zZWVraW5nKQotICAgICAgICByZXR1cm4g
bV9zZWVrVGltZTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX3NlZWtUaW1l
KTsKIAogICAgIHJldHVybiBwbGF5YmFja1Bvc2l0aW9uKG1fcGxheUJpbik7CiAKQEAgLTQ3MCw3
ICs0NzAsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6c2VlayhmbG9hdCB0
aW1lKQogICAgIGlmIChtX2Vycm9yT2NjdXJlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgR3N0
Q2xvY2tUaW1lIHNlYyA9IChHc3RDbG9ja1RpbWUpKHRpbWUgKiBHU1RfU0VDT05EKTsKKyAgICBH
c3RDbG9ja1RpbWUgc2VjID0gKEdzdENsb2NrVGltZSkodGltZSAqIHN0YXRpY19jYXN0PGZsb2F0
PihHU1RfU0VDT05EKSk7CiAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJTZWVrOiAlIiBHU1RfVElN
RV9GT1JNQVQsIEdTVF9USU1FX0FSR1Moc2VjKSk7CiAgICAgaWYgKCFnc3RfZWxlbWVudF9zZWVr
KG1fcGxheUJpbiwgbV9wbGF5ZXItPnJhdGUoKSwKICAgICAgICAgICAgIEdTVF9GT1JNQVRfVElN
RSwKQEAgLTUxOSw3ICs1MTksNyBAQCBJbnRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIGlmICghcGFkKQogICAgICAgICByZXR1cm4gSW50
U2l6ZSgpOwogCi0gICAgaW50IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKKyAgICBndWludDY0IHdp
ZHRoID0gMCwgaGVpZ2h0ID0gMDsKICAgICBHc3RDYXBzKiBjYXBzID0gR1NUX1BBRF9DQVBTKHBh
ZCk7CiAgICAgaW50IHBpeGVsQXNwZWN0UmF0aW9OdW1lcmF0b3IsIHBpeGVsQXNwZWN0UmF0aW9E
ZW5vbWluYXRvcjsKICAgICBpbnQgZGlzcGxheVdpZHRoLCBkaXNwbGF5SGVpZ2h0LCBkaXNwbGF5
QXNwZWN0UmF0aW9HQ0Q7CkBAIC01NTcsMTkgKzU1NywxOSBAQCBJbnRTaXplIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcjo6bmF0dXJhbFNpemUoKSBjb25zdAogICAgIGlmICghKG9yaWdpbmFs
SGVpZ2h0ICUgZGlzcGxheUhlaWdodCkpIHsKICAgICAgICAgTE9HX1ZFUkJPU0UoTWVkaWEsICJL
ZWVwaW5nIHZpZGVvIG9yaWdpbmFsIGhlaWdodCIpOwogICAgICAgICB3aWR0aCA9IGdzdF91dGls
X3VpbnQ2NF9zY2FsZV9pbnQob3JpZ2luYWxIZWlnaHQsIGRpc3BsYXlXaWR0aCwgZGlzcGxheUhl
aWdodCk7Ci0gICAgICAgIGhlaWdodCA9IG9yaWdpbmFsSGVpZ2h0OworICAgICAgICBoZWlnaHQg
PSBzdGF0aWNfY2FzdDxndWludDY0PihvcmlnaW5hbEhlaWdodCk7CiAgICAgfSBlbHNlIGlmICgh
KG9yaWdpbmFsV2lkdGggJSBkaXNwbGF5V2lkdGgpKSB7CiAgICAgICAgIExPR19WRVJCT1NFKE1l
ZGlhLCAiS2VlcGluZyB2aWRlbyBvcmlnaW5hbCB3aWR0aCIpOwogICAgICAgICBoZWlnaHQgPSBn
c3RfdXRpbF91aW50NjRfc2NhbGVfaW50KG9yaWdpbmFsV2lkdGgsIGRpc3BsYXlIZWlnaHQsIGRp
c3BsYXlXaWR0aCk7Ci0gICAgICAgIHdpZHRoID0gb3JpZ2luYWxXaWR0aDsKKyAgICAgICAgd2lk
dGggPSBzdGF0aWNfY2FzdDxndWludDY0PihvcmlnaW5hbFdpZHRoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIkFwcHJveGltYXRpbmcgd2hpbGUga2VlcGluZyBv
cmlnaW5hbCB2aWRlbyBoZWlnaHQiKTsKICAgICAgICAgd2lkdGggPSBnc3RfdXRpbF91aW50NjRf
c2NhbGVfaW50KG9yaWdpbmFsSGVpZ2h0LCBkaXNwbGF5V2lkdGgsIGRpc3BsYXlIZWlnaHQpOwot
ICAgICAgICBoZWlnaHQgPSBvcmlnaW5hbEhlaWdodDsKKyAgICAgICAgaGVpZ2h0ID0gc3RhdGlj
X2Nhc3Q8Z3VpbnQ2ND4ob3JpZ2luYWxIZWlnaHQpOwogICAgIH0KIAotICAgIExPR19WRVJCT1NF
KE1lZGlhLCAiTmF0dXJhbCBzaXplOiAlZHglZCIsIHdpZHRoLCBoZWlnaHQpOwotICAgIHJldHVy
biBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOworICAgIExPR19WRVJCT1NFKE1lZGlhLCAiTmF0dXJh
bCBzaXplOiAlIiBHX0dVSU5UNjRfRk9STUFUICJ4JSIgR19HVUlOVDY0X0ZPUk1BVCwgd2lkdGgs
IGhlaWdodCk7CisgICAgcmV0dXJuIEludFNpemUoc3RhdGljX2Nhc3Q8aW50Pih3aWR0aCksIHN0
YXRpY19jYXN0PGludD4oaGVpZ2h0KSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyOjpoYXNWaWRlbygpIGNvbnN0CkBAIC02MjgsNyArNjI4LDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXI6OnNldFJhdGUoZmxvYXQgcmF0ZSkKIAogICAgIG1fcGxheWJh
Y2tSYXRlID0gcmF0ZTsKICAgICBtX2NoYW5naW5nUmF0ZSA9IHRydWU7Ci0gICAgZmxvYXQgY3Vy
cmVudFBvc2l0aW9uID0gcGxheWJhY2tQb3NpdGlvbihtX3BsYXlCaW4pICogR1NUX1NFQ09ORDsK
KyAgICBmbG9hdCBjdXJyZW50UG9zaXRpb24gPSBzdGF0aWNfY2FzdDxmbG9hdD4ocGxheWJhY2tQ
b3NpdGlvbihtX3BsYXlCaW4pICogR1NUX1NFQ09ORCk7CiAgICAgR3N0U2Vla0ZsYWdzIGZsYWdz
ID0gKEdzdFNlZWtGbGFncykoR1NUX1NFRUtfRkxBR19GTFVTSCk7CiAgICAgZ2ludDY0IHN0YXJ0
LCBlbmQ7CiAgICAgYm9vbCBtdXRlID0gZmFsc2U7CkBAIC02NDcsNyArNjQ3LDcgQEAgdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OnNldFJhdGUoZmxvYXQgcmF0ZSkKICAgICAgICAg
Ly8gSWYgd2UgYXJlIGF0IGJlZ2lubmluZyBvZiBtZWRpYSwgc3RhcnQgZnJvbSB0aGUgZW5kIHRv
CiAgICAgICAgIC8vIGF2b2lkIGltbWVkaWF0ZSBFT1MuCiAgICAgICAgIGlmIChjdXJyZW50UG9z
aXRpb24gPD0gMCkKLSAgICAgICAgICAgIGVuZCA9IGR1cmF0aW9uKCkgKiBHU1RfU0VDT05EOwor
ICAgICAgICAgICAgZW5kID0gc3RhdGljX2Nhc3Q8Z2ludDY0PihkdXJhdGlvbigpICogR1NUX1NF
Q09ORCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGVuZCA9IGN1cnJlbnRQb3NpdGlvbjsK
ICAgICB9CkBAIC03NjEsMTIgKzc2MSwxMiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6ZmlsbFRpbWVyRmlyZWQoVGltZXI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbQogZmxv
YXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdAog
ewogICAgIGlmIChtX2Vycm9yT2NjdXJlZCkKLSAgICAgICAgcmV0dXJuIDAuMDsKKyAgICAgICAg
cmV0dXJuIDAuMGY7CiAKICAgICBMT0dfVkVSQk9TRShNZWRpYSwgIm1heFRpbWVTZWVrYWJsZSIp
OwogICAgIC8vIGluZmluaXRlIGR1cmF0aW9uIG1lYW5zIGxpdmUgc3RyZWFtCiAgICAgaWYgKGlz
aW5mKGR1cmF0aW9uKCkpKQotICAgICAgICByZXR1cm4gMC4wOworICAgICAgICByZXR1cm4gMC4w
ZjsKIAogICAgIHJldHVybiBtYXhUaW1lTG9hZGVkKCk7CiB9CkBAIC03NzQsNyArNzc0LDcgQEAg
ZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptYXhUaW1lU2Vla2FibGUoKSBjb25z
dAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjptYXhUaW1lTG9hZGVkKCkgY29u
c3QKIHsKICAgICBpZiAobV9lcnJvck9jY3VyZWQpCi0gICAgICAgIHJldHVybiAwLjA7CisgICAg
ICAgIHJldHVybiAwLjBmOwogCiAgICAgZmxvYXQgbG9hZGVkID0gbV9tYXhUaW1lTG9hZGVkOwog
ICAgIGlmICghbG9hZGVkICYmICFtX2ZpbGxUaW1lci5pc0FjdGl2ZSgpKQpAQCAtODA5LDcgKzgw
OSw3IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dG90YWxCeXRlcygp
IGNvbnN0CiAgICAgZ3N0X2VsZW1lbnRfcXVlcnlfZHVyYXRpb24obV9zb3VyY2UsICZmbXQsICZs
ZW5ndGgpOwogICAgIExPR19WRVJCT1NFKE1lZGlhLCAidG90YWxCeXRlcyAlIiBHX0dJTlQ2NF9G
T1JNQVQsIGxlbmd0aCk7CiAKLSAgICByZXR1cm4gbGVuZ3RoOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obGVuZ3RoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI6OmNhbmNlbExvYWQoKQotLSAKMS42LjMuMw==
</data>
<flag name="review"
          id="41816"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
      

    </bug>

</bugzilla>