| 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 |