OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |