Backed out changesets e52c6f7200b3 and 2718954757e1 (bug 874869) for intermittent Windows leaks.
authorRyan VanderMeulen <ryanvm@gmail.com>
Wed, 22 May 2013 15:22:26 -0400
changeset 144175 5b8402ad9f6622331835e1f8c1ae7367637294d1
parent 144174 ec2e0fb4332294f9a3917e7fa59527c9c551e26f
child 144176 f0b62fbadce946710ff7d210a60504b328e6d37a
push id2697
push userbbajaj@mozilla.com
push dateMon, 05 Aug 2013 18:49:53 +0000
treeherdermozilla-beta@dfec938c7b63 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs874869
milestone24.0a1
backs oute52c6f7200b3eb167811fb0770d56759aae2797f
2718954757e15268961599fc8d446ae8fbcf260b
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changesets e52c6f7200b3 and 2718954757e1 (bug 874869) for intermittent Windows leaks.
CLOBBER
content/media/AudioNodeStream.cpp
content/media/test/crashtests/874869.html
content/media/test/crashtests/crashtests.list
content/media/webaudio/AudioNode.h
content/media/webaudio/test/test_singleSourceDest.html
dom/webidl/AudioNode.webidl
--- a/CLOBBER
+++ b/CLOBBER
@@ -12,12 +12,12 @@
 #          O               O
 #          |               |
 #          O <-- Clobber   O  <-- Clobber
 #
 # Note: The description below will be part of the error message shown to users.
 #
 # Modifying this file will now automatically clobber the buildbot machines \o/
 #
-Our build system has no idea about dependencies :( (landing of bug 874869)
+Refactored build system core dependencies in bug 874078.
 
 Alternative to clobber is to run ./config.status from the objdir and to
 touch the CLOBBER file in the objdir.
--- a/content/media/AudioNodeStream.cpp
+++ b/content/media/AudioNodeStream.cpp
@@ -310,18 +310,16 @@ AudioNodeStream::ObtainInputBlock(AudioC
   }
 
   if (inputChunkCount == 1 &&
       inputChunks[0]->mChannelData.Length() == outputChannelCount) {
     aTmpChunk = *inputChunks[0];
     return;
   }
 
-  MOZ_ASSERT(outputChannelCount > 0, "How did this happen?");
-
   AllocateAudioBlock(outputChannelCount, &aTmpChunk);
   float silenceChannel[WEBAUDIO_BLOCK_SIZE] = {0.f};
   // The static storage here should be 1KB, so it's fine
   nsAutoTArray<float, GUESS_AUDIO_CHANNELS*WEBAUDIO_BLOCK_SIZE> downmixBuffer;
 
   for (uint32_t i = 0; i < inputChunkCount; ++i) {
     AudioChunk* chunk = inputChunks[i];
     nsAutoTArray<const void*,GUESS_AUDIO_CHANNELS> channels;
deleted file mode 100644
--- a/content/media/test/crashtests/874869.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<script>
-var Context0= new AudioContext()
-var Panner0=Context0.createPanner();
-var BufferSource3=Context0.createBufferSource();
-Panner0.channelCount=0;
-BufferSource3.connect(Panner0);
-BufferSource3.buffer=function(){
-	var length=1;
-	var Buffer=Context0.createBuffer(1,length,'44200');
-	var bufferData= Buffer.getChannelData(0);
-	for (var i = 0; i < length; ++i) { bufferData[i] = 255;};
-	return Buffer;
-}();
-
-</script>
\ No newline at end of file
--- a/content/media/test/crashtests/crashtests.list
+++ b/content/media/test/crashtests/crashtests.list
@@ -10,9 +10,8 @@ load 492286-1.xhtml
 load 576612-1.html
 skip-if(Android||B2G) load 691096-1.html # Android sound API can't handle playing large number of sounds at once, bug 852821 for B2G
 load 752784-1.html
 skip-if(Android||B2G) HTTP load 795892-1.html # load failed, bug 833371 for B2G
 skip-if(Android||B2G) load 789075-1.html # load failed, bug 833371 for B2G
 load 844563.html
 load 846612.html
 load 852838.html
-load 874869.html
--- a/content/media/webaudio/AudioNode.h
+++ b/content/media/webaudio/AudioNode.h
@@ -154,22 +154,18 @@ public:
 
   // The following two virtual methods must be implemented by each node type
   // to provide their number of input and output ports. These numbers are
   // constant for the lifetime of the node. Both default to 1.
   virtual uint16_t NumberOfInputs() const { return 1; }
   virtual uint16_t NumberOfOutputs() const { return 1; }
 
   uint32_t ChannelCount() const { return mChannelCount; }
-  void SetChannelCount(uint32_t aChannelCount, ErrorResult& aRv)
+  void SetChannelCount(uint32_t aChannelCount)
   {
-    if (aChannelCount == 0) {
-      aRv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
-      return;
-    }
     mChannelCount = aChannelCount;
     SendChannelMixingParametersToStream();
   }
   ChannelCountMode ChannelCountModeValue() const
   {
     return mChannelCountMode;
   }
   void SetChannelCountModeValue(ChannelCountMode aMode)
--- a/content/media/webaudio/test/test_singleSourceDest.html
+++ b/content/media/webaudio/test/test_singleSourceDest.html
@@ -86,20 +86,16 @@ function createNode(context, buffer, des
   is(source.loop, false, "Source node is not looping");
   is(source.loopStart, 0, "Correct default value for loopStart");
   is(source.loopEnd, 0, "Correct default value for loopEnd");
   ok(!source.buffer, "Source node should not have a buffer when it's created");
   is(source.channelCount, 2, "source node has 2 input channels by default");
   is(source.channelCountMode, "max", "Correct channelCountMode for the source node");
   is(source.channelInterpretation, "speakers", "Correct channelCountInterpretation for the source node");
 
-  expectException(function() {
-    source.channelCount = 0;
-  }, DOMException.NOT_SUPPORTED_ERR);
-
   source.buffer = buffer;
   ok(source.buffer, "Source node should have a buffer now");
 
   source.connect(destination);
 
   is(source.numberOfInputs, 0, "Source node has 0 inputs");
   is(source.numberOfOutputs, 1, "Source node has 0 outputs");
   is(destination.numberOfInputs, 1, "Destination node has 0 inputs");
--- a/dom/webidl/AudioNode.webidl
+++ b/dom/webidl/AudioNode.webidl
@@ -31,15 +31,14 @@ interface AudioNode : EventTarget {
     [Throws]
     void disconnect(optional unsigned long output = 0);
 
     readonly attribute AudioContext context;
     readonly attribute unsigned long numberOfInputs;
     readonly attribute unsigned long numberOfOutputs;
 
     // Channel up-mixing and down-mixing rules for all inputs.
-    [SetterThrows]
     attribute unsigned long channelCount;
     attribute ChannelCountMode channelCountMode;
     attribute ChannelInterpretation channelInterpretation;
 
 };