Index: ppapi/proxy/host_var_serialization_rules.cc |
=================================================================== |
--- ppapi/proxy/host_var_serialization_rules.cc (revision 117413) |
+++ ppapi/proxy/host_var_serialization_rules.cc (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -6,19 +6,15 @@ |
#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(PP_Module pp_module) |
- : pp_module_(pp_module) { |
+HostVarSerializationRules::HostVarSerializationRules( |
+ const PPB_Var* var_interface, |
+ PP_Module pp_module) |
+ : var_interface_(var_interface), |
+ pp_module_(pp_module) { |
} |
HostVarSerializationRules::~HostVarSerializationRules() { |
@@ -35,15 +31,18 @@ |
const PP_Var& var, |
const std::string* str_val, |
Dispatcher* /* dispatcher */) { |
- if (var.type == PP_VARTYPE_STRING) |
- return StringVar::StringToPPVar(*str_val); |
+ 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 var; |
} |
void HostVarSerializationRules::EndReceiveCallerOwned(const PP_Var& var) { |
if (var.type == PP_VARTYPE_STRING) { |
// Destroy the string BeginReceiveCallerOwned created above. |
- PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var); |
+ var_interface_->Release(var); |
} |
} |
@@ -52,12 +51,13 @@ |
Dispatcher* /* dispatcher */) { |
if (var.type == PP_VARTYPE_STRING) { |
// Convert the string to the context of the current process. |
- return StringVar::StringToPPVar(str_val); |
+ return var_interface_->VarFromUtf8(str_val.c_str(), |
+ static_cast<uint32_t>(str_val.size())); |
} |
// See PluginVarSerialization::BeginSendPassRef for an example. |
if (var.type == PP_VARTYPE_OBJECT) |
- PpapiGlobals::Get()->GetVarTracker()->AddRefVar(var); |
+ var_interface_->AddRef(var); |
return var; |
} |
@@ -83,13 +83,13 @@ |
// 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. |
- StringVar* string_var = StringVar::FromPPVar(var); |
- if (string_var) |
- *str = string_var->value(); |
+ uint32_t len = 0; |
+ const char* data = var_interface_->VarToUtf8(var, &len); |
+ str->assign(data, len); |
} |
void HostVarSerializationRules::ReleaseObjectRef(const PP_Var& var) { |
- PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var); |
+ var_interface_->Release(var); |
} |
} // namespace proxy |