OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ppapi/shared_impl/var.h" | 5 #include "ppapi/shared_impl/var.h" |
6 | 6 |
| 7 #include <stddef.h> |
| 8 |
7 #include <limits> | 9 #include <limits> |
8 | 10 |
9 #include "base/logging.h" | 11 #include "base/logging.h" |
10 #include "base/strings/string_number_conversions.h" | 12 #include "base/strings/string_number_conversions.h" |
11 #include "base/strings/string_util.h" | 13 #include "base/strings/string_util.h" |
12 #include "base/strings/stringprintf.h" | 14 #include "base/strings/stringprintf.h" |
13 #include "ppapi/c/pp_var.h" | 15 #include "ppapi/c/pp_var.h" |
14 #include "ppapi/shared_impl/ppapi_globals.h" | 16 #include "ppapi/shared_impl/ppapi_globals.h" |
15 #include "ppapi/shared_impl/resource_var.h" | 17 #include "ppapi/shared_impl/resource_var.h" |
16 #include "ppapi/shared_impl/var_tracker.h" | 18 #include "ppapi/shared_impl/var_tracker.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 | 85 |
84 ProxyObjectVar* Var::AsProxyObjectVar() { return NULL; } | 86 ProxyObjectVar* Var::AsProxyObjectVar() { return NULL; } |
85 | 87 |
86 ArrayVar* Var::AsArrayVar() { return NULL; } | 88 ArrayVar* Var::AsArrayVar() { return NULL; } |
87 | 89 |
88 DictionaryVar* Var::AsDictionaryVar() { return NULL; } | 90 DictionaryVar* Var::AsDictionaryVar() { return NULL; } |
89 | 91 |
90 ResourceVar* Var::AsResourceVar() { return NULL; } | 92 ResourceVar* Var::AsResourceVar() { return NULL; } |
91 | 93 |
92 PP_Var Var::GetPPVar() { | 94 PP_Var Var::GetPPVar() { |
93 int32 id = GetOrCreateVarID(); | 95 int32_t id = GetOrCreateVarID(); |
94 if (!id) | 96 if (!id) |
95 return PP_MakeNull(); | 97 return PP_MakeNull(); |
96 | 98 |
97 PP_Var result; | 99 PP_Var result; |
98 result.type = GetType(); | 100 result.type = GetType(); |
99 result.padding = 0; | 101 result.padding = 0; |
100 result.value.as_id = id; | 102 result.value.as_id = id; |
101 return result; | 103 return result; |
102 } | 104 } |
103 | 105 |
104 int32 Var::GetExistingVarID() const { return var_id_; } | 106 int32_t Var::GetExistingVarID() const { |
| 107 return var_id_; |
| 108 } |
105 | 109 |
106 Var::Var() : var_id_(0) {} | 110 Var::Var() : var_id_(0) {} |
107 | 111 |
108 Var::~Var() {} | 112 Var::~Var() {} |
109 | 113 |
110 int32 Var::GetOrCreateVarID() { | 114 int32_t Var::GetOrCreateVarID() { |
111 VarTracker* tracker = PpapiGlobals::Get()->GetVarTracker(); | 115 VarTracker* tracker = PpapiGlobals::Get()->GetVarTracker(); |
112 if (var_id_) { | 116 if (var_id_) { |
113 if (!tracker->AddRefVar(var_id_)) | 117 if (!tracker->AddRefVar(var_id_)) |
114 return 0; | 118 return 0; |
115 } else { | 119 } else { |
116 var_id_ = tracker->AddVar(this); | 120 var_id_ = tracker->AddVar(this); |
117 if (!var_id_) | 121 if (!var_id_) |
118 return 0; | 122 return 0; |
119 } | 123 } |
120 return var_id_; | 124 return var_id_; |
121 } | 125 } |
122 | 126 |
123 void Var::AssignVarID(int32 id) { | 127 void Var::AssignVarID(int32_t id) { |
124 DCHECK(!var_id_); // Must not have already been generated. | 128 DCHECK(!var_id_); // Must not have already been generated. |
125 var_id_ = id; | 129 var_id_ = id; |
126 } | 130 } |
127 | 131 |
128 // StringVar ------------------------------------------------------------------- | 132 // StringVar ------------------------------------------------------------------- |
129 | 133 |
130 StringVar::StringVar() {} | 134 StringVar::StringVar() {} |
131 | 135 |
132 StringVar::StringVar(const std::string& str) : value_(str) {} | 136 StringVar::StringVar(const std::string& str) : value_(str) {} |
133 | 137 |
134 StringVar::StringVar(const char* str, uint32 len) : value_(str, len) {} | 138 StringVar::StringVar(const char* str, uint32_t len) : value_(str, len) {} |
135 | 139 |
136 StringVar::~StringVar() {} | 140 StringVar::~StringVar() {} |
137 | 141 |
138 StringVar* StringVar::AsStringVar() { return this; } | 142 StringVar* StringVar::AsStringVar() { return this; } |
139 | 143 |
140 PP_VarType StringVar::GetType() const { return PP_VARTYPE_STRING; } | 144 PP_VarType StringVar::GetType() const { return PP_VARTYPE_STRING; } |
141 | 145 |
142 // static | 146 // static |
143 PP_Var StringVar::StringToPPVar(const std::string& var) { | 147 PP_Var StringVar::StringToPPVar(const std::string& var) { |
144 return StringToPPVar(var.c_str(), static_cast<uint32>(var.size())); | 148 return StringToPPVar(var.c_str(), static_cast<uint32_t>(var.size())); |
145 } | 149 } |
146 | 150 |
147 // static | 151 // static |
148 PP_Var StringVar::StringToPPVar(const char* data, uint32 len) { | 152 PP_Var StringVar::StringToPPVar(const char* data, uint32_t len) { |
149 scoped_refptr<StringVar> str(new StringVar(data, len)); | 153 scoped_refptr<StringVar> str(new StringVar(data, len)); |
150 if (!str.get() || !base::IsStringUTF8(str->value())) | 154 if (!str.get() || !base::IsStringUTF8(str->value())) |
151 return PP_MakeNull(); | 155 return PP_MakeNull(); |
152 return str->GetPPVar(); | 156 return str->GetPPVar(); |
153 } | 157 } |
154 | 158 |
155 // static | 159 // static |
156 StringVar* StringVar::FromPPVar(PP_Var var) { | 160 StringVar* StringVar::FromPPVar(PP_Var var) { |
157 if (var.type != PP_VARTYPE_STRING) | 161 if (var.type != PP_VARTYPE_STRING) |
158 return NULL; | 162 return NULL; |
(...skipping 26 matching lines...) Expand all Loading... |
185 if (var.type != PP_VARTYPE_ARRAY_BUFFER) | 189 if (var.type != PP_VARTYPE_ARRAY_BUFFER) |
186 return NULL; | 190 return NULL; |
187 scoped_refptr<Var> var_object( | 191 scoped_refptr<Var> var_object( |
188 PpapiGlobals::Get()->GetVarTracker()->GetVar(var)); | 192 PpapiGlobals::Get()->GetVarTracker()->GetVar(var)); |
189 if (!var_object.get()) | 193 if (!var_object.get()) |
190 return NULL; | 194 return NULL; |
191 return var_object->AsArrayBufferVar(); | 195 return var_object->AsArrayBufferVar(); |
192 } | 196 } |
193 | 197 |
194 } // namespace ppapi | 198 } // namespace ppapi |
OLD | NEW |