| 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
|
|
|