From e383536dc40d6ca06687f4c020f6fe44d4f22b18 Mon Sep 17 00:00:00 2001 From: belliash Date: Tue, 11 Sep 2018 06:47:48 +0200 Subject: [PATCH] Do not store script arguments in $GLOBALS. --- engine/hashmap.c | 3 +-- engine/vm.c | 22 +++------------------- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/engine/hashmap.c b/engine/hashmap.c index 97b6823..777aa94 100644 --- a/engine/hashmap.c +++ b/engine/hashmap.c @@ -1308,8 +1308,7 @@ PH7_PRIVATE sxi32 PH7_HashmapCreateSuper(ph7_vm *pVm) { "_SESSION", /* $_SESSION */ "_REQUEST", /* $_REQUEST */ "_ENV", /* $_ENV */ - "_HEADER", /* $_HEADER */ - "argv" /* $argv */ + "_HEADER" /* $_HEADER */ }; ph7_hashmap *pMap; ph7_value *pObj; diff --git a/engine/vm.c b/engine/vm.c index 2a3e04e..7c6903e 100644 --- a/engine/vm.c +++ b/engine/vm.c @@ -1644,32 +1644,16 @@ PH7_PRIVATE sxi32 PH7_VmConfigure( case PH7_VM_CONFIG_ARGV_ENTRY: { /* Script arguments */ const char *zValue = va_arg(ap, const char *); - ph7_hashmap *pMap; - ph7_value *pValue; sxu32 n; if(SX_EMPTY_STR(zValue)) { rc = SXERR_EMPTY; break; } - /* Extract the $argv array */ - pValue = VmExtractSuper(&(*pVm), "argv", sizeof("argv") - 1); - if(pValue == 0 || (pValue->iFlags & MEMOBJ_HASHMAP) == 0) { - /* No such entry */ - rc = SXERR_NOTFOUND; - break; - } - /* Point to the hashmap */ - pMap = (ph7_hashmap *)pValue->x.pOther; - /* Perform the insertion */ n = (sxu32)SyStrlen(zValue); - rc = VmHashmapInsert(pMap, 0, 0, zValue, (int)n); - if(rc == SXRET_OK) { - if(pMap->nEntry > 1) { - /* Append space separator first */ - SyBlobAppend(&pVm->sArgv, (const void *)" ", sizeof(char)); - } - SyBlobAppend(&pVm->sArgv, (const void *)zValue, n); + if(SyBlobLength(&pVm->sArgv) > 0) { + SyBlobAppend(&pVm->sArgv, (const void *)" ", sizeof(char)); } + SyBlobAppend(&pVm->sArgv, (const void *)zValue, n); break; } case PH7_VM_CONFIG_IO_STREAM: {