| 473 | } |
| 474 | |
| 475 | static cell_t sm_CallPushArrayEx(IPluginContext *pContext, const cell_t *params) |
| 476 | { |
| 477 | cell_t *addr; |
| 478 | |
| 479 | if (!s_CallStarted) |
| 480 | { |
| 481 | return pContext->ThrowNativeError("Cannot push parameters when there is no call in progress"); |
| 482 | } |
| 483 | |
| 484 | if (int err = pContext->LocalToPhysAddr(params[1], &addr); err != SP_ERROR_NONE) |
| 485 | return pContext->ThrowNativeErrorEx(err, nullptr); |
| 486 | |
| 487 | sArgs.PushArray(addr, params[2], params[3]); |
| 488 | |
| 489 | if (sArgs.error) |
| 490 | return pContext->ThrowNativeErrorEx(SP_ERROR_PARAMS_MAX, nullptr); |
| 491 | |
| 492 | return 1; |
| 493 | } |
| 494 | |
| 495 | static cell_t sm_CallPushString(IPluginContext *pContext, const cell_t *params) |
| 496 | { |