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

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
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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 switch (arg->tag) { 204 switch (arg->tag) {
205 case NACL_SRPC_ARG_TYPE_BOOL: 205 case NACL_SRPC_ARG_TYPE_BOOL:
206 case NACL_SRPC_ARG_TYPE_DOUBLE: 206 case NACL_SRPC_ARG_TYPE_DOUBLE:
207 case NACL_SRPC_ARG_TYPE_INT: 207 case NACL_SRPC_ARG_TYPE_INT:
208 case NACL_SRPC_ARG_TYPE_LONG: 208 case NACL_SRPC_ARG_TYPE_LONG:
209 case NACL_SRPC_ARG_TYPE_STRING: 209 case NACL_SRPC_ARG_TYPE_STRING:
210 case NACL_SRPC_ARG_TYPE_HANDLE: 210 case NACL_SRPC_ARG_TYPE_HANDLE:
211 case NACL_SRPC_ARG_TYPE_OBJECT: 211 case NACL_SRPC_ARG_TYPE_OBJECT:
212 break; // nothing to do 212 break; // nothing to do
213 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: 213 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY:
214 PPVarToAllocateArray(var, &arg->u.caval.count, &arg->u.caval.carr, 214 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.carr, exception);
215 exception);
216 break; 215 break;
217 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: 216 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY:
218 PPVarToAllocateArray(var, &arg->u.daval.count, &arg->u.daval.darr, 217 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.darr, exception);
219 exception);
220 break; 218 break;
221 case NACL_SRPC_ARG_TYPE_INT_ARRAY: 219 case NACL_SRPC_ARG_TYPE_INT_ARRAY:
222 PPVarToAllocateArray(var, &arg->u.iaval.count, &arg->u.iaval.iarr, 220 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.iarr, exception);
223 exception);
224 break; 221 break;
225 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: 222 case NACL_SRPC_ARG_TYPE_LONG_ARRAY:
226 PPVarToAllocateArray(var, &arg->u.laval.count, &arg->u.laval.larr, 223 PPVarToAllocateArray(var, &arg->u.count, &arg->arrays.larr, exception);
227 exception);
228 break; 224 break;
229 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: 225 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY:
230 case NACL_SRPC_ARG_TYPE_INVALID: 226 case NACL_SRPC_ARG_TYPE_INVALID:
231 default: 227 default:
232 *exception = "variant array and invalid type arguments are not supported"; 228 *exception = "variant array and invalid type arguments are not supported";
233 } 229 }
234 PLUGIN_PRINTF((" PPVarToAllocateNaClSrpcArg (return exception=%s)\n", 230 PLUGIN_PRINTF((" PPVarToAllocateNaClSrpcArg (return exception=%s)\n",
235 exception->DebugString().c_str())); 231 exception->DebugString().c_str()));
236 return exception->is_undefined(); 232 return exception->is_undefined();
237 } 233 }
(...skipping 14 matching lines...) Expand all
252 case NACL_SRPC_ARG_TYPE_DOUBLE: 248 case NACL_SRPC_ARG_TYPE_DOUBLE:
253 arg->u.dval = PPVarToNumber<double>(var, exception); 249 arg->u.dval = PPVarToNumber<double>(var, exception);
254 break; 250 break;
255 case NACL_SRPC_ARG_TYPE_INT: 251 case NACL_SRPC_ARG_TYPE_INT:
256 arg->u.ival = PPVarToNumber<int32_t>(var, exception); 252 arg->u.ival = PPVarToNumber<int32_t>(var, exception);
257 break; 253 break;
258 case NACL_SRPC_ARG_TYPE_LONG: 254 case NACL_SRPC_ARG_TYPE_LONG:
259 arg->u.lval = PPVarToNumber<int64_t>(var, exception); 255 arg->u.lval = PPVarToNumber<int64_t>(var, exception);
260 break; 256 break;
261 case NACL_SRPC_ARG_TYPE_STRING: 257 case NACL_SRPC_ARG_TYPE_STRING:
262 arg->u.sval.str = PPVarToString(var, exception); 258 arg->arrays.str = PPVarToString(var, exception);
263 break; 259 break;
264 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: 260 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY:
265 PPVarToArray(var, &arg->u.caval.count, &arg->u.caval.carr, exception); 261 PPVarToArray(var, &arg->u.count, &arg->arrays.carr, exception);
266 break; 262 break;
267 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: 263 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY:
268 PPVarToArray(var, &arg->u.daval.count, &arg->u.daval.darr, exception); 264 PPVarToArray(var, &arg->u.count, &arg->arrays.darr, exception);
269 break; 265 break;
270 case NACL_SRPC_ARG_TYPE_INT_ARRAY: 266 case NACL_SRPC_ARG_TYPE_INT_ARRAY:
271 PPVarToArray(var, &arg->u.iaval.count, &arg->u.iaval.iarr, exception); 267 PPVarToArray(var, &arg->u.count, &arg->arrays.iarr, exception);
272 break; 268 break;
273 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: 269 case NACL_SRPC_ARG_TYPE_LONG_ARRAY:
274 PPVarToArray(var, &arg->u.laval.count, &arg->u.laval.larr, exception); 270 PPVarToArray(var, &arg->u.count, &arg->arrays.larr, exception);
275 break; 271 break;
276 case NACL_SRPC_ARG_TYPE_HANDLE: 272 case NACL_SRPC_ARG_TYPE_HANDLE:
277 arg->u.hval = reinterpret_cast<NaClSrpcImcDescType>( 273 arg->u.hval = reinterpret_cast<NaClSrpcImcDescType>(
278 PPVarToNaClDesc(var, exception)); 274 PPVarToNaClDesc(var, exception));
279 break; 275 break;
280 case NACL_SRPC_ARG_TYPE_OBJECT: 276 case NACL_SRPC_ARG_TYPE_OBJECT:
281 arg->u.oval = reinterpret_cast<void*>( 277 arg->arrays.oval = reinterpret_cast<void*>(
282 PPVarToScriptableHandle(var, exception)); 278 PPVarToScriptableHandle(var, exception));
283 // There are currently no predeclared PPAPI plugin methods that 279 // There are currently no predeclared PPAPI plugin methods that
284 // take objects as input, so this should never be reached. 280 // take objects as input, so this should never be reached.
285 NACL_NOTREACHED(); 281 NACL_NOTREACHED();
286 break; 282 break;
287 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: 283 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY:
288 case NACL_SRPC_ARG_TYPE_INVALID: 284 case NACL_SRPC_ARG_TYPE_INVALID:
289 default: 285 default:
290 *exception = "variant array and invalid type arguments are not supported"; 286 *exception = "variant array and invalid type arguments are not supported";
291 } 287 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 var = pp::Var(arg->u.dval); 388 var = pp::Var(arg->u.dval);
393 break; 389 break;
394 case NACL_SRPC_ARG_TYPE_INT: 390 case NACL_SRPC_ARG_TYPE_INT:
395 var = pp::Var(arg->u.ival); 391 var = pp::Var(arg->u.ival);
396 break; 392 break;
397 case NACL_SRPC_ARG_TYPE_LONG: 393 case NACL_SRPC_ARG_TYPE_LONG:
398 // PPAPI does not have a 64-bit integral type. Downcast. 394 // PPAPI does not have a 64-bit integral type. Downcast.
399 var = pp::Var(static_cast<int32_t>(arg->u.lval)); 395 var = pp::Var(static_cast<int32_t>(arg->u.lval));
400 break; 396 break;
401 case NACL_SRPC_ARG_TYPE_STRING: 397 case NACL_SRPC_ARG_TYPE_STRING:
402 var = pp::Var(arg->u.sval.str); 398 var = pp::Var(arg->arrays.str);
403 break; 399 break;
404 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY: 400 case NACL_SRPC_ARG_TYPE_CHAR_ARRAY:
405 var = ArrayToPPVar(arg->u.caval.carr, arg->u.caval.count, plugin, 401 var = ArrayToPPVar(arg->arrays.carr, arg->u.count, plugin, exception);
406 exception);
407 break; 402 break;
408 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY: 403 case NACL_SRPC_ARG_TYPE_DOUBLE_ARRAY:
409 var = ArrayToPPVar(arg->u.daval.darr, arg->u.daval.count, plugin, 404 var = ArrayToPPVar(arg->arrays.darr, arg->u.count, plugin, exception);
410 exception);
411 break; 405 break;
412 case NACL_SRPC_ARG_TYPE_INT_ARRAY: 406 case NACL_SRPC_ARG_TYPE_INT_ARRAY:
413 var = ArrayToPPVar(arg->u.iaval.iarr, arg->u.iaval.count, plugin, 407 var = ArrayToPPVar(arg->arrays.iarr, arg->u.count, plugin, exception);
414 exception);
415 break; 408 break;
416 case NACL_SRPC_ARG_TYPE_LONG_ARRAY: 409 case NACL_SRPC_ARG_TYPE_LONG_ARRAY:
417 var = ArrayToPPVar(arg->u.laval.larr, arg->u.laval.count, plugin, 410 var = ArrayToPPVar(arg->arrays.larr, arg->u.count, plugin, exception);
418 exception);
419 break; 411 break;
420 case NACL_SRPC_ARG_TYPE_HANDLE: 412 case NACL_SRPC_ARG_TYPE_HANDLE:
421 var = NaClDescToPPVar(arg->u.hval, plugin, exception); 413 var = NaClDescToPPVar(arg->u.hval, plugin, exception);
422 break; 414 break;
423 case NACL_SRPC_ARG_TYPE_OBJECT: 415 case NACL_SRPC_ARG_TYPE_OBJECT:
424 var = ObjectToPPVar(arg->u.oval); 416 var = ObjectToPPVar(arg->arrays.oval);
425 break; 417 break;
426 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY: 418 case NACL_SRPC_ARG_TYPE_VARIANT_ARRAY:
427 case NACL_SRPC_ARG_TYPE_INVALID: 419 case NACL_SRPC_ARG_TYPE_INVALID:
428 default: 420 default:
429 *exception = "variant array and invalid argument types are not supproted"; 421 *exception = "variant array and invalid argument types are not supproted";
430 } 422 }
431 PLUGIN_PRINTF((" NaClSrpcArgToPPVar (return var=%s, exception=%s)\n", 423 PLUGIN_PRINTF((" NaClSrpcArgToPPVar (return var=%s, exception=%s)\n",
432 var.DebugString().c_str(), exception->DebugString().c_str())); 424 var.DebugString().c_str(), exception->DebugString().c_str()));
433 return var; 425 return var;
434 } 426 }
435 427
436 } // namespace plugin 428 } // namespace plugin
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698