<?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>76509</bug_id>
          
          <creation_ts>2012-01-17 18:29:40 -0800</creation_ts>
          <short_desc>Lazy init for DefaultAudioDestinationNode?</short_desc>
          <delta_ts>2012-02-16 20:37:11 -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>Web Audio</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Raymond">rgbbones</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>crogers</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>537536</commentid>
    <comment_count>0</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2012-01-17 18:29:40 -0800</bug_when>
    <thetext>Hi


In AudioContext&apos;s lazyInitialize m_destinationNode-&gt;initialize() is called, so is it necessary to call initialize in DefaultAudioDestinationNode&apos;s constructor? Will that help the lazyInitialize conception by not call it in DefaultAudioDestinationNode&apos;s constructor?

If so, I will be glad to provide this one line patch ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538848</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-01-19 11:28:16 -0800</bug_when>
    <thetext>Sure, sounds reasonable to me.  I had a quick look through the code and couldn&apos;t see any obvious problems.  It would be good if you could quickly test your change on a couple of the web audio demos just as a sanity check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540016</commentid>
    <comment_count>2</comment_count>
      <attachid>123427</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2012-01-20 19:22:45 -0800</bug_when>
    <thetext>Created attachment 123427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540018</commentid>
    <comment_count>3</comment_count>
    <who name="Raymond">rgbbones</who>
    <bug_when>2012-01-20 19:29:02 -0800</bug_when>
    <thetext>Well, it&apos;s not that simple as I thought before. The sampleRate() function is called in the AudioContext constructor, which required the m_destination to be available.

While, I think that sampleRate() function is already provided by AudioNode, so why not just use it, after all , the current AudioDestination implementation just return the same sampleRate passed in during construction. Thus AudioDestinationNode and AudioDestination share the same sampleRate. And if later we need to dynamic adjust sampleRate, we might set sample rate from AudioDestination to AudioDestinationNode.

Anyway, the result is the patch attached</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540019</commentid>
    <comment_count>4</comment_count>
      <attachid>123427</attachid>
    <who name="Raymond">rgbbones</who>
    <bug_when>2012-01-20 19:32:20 -0800</bug_when>
    <thetext>Comment on attachment 123427
Patch

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

&gt; Source/WebCore/webaudio/DefaultAudioDestinationNode.cpp:-38
&gt; -    initialize();

I also considered to move this empty one to head file, but then I think again, due to it is a private function, and who knows we might add something here later. So I choose to leave it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558474</commentid>
    <comment_count>5</comment_count>
      <attachid>123427</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-16 13:29:39 -0800</bug_when>
    <thetext>Comment on attachment 123427
Patch

If Chris is OK with this then r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558568</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-16 15:04:23 -0800</bug_when>
    <thetext>Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558865</commentid>
    <comment_count>7</comment_count>
      <attachid>123427</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 20:37:07 -0800</bug_when>
    <thetext>Comment on attachment 123427
Patch

Clearing flags on attachment: 123427

Committed r108022: &lt;http://trac.webkit.org/changeset/108022&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558866</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 20:37:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123427</attachid>
            <date>2012-01-20 19:22:45 -0800</date>
            <delta_ts>2012-02-16 20:37:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76509-20120121112704.patch</filename>
            <type>text/plain</type>
            <size>5157</size>
            <attacher name="Raymond">rgbbones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZkZDgwMGUwM2EyOTkx
YmQzYjdiYzg0ZjliYzUwYTk5NjQzNTliNS4uZTJjOWU5NGJkMjBlODEwZjhmNjczZjZhYTJjNTJm
MDM2ZGQwMDViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAxLTIwICBSYXlt
b25kIExpdSAgPHJheW1vbmQubGl1QGludGVsLmNvbT4KKworICAgICAgICBMYXp5IGluaXQgZm9y
IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSBhbmQgT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUw
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyByZXF1aXJlZC4KKworICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25O
b2RlLmg6CisgICAgICAgICogd2ViYXVkaW8vQXVkaW9Ob2RlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb05vZGU6OnNhbXBsZVJhdGUpOgorICAgICAgICAqIHdlYmF1ZGlvL0RlZmF1bHRBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGU6OkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSk6CisgICAgICAgICogd2Vi
YXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmg6CisgICAgICAgICogd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxp
bmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKToKKyAg
ICAgICAgKiB3ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6c2FtcGxlUmF0ZSk6CisKIDIw
MTItMDEtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS85MzI4Njg0PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYyNzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRp
b0Rlc3RpbmF0aW9uTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaAppbmRleCBkN2JjN2JjMTJkNzkwMjZlYjVhZmI1N2Y0ZWZlNzI0NjhiNTM3ZDUy
Li5mNWUyNzU3ZmU4OTcxNDI5ODlmMjhhMGQ0NzNiN2YwNjBjOWRmZGM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmgKQEAgLTQ4LDggKzQ4LDYg
QEAgcHVibGljOgogCiAgICAgZG91YmxlIGN1cnJlbnRUaW1lKCkgeyByZXR1cm4gbV9jdXJyZW50
VGltZTsgfQogCi0gICAgdmlydHVhbCBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgPSAwOwotCiAg
ICAgdmlydHVhbCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCkgY29uc3QgeyByZXR1cm4gMjsg
fSAvLyBGSVhNRTogdXBkYXRlIHdoZW4gbXVsdGktY2hhbm5lbCAobW9yZSB0aGFuIHN0ZXJlbykg
aXMgc3VwcG9ydGVkCiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRSZW5kZXJpbmcoKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9BdWRpb05vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IGQxMzI1ZTFkYmVlMTgwYjY3NzFkZDNk
N2JhNjQ1YjI0OGNmMTM1ZDMuLjZmZjFlMGY5MzllYjc2MjRjY2YzYzY5MThhNGU3YzM3MDVkNjFh
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCkBAIC0xMTgsNyArMTE4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgY29ubmVjdChBdWRpb05vZGUqLCB1bnNpZ25lZCBvdXRwdXRJbmRl
eCwgdW5zaWduZWQgaW5wdXRJbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgZGlzY29u
bmVjdCh1bnNpZ25lZCBvdXRwdXRJbmRleCwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgZmxvYXQg
c2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQorICAgIHZpcnR1YWwg
ZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQogCiAgICAg
Ly8gcHJvY2Vzc0lmTmVjZXNzYXJ5KCkgaXMgY2FsbGVkIGJ5IG91ciBvdXRwdXQocykgd2hlbiB0
aGUgcmVuZGVyaW5nIGdyYXBoIG5lZWRzIHRoaXMgQXVkaW9Ob2RlIHRvIHByb2Nlc3MuCiAgICAg
Ly8gVGhpcyBtZXRob2QgZW5zdXJlcyB0aGF0IHRoZSBBdWRpb05vZGUgd2lsbCBvbmx5IHByb2Nl
c3Mgb25jZSBwZXIgcmVuZGVyaW5nIHRpbWUgcXVhbnR1bSBldmVuIGlmIGl0J3MgY2FsbGVkIHJl
cGVhdGVkbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWZhdWx0QXVk
aW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCBlMjY0NTYzNzVjZDFiMmNiOTU1ZGI2ODZhYmEy
MWUxNjJmNjY1N2QzLi5mZTQ3YWNjZmEwZjIyZDRhZTc0ODZkZWFlMWQ0MjE2N2IwMDIwZTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAKQEAgLTM1LDcgKzM1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQXVk
aW9Db250ZXh0KiBjb250ZXh0KQogICAgIDogQXVkaW9EZXN0aW5hdGlvbk5vZGUoY29udGV4dCwg
QXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1wbGVSYXRlKCkpCiB7Ci0gICAgaW5pdGlhbGl6
ZSgpOwogfQogCiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6On5EZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAppbmRleCA2MzBiZGMzMzUyZDc1YTczNDI4Njk3N2RmYjlh
MmJlNDRmMWU3YTI3Li5lN2FjMWNkYmE1OWE0YjM4YTVjNzBhYTBjOWUyOTc1MWYxYTk2ZjcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlv
bk5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUuaApAQCAtNDUsOSArNDUsNiBAQCBwdWJsaWM6CiAgICAgLy8gQXVkaW9Ob2RlICAg
CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoKTsKICAgICB2aXJ0dWFsIHZvaWQgdW5pbml0
aWFsaXplKCk7Ci0gICAgCi0gICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVzdGluYXRpb24tPnNhbXBsZVJhdGUoKTsgfQotCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UmVu
ZGVyaW5nKCk7CiAgICAgCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKaW5kZXggMTk4YTUwMjBiZTkx
ZDAwZGIxMGY1YTUwOTMwNzYxMjY4Njk5NmQ3NC4uN2VhMjJkY2IxZjA5M2M5ZTljMTRkNmU5OThh
ODE5ZWMyZDU0NjRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC00Nyw4ICs0Nyw2IEBAIE9mZmxpbmVB
dWRpb0Rlc3RpbmF0aW9uTm9kZTo6T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlKEF1ZGlvQ29u
dGV4dCogY29udGV4dCwKICAgICAsIG1fc3RhcnRlZFJlbmRlcmluZyhmYWxzZSkKIHsKICAgICBt
X3JlbmRlckJ1cyA9IGFkb3B0UHRyKG5ldyBBdWRpb0J1cyhyZW5kZXJUYXJnZXQtPm51bWJlck9m
Q2hhbm5lbHMoKSwgcmVuZGVyUXVhbnR1bVNpemUpKTsKLSAgICAKLSAgICBpbml0aWFsaXplKCk7
CiB9CiAKIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZTo6fk9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9PZmZsaW5lQXVk
aW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IGM0ZDU2N2E1ZDI5ZGM1YTkwODRhNTUwN2MyNzczOWVh
ZTVjNWVjNTAuLjFmYjczMDA3N2U0NzU5ZjQwNmIwZTFkOGJkNWU0MmJmYmZhMjFiYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oCkBAIC00OCw4ICs0OCw3IEBAIHB1YmxpYzoKICAgICAvLyBBdWRpb05vZGUgICAKICAg
ICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCB1bmluaXRpYWxp
emUoKTsKLSAgICAKLSAgICBmbG9hdCBzYW1wbGVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZW5k
ZXJUYXJnZXQtPnNhbXBsZVJhdGUoKTsgfQorICAgIHZpcnR1YWwgZmxvYXQgc2FtcGxlUmF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVGFyZ2V0LT5zYW1wbGVSYXRlKCk7IH0KIAogICAgIHZv
aWQgc3RhcnRSZW5kZXJpbmcoKTsKICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>