<?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>46834</bug_id>
          
          <creation_ts>2010-09-29 13:01:04 -0700</creation_ts>
          <short_desc>Limit number of AudioNode deletions per render quantum in AudioContext</short_desc>
          <delta_ts>2010-09-29 14:57:08 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>0</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarrin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kbr</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>287077</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 13:01:04 -0700</bug_when>
    <thetext>Limit number of AudioNode deletions per render quantum in AudioContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287079</commentid>
    <comment_count>1</comment_count>
      <attachid>69242</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 13:03:49 -0700</bug_when>
    <thetext>Created attachment 69242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287081</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 13:06:33 -0700</bug_when>
    <thetext>This fixes a problem where garbage collection suddenly releases tons of AudioNodes at the same time and many are deleted in the real-time audio thread.  This patch amortizes the deletions over several render quantums by deleting only a limited amount each time.

NOTE: this patch also contains an incidental minor change to the HRTFDatabaseLoader API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287082</commentid>
    <comment_count>3</comment_count>
      <attachid>69242</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 13:07:06 -0700</bug_when>
    <thetext>Comment on attachment 69242
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=69242&amp;action=review

There are several changes in this patch unrelated to this bug that need to be removed.

&gt; WebCore/webaudio/AudioContext.cpp:110
&gt; +    m_hrtfDatabaseLoader = HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary(sampleRate());

This is an unrelated change.

&gt; WebCore/webaudio/AudioContext.cpp:351
&gt; +        m_graphOwnerThread = thisThread;

This also looks like an unrelated change.

&gt; WebCore/webaudio/AudioContext.cpp:438
&gt; +    ASSERT(isAudioThread() &amp;&amp; isGraphOwner());

Is this new assertion related to this change?

&gt; WebCore/webaudio/AudioContext.h:248
&gt; +    RefPtr&lt;HRTFDatabaseLoader&gt; m_hrtfDatabaseLoader;

Unrelated changes shouldn&apos;t be in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287086</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-09-29 13:12:32 -0700</bug_when>
    <thetext>&gt;  many are deleted in the real-time audio thread

Isn&apos;t the right solution to ensure that these are not deleted on that thread, rather than implementing throttling?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287091</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 13:27:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt;  many are deleted in the real-time audio thread
&gt; 
&gt; Isn&apos;t the right solution to ensure that these are not deleted on that thread, rather than implementing throttling?

Moving the deletion of these objects to the main thread requires rethinking some of the synchronization and queueing strategy. This is an incremental fix improving the behavior without completely rewriting things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287092</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 13:29:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt;  many are deleted in the real-time audio thread
&gt; 
&gt; Isn&apos;t the right solution to ensure that these are not deleted on that thread, rather than implementing throttling?

Sometimes, they have to be deleted in the real-time audio thread because the garbage collection happens before the &quot;note&quot; has finished playing.  Later on, in the real-time thread the note finishes and there&apos;s no more chance to delete it in the main thread.  We could implement a callOnMainThread() type of thing, but I think this would introduce performance problems into the main thread.  I think we need the throttling (for the audio thread) but also try to delete the nodes at every opportunity we have in the main thread (such as in the connect(), disconnect(), and deref() methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287094</commentid>
    <comment_count>7</comment_count>
      <attachid>69244</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 13:31:26 -0700</bug_when>
    <thetext>Created attachment 69244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287097</commentid>
    <comment_count>8</comment_count>
      <attachid>69244</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 13:36:49 -0700</bug_when>
    <thetext>Comment on attachment 69244
Patch

Looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287134</commentid>
    <comment_count>9</comment_count>
      <attachid>69252</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 14:48:09 -0700</bug_when>
    <thetext>Created attachment 69252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287135</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 14:48:39 -0700</bug_when>
    <thetext>last minute tweak: changed int to unsigned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287136</commentid>
    <comment_count>11</comment_count>
      <attachid>69252</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2010-09-29 14:49:21 -0700</bug_when>
    <thetext>Comment on attachment 69252
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287138</commentid>
    <comment_count>12</comment_count>
      <attachid>69252</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 14:57:03 -0700</bug_when>
    <thetext>Comment on attachment 69252
Patch

Clearing flags on attachment: 69252

Committed r68689: &lt;http://trac.webkit.org/changeset/68689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287139</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2010-09-29 14:57:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69242</attachid>
            <date>2010-09-29 13:03:49 -0700</date>
            <delta_ts>2010-09-29 13:31:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46834-20100929130348.patch</filename>
            <type>text/plain</type>
            <size>4608</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODY4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDktMjkgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBM
aW1pdCBudW1iZXIgb2YgQXVkaW9Ob2RlIGRlbGV0aW9ucyBwZXIgcmVuZGVyIHF1YW50dW0gaW4g
QXVkaW9Db250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjgzNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBhdWRpbyBBUEkgaXMgbm90
IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9D
b250ZXh0OjpoYW5kbGVQb3N0UmVuZGVyVGFza3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9D
b250ZXh0OjpoYW5kbGVEZWZlcnJlZEZpbmlzaERlcmVmcyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb0NvbnRleHQ6OmRlbGV0ZU1hcmtlZE5vZGVzKToKKyAgICAgICAgKiB3ZWJhdWRpby9BdWRp
b0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29udGV4dDo6aHJ0ZkRhdGFiYXNl
TG9hZGVyKToKKwogMjAxMC0wOS0yOSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS93
ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcAkocmV2aXNpb24gNjg2MTEpCisrKyBXZWJDb3JlL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDkgQEAKIAogLy8gRklY
TUU6IGNoZWNrIHRoZSBwcm9wZXIgd2F5IHRvIHJlZmVyZW5jZSBhbiB1bmRlZmluZWQgdGhyZWFk
IElECiBjb25zdCBpbnQgVW5kZWZpbmVkVGhyZWFkSWRlbnRpZmllciA9IDB4ZmZmZmZmZmY7Ci0g
CisKK2NvbnN0IGludCBNYXhOb2Rlc1RvRGVsZXRlUGVyUXVhbnR1bSA9IDEwOworCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8Q2FjaGVkQXVkaW8+IEF1ZGlvQ29udGV4dDo6Y3Jl
YXRlQXVkaW9SZXF1ZXN0KGNvbnN0IFN0cmluZyAmdXJsLCBib29sIG1peFRvTW9ubykKQEAgLTEw
NSw3ICsxMDcsNyBAQCBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jCiAg
ICAgLy8gV2UgY2FuIGNoZWNrIGhydGZEYXRhYmFzZUxvYWRlcigpLT5pc0xvYWRlZCgpIHRvIGZp
bmQgb3V0IHdoZXRoZXIgb3Igbm90IGl0IGhhcyBiZWVuIGZ1bGx5IGxvYWRlZC4KICAgICAvLyBJ
dCdzIG5vdCB0aGF0IHVzZWZ1bCB0byBoYXZlIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRoaXMg
c2luY2UgdGhlIGF1ZGlvIHRocmVhZCBhdXRvbWF0aWNhbGx5IHN0YXJ0cyByZW5kZXJpbmcgb24g
dGhlIGdyYXBoCiAgICAgLy8gd2hlbiB0aGlzIGhhcyBmaW5pc2hlZCAoc2VlIEF1ZGlvRGVzdGlu
YXRpb25Ob2RlKS4KLSAgICBocnRmRGF0YWJhc2VMb2FkZXIoKS0+bG9hZEFzeW5jaHJvbm91c2x5
KHNhbXBsZVJhdGUoKSk7CisgICAgbV9ocnRmRGF0YWJhc2VMb2FkZXIgPSBIUlRGRGF0YWJhc2VM
b2FkZXI6OmNyZWF0ZUFuZExvYWRBc3luY2hyb25vdXNseUlmTmVjZXNzYXJ5KHNhbXBsZVJhdGUo
KSk7CiB9CiAKIEF1ZGlvQ29udGV4dDo6fkF1ZGlvQ29udGV4dCgpCkBAIC0zNDYsMTAgKzM0OCw5
IEBAIHZvaWQgQXVkaW9Db250ZXh0Ojpsb2NrKGJvb2wmIG11c3RSZWxlYXMKICAgICB9IGVsc2Ug
ewogICAgICAgICAvLyBBY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBtX2NvbnRleHRHcmFwaE11
dGV4LmxvY2soKTsKKyAgICAgICAgbV9ncmFwaE93bmVyVGhyZWFkID0gdGhpc1RocmVhZDsKICAg
ICAgICAgbXVzdFJlbGVhc2VMb2NrID0gdHJ1ZTsKICAgICB9Ci0KLSAgICBtX2dyYXBoT3duZXJU
aHJlYWQgPSB0aGlzVGhyZWFkOwogfQogCiBib29sIEF1ZGlvQ29udGV4dDo6dHJ5TG9jayhib29s
JiBtdXN0UmVsZWFzZUxvY2spCkBAIC00MTIsNyArNDEzLDcgQEAgdm9pZCBBdWRpb0NvbnRleHQ6
OmFkZERlZmVycmVkRmluaXNoRGVyZQogdm9pZCBBdWRpb0NvbnRleHQ6OmhhbmRsZVBvc3RSZW5k
ZXJUYXNrcygpCiB7CiAgICAgQVNTRVJUKGlzQXVkaW9UaHJlYWQoKSk7Ci0gICAgCisgCiAgICAg
Ly8gTXVzdCB1c2UgYSB0cnlMb2NrKCkgaGVyZSB0b28uICBEb24ndCB3b3JyeSwgdGhlIGxvY2sg
d2lsbCB2ZXJ5IHJhcmVseSBiZSBjb250ZW5kZWQgYW5kIHRoaXMgbWV0aG9kIGlzIGNhbGxlZCBm
cmVxdWVudGx5LgogICAgIC8vIFRoZSB3b3JzdCB0aGF0IGNhbiBoYXBwZW4gaXMgdGhhdCB0aGVy
ZSB3aWxsIGJlIHNvbWUgbm9kZXMgd2hpY2ggd2lsbCB0YWtlIHNsaWdodGx5IGxvbmdlciB0aGFu
IHVzdWFsIHRvIGJlIGRlbGV0ZWQgb3IgcmVtb3ZlZAogICAgIC8vIGZyb20gdGhlIHJlbmRlciBn
cmFwaCAoaW4gd2hpY2ggY2FzZSB0aGV5J2xsIHJlbmRlciBzaWxlbmNlKS4KQEAgLTQzNCw3ICs0
MzUsNyBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6aGFuZGxlUG9zdFJlbmRlclRhc2tzCiAKIHZvaWQg
QXVkaW9Db250ZXh0OjpoYW5kbGVEZWZlcnJlZEZpbmlzaERlcmVmcygpCiB7Ci0gICAgQVNTRVJU
KGlzQXVkaW9UaHJlYWQoKSk7CisgICAgQVNTRVJUKGlzQXVkaW9UaHJlYWQoKSAmJiBpc0dyYXBo
T3duZXIoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZGVmZXJyZWRGaW5pc2hE
ZXJlZkxpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQXVkaW9Ob2RlKiBub2RlID0gbV9kZWZl
cnJlZEZpbmlzaERlcmVmTGlzdFtpXS5tX25vZGU7CiAgICAgICAgIEF1ZGlvTm9kZTo6UmVmVHlw
ZSByZWZUeXBlID0gbV9kZWZlcnJlZEZpbmlzaERlcmVmTGlzdFtpXS5tX3JlZlR5cGU7CkBAIC00
NTUsMTAgKzQ1NiwxNSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVsZXRlTWFya2VkTm9kZXMoKQog
ICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSB8fCBpc0F1ZGlvVGhyZWFkRmluaXNoZWQoKSk7CiAK
ICAgICAvLyBOb3RlOiBkZWxldGluZyBhbiBBdWRpb05vZGUgY2FuIGNhdXNlIG1fbm9kZXNUb0Rl
bGV0ZSB0byBncm93LgorICAgIHNpemVfdCBub2Rlc0RlbGV0ZWQgPSAwOwogICAgIHdoaWxlIChz
aXplX3QgbiA9IG1fbm9kZXNUb0RlbGV0ZS5zaXplKCkpIHsKICAgICAgICAgQXVkaW9Ob2RlKiBu
b2RlID0gbV9ub2Rlc1RvRGVsZXRlW24gLSAxXTsKICAgICAgICAgbV9ub2Rlc1RvRGVsZXRlLnJl
bW92ZUxhc3QoKTsKICAgICAgICAgZGVsZXRlIG5vZGU7CisKKyAgICAgICAgLy8gRG9uJ3QgZGVs
ZXRlIHRvbyBtYW55IG5vZGVzIHBlciByZW5kZXIgcXVhbnR1bSBzaW5jZSB3ZSBkb24ndCB3YW50
IHRvIGRvIHRvbyBtdWNoIHdvcmsgaW4gdGhlIHJlYWx0aW1lIGF1ZGlvIHRocmVhZC4KKyAgICAg
ICAgaWYgKCsrbm9kZXNEZWxldGVkID4gTWF4Tm9kZXNUb0RlbGV0ZVBlclF1YW50dW0pCisgICAg
ICAgICAgICBicmVhazsKICAgICB9CiB9CiAKSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAko
cmV2aXNpb24gNjg2MTEpCisrKyBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uTm9kZS5o
IgorI2luY2x1ZGUgIkhSVEZEYXRhYmFzZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CkBAIC0yNDEsNiArMjQyLDEwIEBAIHByaXZhdGU6CiAKICAgICAvLyBPbmx5IGFjY2Vzc2Vk
IGluIHRoZSBhdWRpbyB0aHJlYWQuCiAgICAgVmVjdG9yPFJlZkluZm8+IG1fZGVmZXJyZWRGaW5p
c2hEZXJlZkxpc3Q7CisgICAgCisgICAgLy8gSFJURiBEYXRhYmFzZSBsb2FkZXIKKyAgICBjb25z
dCBIUlRGRGF0YWJhc2VMb2FkZXIqIGhydGZEYXRhYmFzZUxvYWRlcigpIGNvbnN0IHsgcmV0dXJu
IG1faHJ0ZkRhdGFiYXNlTG9hZGVyLmdldCgpOyB9CisgICAgUmVmUHRyPEhSVEZEYXRhYmFzZUxv
YWRlcj4gbV9ocnRmRGF0YWJhc2VMb2FkZXI7CiB9OwogCiB9IC8vIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69244</attachid>
            <date>2010-09-29 13:31:26 -0700</date>
            <delta_ts>2010-09-29 14:48:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46834-20100929133125.patch</filename>
            <type>text/plain</type>
            <size>2315</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODY4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMjkgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBM
aW1pdCBudW1iZXIgb2YgQXVkaW9Ob2RlIGRlbGV0aW9ucyBwZXIgcmVuZGVyIHF1YW50dW0gaW4g
QXVkaW9Db250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjgzNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBhdWRpbyBBUEkgaXMgbm90
IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmhhbmRsZVBvc3RSZW5kZXJUYXNrcyk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmRlbGV0ZU1hcmtlZE5vZGVzKToKKwog
MjAxMC0wOS0yOSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDY4NjExKQorKysgV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw5IEBACiAKIC8vIEZJWE1FOiBjaGVjayB0aGUgcHJv
cGVyIHdheSB0byByZWZlcmVuY2UgYW4gdW5kZWZpbmVkIHRocmVhZCBJRAogY29uc3QgaW50IFVu
ZGVmaW5lZFRocmVhZElkZW50aWZpZXIgPSAweGZmZmZmZmZmOwotIAorCitjb25zdCBpbnQgTWF4
Tm9kZXNUb0RlbGV0ZVBlclF1YW50dW0gPSAxMDsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQ
YXNzUmVmUHRyPENhY2hlZEF1ZGlvPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZUF1ZGlvUmVxdWVzdChj
b25zdCBTdHJpbmcgJnVybCwgYm9vbCBtaXhUb01vbm8pCkBAIC00MTIsNyArNDE0LDcgQEAgdm9p
ZCBBdWRpb0NvbnRleHQ6OmFkZERlZmVycmVkRmluaXNoRGVyZQogdm9pZCBBdWRpb0NvbnRleHQ6
OmhhbmRsZVBvc3RSZW5kZXJUYXNrcygpCiB7CiAgICAgQVNTRVJUKGlzQXVkaW9UaHJlYWQoKSk7
Ci0gICAgCisgCiAgICAgLy8gTXVzdCB1c2UgYSB0cnlMb2NrKCkgaGVyZSB0b28uICBEb24ndCB3
b3JyeSwgdGhlIGxvY2sgd2lsbCB2ZXJ5IHJhcmVseSBiZSBjb250ZW5kZWQgYW5kIHRoaXMgbWV0
aG9kIGlzIGNhbGxlZCBmcmVxdWVudGx5LgogICAgIC8vIFRoZSB3b3JzdCB0aGF0IGNhbiBoYXBw
ZW4gaXMgdGhhdCB0aGVyZSB3aWxsIGJlIHNvbWUgbm9kZXMgd2hpY2ggd2lsbCB0YWtlIHNsaWdo
dGx5IGxvbmdlciB0aGFuIHVzdWFsIHRvIGJlIGRlbGV0ZWQgb3IgcmVtb3ZlZAogICAgIC8vIGZy
b20gdGhlIHJlbmRlciBncmFwaCAoaW4gd2hpY2ggY2FzZSB0aGV5J2xsIHJlbmRlciBzaWxlbmNl
KS4KQEAgLTQ1NSwxMCArNDU3LDE1IEBAIHZvaWQgQXVkaW9Db250ZXh0OjpkZWxldGVNYXJrZWRO
b2RlcygpCiAgICAgQVNTRVJUKGlzR3JhcGhPd25lcigpIHx8IGlzQXVkaW9UaHJlYWRGaW5pc2hl
ZCgpKTsKIAogICAgIC8vIE5vdGU6IGRlbGV0aW5nIGFuIEF1ZGlvTm9kZSBjYW4gY2F1c2UgbV9u
b2Rlc1RvRGVsZXRlIHRvIGdyb3cuCisgICAgc2l6ZV90IG5vZGVzRGVsZXRlZCA9IDA7CiAgICAg
d2hpbGUgKHNpemVfdCBuID0gbV9ub2Rlc1RvRGVsZXRlLnNpemUoKSkgewogICAgICAgICBBdWRp
b05vZGUqIG5vZGUgPSBtX25vZGVzVG9EZWxldGVbbiAtIDFdOwogICAgICAgICBtX25vZGVzVG9E
ZWxldGUucmVtb3ZlTGFzdCgpOwogICAgICAgICBkZWxldGUgbm9kZTsKKworICAgICAgICAvLyBE
b24ndCBkZWxldGUgdG9vIG1hbnkgbm9kZXMgcGVyIHJlbmRlciBxdWFudHVtIHNpbmNlIHdlIGRv
bid0IHdhbnQgdG8gZG8gdG9vIG11Y2ggd29yayBpbiB0aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFk
LgorICAgICAgICBpZiAoKytub2Rlc0RlbGV0ZWQgPiBNYXhOb2Rlc1RvRGVsZXRlUGVyUXVhbnR1
bSkKKyAgICAgICAgICAgIGJyZWFrOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69252</attachid>
            <date>2010-09-29 14:48:09 -0700</date>
            <delta_ts>2010-09-29 14:57:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46834-20100929144807.patch</filename>
            <type>text/plain</type>
            <size>2319</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODY4OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMjkgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBM
aW1pdCBudW1iZXIgb2YgQXVkaW9Ob2RlIGRlbGV0aW9ucyBwZXIgcmVuZGVyIHF1YW50dW0gaW4g
QXVkaW9Db250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjgzNAorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBhdWRpbyBBUEkgaXMgbm90
IHlldCBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmhhbmRsZVBvc3RSZW5kZXJUYXNrcyk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmRlbGV0ZU1hcmtlZE5vZGVzKToKKwog
MjAxMC0wOS0yOSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2ViQ29yZS93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAko
cmV2aXNpb24gNjg2MTEpCisrKyBXZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDkgQEAKIAogLy8gRklYTUU6IGNoZWNrIHRoZSBwcm9w
ZXIgd2F5IHRvIHJlZmVyZW5jZSBhbiB1bmRlZmluZWQgdGhyZWFkIElECiBjb25zdCBpbnQgVW5k
ZWZpbmVkVGhyZWFkSWRlbnRpZmllciA9IDB4ZmZmZmZmZmY7Ci0gCisKK2NvbnN0IHVuc2lnbmVk
IE1heE5vZGVzVG9EZWxldGVQZXJRdWFudHVtID0gMTA7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUGFzc1JlZlB0cjxDYWNoZWRBdWRpbz4gQXVkaW9Db250ZXh0OjpjcmVhdGVBdWRpb1JlcXVl
c3QoY29uc3QgU3RyaW5nICZ1cmwsIGJvb2wgbWl4VG9Nb25vKQpAQCAtNDEyLDcgKzQxNCw3IEBA
IHZvaWQgQXVkaW9Db250ZXh0OjphZGREZWZlcnJlZEZpbmlzaERlcmUKIHZvaWQgQXVkaW9Db250
ZXh0OjpoYW5kbGVQb3N0UmVuZGVyVGFza3MoKQogewogICAgIEFTU0VSVChpc0F1ZGlvVGhyZWFk
KCkpOwotICAgIAorIAogICAgIC8vIE11c3QgdXNlIGEgdHJ5TG9jaygpIGhlcmUgdG9vLiAgRG9u
J3Qgd29ycnksIHRoZSBsb2NrIHdpbGwgdmVyeSByYXJlbHkgYmUgY29udGVuZGVkIGFuZCB0aGlz
IG1ldGhvZCBpcyBjYWxsZWQgZnJlcXVlbnRseS4KICAgICAvLyBUaGUgd29yc3QgdGhhdCBjYW4g
aGFwcGVuIGlzIHRoYXQgdGhlcmUgd2lsbCBiZSBzb21lIG5vZGVzIHdoaWNoIHdpbGwgdGFrZSBz
bGlnaHRseSBsb25nZXIgdGhhbiB1c3VhbCB0byBiZSBkZWxldGVkIG9yIHJlbW92ZWQKICAgICAv
LyBmcm9tIHRoZSByZW5kZXIgZ3JhcGggKGluIHdoaWNoIGNhc2UgdGhleSdsbCByZW5kZXIgc2ls
ZW5jZSkuCkBAIC00NTUsMTAgKzQ1NywxNSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVsZXRlTWFy
a2VkTm9kZXMoKQogICAgIEFTU0VSVChpc0dyYXBoT3duZXIoKSB8fCBpc0F1ZGlvVGhyZWFkRmlu
aXNoZWQoKSk7CiAKICAgICAvLyBOb3RlOiBkZWxldGluZyBhbiBBdWRpb05vZGUgY2FuIGNhdXNl
IG1fbm9kZXNUb0RlbGV0ZSB0byBncm93LgorICAgIHNpemVfdCBub2Rlc0RlbGV0ZWQgPSAwOwog
ICAgIHdoaWxlIChzaXplX3QgbiA9IG1fbm9kZXNUb0RlbGV0ZS5zaXplKCkpIHsKICAgICAgICAg
QXVkaW9Ob2RlKiBub2RlID0gbV9ub2Rlc1RvRGVsZXRlW24gLSAxXTsKICAgICAgICAgbV9ub2Rl
c1RvRGVsZXRlLnJlbW92ZUxhc3QoKTsKICAgICAgICAgZGVsZXRlIG5vZGU7CisKKyAgICAgICAg
Ly8gRG9uJ3QgZGVsZXRlIHRvbyBtYW55IG5vZGVzIHBlciByZW5kZXIgcXVhbnR1bSBzaW5jZSB3
ZSBkb24ndCB3YW50IHRvIGRvIHRvbyBtdWNoIHdvcmsgaW4gdGhlIHJlYWx0aW1lIGF1ZGlvIHRo
cmVhZC4KKyAgICAgICAgaWYgKCsrbm9kZXNEZWxldGVkID4gTWF4Tm9kZXNUb0RlbGV0ZVBlclF1
YW50dW0pCisgICAgICAgICAgICBicmVhazsKICAgICB9CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>