Cleanup after 2c37807370
- get rid of global keyword, #29.
The build was successful.
Details
The build was successful.
Details
This commit is contained in:
parent
a4e6962a67
commit
cdc58f2795
70
engine/vm.c
70
engine/vm.c
|
@ -529,48 +529,6 @@ static sxi32 VmEnterFrame(
|
||||||
}
|
}
|
||||||
return SXRET_OK;
|
return SXRET_OK;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* Link a foreign variable with the TOP most active frame.
|
|
||||||
* Refer to the PH7_OP_UPLINK instruction implementation for more
|
|
||||||
* information.
|
|
||||||
*/
|
|
||||||
static sxi32 VmFrameLink(ph7_vm *pVm, SyString *pName) {
|
|
||||||
VmFrame *pTarget, *pFrame;
|
|
||||||
SyHashEntry *pEntry = 0;
|
|
||||||
sxi32 rc;
|
|
||||||
/* Point to the upper frame */
|
|
||||||
pFrame = pVm->pFrame;
|
|
||||||
while(pFrame->pParent && (pFrame->iFlags & VM_FRAME_EXCEPTION)) {
|
|
||||||
/* Safely ignore the exception frame */
|
|
||||||
pFrame = pFrame->pParent;
|
|
||||||
}
|
|
||||||
pTarget = pFrame;
|
|
||||||
pFrame = pTarget->pParent;
|
|
||||||
while(pFrame) {
|
|
||||||
if((pFrame->iFlags & VM_FRAME_EXCEPTION) == 0) {
|
|
||||||
/* Query the current frame */
|
|
||||||
pEntry = SyHashGet(&pFrame->hVar, (const void *)pName->zString, pName->nByte);
|
|
||||||
if(pEntry) {
|
|
||||||
/* Variable found */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* Point to the upper frame */
|
|
||||||
pFrame = pFrame->pParent;
|
|
||||||
}
|
|
||||||
if(pEntry == 0) {
|
|
||||||
/* Inexistent variable */
|
|
||||||
return SXERR_NOTFOUND;
|
|
||||||
}
|
|
||||||
/* Link to the current frame */
|
|
||||||
rc = SyHashInsert(&pTarget->hVar, pEntry->pKey, pEntry->nKeyLen, pEntry->pUserData);
|
|
||||||
if(rc == SXRET_OK) {
|
|
||||||
sxu32 nIdx;
|
|
||||||
nIdx = SX_PTR_TO_INT(pEntry->pUserData);
|
|
||||||
PH7_VmRefObjInstall(&(*pVm), nIdx, SyHashLastEntry(&pTarget->hVar), 0, 0);
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* Leave the top-most active frame.
|
* Leave the top-most active frame.
|
||||||
*/
|
*/
|
||||||
|
@ -4349,31 +4307,6 @@ static sxi32 VmByteCodeExec(
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* OP_UPLINK P1 * *
|
|
||||||
* Link a variable to the top active VM frame.
|
|
||||||
* This is used to implement the 'global' PHP construct.
|
|
||||||
*/
|
|
||||||
case PH7_OP_UPLINK: {
|
|
||||||
if(pVm->pFrame->pParent) {
|
|
||||||
ph7_value *pLink = &pTos[-pInstr->iP1 + 1];
|
|
||||||
SyString sName;
|
|
||||||
/* Perform the link */
|
|
||||||
while(pLink <= pTos) {
|
|
||||||
if((pLink->iFlags & MEMOBJ_STRING) == 0) {
|
|
||||||
/* Force a string cast */
|
|
||||||
PH7_MemObjToString(pLink);
|
|
||||||
}
|
|
||||||
SyStringInitFromBuf(&sName, SyBlobData(&pLink->sBlob), SyBlobLength(&pLink->sBlob));
|
|
||||||
if(sName.nByte > 0) {
|
|
||||||
VmFrameLink(&(*pVm), &sName);
|
|
||||||
}
|
|
||||||
pLink++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
VmPopOperand(&pTos, pInstr->iP1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* OP_LOAD_EXCEPTION * P2 P3
|
* OP_LOAD_EXCEPTION * P2 P3
|
||||||
* Push an exception in the corresponding container so that
|
* Push an exception in the corresponding container so that
|
||||||
|
@ -6043,9 +5976,6 @@ static const char *VmInstrToString(sxi32 nOp) {
|
||||||
case PH7_OP_MEMBER:
|
case PH7_OP_MEMBER:
|
||||||
zOp = "MEMBER ";
|
zOp = "MEMBER ";
|
||||||
break;
|
break;
|
||||||
case PH7_OP_UPLINK:
|
|
||||||
zOp = "UPLINK ";
|
|
||||||
break;
|
|
||||||
case PH7_OP_ERR_CTRL:
|
case PH7_OP_ERR_CTRL:
|
||||||
zOp = "ERR_CTRL ";
|
zOp = "ERR_CTRL ";
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -1365,7 +1365,6 @@ enum ph7_vm_op {
|
||||||
PH7_OP_LOAD_REF, /* Load reference */
|
PH7_OP_LOAD_REF, /* Load reference */
|
||||||
PH7_OP_STORE_REF, /* Store a reference to a variable*/
|
PH7_OP_STORE_REF, /* Store a reference to a variable*/
|
||||||
PH7_OP_MEMBER, /* Class member run-time access */
|
PH7_OP_MEMBER, /* Class member run-time access */
|
||||||
PH7_OP_UPLINK, /* Run-Time frame link */
|
|
||||||
PH7_OP_CVT_NULL, /* NULL cast */
|
PH7_OP_CVT_NULL, /* NULL cast */
|
||||||
PH7_OP_CVT_ARRAY, /* Array cast */
|
PH7_OP_CVT_ARRAY, /* Array cast */
|
||||||
PH7_OP_CVT_OBJ, /* Object cast */
|
PH7_OP_CVT_OBJ, /* Object cast */
|
||||||
|
|
Loading…
Reference in New Issue