Index: ppapi/proxy/plugin_var_serialization_rules.cc |
diff --git a/ppapi/proxy/plugin_var_serialization_rules.cc b/ppapi/proxy/plugin_var_serialization_rules.cc |
index a3d82312de6de19fd02b099827e8a308133c6d55..8ba557462869b5aad7c3306c2683bd06d405824e 100644 |
--- a/ppapi/proxy/plugin_var_serialization_rules.cc |
+++ b/ppapi/proxy/plugin_var_serialization_rules.cc |
@@ -24,10 +24,14 @@ PP_Var PluginVarSerializationRules::SendCallerOwned(const PP_Var& var, |
if (var.type == PP_VARTYPE_OBJECT) |
return var_tracker_->GetHostObject(var); |
- // Nothing to do since we manage the refcount, other than retrieve the string |
- // to use for IPC. |
- if (var.type == PP_VARTYPE_STRING) |
- *str_val = var_tracker_->GetString(var); |
+ // Retrieve the string to use for IPC. |
+ if (var.type == PP_VARTYPE_STRING) { |
+ const std::string* var_string = var_tracker_->GetExistingString(var); |
+ if (var_string) |
+ *str_val = *var_string; |
+ else |
+ NOTREACHED() << "Trying to send unknown string over IPC."; |
+ } |
return var; |
} |
@@ -119,8 +123,13 @@ PP_Var PluginVarSerializationRules::BeginSendPassRef(const PP_Var& var, |
if (var.type == PP_VARTYPE_OBJECT) |
return var_tracker_->GetHostObject(var); |
- if (var.type == PP_VARTYPE_STRING) |
- *str_val = var_tracker_->GetString(var); |
+ if (var.type == PP_VARTYPE_STRING) { |
+ const std::string* var_string = var_tracker_->GetExistingString(var); |
+ if (var_string) |
+ *str_val = *var_string; |
+ else |
+ NOTREACHED() << "Trying to send unknown string over IPC."; |
+ } |
return var; |
} |