Bug 631216 - crash [@ mozilla::ipc::RPCChannel::CxxStackFrame::CxxStackFrame] (from PAudioParent::SendDrainDone). r=jdm. a=blocking-fennec
authorDoug Turner <dougt@dougt.org>
Tue, 15 Feb 2011 13:58:52 -0800
changeset 62619 08188452982a303010dadafdd7d2899143761c34
parent 62618 9685f88199a691a284d2b1cd0c46dc769a13c3ad
child 62620 1d9299a5024295a35c97d3ed61781d33fa4c6573
push id18802
push userdougt@mozilla.com
push dateTue, 15 Feb 2011 21:56:46 +0000
treeherdermozilla-central@08188452982a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjdm, blocking-fennec
bugs631216
milestone2.0b12pre
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
Bug 631216 - crash [@ mozilla::ipc::RPCChannel::CxxStackFrame::CxxStackFrame] (from PAudioParent::SendDrainDone). r=jdm. a=blocking-fennec
dom/ipc/AudioParent.cpp
dom/ipc/AudioParent.h
--- a/dom/ipc/AudioParent.cpp
+++ b/dom/ipc/AudioParent.cpp
@@ -221,16 +221,24 @@ AudioParent::RecvResume()
 bool
 AudioParent::RecvShutdown()
 {
   Shutdown();
   PAudioParent::Send__delete__(this);
   return true;
 }
 
+bool
+AudioParent::SendDrainDone()
+{
+  if (mIPCOpen)
+    return PAudioParent::SendDrainDone();
+  return true;
+}
+
 AudioParent::AudioParent(PRInt32 aNumChannels, PRInt32 aRate, PRInt32 aFormat)
   : mIPCOpen(PR_TRUE)
 {
   mStream = nsAudioStream::AllocateStream();
   NS_ASSERTION(mStream, "AudioStream allocation failed.");
   if (NS_FAILED(mStream->Init(aNumChannels,
                               aRate,
                               (nsAudioStream::SampleFormat) aFormat))) {
--- a/dom/ipc/AudioParent.h
+++ b/dom/ipc/AudioParent.h
@@ -68,16 +68,19 @@ class AudioParent : public PAudioParent,
     RecvPause();
 
     virtual bool
     RecvResume();
 
     virtual bool
     RecvShutdown();
 
+    virtual bool
+    SendDrainDone();
+
     AudioParent(PRInt32 aNumChannels, PRInt32 aRate, PRInt32 aFormat);
     virtual ~AudioParent();
     virtual void ActorDestroy(ActorDestroyReason);
 
     nsRefPtr<nsAudioStream> mStream;
     nsCOMPtr<nsITimer> mTimer;
 
 private: