Index: media/audio/virtual_audio_input_stream.cc |
diff --git a/media/audio/virtual_audio_input_stream.cc b/media/audio/virtual_audio_input_stream.cc |
index e586ac88618872d9790c0e3e1e30bb3a6ed5e408..5fd12a0f3a2ce66a44c7bbbf1547c65fa2f29f1b 100644 |
--- a/media/audio/virtual_audio_input_stream.cc |
+++ b/media/audio/virtual_audio_input_stream.cc |
@@ -50,9 +50,9 @@ class LoopbackAudioConverter : public AudioConverter::InputCallback { |
VirtualAudioInputStream::VirtualAudioInputStream( |
const AudioParameters& params, |
const scoped_refptr<base::SingleThreadTaskRunner>& worker_task_runner, |
- const AfterCloseCallback& after_close_cb) |
+ bool delete_on_close) |
: worker_task_runner_(worker_task_runner), |
- after_close_cb_(after_close_cb), |
+ delete_on_close_(delete_on_close), |
callback_(NULL), |
buffer_(new uint8[params.GetBytesPerBuffer()]), |
params_(params), |
@@ -152,13 +152,8 @@ void VirtualAudioInputStream::Close() { |
Stop(); // Make sure callback_ is no longer being used. |
- // If a non-null AfterCloseCallback was provided to the constructor, invoke it |
- // here. The callback is moved to a stack-local first since |this| could be |
- // destroyed during Run(). |
- if (!after_close_cb_.is_null()) { |
- const AfterCloseCallback cb = after_close_cb_; |
- after_close_cb_.Reset(); |
- cb.Run(this); |
+ if (delete_on_close_) { |
+ delete this; |
} |
} |