Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(815)

Side by Side Diff: ppapi/cpp/var.cc

Issue 6823016: Create a VarPrivate interface to contain the scripting helper functions of Var. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/cpp/var.h" 5 #include "ppapi/cpp/var.h"
6 6
7 #include <stdio.h> 7 #include <stdio.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 17 matching lines...) Expand all
28 namespace { 28 namespace {
29 29
30 template <> const char* interface_name<PPB_Var_Deprecated>() { 30 template <> const char* interface_name<PPB_Var_Deprecated>() {
31 return PPB_VAR_DEPRECATED_INTERFACE; 31 return PPB_VAR_DEPRECATED_INTERFACE;
32 } 32 }
33 33
34 // Technically you can call AddRef and Release on any Var, but it may involve 34 // Technically you can call AddRef and Release on any Var, but it may involve
35 // cross-process calls depending on the plugin. This is an optimization so we 35 // cross-process calls depending on the plugin. This is an optimization so we
36 // only do refcounting on the necessary objects. 36 // only do refcounting on the necessary objects.
37 inline bool NeedsRefcounting(const PP_Var& var) { 37 inline bool NeedsRefcounting(const PP_Var& var) {
38 return var.type == PP_VARTYPE_STRING || var.type == PP_VARTYPE_OBJECT; 38 return var.type > PP_VARTYPE_DOUBLE;
39 } 39 }
40 40
41 } // namespace 41 } // namespace
42 42
43 using namespace deprecated; 43 using namespace deprecated;
44 44
45 Var::Var() { 45 Var::Var() {
46 var_.type = PP_VARTYPE_UNDEFINED; 46 var_.type = PP_VARTYPE_UNDEFINED;
47 var_.padding = 0; 47 var_.padding = 0;
48 needs_release_ = false; 48 needs_release_ = false;
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 case PP_VARTYPE_BOOL: 160 case PP_VARTYPE_BOOL:
161 return AsBool() == other.AsBool(); 161 return AsBool() == other.AsBool();
162 case PP_VARTYPE_INT32: 162 case PP_VARTYPE_INT32:
163 return AsInt() == other.AsInt(); 163 return AsInt() == other.AsInt();
164 case PP_VARTYPE_DOUBLE: 164 case PP_VARTYPE_DOUBLE:
165 return AsDouble() == other.AsDouble(); 165 return AsDouble() == other.AsDouble();
166 case PP_VARTYPE_STRING: 166 case PP_VARTYPE_STRING:
167 if (var_.value.as_id == other.var_.value.as_id) 167 if (var_.value.as_id == other.var_.value.as_id)
168 return true; 168 return true;
169 return AsString() == other.AsString(); 169 return AsString() == other.AsString();
170 // TODO(neb): Document that this is === and not ==, unlike strings. 170 default: // Objects, arrays, dictionaries.
171 case PP_VARTYPE_OBJECT:
172 return var_.value.as_id == other.var_.value.as_id; 171 return var_.value.as_id == other.var_.value.as_id;
173 default:
174 return false;
175 } 172 }
176 } 173 }
177 174
178 bool Var::AsBool() const { 175 bool Var::AsBool() const {
179 if (!is_bool()) { 176 if (!is_bool()) {
180 PP_NOTREACHED(); 177 PP_NOTREACHED();
181 return false; 178 return false;
182 } 179 }
183 return PPBoolToBool(var_.value.as_bool); 180 return PPBoolToBool(var_.value.as_bool);
184 } 181 }
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 str.append("..."); 379 str.append("...");
383 } 380 }
384 snprintf(buf, sizeof(buf), format, str.c_str()); 381 snprintf(buf, sizeof(buf), format, str.c_str());
385 } else if (is_object()) { 382 } else if (is_object()) {
386 snprintf(buf, sizeof(buf), "Var<OBJECT>"); 383 snprintf(buf, sizeof(buf), "Var<OBJECT>");
387 } 384 }
388 return buf; 385 return buf;
389 } 386 }
390 387
391 } // namespace pp 388 } // namespace pp
OLDNEW
« ppapi/cpp/var.h ('K') | « ppapi/cpp/var.h ('k') | ppapi/example/example.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698