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

Side by Side Diff: src/trusted/plugin/ppapi/var_utils.cc

Issue 5622003: Restructure the structs/unions involved in SRPC argument passing. This will... (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 10 years 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
« no previous file with comments | « src/trusted/plugin/plugin.cc ('k') | src/trusted/plugin/shared_memory.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2010 The Native Client Authors. All rights reserved. 2 * Copyright 2010 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 7
8 #include <assert.h> 8 #include <assert.h>
9 9
10 #include "native_client/src/trusted/plugin/ppapi/var_utils.h" 10 #include "native_client/src/trusted/plugin/ppapi/var_utils.h"
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 switch (arg->tag) { 205 switch (arg->tag) {
206 case NACL_SRPC_ARG_TYPE_BOOL: 206 case NACL_SRPC_ARG_TYPE_BOOL:
207 case NACL_SRPC_ARG_TYPE_DOUBLE: 207 case NACL_SRPC_ARG_TYPE_DOUBLE:
208 case NACL_SRPC_ARG_TYPE_INT: 208 case NACL_SRPC_ARG_TYPE_INT:
209 case NACL_SRPC_ARG_TYPE_LONG: 209 case NACL_SRPC_ARG_TYPE_LONG:
210 case NACL_SRPC_ARG_TYPE_STRING: 210 case NACL_SRPC_ARG_TYPE_STRING:
211 case NACL_SRPC_ARG_TYPE_HANDLE: 211 case NACL_SRPC_ARG_TYPE_HANDLE:
212 case NACL_SRPC_ARG_TYPE_OBJECT: 212 case NACL_SRPC_ARG_TYPE_OBJECT:
213 break; // nothing to do 213 break; // nothing to do
214 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: 214 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY:
215 PPVarToAllocateArray(var, &arg->u.caval.count, &arg->u.caval.carr, 215 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.carr, exception);
216 exception);
217 break; 216 break;
218 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: 217 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY:
219 PPVarToAllocateArray(var, &arg->u.daval.count, &arg->u.daval.darr, 218 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.darr, exception);
220 exception);
221 break; 219 break;
222 case NACL_SRPC_ARG_TYPE_INT_ARRAY: 220 case NACL_SRPC_ARG_TYPE_INT_ARRAY:
223 PPVarToAllocateArray(var, &arg->u.iaval.count, &arg->u.iaval.iarr, 221 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.iarr, exception);
224 exception);
225 break; 222 break;
226 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: 223 case NACL_SRPC_ARG_TYPE_LONG_ARRAY:
227 PPVarToAllocateArray(var, &arg->u.laval.count, &arg->u.laval.larr, 224 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.larr, exception);
228 exception);
229 break; 225 break;
230 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: 226 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY:
231 case NACL_SRPC_ARG_TYPE_INVALID: 227 case NACL_SRPC_ARG_TYPE_INVALID:
232 default: 228 default:
233 *exception = "variant array and invalid type arguments are not supported"; 229 *exception = "variant array and invalid type arguments are not supported";
234 } 230 }
235 PLUGIN_PRINTF((" PPVarToAllocateNaClSrpcArg (return exception=%s)\n", 231 PLUGIN_PRINTF((" PPVarToAllocateNaClSrpcArg (return exception=%s)\n",
236 exception->DebugString().c_str())); 232 exception->DebugString().c_str()));
237 return exception->is_undefined(); 233 return exception->is_undefined();
238 } 234 }
(...skipping 14 matching lines...) Expand all
253 case NACL_SRPC_ARG_TYPE_DOUBLE: 249 case NACL_SRPC_ARG_TYPE_DOUBLE:
254 arg->u.dval = PPVarToNumber<double>(var, exception); 250 arg->u.dval = PPVarToNumber<double>(var, exception);
255 break; 251 break;
256 case NACL_SRPC_ARG_TYPE_INT: 252 case NACL_SRPC_ARG_TYPE_INT:
257 arg->u.ival = PPVarToNumber<int32_t>(var, exception); 253 arg->u.ival = PPVarToNumber<int32_t>(var, exception);
258 break; 254 break;
259 case NACL_SRPC_ARG_TYPE_LONG: 255 case NACL_SRPC_ARG_TYPE_LONG:
260 arg->u.lval = PPVarToNumber<int64_t>(var, exception); 256 arg->u.lval = PPVarToNumber<int64_t>(var, exception);
261 break; 257 break;
262 case NACL_SRPC_ARG_TYPE_STRING: 258 case NACL_SRPC_ARG_TYPE_STRING:
263 arg->u.sval.str = PPVarToString(var, exception); 259 arg->arrays.str = PPVarToString(var, exception);
264 break; 260 break;
265 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: 261 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY:
266 PPVarToArray(var, &arg->u.caval.count, &arg->u.caval.carr, exception); 262 PPVarToArray(var, &arg->u.count, &arg->arrays.carr, exception);
267 break; 263 break;
268 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: 264 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY:
269 PPVarToArray(var, &arg->u.daval.count, &arg->u.daval.darr, exception); 265 PPVarToArray(var, &arg->u.count, &arg->arrays.darr, exception);
270 break; 266 break;
271 case NACL_SRPC_ARG_TYPE_INT_ARRAY: 267 case NACL_SRPC_ARG_TYPE_INT_ARRAY:
272 PPVarToArray(var, &arg->u.iaval.count, &arg->u.iaval.iarr, exception); 268 PPVarToArray(var, &arg->u.count, &arg->arrays.iarr, exception);
273 break; 269 break;
274 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: 270 case NACL_SRPC_ARG_TYPE_LONG_ARRAY:
275 PPVarToArray(var, &arg->u.laval.count, &arg->u.laval.larr, exception); 271 PPVarToArray(var, &arg->u.count, &arg->arrays.larr, exception);
276 break; 272 break;
277 case NACL_SRPC_ARG_TYPE_HANDLE: 273 case NACL_SRPC_ARG_TYPE_HANDLE:
278 arg->u.hval = reinterpret_cast<NaClSrpcImcDescType>( 274 arg->u.hval = reinterpret_cast<NaClSrpcImcDescType>(
279 PPVarToNaClDesc(var, exception)); 275 PPVarToNaClDesc(var, exception));
280 break; 276 break;
281 case NACL_SRPC_ARG_TYPE_OBJECT: 277 case NACL_SRPC_ARG_TYPE_OBJECT:
282 arg->u.oval = reinterpret_cast<void*>( 278 arg->arrays.oval = reinterpret_cast<void*>(
283 PPVarToScriptableHandle(var, exception)); 279 PPVarToScriptableHandle(var, exception));
284 // There are currently no predeclared PPAPI plugin methods that 280 // There are currently no predeclared PPAPI plugin methods that
285 // take objects as input, so this should never be reached. 281 // take objects as input, so this should never be reached.
286 NACL_NOTREACHED(); 282 NACL_NOTREACHED();
287 break; 283 break;
288 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: 284 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY:
289 case NACL_SRPC_ARG_TYPE_INVALID: 285 case NACL_SRPC_ARG_TYPE_INVALID:
290 default: 286 default:
291 *exception = "variant array and invalid type arguments are not supported"; 287 *exception = "variant array and invalid type arguments are not supported";
292 } 288 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 var = pp::Var(arg->u.dval); 389 var = pp::Var(arg->u.dval);
394 break; 390 break;
395 case NACL_SRPC_ARG_TYPE_INT: 391 case NACL_SRPC_ARG_TYPE_INT:
396 var = pp::Var(arg->u.ival); 392 var = pp::Var(arg->u.ival);
397 break; 393 break;
398 case NACL_SRPC_ARG_TYPE_LONG: 394 case NACL_SRPC_ARG_TYPE_LONG:
399 // PPAPI does not have a 64-bit integral type. Downcast. 395 // PPAPI does not have a 64-bit integral type. Downcast.
400 var = pp::Var(static_cast<int32_t>(arg->u.lval)); 396 var = pp::Var(static_cast<int32_t>(arg->u.lval));
401 break; 397 break;
402 case NACL_SRPC_ARG_TYPE_STRING: 398 case NACL_SRPC_ARG_TYPE_STRING:
403 var = pp::Var(arg->u.sval.str); 399 var = pp::Var(arg->arrays.str);
404 break; 400 break;
405 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: 401 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY:
406 var = ArrayToPPVar(arg->u.caval.carr, arg->u.caval.count, plugin, 402 var = ArrayToPPVar(arg->arrays.carr, arg->u.count, plugin, exception);
407 exception);
408 break; 403 break;
409 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: 404 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY:
410 var = ArrayToPPVar(arg->u.daval.darr, arg->u.daval.count, plugin, 405 var = ArrayToPPVar(arg->arrays.darr, arg->u.count, plugin, exception);
411 exception);
412 break; 406 break;
413 case NACL_SRPC_ARG_TYPE_INT_ARRAY: 407 case NACL_SRPC_ARG_TYPE_INT_ARRAY:
414 var = ArrayToPPVar(arg->u.iaval.iarr, arg->u.iaval.count, plugin, 408 var = ArrayToPPVar(arg->arrays.iarr, arg->u.count, plugin, exception);
415 exception);
416 break; 409 break;
417 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: 410 case NACL_SRPC_ARG_TYPE_LONG_ARRAY:
418 var = ArrayToPPVar(arg->u.laval.larr, arg->u.laval.count, plugin, 411 var = ArrayToPPVar(arg->arrays.larr, arg->u.count, plugin, exception);
419 exception);
420 break; 412 break;
421 case NACL_SRPC_ARG_TYPE_HANDLE: 413 case NACL_SRPC_ARG_TYPE_HANDLE:
422 var = NaClDescToPPVar(arg->u.hval, plugin, exception); 414 var = NaClDescToPPVar(arg->u.hval, plugin, exception);
423 break; 415 break;
424 case NACL_SRPC_ARG_TYPE_OBJECT: 416 case NACL_SRPC_ARG_TYPE_OBJECT:
425 var = ObjectToPPVar(arg->u.oval); 417 var = ObjectToPPVar(arg->arrays.oval);
426 break; 418 break;
427 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: 419 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY:
428 case NACL_SRPC_ARG_TYPE_INVALID: 420 case NACL_SRPC_ARG_TYPE_INVALID:
429 default: 421 default:
430 *exception = "variant array and invalid argument types are not supproted"; 422 *exception = "variant array and invalid argument types are not supproted";
431 } 423 }
432 PLUGIN_PRINTF((" NaClSrpcArgToPPVar (return var=%s, exception=%s)\n", 424 PLUGIN_PRINTF((" NaClSrpcArgToPPVar (return var=%s, exception=%s)\n",
433 var.DebugString().c_str(), exception->DebugString().c_str())); 425 var.DebugString().c_str(), exception->DebugString().c_str()));
434 return var; 426 return var;
435 } 427 }
436 428
437 } // namespace plugin 429 } // namespace plugin
OLDNEW
« no previous file with comments | « src/trusted/plugin/plugin.cc ('k') | src/trusted/plugin/shared_memory.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698