<?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>69156</bug_id>
          
          <creation_ts>2011-09-30 10:50:37 -0700</creation_ts>
          <short_desc>Implicitly add toString and valueOf to prototype when convertToType callback is provided</short_desc>
          <delta_ts>2011-10-07 16:51:57 -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>JavaScriptCore</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>
          
          <blocked>67690</blocked>
    
    <blocked>69677</blocked>
    
    <blocked>69679</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>476173</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-30 10:50:37 -0700</bug_when>
    <thetext>Due to the fact that JSCallbackObject overrides JSCell::toString, I don&apos;t believe we can do a simple refactoring to de-virtualize toString like we did with the other conversion methods.  We&apos;ll just add it to the method table, at least for now.  The first step in doing this is to create a static version of toString in the classes that override toString and have the virtual versions call it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476338</commentid>
    <comment_count>1</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-09-30 15:07:42 -0700</bug_when>
    <thetext>I wonder if we really need to do this?

ToString applied to Object (JSObject::toString) will try looking up a default value using the object&apos;s toString property, if one exists.  For API objects that define a custom toString we could implicitly add a toString property to the object that is a host function that would call the API class&apos;s toString callback.  This would allow us to retire the ability to override toString, and make API object behave more like normal objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476723</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-02 15:08:15 -0700</bug_when>
    <thetext>ggaren: mhahnenberg: i&apos;d suggest a two-step process:
[9:51pm] ggaren: mhahnenberg: (1) change API classes to supply a custom toString and valueOf on the class&apos;s prototype, which forwards to classDefinition.convertToType, if classDefinition.convertToType is supplied, and add tests to testapi verifying this behavior.
[9:52pm] ggaren: mhahnenberg: (2) make toString non-virtual
[9:53pm] ggaren: mhahnenberg: internally, you can reuse JSCallbackFunction to implement (1)
[9:54pm] ggaren: mhahnenberg: you can have a shared JSObjectCallAsFunctionCallback for toString, and another for valueOf
[9:54pm] ggaren: mhahnenberg: and they just take the &apos;this&apos; object supplied, check that it inherits from JSCallbackObject, cast to JSCallbackObject, grab the convertToType function out of the JSCallbackObject&apos;s class, and call it, passing the right JSType parameter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477375</commentid>
    <comment_count>3</comment_count>
      <attachid>109561</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-03 17:32:57 -0700</bug_when>
    <thetext>Created attachment 109561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477393</commentid>
    <comment_count>4</comment_count>
      <attachid>109566</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-10-03 18:22:45 -0700</bug_when>
    <thetext>Created attachment 109566
Test modification</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477394</commentid>
    <comment_count>5</comment_count>
      <attachid>109566</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-03 18:24:50 -0700</bug_when>
    <thetext>Comment on attachment 109566
Test modification

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477817</commentid>
    <comment_count>6</comment_count>
      <attachid>109566</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-04 12:01:13 -0700</bug_when>
    <thetext>Comment on attachment 109566
Test modification

Clearing flags on attachment: 109566

Committed r96627: &lt;http://trac.webkit.org/changeset/96627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477818</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-04 12:01:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109561</attachid>
            <date>2011-10-03 17:32:57 -0700</date>
            <delta_ts>2011-10-03 18:22:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69156-20111003173301.patch</filename>
            <type>text/plain</type>
            <size>6392</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCAyNzQwNmI4ODNlZjk2NDA4MWU5N2ZlZDdh
YjlmMWEzZWUyMDhiODUyLi5mYzA3NGZlNTFjNGE3MWQ0NjM0MWRkODcxNGQwNTNhNzg0ZDAwOTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0Nh
bGxiYWNrT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZ1bmN0
aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgpAQCAt
ODgsNCArODksMjUgQEAgQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0K
IAorSlNWYWx1ZVJlZiBKU0NhbGxiYWNrRnVuY3Rpb246OnRvU3RyaW5nQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCwg
Y29uc3QgSlNWYWx1ZVJlZltdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IHRvSlModGhpc09iamVjdCk7CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMo
JkpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbykpCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Kj4ob2Jq
ZWN0KS0+Y2xhc3NSZWYoKS0+Y29udmVydFRvVHlwZShjdHgsIHRoaXNPYmplY3QsIGtKU1R5cGVT
dHJpbmcsIGV4Y2VwdGlvbik7CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihvYmplY3QpLT5jbGFzc1JlZigp
LT5jb252ZXJ0VG9UeXBlKGN0eCwgdGhpc09iamVjdCwga0pTVHlwZVN0cmluZywgZXhjZXB0aW9u
KTsKKyAgICByZXR1cm4gMDsKK30KKworSlNWYWx1ZVJlZiBKU0NhbGxiYWNrRnVuY3Rpb246OnZh
bHVlT2ZDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90LCBjb25zdCBKU1ZhbHVlUmVmW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3sKKyAgICBKU09iamVjdCogb2JqZWN0ID0gdG9KUyh0aGlzT2JqZWN0KTsKKyAgICBp
ZiAob2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6
c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNO
b25GaW5hbE9iamVjdD4qPihvYmplY3QpLT5jbGFzc1JlZigpLT5jb252ZXJ0VG9UeXBlKGN0eCwg
dGhpc09iamVjdCwga0pTVHlwZU51bWJlciwgZXhjZXB0aW9uKTsKKyAgICBpZiAob2JqZWN0LT5p
bmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OnNfaW5mbykpCisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+
KG9iamVjdCktPmNsYXNzUmVmKCktPmNvbnZlcnRUb1R5cGUoY3R4LCB0aGlzT2JqZWN0LCBrSlNU
eXBlTnVtYmVyLCBleGNlcHRpb24pOworICAgIHJldHVybiAwOworfQorCisKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
RnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9u
LmgKaW5kZXggY2UyYWQ5Y2JkNjE5NDVkMDlmYTZmNjBjMmNiNWEzNDMyNjhiMTU3ZC4uNzI0OTRk
Y2NjYTgwZDNjMDlmYjFiMDgwMjhiMzFiODNhMjUyYTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01NSw2ICs1NSw5IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7IAogICAgIH0KIAorICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHRvU3RyaW5nQ2FsbGJhY2soSlND
b250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOworICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHZhbHVlT2ZDYWxs
YmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IDE0YTk2MzkwZTlkZTdjYmQxZTUzY2VlN2I4NTViMGY4
YmY1MThkMjguLjA5Y2U4ZWEyYWQyYmM1OTNhOWQ2ZGJiY2UwNDdhY2ZhNjM4YjBiMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMjQzLDcgKzI0MywxOCBA
QCBKU09iamVjdCogT3BhcXVlSlNDbGFzczo6cHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgKiAgICAgICB8ICAgICAgICB8ICAgICAgICAgIHwKICAgICAgKiAgRGVyaXZlZENsYXNzICB8
ICBEZXJpdmVkQ2xhc3NQcm90b3R5cGUKICAgICAgKi8KLSAgICAKKworICAgIGlmIChjb252ZXJ0
VG9UeXBlKSB7CisgICAgICAgIGlmICghcHJvdG90eXBlQ2xhc3MpCisgICAgICAgICAgICBwcm90
b3R5cGVDbGFzcyA9IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZSgma0pTQ2xhc3NEZWZpbml0aW9uRW1w
dHkpLmxlYWtSZWYoKTsKKyAgICAgICAgaWYgKCFwcm90b3R5cGVDbGFzcy0+bV9zdGF0aWNGdW5j
dGlvbnMpCisgICAgICAgICAgICBwcm90b3R5cGVDbGFzcy0+bV9zdGF0aWNGdW5jdGlvbnMgPSBu
ZXcgT3BhcXVlSlNDbGFzc1N0YXRpY0Z1bmN0aW9uc1RhYmxlOworICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiB0b1N0cmluZyA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZzsKKyAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgdmFsdWVPZiA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS52YWx1
ZU9mOworICAgICAgICBwcm90b3R5cGVDbGFzcy0+bV9zdGF0aWNGdW5jdGlvbnMtPmFkZChTdHJp
bmdJbXBsOjpjcmVhdGUodG9TdHJpbmcuY2hhcmFjdGVycygpLCB0b1N0cmluZy5sZW5ndGgoKSks
IG5ldyBTdGF0aWNGdW5jdGlvbkVudHJ5KCZKU0NhbGxiYWNrRnVuY3Rpb246OnRvU3RyaW5nQ2Fs
bGJhY2ssIDApKTsKKyAgICAgICAgcHJvdG90eXBlQ2xhc3MtPm1fc3RhdGljRnVuY3Rpb25zLT5h
ZGQoU3RyaW5nSW1wbDo6Y3JlYXRlKHZhbHVlT2YuY2hhcmFjdGVycygpLCB2YWx1ZU9mLmxlbmd0
aCgpKSwgbmV3IFN0YXRpY0Z1bmN0aW9uRW50cnkoJkpTQ2FsbGJhY2tGdW5jdGlvbjo6dmFsdWVP
ZkNhbGxiYWNrLCAwKSk7CisgICAgfQorCiAgICAgaWYgKCFwcm90b3R5cGVDbGFzcykKICAgICAg
ICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5q
cwppbmRleCA2MWQ0NTMzZTg0ZjRiZGUwOTI5ODNlNTQyOWNmZDkyNGFlYjE3NjRlLi5mY2M3ZGU2
MjI3YzA4ODI4MTMxYzZhZDUzOWNjMjFjNDA1ZTljZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpLmpzCkBAIC0xNTQsOSArMTU0LDExIEBAIHNob3VsZEJlKCJN
eU9iamVjdCgpIiwgdW5kZWZpbmVkKTsKIHNob3VsZEJlKCJ0eXBlb2YgbXlPYmplY3QiLCAib2Jq
ZWN0Iik7CiBzaG91bGRCZSgiTXlPYmplY3QgPyAxIDogMCIsIHRydWUpOyAvLyB0b0Jvb2xlYW4K
IHNob3VsZEJlKCIrTXlPYmplY3QiLCAxKTsgLy8gdG9OdW1iZXIKLXNob3VsZEJlKCIoTXlPYmpl
Y3QudG9TdHJpbmcoKSkiLCAiW29iamVjdCBNeU9iamVjdF0iKTsgLy8gdG9TdHJpbmcKLXNob3Vs
ZEJlKCJTdHJpbmcoTXlPYmplY3QpIiwgIk15T2JqZWN0QXNTdHJpbmciKTsgLy8gdHlwZSBjb252
ZXJzaW9uIHRvIHN0cmluZworc2hvdWxkQmUoIihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nKG15
T2JqZWN0KSkiLCAiW29iamVjdCBPYmplY3RdIik7IC8vIE9iamVjdC5wcm90b3R5cGUudG9TdHJp
bmcKK3Nob3VsZEJlKCIoTXlPYmplY3QudG9TdHJpbmcoKSkiLCAiTXlPYmplY3RBc1N0cmluZyIp
OyAvLyB0b1N0cmluZworc2hvdWxkQmUoIlN0cmluZyhNeU9iamVjdCkiLCAiTXlPYmplY3RBc1N0
cmluZyIpOyAvLyB0b1N0cmluZwogc2hvdWxkQmUoIk15T2JqZWN0IC0gMCIsIDEpOyAvLyB0b051
bWJlcgorc2hvdWxkQmUoIk15T2JqZWN0LnZhbHVlT2YoKSIsIDEpOyAvLyB2YWx1ZU9mCiAKIHNo
b3VsZEJlKCJ0eXBlb2YgTXlDb25zdHJ1Y3RvciIsICJvYmplY3QiKTsKIGNvbnN0cnVjdGVkT2Jq
ZWN0ID0gbmV3IE15Q29uc3RydWN0b3IoMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
MGQzMmEzOTM3NTMyZjJiMTY2MTVkZTA5YzJkMjUzNTllYzMwN2YyLi5mY2QxYTJkOWEyYWI4OTM5
NDUyMDNiZjFhMGIyMWVkYjFhMzc3YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMS0xMC0wMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgorCisgICAgICAgIEltcGxpY2l0bHkgYWRkIHRvU3RyaW5nIGFuZCB2YWx1ZU9mIHRv
IHByb3RvdHlwZSB3aGVuIGNvbnZlcnRUb1R5cGUgY2FsbGJhY2sgaXMgcHJvdmlkZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5MTU2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgY2FsbGJhY2tz
IGZvciB0b1N0cmluZyBhbmQgdmFsdWVPZiB3aGljaCBhcmUgaW1wbGljaXRseSBhZGRlZCB0byBh
IGNsaWVudCBvYmplY3QncworICAgICAgICBwcm90b3R5cGUgaWYgdGhleSBwcm92aWRlIGEgY29u
dmVydFRvVHlwZSBjYWxsYmFjayB3aGVuIGRlY2xhcmluZyB0aGVpciBjbGFzcyB0aHJvdWdoIAor
ICAgICAgICB0aGUgSlNDIEFQSS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OnRvU3RyaW5nQ2FsbGJhY2sp
OgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OnZhbHVlT2ZDYWxsYmFjayk6Cisg
ICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAqIEFQSS9KU0NsYXNz
UmVmLmNwcDoKKyAgICAgICAgKE9wYXF1ZUpTQ2xhc3M6OnByb3RvdHlwZSk6CisgICAgICAgICog
QVBJL3Rlc3RzL3Rlc3RhcGkuanM6CisKIDIwMTEtMTAtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEZpeCBtYWtlIGRpc3RjaGVj
ayBidWlsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109566</attachid>
            <date>2011-10-03 18:22:45 -0700</date>
            <delta_ts>2011-10-04 12:01:12 -0700</delta_ts>
            <desc>Test modification</desc>
            <filename>bug-69156-20111003182250.patch</filename>
            <type>text/plain</type>
            <size>6399</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1MjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCAyNzQwNmI4ODNlZjk2NDA4MWU5N2ZlZDdh
YjlmMWEzZWUyMDhiODUyLi5mYzA3NGZlNTFjNGE3MWQ0NjM0MWRkODcxNGQwNTNhNzg0ZDAwOTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkNv
ZGVCbG9jay5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkhlbHBlcnMuaCIKKyNpbmNsdWRlICJKU0Nh
bGxiYWNrT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkZ1bmN0
aW9uUHJvdG90eXBlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgpAQCAt
ODgsNCArODksMjUgQEAgQ2FsbFR5cGUgSlNDYWxsYmFja0Z1bmN0aW9uOjpnZXRDYWxsRGF0YShK
U0NlbGwqLCBDYWxsRGF0YSYgY2FsbERhdGEpCiAgICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0K
IAorSlNWYWx1ZVJlZiBKU0NhbGxiYWNrRnVuY3Rpb246OnRvU3RyaW5nQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCwg
Y29uc3QgSlNWYWx1ZVJlZltdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IHRvSlModGhpc09iamVjdCk7CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMo
JkpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbykpCisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Kj4ob2Jq
ZWN0KS0+Y2xhc3NSZWYoKS0+Y29udmVydFRvVHlwZShjdHgsIHRoaXNPYmplY3QsIGtKU1R5cGVT
dHJpbmcsIGV4Y2VwdGlvbik7CisgICAgaWYgKG9iamVjdC0+aW5oZXJpdHMoJkpTQ2FsbGJhY2tP
YmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpzX2luZm8pKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD4qPihvYmplY3QpLT5jbGFzc1JlZigp
LT5jb252ZXJ0VG9UeXBlKGN0eCwgdGhpc09iamVjdCwga0pTVHlwZVN0cmluZywgZXhjZXB0aW9u
KTsKKyAgICByZXR1cm4gMDsKK30KKworSlNWYWx1ZVJlZiBKU0NhbGxiYWNrRnVuY3Rpb246OnZh
bHVlT2ZDYWxsYmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90LCBjb25zdCBKU1ZhbHVlUmVmW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3sKKyAgICBKU09iamVjdCogb2JqZWN0ID0gdG9KUyh0aGlzT2JqZWN0KTsKKyAgICBp
ZiAob2JqZWN0LT5pbmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6
c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tPYmplY3Q8SlNO
b25GaW5hbE9iamVjdD4qPihvYmplY3QpLT5jbGFzc1JlZigpLT5jb252ZXJ0VG9UeXBlKGN0eCwg
dGhpc09iamVjdCwga0pTVHlwZU51bWJlciwgZXhjZXB0aW9uKTsKKyAgICBpZiAob2JqZWN0LT5p
bmhlcml0cygmSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OnNfaW5mbykpCisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pio+
KG9iamVjdCktPmNsYXNzUmVmKCktPmNvbnZlcnRUb1R5cGUoY3R4LCB0aGlzT2JqZWN0LCBrSlNU
eXBlTnVtYmVyLCBleGNlcHRpb24pOworICAgIHJldHVybiAwOworfQorCisKIH0gLy8gbmFtZXNw
YWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNr
RnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9u
LmgKaW5kZXggY2UyYWQ5Y2JkNjE5NDVkMDlmYTZmNjBjMmNiNWEzNDMyNjhiMTU3ZC4uNzI0OTRk
Y2NjYTgwZDNjMDlmYjFiMDgwMjhiMzFiODNhMjUyYTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oCkBAIC01NSw2ICs1NSw5IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7IAogICAgIH0KIAorICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHRvU3RyaW5nQ2FsbGJhY2soSlND
b250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOworICAgIHN0YXRpYyBKU1ZhbHVlUmVmIHZhbHVlT2ZDYWxs
YmFjayhKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBD
YWxsVHlwZSBnZXRDYWxsRGF0YVZpcnR1YWwoQ2FsbERhdGEmKTsKICAgICBzdGF0aWMgQ2FsbFR5
cGUgZ2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IDE0YTk2MzkwZTlkZTdjYmQxZTUzY2VlN2I4NTViMGY4
YmY1MThkMjguLjA5Y2U4ZWEyYWQyYmM1OTNhOWQ2ZGJiY2UwNDdhY2ZhNjM4YjBiMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMjQzLDcgKzI0MywxOCBA
QCBKU09iamVjdCogT3BhcXVlSlNDbGFzczo6cHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgKiAgICAgICB8ICAgICAgICB8ICAgICAgICAgIHwKICAgICAgKiAgRGVyaXZlZENsYXNzICB8
ICBEZXJpdmVkQ2xhc3NQcm90b3R5cGUKICAgICAgKi8KLSAgICAKKworICAgIGlmIChjb252ZXJ0
VG9UeXBlKSB7CisgICAgICAgIGlmICghcHJvdG90eXBlQ2xhc3MpCisgICAgICAgICAgICBwcm90
b3R5cGVDbGFzcyA9IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZSgma0pTQ2xhc3NEZWZpbml0aW9uRW1w
dHkpLmxlYWtSZWYoKTsKKyAgICAgICAgaWYgKCFwcm90b3R5cGVDbGFzcy0+bV9zdGF0aWNGdW5j
dGlvbnMpCisgICAgICAgICAgICBwcm90b3R5cGVDbGFzcy0+bV9zdGF0aWNGdW5jdGlvbnMgPSBu
ZXcgT3BhcXVlSlNDbGFzc1N0YXRpY0Z1bmN0aW9uc1RhYmxlOworICAgICAgICBjb25zdCBJZGVu
dGlmaWVyJiB0b1N0cmluZyA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS50b1N0cmluZzsKKyAgICAg
ICAgY29uc3QgSWRlbnRpZmllciYgdmFsdWVPZiA9IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS52YWx1
ZU9mOworICAgICAgICBwcm90b3R5cGVDbGFzcy0+bV9zdGF0aWNGdW5jdGlvbnMtPmFkZChTdHJp
bmdJbXBsOjpjcmVhdGUodG9TdHJpbmcuY2hhcmFjdGVycygpLCB0b1N0cmluZy5sZW5ndGgoKSks
IG5ldyBTdGF0aWNGdW5jdGlvbkVudHJ5KCZKU0NhbGxiYWNrRnVuY3Rpb246OnRvU3RyaW5nQ2Fs
bGJhY2ssIDApKTsKKyAgICAgICAgcHJvdG90eXBlQ2xhc3MtPm1fc3RhdGljRnVuY3Rpb25zLT5h
ZGQoU3RyaW5nSW1wbDo6Y3JlYXRlKHZhbHVlT2YuY2hhcmFjdGVycygpLCB2YWx1ZU9mLmxlbmd0
aCgpKSwgbmV3IFN0YXRpY0Z1bmN0aW9uRW50cnkoJkpTQ2FsbGJhY2tGdW5jdGlvbjo6dmFsdWVP
ZkNhbGxiYWNrLCAwKSk7CisgICAgfQorCiAgICAgaWYgKCFwcm90b3R5cGVDbGFzcykKICAgICAg
ICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5q
cwppbmRleCA2MWQ0NTMzZTg0ZjRiZGUwOTI5ODNlNTQyOWNmZDkyNGFlYjE3NjRlLi41MjU3Yjg4
MmVhN2RiOGE3MmI1YmJiYThkODI1YTI1YTBkMjk2YTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpLmpzCkBAIC0xNTQsOSArMTU0LDExIEBAIHNob3VsZEJlKCJN
eU9iamVjdCgpIiwgdW5kZWZpbmVkKTsKIHNob3VsZEJlKCJ0eXBlb2YgbXlPYmplY3QiLCAib2Jq
ZWN0Iik7CiBzaG91bGRCZSgiTXlPYmplY3QgPyAxIDogMCIsIHRydWUpOyAvLyB0b0Jvb2xlYW4K
IHNob3VsZEJlKCIrTXlPYmplY3QiLCAxKTsgLy8gdG9OdW1iZXIKLXNob3VsZEJlKCIoTXlPYmpl
Y3QudG9TdHJpbmcoKSkiLCAiW29iamVjdCBNeU9iamVjdF0iKTsgLy8gdG9TdHJpbmcKLXNob3Vs
ZEJlKCJTdHJpbmcoTXlPYmplY3QpIiwgIk15T2JqZWN0QXNTdHJpbmciKTsgLy8gdHlwZSBjb252
ZXJzaW9uIHRvIHN0cmluZworc2hvdWxkQmUoIihPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNh
bGwoTXlPYmplY3QpKSIsICJbb2JqZWN0IE15T2JqZWN0XSIpOyAvLyBPYmplY3QucHJvdG90eXBl
LnRvU3RyaW5nCitzaG91bGRCZSgiKE15T2JqZWN0LnRvU3RyaW5nKCkpIiwgIk15T2JqZWN0QXNT
dHJpbmciKTsgLy8gdG9TdHJpbmcKK3Nob3VsZEJlKCJTdHJpbmcoTXlPYmplY3QpIiwgIk15T2Jq
ZWN0QXNTdHJpbmciKTsgLy8gdG9TdHJpbmcKIHNob3VsZEJlKCJNeU9iamVjdCAtIDAiLCAxKTsg
Ly8gdG9OdW1iZXIKK3Nob3VsZEJlKCJNeU9iamVjdC52YWx1ZU9mKCkiLCAxKTsgLy8gdmFsdWVP
ZgogCiBzaG91bGRCZSgidHlwZW9mIE15Q29uc3RydWN0b3IiLCAib2JqZWN0Iik7CiBjb25zdHJ1
Y3RlZE9iamVjdCA9IG5ldyBNeUNvbnN0cnVjdG9yKDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggZjBkMzJhMzkzNzUzMmYyYjE2NjE1ZGUwOWMyZDI1MzU5ZWMzMDdmMi4uZmNkMWEyZDlh
MmFiODkzOTQ1MjAzYmYxYTBiMjFlZGIxYTM3N2FkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTAtMDMgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5i
ZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsaWNpdGx5IGFkZCB0b1N0cmluZyBhbmQgdmFs
dWVPZiB0byBwcm90b3R5cGUgd2hlbiBjb252ZXJ0VG9UeXBlIGNhbGxiYWNrIGlzIHByb3ZpZGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE1Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGNh
bGxiYWNrcyBmb3IgdG9TdHJpbmcgYW5kIHZhbHVlT2Ygd2hpY2ggYXJlIGltcGxpY2l0bHkgYWRk
ZWQgdG8gYSBjbGllbnQgb2JqZWN0J3MKKyAgICAgICAgcHJvdG90eXBlIGlmIHRoZXkgcHJvdmlk
ZSBhIGNvbnZlcnRUb1R5cGUgY2FsbGJhY2sgd2hlbiBkZWNsYXJpbmcgdGhlaXIgY2xhc3MgdGhy
b3VnaCAKKyAgICAgICAgdGhlIEpTQyBBUEkuCisKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja0Z1
bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjp0b1N0cmluZ0Nh
bGxiYWNrKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja0Z1bmN0aW9uOjp2YWx1ZU9mQ2FsbGJh
Y2spOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaDoKKyAgICAgICAgKiBBUEkv
SlNDbGFzc1JlZi5jcHA6CisgICAgICAgIChPcGFxdWVKU0NsYXNzOjpwcm90b3R5cGUpOgorICAg
ICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmpzOgorCiAyMDExLTEwLTAzICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBGaXggbWFrZSBk
aXN0Y2hlY2sgYnVpbGQK
</data>

          </attachment>
      

    </bug>

</bugzilla>