Index: ppapi/proxy/ppb_instance_proxy.cc |
diff --git a/ppapi/proxy/ppb_instance_proxy.cc b/ppapi/proxy/ppb_instance_proxy.cc |
index fb71a93297d9c215dcff599c01c9a5c3bd165eb6..f1c2eccd338d71ca02c424d802c410acb45d7e0e 100644 |
--- a/ppapi/proxy/ppb_instance_proxy.cc |
+++ b/ppapi/proxy/ppb_instance_proxy.cc |
@@ -581,10 +581,16 @@ void PPB_Instance_Proxy::DecoderResetDone(PP_Instance instance, |
void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance, |
PP_Resource decrypted_frame, |
const PP_DecryptedFrameInfo* frame_info) { |
- Resource* object = |
- PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_frame); |
- if (!object || object->pp_instance() != instance) |
- return; |
+ PP_Resource host_resource = 0; |
+ if (decrypted_frame != 0) { |
+ ResourceTracker* tracker = PpapiGlobals::Get()->GetResourceTracker(); |
+ Resource* object = tracker->GetResource(decrypted_frame); |
+ |
+ if (!object || object->pp_instance() != instance) |
+ return; |
+ |
+ host_resource = object->host_resource().host_resource(); |
+ } |
std::string serialized_block_info; |
if (!SerializeBlockInfo(*frame_info, &serialized_block_info)) |
@@ -593,7 +599,7 @@ void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance, |
dispatcher()->Send(new PpapiHostMsg_PPBInstance_DeliverFrame( |
API_ID_PPB_INSTANCE, |
instance, |
- object->host_resource().host_resource(), |
+ host_resource, |
serialized_block_info)); |
} |
@@ -602,10 +608,16 @@ void PPB_Instance_Proxy::DeliverSamples( |
PP_Instance instance, |
PP_Resource decrypted_samples, |
const PP_DecryptedBlockInfo* block_info) { |
- Resource* object = |
- PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_samples); |
- if (!object || object->pp_instance() != instance) |
- return; |
+ PP_Resource host_resource = 0; |
+ if (decrypted_samples != 0) { |
+ ResourceTracker* tracker = PpapiGlobals::Get()->GetResourceTracker(); |
+ Resource* object = tracker->GetResource(decrypted_samples); |
+ |
+ if (!object || object->pp_instance() != instance) |
+ return; |
+ |
+ host_resource = object->host_resource().host_resource(); |
+ } |
std::string serialized_block_info; |
if (!SerializeBlockInfo(*block_info, &serialized_block_info)) |
@@ -615,7 +627,7 @@ void PPB_Instance_Proxy::DeliverSamples( |
new PpapiHostMsg_PPBInstance_DeliverSamples( |
API_ID_PPB_INSTANCE, |
instance, |
- object->host_resource().host_resource(), |
+ host_resource, |
serialized_block_info)); |
} |