Chromium Code Reviews| Index: content/renderer/pepper/ppb_audio_impl.cc |
| diff --git a/content/renderer/pepper/ppb_audio_impl.cc b/content/renderer/pepper/ppb_audio_impl.cc |
| index ba9a836f479e4c35c566f6282f9c84dd00f37eb0..2190991f1b190fa892ca3ad66cb7059e4851b75b 100644 |
| --- a/content/renderer/pepper/ppb_audio_impl.cc |
| +++ b/content/renderer/pepper/ppb_audio_impl.cc |
| @@ -31,8 +31,7 @@ namespace content { |
| PPB_Audio_Impl::PPB_Audio_Impl(PP_Instance instance) |
| : Resource(::ppapi::OBJECT_IS_IMPL, instance), |
| - audio_(NULL), |
| - sample_frame_count_(0) { |
| + audio_(NULL) { |
| } |
| PPB_Audio_Impl::~PPB_Audio_Impl() { |
| @@ -50,7 +49,7 @@ PPB_Audio_Impl::~PPB_Audio_Impl() { |
| // static |
| PP_Resource PPB_Audio_Impl::Create(PP_Instance instance, |
| PP_Resource config, |
| - PPB_Audio_Callback audio_callback, |
| + const ppapi::AudioCallback& audio_callback, |
| void* user_data) { |
| scoped_refptr<PPB_Audio_Impl> audio(new PPB_Audio_Impl(instance)); |
| if (!audio->Init(config, audio_callback, user_data)) |
| @@ -63,14 +62,15 @@ PPB_Audio_API* PPB_Audio_Impl::AsPPB_Audio_API() { |
| } |
| bool PPB_Audio_Impl::Init(PP_Resource config, |
| - PPB_Audio_Callback callback, void* user_data) { |
| + const ppapi::AudioCallback& callback, |
| + void* user_data) { |
| // Validate the config and keep a reference to it. |
| EnterResourceNoLock<PPB_AudioConfig_API> enter(config, true); |
| if (enter.failed()) |
| return false; |
| config_ = config; |
| - if (!callback) |
| + if (!callback.IsValid()) |
| return false; |
| SetCallback(callback, user_data); |
| @@ -85,7 +85,6 @@ bool PPB_Audio_Impl::Init(PP_Resource config, |
| static_cast<int>(enter.object()->GetSampleFrameCount()), |
| instance->GetRenderView()->GetRoutingID(), |
| this); |
| - sample_frame_count_ = enter.object()->GetSampleFrameCount(); |
| return audio_ != NULL; |
| } |
| @@ -159,8 +158,10 @@ void PPB_Audio_Impl::OnSetStreamInfo( |
| base::SharedMemoryHandle shared_memory_handle, |
| size_t shared_memory_size, |
| base::SyncSocket::Handle socket_handle) { |
| + EnterResourceNoLock<PPB_AudioConfig_API> enter(config_, true); |
|
dmichael (off chromium)
2013/08/06 19:43:25
I think this could fail if the plugin releases con
yzshen1
2013/08/07 20:51:06
This class also holds a ref to config_, so it shou
dmichael (off chromium)
2013/08/07 21:11:38
Thanks, I missed that it's a ScopedPPResource inst
|
| SetStreamInfo(pp_instance(), shared_memory_handle, shared_memory_size, |
| - socket_handle, sample_frame_count_); |
| + socket_handle, enter.object()->GetSampleRate(), |
| + enter.object()->GetSampleFrameCount()); |
| } |
| } // namespace content |