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 045663784e85cf846f050647630a778c1af300ff..461676f71f55005b0ee441bf2fe0847008e605bc 100644 |
--- a/ppapi/proxy/plugin_var_serialization_rules.cc |
+++ b/ppapi/proxy/plugin_var_serialization_rules.cc |
@@ -41,11 +41,11 @@ PP_Var PluginVarSerializationRules::BeginReceiveCallerOwned( |
} |
void PluginVarSerializationRules::EndReceiveCallerOwned(const PP_Var& var) { |
- if (var.type == PP_VARTYPE_STRING) { |
- // Destroy the string. |
- var_tracker_->ReleaseVar(var); |
- } else if (var.type == PP_VARTYPE_OBJECT) { |
+ if (var.type == PP_VARTYPE_OBJECT) { |
var_tracker_->StopTrackingObjectWithNoReference(var); |
+ } else if (var.type >= PP_VARTYPE_STRING) { |
+ // Release our reference to the local Var. |
+ var_tracker_->ReleaseVar(var); |
} |
} |
@@ -108,7 +108,7 @@ void PluginVarSerializationRules::EndSendPassRef(const PP_Var& var, |
if (var.type == PP_VARTYPE_OBJECT) { |
var_tracker_->ReleaseHostObject( |
static_cast<PluginDispatcher*>(dispatcher), var); |
- } else if (var.type == PP_VARTYPE_STRING) { |
+ } else if (var.type >= PP_VARTYPE_STRING) { |
var_tracker_->ReleaseVar(var); |
} |
} |