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