Remove unused C4Object* parameter from C4AulExecError

rope
Günther Brammer 2012-05-15 03:11:23 +02:00
parent c86eadf5eb
commit 0e6f972de4
12 changed files with 83 additions and 92 deletions

View File

@ -497,15 +497,15 @@ void C4Effect::SetPropertyByS(C4String * k, const C4Value & to)
{
case P_Name:
if (!to.getStr() || !*to.getStr()->GetCStr())
throw new C4AulExecError(0, "effect: Name has to be a nonempty string");
throw new C4AulExecError("effect: Name has to be a nonempty string");
C4PropListNumbered::SetPropertyByS(k, to);
ReAssignCallbackFunctions();
return;
case P_Priority:
throw new C4AulExecError(0, "effect: Priority is readonly");
throw new C4AulExecError("effect: Priority is readonly");
case P_Interval: iInterval = to.getInt(); return;
case P_CommandTarget:
throw new C4AulExecError(0, "effect: CommandTarget is readonly");
throw new C4AulExecError("effect: CommandTarget is readonly");
case P_Time: iTime = to.getInt(); return;
}
}
@ -519,12 +519,12 @@ void C4Effect::ResetProperty(C4String * k)
switch(k - &Strings.P[0])
{
case P_Name:
throw new C4AulExecError(0, "effect: Name has to be a nonempty string");
throw new C4AulExecError("effect: Name has to be a nonempty string");
case P_Priority:
throw new C4AulExecError(0, "effect: Priority is readonly");
throw new C4AulExecError("effect: Priority is readonly");
case P_Interval: iInterval = 0; return;
case P_CommandTarget:
throw new C4AulExecError(0, "effect: CommandTarget is readonly");
throw new C4AulExecError("effect: CommandTarget is readonly");
case P_Time: iTime = 0; return;
}
}

View File

@ -281,7 +281,7 @@ static C4Value FnObjectCount(C4AulContext *cthr, C4Value *pPars)
C4FindObject *pFO = CreateCriterionsFromPars(pPars, pFOs, NULL);
// Error?
if (!pFO)
throw new C4AulExecError(cthr->Obj, "ObjectCount: No valid search criterions supplied");
throw new C4AulExecError("ObjectCount: No valid search criterions supplied");
// Search
int32_t iCnt = pFO->Count(::Objects, ::Objects.Sectors);
// Free
@ -298,7 +298,7 @@ static C4Value FnFindObject(C4AulContext *cthr, C4Value *pPars)
C4FindObject *pFO = CreateCriterionsFromPars(pPars, pFOs, pSOs);
// Error?
if (!pFO)
throw new C4AulExecError(cthr->Obj, "FindObject: No valid search criterions supplied");
throw new C4AulExecError("FindObject: No valid search criterions supplied");
// Search
C4Object *pObj = pFO->Find(::Objects, ::Objects.Sectors);
// Free
@ -315,7 +315,7 @@ static C4Value FnFindObjects(C4AulContext *cthr, C4Value *pPars)
C4FindObject *pFO = CreateCriterionsFromPars(pPars, pFOs, pSOs);
// Error?
if (!pFO)
throw new C4AulExecError(cthr->Obj, "FindObjects: No valid search criterions supplied");
throw new C4AulExecError("FindObjects: No valid search criterions supplied");
// Search
C4ValueArray *pResult = pFO->FindMany(::Objects, ::Objects.Sectors);
// Free
@ -2186,11 +2186,11 @@ static bool FnCustomMessage(C4AulContext *ctx, C4String *pMsg, C4Object *pObj, N
uint32_t vpos = dwFlags & (C4GM_Top | C4GM_VCenter | C4GM_Bottom);
if (((hpos | (hpos-1)) + 1)>>1 != hpos)
{
throw new C4AulExecError(ctx->Obj, "CustomMessage: Only one horizontal positioning flag allowed");
throw new C4AulExecError("CustomMessage: Only one horizontal positioning flag allowed");
}
if (((vpos | (vpos-1)) + 1)>>1 != vpos)
{
throw new C4AulExecError(ctx->Obj, "CustomMessage: Only one vertical positioning flag allowed");
throw new C4AulExecError("CustomMessage: Only one vertical positioning flag allowed");
}
// message color
if (!dwClr) dwClr = 0xffffffff;

View File

@ -52,18 +52,18 @@ StdMeshInstance::ValueProvider* CreateValueProviderFromArray(C4Object* pForObj,
return new C4ValueProviderConst(itofix(Data[1].getInt(), 1000));
case C4AVP_Linear:
if (Data[4].getInt() == 0)
throw new C4AulExecError(pForObj, "Length cannot be zero");
throw new C4AulExecError("Length cannot be zero");
return new C4ValueProviderLinear(itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(), 1000), Data[4].getInt(), static_cast<C4AnimationEnding>(Data[5].getInt()));
case C4AVP_X:
if (!pForObj) return NULL;
if (Data[4].getInt() == 0)
throw new C4AulExecError(pForObj, "Length cannot be zero");
throw new C4AulExecError("Length cannot be zero");
return new C4ValueProviderX(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(), 1000), Data[4].getInt());
case C4AVP_Y:
if (!pForObj) return NULL;
if (Data[4].getInt() == 0)
throw new C4AulExecError(pForObj, "Length cannot be zero");
throw new C4AulExecError("Length cannot be zero");
return new C4ValueProviderY(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(), 1000), Data[4].getInt());
case C4AVP_R:
@ -74,27 +74,27 @@ StdMeshInstance::ValueProvider* CreateValueProviderFromArray(C4Object* pForObj,
case C4AVP_AbsX:
if (!pForObj) return NULL;
if (Data[4].getInt() == 0)
throw new C4AulExecError(pForObj, "Length cannot be zero");
throw new C4AulExecError("Length cannot be zero");
return new C4ValueProviderAbsX(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(), 1000), Data[4].getInt());
case C4AVP_AbsY:
if (!pForObj) return NULL;
if (Data[4].getInt() == 0)
throw new C4AulExecError(pForObj, "Length cannot be zero");
throw new C4AulExecError("Length cannot be zero");
return new C4ValueProviderAbsY(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(), 1000), Data[4].getInt());
case C4AVP_XDir:
if (!pForObj) return NULL;
if (Data[3].getInt() == 0)
throw new C4AulExecError(pForObj, "MaxXDir cannot be zero");
throw new C4AulExecError("MaxXDir cannot be zero");
return new C4ValueProviderXDir(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(),Data[4].getInt()));
case C4AVP_YDir:
if (!pForObj) return NULL;
if (Data[3].getInt() == 0)
throw new C4AulExecError(pForObj, "MaxYDir cannot be zero");
throw new C4AulExecError("MaxYDir cannot be zero");
return new C4ValueProviderYDir(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(),Data[4].getInt()));
case C4AVP_RDir:
if (!pForObj) return NULL;
if (Data[3].getInt() == 0)
throw new C4AulExecError(pForObj, "MaxRDir cannot be zero");
throw new C4AulExecError("MaxRDir cannot be zero");
return new C4ValueProviderRDir(pForObj, itofix(Data[1].getInt(), 1000), itofix(Data[2].getInt(), 1000), itofix(Data[3].getInt(),Data[4].getInt()));
case C4AVP_CosR:
if (!pForObj) return NULL;

View File

@ -4924,7 +4924,7 @@ void C4Object::SetPropertyByS(C4String * k, const C4Value & to)
switch(k - &Strings.P[0])
{
case P_Plane:
if (!to.getInt()) throw new C4AulExecError(this, "invalid Plane 0");
if (!to.getInt()) throw new C4AulExecError("invalid Plane 0");
SetPlane(to.getInt());
return;
}

View File

@ -895,7 +895,7 @@ static bool FnAddMenuItem(C4Object *Obj, C4String * szCaption, C4String * szComm
else if (Parameter.getPropList()->GetDef())
sprintf(parameter, "C4Id(\"%s\")", Parameter.getPropList()->GetDef()->id.ToString());
else
throw new C4AulExecError(Obj, "proplist as parameter to AddMenuItem");
throw new C4AulExecError("proplist as parameter to AddMenuItem");
break;
case C4V_String:
// note this breaks if there is '"' in the string.
@ -908,7 +908,7 @@ static bool FnAddMenuItem(C4Object *Obj, C4String * szCaption, C4String * szComm
break;
case C4V_Array:
// Arrays were never allowed, so tell the scripter
throw new C4AulExecError(Obj, "array as parameter to AddMenuItem");
throw new C4AulExecError("array as parameter to AddMenuItem");
default:
return false;
}
@ -1053,8 +1053,7 @@ static bool FnAddMenuItem(C4Object *Obj, C4String * szCaption, C4String * szComm
{
// draw object picture
if (!XPar.CheckConversion(C4V_Object))
throw new C4AulExecError(Obj,
FormatString("call to \"%s\" parameter %d: got \"%s\", but expected \"%s\"!",
throw new C4AulExecError(FormatString("call to \"%s\" parameter %d: got \"%s\", but expected \"%s\"!",
"AddMenuItem", 8, XPar.GetTypeName(), GetC4VName(C4V_Object)
).getData());
pGfxObj = XPar.getObj();
@ -2006,7 +2005,7 @@ static Nillable<int> FnAttachMesh(C4Object *Obj, C4PropList* Mesh, C4String * sz
StdMeshMatrix trans = StdMeshMatrix::Identity();
if (Transformation)
if (!C4ValueToMatrix(*Transformation, &trans))
throw new C4AulExecError(Obj, "AttachMesh: Transformation is not a valid 3x4 matrix");
throw new C4AulExecError("AttachMesh: Transformation is not a valid 3x4 matrix");
StdMeshInstance::AttachedMesh* attach;
C4Object* pObj = Mesh->GetObject();
@ -2064,7 +2063,7 @@ static bool FnSetAttachTransform(C4Object *Obj, long iAttachNumber, C4ValueArray
StdMeshMatrix trans;
if (!C4ValueToMatrix(*Transformation, &trans))
throw new C4AulExecError(Obj, "SetAttachTransform: Transformation is not a valid 3x4 matrix");
throw new C4AulExecError("SetAttachTransform: Transformation is not a valid 3x4 matrix");
attach->SetAttachTransformation(trans);
return true;

View File

@ -62,9 +62,8 @@ public:
// execution error
class C4AulExecError : public C4AulError
{
C4Object *cObj;
public:
C4AulExecError(C4Object *pObj, const char *szError); // constructor
C4AulExecError(const char *szError);
};
// function access

View File

@ -102,7 +102,7 @@ public:
class NeedDefinitionContext : public C4AulExecError
{
public:
NeedDefinitionContext(const char *function) : C4AulExecError(NULL, FormatString("%s: must be called from definition context", function).getData()) {}
NeedDefinitionContext(const char *function) : C4AulExecError(FormatString("%s: must be called from definition context", function).getData()) {}
};
// Other functions are callable in object context only.
@ -110,7 +110,7 @@ public:
class NeedObjectContext : public C4AulExecError
{
public:
NeedObjectContext(const char *function) : C4AulExecError(NULL, FormatString("%s: must be called from object context", function).getData()) {}
NeedObjectContext(const char *function) : C4AulExecError(FormatString("%s: must be called from object context", function).getData()) {}
};
// Then there's functions that don't care, but need either defn or object context.
@ -118,7 +118,7 @@ public:
class NeedNonGlobalContext : public C4AulExecError
{
public:
NeedNonGlobalContext(const char *function) : C4AulExecError(NULL, FormatString("%s: call must not be from global context", function).getData()) {}
NeedNonGlobalContext(const char *function) : C4AulExecError(FormatString("%s: call must not be from global context", function).getData()) {}
};
// return type of functions returning nil

View File

@ -36,7 +36,7 @@
C4AulExec AulExec;
C4AulExecError::C4AulExecError(C4Object *pObj, const char *szError) : cObj(pObj)
C4AulExecError::C4AulExecError(const char *szError)
{
// direct error message string
sMessage.Format("ERROR: %s.", szError ? szError : "(no error message)");
@ -233,10 +233,10 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
break;
case AB_EOF: case AB_EOFN:
throw new C4AulExecError(pCurCtx->Obj, "internal error: function didn't return");
throw new C4AulExecError("internal error: function didn't return");
case AB_ERR:
throw new C4AulExecError(pCurCtx->Obj, "syntax error: see above for details");
throw new C4AulExecError("syntax error: see above for details");
case AB_PARN_CONTEXT:
PushValue(AulExec.GetContext(AulExec.GetContextDepth()-2)->Pars[pCPos->Par.i]);
@ -249,22 +249,22 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
case AB_LOCALN:
assert(!pCurCtx->Obj || pCurCtx->Def == pCurCtx->Obj);
if (!pCurCtx->Def)
throw new C4AulExecError(0, "can't access local variables without this");
throw new C4AulExecError("can't access local variables without this");
PushNullVals(1);
pCurCtx->Def->GetPropertyByS(pCPos->Par.s, pCurVal);
break;
case AB_LOCALN_SET:
assert(!pCurCtx->Obj || pCurCtx->Def == pCurCtx->Obj);
if (!pCurCtx->Def)
throw new C4AulExecError(0, "can't access local variables without this");
throw new C4AulExecError("can't access local variables without this");
if (pCurCtx->Def->IsFrozen())
throw new C4AulExecError(pCurCtx->Obj, "local variable: this is readonly");
throw new C4AulExecError("local variable: this is readonly");
pCurCtx->Def->SetPropertyByS(pCPos->Par.s, pCurVal[0]);
break;
case AB_PROP:
if (!pCurVal->CheckConversion(C4V_PropList))
throw new C4AulExecError(pCurCtx->Obj, FormatString("proplist access: proplist expected, got %s", pCurVal->GetTypeName()).getData());
throw new C4AulExecError(FormatString("proplist access: proplist expected, got %s", pCurVal->GetTypeName()).getData());
if (!pCurVal->_getPropList()->GetPropertyByS(pCPos->Par.s, pCurVal))
pCurVal->Set0();
break;
@ -272,9 +272,9 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
{
C4Value *pPropList = pCurVal - 1;
if (!pPropList->CheckConversion(C4V_PropList))
throw new C4AulExecError(pCurCtx->Obj, FormatString("proplist write: proplist expected, got %s", pPropList->GetTypeName()).getData());
throw new C4AulExecError(FormatString("proplist write: proplist expected, got %s", pPropList->GetTypeName()).getData());
if (pPropList->_getPropList()->IsFrozen())
throw new C4AulExecError(pCurCtx->Obj, "proplist write: proplist is readonly");
throw new C4AulExecError("proplist write: proplist is readonly");
pPropList->_getPropList()->SetPropertyByS(pCPos->Par.s, pCurVal[0]);
pPropList->Set(pCurVal[0]);
PopValue();
@ -322,7 +322,7 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
CheckOpPars(C4V_Int, C4V_Int, "/");
C4Value *pPar1 = pCurVal - 1, *pPar2 = pCurVal;
if (!pPar2->_getInt())
throw new C4AulExecError(pCurCtx->Obj, "division by zero");
throw new C4AulExecError("division by zero");
pPar1->SetInt(pPar1->_getInt() / pPar2->_getInt());
PopValue();
break;
@ -509,7 +509,7 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
assert(pStruct->GetType() == C4V_PropList);
C4PropList *pPropList = pStruct->_getPropList();
if (pPropList->IsFrozen())
throw new C4AulExecError(pCurCtx->Obj, "proplist write: proplist is readonly");
throw new C4AulExecError("proplist write: proplist is readonly");
pPropList->SetPropertyByS(pIndex->_getStr(), *pValue);
}
// Set result, remove array and index from stack
@ -525,11 +525,11 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
// Typcheck
if (!Array.CheckConversion(C4V_Array))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array slice: can't access %s as an array", Array.GetTypeName()).getData());
throw new C4AulExecError(FormatString("array slice: can't access %s as an array", Array.GetTypeName()).getData());
if (!StartIndex.CheckConversion(C4V_Int))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array slice: start index of type %s, int expected", StartIndex.GetTypeName()).getData());
throw new C4AulExecError(FormatString("array slice: start index of type %s, int expected", StartIndex.GetTypeName()).getData());
if (!EndIndex.CheckConversion(C4V_Int))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array slice: end index of type %s, int expected", EndIndex.GetTypeName()).getData());
throw new C4AulExecError(FormatString("array slice: end index of type %s, int expected", EndIndex.GetTypeName()).getData());
Array.SetArray(Array.GetData().Array->GetSlice(StartIndex._getInt(), EndIndex._getInt()));
@ -547,11 +547,11 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
// Typcheck
if (!Array.CheckConversion(C4V_Array))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array slice: can't access %s as an array", Array.GetTypeName()).getData());
throw new C4AulExecError(FormatString("array slice: can't access %s as an array", Array.GetTypeName()).getData());
if (!StartIndex.CheckConversion(C4V_Int))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array slice: start index of type %s, int expected", StartIndex.GetTypeName()).getData());
throw new C4AulExecError(FormatString("array slice: start index of type %s, int expected", StartIndex.GetTypeName()).getData());
if (!EndIndex.CheckConversion(C4V_Int))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array slice: end index of type %s, int expected", EndIndex.GetTypeName()).getData());
throw new C4AulExecError(FormatString("array slice: end index of type %s, int expected", EndIndex.GetTypeName()).getData());
C4ValueArray *pArray = Array._getArray();
pArray->SetSlice(StartIndex._getInt(), EndIndex._getInt(), Value);
@ -694,7 +694,7 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
case AB_PAR:
if (!pCurVal->CheckConversion(C4V_Int))
throw new C4AulExecError(pCurCtx->Obj, FormatString("Par: index of type %s, int expected", pCurVal->GetTypeName()).getData());
throw new C4AulExecError(FormatString("Par: index of type %s, int expected", pCurVal->GetTypeName()).getData());
// Push reference to parameter on the stack
if (pCurVal->_getInt() >= 0 && pCurVal->_getInt() < pCurCtx->Func->GetParCount())
pCurVal->Set(pCurCtx->Pars[pCurVal->_getInt()]);
@ -711,7 +711,7 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
if (!iItem)
{
if (!pCurVal[-1].CheckConversion(C4V_Array))
throw new C4AulExecError(pCurCtx->Obj, FormatString("for: array expected, but got %s", pCurVal[-1].GetTypeName()).getData());
throw new C4AulExecError(FormatString("for: array expected, but got %s", pCurVal[-1].GetTypeName()).getData());
}
C4ValueArray *pArray = pCurVal[-1]._getArray();
// No more entries?
@ -740,8 +740,7 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
pDest = pTargetVal->_getPropList();
}
else
throw new C4AulExecError(pCurCtx->Obj,
FormatString("'->': invalid target type %s, expected proplist", pTargetVal->GetTypeName()).getData());
throw new C4AulExecError(FormatString("'->': invalid target type %s, expected proplist", pTargetVal->GetTypeName()).getData());
// Search function for given context
C4AulFunc * pFunc = pDest->GetFunc(pCPos->Par.s);
@ -754,8 +753,7 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors)
// Function not found?
if (!pFunc)
throw new C4AulExecError(pCurCtx->Obj,
FormatString("'->': no function \"%s\" in object \"%s\"", pCPos->Par.s->GetCStr(), pTargetVal->GetDataString().getData()).getData());
throw new C4AulExecError(FormatString("'->': no function \"%s\" in object \"%s\"", pCPos->Par.s->GetCStr(), pTargetVal->GetDataString().getData()).getData());
assert(!pFunc->OverloadedBy);
@ -836,8 +834,7 @@ C4AulBCC *C4AulExec::Call(C4AulFunc *pFunc, C4Value *pReturn, C4Value *pPars, C4
C4V_Type *pTypes = pFunc->GetParType();
for (int i = 0; i < pFunc->GetParCount(); i++)
if (!pPars[i].CheckParConversion(pTypes[i]))
throw new C4AulExecError(pCurCtx->Obj,
FormatString("call to \"%s\" parameter %d: passed %s, but expected %s",
throw new C4AulExecError(FormatString("call to \"%s\" parameter %d: passed %s, but expected %s",
pFunc->GetName(), i + 1, pPars[i].GetTypeName(), GetC4VName(pTypes[i])
).getData());
@ -849,7 +846,7 @@ C4AulBCC *C4AulExec::Call(C4AulFunc *pFunc, C4Value *pReturn, C4Value *pPars, C4
C4AulScriptContext ctx;
ctx.Obj = pContext ? pContext->GetObject() : 0;
if (ctx.Obj && !ctx.Obj->Status)
throw new C4AulExecError(ctx.Obj, "using removed object");
throw new C4AulExecError("using removed object");
ctx.Def = pContext;
ctx.Return = pReturn;
ctx.Pars = pPars;
@ -875,7 +872,7 @@ C4AulBCC *C4AulExec::Call(C4AulFunc *pFunc, C4Value *pReturn, C4Value *pPars, C4
C4AulContext ctx;
ctx.Obj = pContext ? pContext->GetObject() : 0;
if (ctx.Obj && !ctx.Obj->Status)
throw new C4AulExecError(ctx.Obj, "using removed object");
throw new C4AulExecError("using removed object");
ctx.Def = pContext;
#ifdef DEBUGREC_SCRIPT
@ -988,7 +985,7 @@ void C4AulExec::StopProfiling()
void C4AulExec::PushContext(const C4AulScriptContext &rContext)
{
if (pCurCtx >= Contexts + MAX_CONTEXT_STACK - 1)
throw new C4AulExecError(pCurCtx->Obj, "context stack overflow");
throw new C4AulExecError("context stack overflow");
*++pCurCtx = rContext;
// Trace?
if (iTraceStart >= 0)
@ -1004,7 +1001,7 @@ void C4AulExec::PushContext(const C4AulScriptContext &rContext)
void C4AulExec::PopContext()
{
if (pCurCtx < Contexts)
throw new C4AulExecError(pCurCtx->Obj, "internal error: context stack underflow");
throw new C4AulExecError("internal error: context stack underflow");
// Profiler adding up times
if (fProfiling)
{

View File

@ -80,7 +80,7 @@ private:
void CheckOverflow(int iCnt)
{
if (pCurVal - Values >= MAX_VALUE_STACK - iCnt)
throw new C4AulExecError(pCurCtx->Obj, "value stack overflow, probably due to too deep recursion");
throw new C4AulExecError("value stack overflow, probably due to too deep recursion");
}
void PushInt(int32_t i)
@ -176,20 +176,17 @@ private:
// Typecheck parameters
if (!pPar1->CheckParConversion(Type1))
throw new C4AulExecError(pCurCtx->Obj,
FormatString("operator \"%s\" left side got %s, but expected %s",
throw new C4AulExecError(FormatString("operator \"%s\" left side got %s, but expected %s",
opname, pPar1->GetTypeName(), GetC4VName(Type1)).getData());
if (!pPar2->CheckParConversion(Type2))
throw new C4AulExecError(pCurCtx->Obj,
FormatString("operator \"%s\" right side got %s, but expected %s",
throw new C4AulExecError(FormatString("operator \"%s\" right side got %s, but expected %s",
opname, pPar2->GetTypeName(), GetC4VName(Type2)).getData());
}
ALWAYS_INLINE void CheckOpPar(C4V_Type Type1, const char * opname)
{
// Typecheck parameter
if (!pCurVal->CheckParConversion(Type1))
throw new C4AulExecError(pCurCtx->Obj,
FormatString("operator \"%s\": got %s, but expected %s",
throw new C4AulExecError(FormatString("operator \"%s\": got %s, but expected %s",
opname, pCurVal->GetTypeName(), GetC4VName(Type1)).getData());
}
@ -198,17 +195,17 @@ private:
if (pStructure->CheckConversion(C4V_Array))
{
if (!pIndex->CheckConversion(C4V_Int))
throw new C4AulExecError(pCurCtx->Obj, FormatString("array access: index of type %s, but expected int", pIndex->GetTypeName()).getData());
throw new C4AulExecError(FormatString("array access: index of type %s, but expected int", pIndex->GetTypeName()).getData());
return C4V_Array;
}
else if (pStructure->CheckConversion(C4V_PropList))
{
if (!pIndex->CheckConversion(C4V_String))
throw new C4AulExecError(pCurCtx->Obj, FormatString("proplist access: index of type %s, but expected string", pIndex->GetTypeName()).getData());
throw new C4AulExecError(FormatString("proplist access: index of type %s, but expected string", pIndex->GetTypeName()).getData());
return C4V_PropList;
}
else
throw new C4AulExecError(pCurCtx->Obj, FormatString("can't access %s as array or proplist", pStructure->GetTypeName()).getData());
throw new C4AulExecError(FormatString("can't access %s as array or proplist", pStructure->GetTypeName()).getData());
}
C4AulBCC *Call(C4AulFunc *pFunc, C4Value *pReturn, C4Value *pPars, C4PropList * pContext = NULL);
};

View File

@ -497,8 +497,7 @@ C4Value C4PropList::CallOrThrow(const char * s, C4AulParSet *Pars)
{
if (s[0] == '~')
return C4Value();
throw new C4AulExecError(this->GetObject(),
FormatString("Call: no function \"%s\"", s).getData());
throw new C4AulExecError(FormatString("Call: no function \"%s\"", s).getData());
}
return pFn->Exec(this, Pars);
}
@ -543,7 +542,7 @@ void C4PropList::SetPropertyByS(C4String * k, const C4Value & to)
C4PropList * newpt = to.GetData().PropList;
for(C4PropList * it = newpt; it; it = it->prototype)
if(it == this)
throw new C4AulExecError(NULL, "Trying to create cyclic prototype structure");
throw new C4AulExecError("Trying to create cyclic prototype structure");
prototype = newpt;
//return;
}

View File

@ -64,7 +64,7 @@ StdStrBuf FnStringFormat(C4AulContext *cthr, const char *szFormatPar, C4Value *
// number
case 'd': case 'x': case 'X':
{
if (!Par[cPar]) throw new C4AulExecError(cthr->Obj, "format placeholder without parameter");
if (!Par[cPar]) throw new C4AulExecError("format placeholder without parameter");
StringBuf.AppendFormat(szField, Par[cPar++]->getInt());
cpFormat+=SLen(szField);
break;
@ -72,7 +72,7 @@ StdStrBuf FnStringFormat(C4AulContext *cthr, const char *szFormatPar, C4Value *
// character
case 'c':
{
if (!Par[cPar]) throw new C4AulExecError(cthr->Obj, "format placeholder without parameter");
if (!Par[cPar]) throw new C4AulExecError("format placeholder without parameter");
StringBuf.AppendCharacter(Par[cPar++]->getInt());
cpFormat+=SLen(szField);
break;
@ -80,7 +80,7 @@ StdStrBuf FnStringFormat(C4AulContext *cthr, const char *szFormatPar, C4Value *
// C4ID
case 'i':
{
if (!Par[cPar]) throw new C4AulExecError(cthr->Obj, "format placeholder without parameter");
if (!Par[cPar]) throw new C4AulExecError("format placeholder without parameter");
C4ID id = Par[cPar++]->getC4ID();
StringBuf.Append(id.ToString());
cpFormat+=SLen(szField);
@ -89,7 +89,7 @@ StdStrBuf FnStringFormat(C4AulContext *cthr, const char *szFormatPar, C4Value *
// C4Value
case 'v':
{
if (!Par[cPar]) throw new C4AulExecError(cthr->Obj, "format placeholder without parameter");
if (!Par[cPar]) throw new C4AulExecError("format placeholder without parameter");
StringBuf.Append(static_cast<const StdStrBuf&>(Par[cPar++]->GetDataString(10)));
cpFormat+=SLen(szField);
break;
@ -98,12 +98,12 @@ StdStrBuf FnStringFormat(C4AulContext *cthr, const char *szFormatPar, C4Value *
case 's':
{
// get string
if (!Par[cPar]) throw new C4AulExecError(cthr->Obj, "format placeholder without parameter");
if (!Par[cPar]) throw new C4AulExecError("format placeholder without parameter");
const char *szStr = "(null)";
if (Par[cPar]->GetData())
{
C4String * pStr = Par[cPar++]->getStr();
if (!pStr) throw new C4AulExecError(cthr->Obj, "string format placeholder without string");
if (!pStr) throw new C4AulExecError("string format placeholder without string");
szStr = pStr->GetCStr();
}
StringBuf.AppendFormat(szField, szStr);
@ -188,7 +188,7 @@ static C4Value FnSetProperty_C4V(C4AulContext *cthr, C4Value * key_C4V, C4Value
C4String * key = key_C4V->_getStr();
if (!key) return C4VFalse;
if (pObj->IsFrozen())
throw new C4AulExecError(cthr->Obj, "proplist write: proplist is readonly");
throw new C4AulExecError("proplist write: proplist is readonly");
pObj->SetPropertyByS(key, *to);
return C4VTrue;
}
@ -203,7 +203,7 @@ static C4Value FnResetProperty_C4V(C4AulContext *cthr, C4Value * key_C4V, C4Valu
if (!key) return C4VFalse;
if (!pObj->HasProperty(key)) return C4VFalse;
if (pObj->IsFrozen())
throw new C4AulExecError(cthr->Obj, "proplist write: proplist is readonly");
throw new C4AulExecError("proplist write: proplist is readonly");
pObj->ResetProperty(key);
return C4VTrue;
}
@ -379,7 +379,7 @@ static C4Value FnGetLength(C4AulContext *cthr, C4Value *pPars)
C4String * pStr = pPars->getStr();
if (pStr)
return C4VInt(GetCharacterCount(pStr->GetData().getData()));
throw new C4AulExecError(cthr->Obj, "func \"GetLength\" par 0 cannot be converted to string or array");
throw new C4AulExecError("GetLength: parameter 0 cannot be converted to string or array");
}
static C4Value FnGetIndexOf(C4AulContext *cthr, C4Value *pPars)
@ -390,7 +390,7 @@ static C4Value FnGetIndexOf(C4AulContext *cthr, C4Value *pPars)
// if the first param is nonzero, it must be an array
const C4ValueArray * pArray = pPars[0].getArray();
if (!pArray)
throw new C4AulExecError(cthr->Obj, "func \"GetIndexOf\" par 0 cannot be converted to array");
throw new C4AulExecError("GetIndexOf: parameter 0 cannot be converted to array");
int32_t iSize = pArray->GetSize();
for (int32_t i = 0; i<iSize; ++i)
if (pPars[1] == pArray->GetItem(i))
@ -404,7 +404,7 @@ static C4Void FnSetLength(C4AulContext *cthr, C4ValueArray *pArray, int iNewSize
{
// safety
if (iNewSize<0 || iNewSize > C4ValueArray::MaxSize)
throw new C4AulExecError(cthr->Obj, FormatString("SetLength: invalid array size (%d)", iNewSize).getData());
throw new C4AulExecError(FormatString("SetLength: invalid array size (%d)", iNewSize).getData());
// set new size
pArray->SetSize(iNewSize);
@ -501,7 +501,7 @@ static long FnWildcardMatch(C4AulContext *ctx, C4String *psString, C4String *psW
static bool FnFatalError(C4AulContext *ctx, C4String *pErrorMsg)
{
throw new C4AulExecError(ctx->Obj, FormatString("script: %s", pErrorMsg ? pErrorMsg->GetCStr() : "(no error)").getData());
throw new C4AulExecError(FormatString("script: %s", pErrorMsg ? pErrorMsg->GetCStr() : "(no error)").getData());
}
static bool FnStartCallTrace(C4AulContext *ctx)

View File

@ -119,13 +119,13 @@ void C4ValueArray::SetItem(int32_t iElem, const C4Value &Value)
{
// enlarge
if (iElem < -iSize)
throw new C4AulExecError(NULL,"array access: index out of range");
throw new C4AulExecError("array access: index out of range");
else if (iElem < 0)
iElem = iSize + iElem;
else if (iElem >= iSize && iElem < MaxSize) this->SetSize(iElem + 1);
// out-of-memory? This might not get caught, but it's better than a segfault
if (iElem >= iSize)
throw new C4AulExecError(NULL,"array access: index too large");
throw new C4AulExecError("array access: index too large");
// set
pData[iElem]=Value;
}
@ -204,11 +204,11 @@ C4ValueArray * C4ValueArray::GetSlice(int32_t startIndex, int32_t endIndex)
{
// adjust indices so that the default end index works and that negative numbers count backwards from the end of the string
if (startIndex > iSize) startIndex = iSize;
else if (startIndex < -iSize) throw new C4AulExecError(NULL, "array slice: start index out of range");
else if (startIndex < -iSize) throw new C4AulExecError("array slice: start index out of range");
else if (startIndex < 0) startIndex += iSize;
if (endIndex > iSize) endIndex = iSize; // this also processes the MAX_INT default if no parameter is given in script
else if (endIndex < -iSize) throw new C4AulExecError(NULL, "array slice: end index out of range");
else if (endIndex < -iSize) throw new C4AulExecError("array slice: end index out of range");
else if (endIndex < 0) endIndex += iSize;
C4ValueArray* NewArray = new C4ValueArray(std::max(0, endIndex - startIndex));
@ -221,15 +221,15 @@ C4ValueArray * C4ValueArray::GetSlice(int32_t startIndex, int32_t endIndex)
void C4ValueArray::SetSlice(int32_t startIndex, int32_t endIndex, const C4Value &Val)
{
// maximum bounds
if(startIndex >= MaxSize) throw new C4AulExecError(NULL, "array slice: start index exceeds maximum capacity");
if(startIndex >= MaxSize) throw new C4AulExecError("array slice: start index exceeds maximum capacity");
// index from back
if(startIndex < 0) startIndex += iSize;
if(endIndex < 0) endIndex += iSize;
// ensure relevant bounds
if(startIndex < 0) throw new C4AulExecError(NULL, "array slice: start index out of range");
if(endIndex < 0) throw new C4AulExecError(NULL, "array slice: end index out of range");
if(startIndex < 0) throw new C4AulExecError("array slice: start index out of range");
if(endIndex < 0) throw new C4AulExecError("array slice: end index out of range");
if(endIndex < startIndex)
endIndex = startIndex;