Make reported errors more PHP-like
This commit is contained in:
parent
0c08bc61d4
commit
7bf76c3fa0
22
engine/vm.c
22
engine/vm.c
|
@ -2188,12 +2188,6 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
|
|||
SyBlobReset(pWorker);
|
||||
/* Peek the processed file if available */
|
||||
pFile = (SyString *)SySetPeek(&pVm->aFiles);
|
||||
if(pFile) {
|
||||
/* Append file name */
|
||||
SyBlobAppend(pWorker, pFile->zString, pFile->nByte);
|
||||
SyBlobAppend(pWorker, (const void *)" ", sizeof(char));
|
||||
}
|
||||
zErr = "Error: ";
|
||||
switch(iErr) {
|
||||
case PH7_CTX_WARNING:
|
||||
zErr = "Warning: ";
|
||||
|
@ -2203,17 +2197,23 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
|
|||
break;
|
||||
default:
|
||||
iErr = PH7_CTX_ERR;
|
||||
zErr = "Error: ";
|
||||
break;
|
||||
}
|
||||
SyBlobAppend(pWorker, zErr, SyStrlen(zErr));
|
||||
if(pFuncName) {
|
||||
/* Append function name first */
|
||||
SyBlobAppend(pWorker, pFuncName->zString, pFuncName->nByte);
|
||||
SyBlobAppend(pWorker, "(): ", sizeof("(): ") - 1);
|
||||
}
|
||||
SyBlobAppend(pWorker, zMessage, SyStrlen(zMessage));
|
||||
if(pFile) {
|
||||
/* Append file name */
|
||||
SyBlobAppend(pWorker, " in ", sizeof(" in ") - 1);
|
||||
SyBlobAppend(pWorker, pFile->zString, pFile->nByte);
|
||||
}
|
||||
/* Consume the error message */
|
||||
rc = VmCallErrorHandler(&(*pVm), pWorker);
|
||||
if(iErr == PH7_CTX_ERR) {
|
||||
/* Error ocurred, release at least VM gracefully and exit */
|
||||
PH7_VmRelease(pVm);
|
||||
exit(255);
|
||||
}
|
||||
return rc;
|
||||
}
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue