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 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |