Index: ppapi/proxy/host_var_serialization_rules.cc |
diff --git a/ppapi/proxy/host_var_serialization_rules.cc b/ppapi/proxy/host_var_serialization_rules.cc |
index ae6b7f7c4845bd9a2e7a0b1874da038873ffba50..17a59638f95e886f647b3a8540a3e0c3ebb6c304 100644 |
--- a/ppapi/proxy/host_var_serialization_rules.cc |
+++ b/ppapi/proxy/host_var_serialization_rules.cc |
@@ -6,15 +6,19 @@ |
#include "base/logging.h" |
#include "ppapi/c/ppb_var.h" |
+#include "ppapi/shared_impl/ppapi_globals.h" |
+#include "ppapi/shared_impl/var.h" |
+#include "ppapi/shared_impl/var_tracker.h" |
+ |
+using ppapi::PpapiGlobals; |
+using ppapi::StringVar; |
+using ppapi::VarTracker; |
namespace ppapi { |
namespace proxy { |
-HostVarSerializationRules::HostVarSerializationRules( |
- const PPB_Var* var_interface, |
- PP_Module pp_module) |
- : var_interface_(var_interface), |
- pp_module_(pp_module) { |
+HostVarSerializationRules::HostVarSerializationRules(PP_Module pp_module) |
+ : pp_module_(pp_module) { |
} |
HostVarSerializationRules::~HostVarSerializationRules() { |
@@ -31,18 +35,15 @@ PP_Var HostVarSerializationRules::BeginReceiveCallerOwned( |
const PP_Var& var, |
const std::string* str_val, |
Dispatcher* /* dispatcher */) { |
- if (var.type == PP_VARTYPE_STRING) { |
- // Convert the string to the context of the current process. |
- return var_interface_->VarFromUtf8(str_val->c_str(), |
- static_cast<uint32_t>(str_val->size())); |
- } |
+ if (var.type == PP_VARTYPE_STRING) |
+ return StringVar::StringToPPVar(*str_val); |
return var; |
} |
void HostVarSerializationRules::EndReceiveCallerOwned(const PP_Var& var) { |
if (var.type == PP_VARTYPE_STRING) { |
// Destroy the string BeginReceiveCallerOwned created above. |
- var_interface_->Release(var); |
+ PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var); |
} |
} |
@@ -51,13 +52,12 @@ PP_Var HostVarSerializationRules::ReceivePassRef(const PP_Var& var, |
Dispatcher* /* dispatcher */) { |
if (var.type == PP_VARTYPE_STRING) { |
// Convert the string to the context of the current process. |
- return var_interface_->VarFromUtf8(str_val.c_str(), |
- static_cast<uint32_t>(str_val.size())); |
+ return StringVar::StringToPPVar(str_val); |
} |
// See PluginVarSerialization::BeginSendPassRef for an example. |
if (var.type == PP_VARTYPE_OBJECT) |
- var_interface_->AddRef(var); |
+ PpapiGlobals::Get()->GetVarTracker()->AddRefVar(var); |
return var; |
} |
@@ -83,13 +83,13 @@ void HostVarSerializationRules::VarToString(const PP_Var& var, |
// This could be optimized to avoid an extra string copy by going to a lower |
// level of the browser's implementation of strings where we already have |
// a std::string. |
- uint32_t len = 0; |
- const char* data = var_interface_->VarToUtf8(var, &len); |
- str->assign(data, len); |
+ StringVar* string_var = StringVar::FromPPVar(var); |
+ if (string_var) |
+ *str = string_var->value(); |
} |
void HostVarSerializationRules::ReleaseObjectRef(const PP_Var& var) { |
- var_interface_->Release(var); |
+ PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var); |
} |
} // namespace proxy |