summaryrefslogtreecommitdiffstats
path: root/generic/tclOOBasic.c
diff options
context:
space:
mode:
Diffstat (limited to 'generic/tclOOBasic.c')
-rw-r--r--generic/tclOOBasic.c84
1 files changed, 43 insertions, 41 deletions
diff --git a/generic/tclOOBasic.c b/generic/tclOOBasic.c
index ef554d7..1ad351d 100644
--- a/generic/tclOOBasic.c
+++ b/generic/tclOOBasic.c
@@ -52,7 +52,7 @@ AddConstructionFinalizer(
static int
FinalizeConstruction(
- ClientData data[],
+ void *data[],
Tcl_Interp *interp,
int result)
{
@@ -86,11 +86,12 @@ TclOO_Class_Constructor(
Object *oPtr = (Object *) Tcl_ObjectContextObject(context);
Tcl_Obj **invoke, *nameObj;
- if (objc-1 > (int)Tcl_ObjectContextSkippedArgs(context)) {
- Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv,
+ size_t skip = Tcl_ObjectContextSkippedArgs(context);
+ if ((size_t)objc > skip + 1) {
+ Tcl_WrongNumArgs(interp, skip, objv,
"?definitionScript?");
return TCL_ERROR;
- } else if (objc == (int)Tcl_ObjectContextSkippedArgs(context)) {
+ } else if ((size_t)objc == skip) {
return TCL_OK;
}
@@ -99,10 +100,10 @@ TclOO_Class_Constructor(
* here (and the class definition delegate doesn't run any constructors).
*/
- nameObj = Tcl_NewStringObj(oPtr->namespacePtr->fullName, -1);
- Tcl_AppendToObj(nameObj, ":: oo ::delegate", -1);
+ nameObj = Tcl_NewStringObj(oPtr->namespacePtr->fullName, TCL_INDEX_NONE);
+ Tcl_AppendToObj(nameObj, ":: oo ::delegate", TCL_INDEX_NONE);
Tcl_NewObjectInstance(interp, (Tcl_Class) oPtr->fPtr->classCls,
- TclGetString(nameObj), NULL, -1, NULL, -1);
+ TclGetString(nameObj), NULL, TCL_INDEX_NONE, NULL, TCL_INDEX_NONE);
Tcl_DecrRefCount(nameObj);
/*
@@ -135,7 +136,7 @@ TclOO_Class_Constructor(
static int
DecrRefsPostClassConstructor(
- ClientData data[],
+ void *data[],
Tcl_Interp *interp,
int result)
{
@@ -147,7 +148,7 @@ DecrRefsPostClassConstructor(
TclDecrRefCount(invoke[0]);
TclDecrRefCount(invoke[1]);
TclDecrRefCount(invoke[2]);
- invoke[0] = Tcl_NewStringObj("::oo::MixinClassDelegates", -1);
+ invoke[0] = Tcl_NewStringObj("::oo::MixinClassDelegates", TCL_INDEX_NONE);
invoke[1] = TclOOObjectName(interp, oPtr);
Tcl_IncrRefCount(invoke[0]);
Tcl_IncrRefCount(invoke[1]);
@@ -204,7 +205,7 @@ TclOO_Class_Create(
* Check we have the right number of (sensible) arguments.
*/
- if (objc - Tcl_ObjectContextSkippedArgs(context) < 1) {
+ if ((size_t)objc < 1 + Tcl_ObjectContextSkippedArgs(context)) {
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv,
"objectName ?arg ...?");
return TCL_ERROR;
@@ -213,7 +214,7 @@ TclOO_Class_Create(
objv[Tcl_ObjectContextSkippedArgs(context)], &len);
if (len == 0) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "object name must not be empty", -1));
+ "object name must not be empty", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "EMPTY_NAME", NULL);
return TCL_ERROR;
}
@@ -269,7 +270,7 @@ TclOO_Class_CreateNs(
* Check we have the right number of (sensible) arguments.
*/
- if (objc - Tcl_ObjectContextSkippedArgs(context) < 2) {
+ if ((size_t)objc + 1 < Tcl_ObjectContextSkippedArgs(context) + 3) {
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv,
"objectName namespaceName ?arg ...?");
return TCL_ERROR;
@@ -278,7 +279,7 @@ TclOO_Class_CreateNs(
objv[Tcl_ObjectContextSkippedArgs(context)], &len);
if (len == 0) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "object name must not be empty", -1));
+ "object name must not be empty", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "EMPTY_NAME", NULL);
return TCL_ERROR;
}
@@ -286,7 +287,7 @@ TclOO_Class_CreateNs(
objv[Tcl_ObjectContextSkippedArgs(context)+1], &len);
if (len == 0) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "namespace name must not be empty", -1));
+ "namespace name must not be empty", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "EMPTY_NAME", NULL);
return TCL_ERROR;
}
@@ -393,7 +394,7 @@ TclOO_Object_Destroy(
static int
AfterNRDestructor(
- ClientData data[],
+ void *data[],
Tcl_Interp *interp,
int result)
{
@@ -427,12 +428,12 @@ TclOO_Object_Eval(
{
CallContext *contextPtr = (CallContext *) context;
Tcl_Object object = Tcl_ObjectContextObject(context);
- const int skip = Tcl_ObjectContextSkippedArgs(context);
+ size_t skip = Tcl_ObjectContextSkippedArgs(context);
CallFrame *framePtr, **framePtrPtr = &framePtr;
Tcl_Obj *scriptPtr;
CmdFrame *invoker;
- if (objc-1 < skip) {
+ if ((size_t)objc < skip + 1) {
Tcl_WrongNumArgs(interp, skip, objv, "arg ?arg ...?");
return TCL_ERROR;
}
@@ -460,7 +461,7 @@ TclOO_Object_Eval(
* object when it decrements its refcount after eval'ing it.
*/
- if (objc != skip+1) {
+ if ((size_t)objc != skip+1) {
scriptPtr = Tcl_ConcatObj(objc-skip, objv+skip);
invoker = NULL;
} else {
@@ -479,7 +480,7 @@ TclOO_Object_Eval(
static int
FinalizeEval(
- ClientData data[],
+ void *data[],
Tcl_Interp *interp,
int result)
{
@@ -531,7 +532,8 @@ TclOO_Object_Unknown(
Class *callerCls = NULL;
Object *oPtr = contextPtr->oPtr;
const char **methodNames;
- int numMethodNames, i, skip = Tcl_ObjectContextSkippedArgs(context);
+ int numMethodNames, i;
+ size_t skip = Tcl_ObjectContextSkippedArgs(context);
CallFrame *framePtr = ((Interp *) interp)->varFramePtr;
Tcl_Obj *errorMsg;
@@ -541,7 +543,7 @@ TclOO_Object_Unknown(
* name without an error).
*/
- if (objc < skip+1) {
+ if ((size_t)objc < skip+1) {
Tcl_WrongNumArgs(interp, skip, objv, "method ?arg ...?");
return TCL_ERROR;
}
@@ -598,14 +600,14 @@ TclOO_Object_Unknown(
TclGetString(objv[skip]));
for (i=0 ; i<numMethodNames-1 ; i++) {
if (i) {
- Tcl_AppendToObj(errorMsg, ", ", -1);
+ Tcl_AppendToObj(errorMsg, ", ", TCL_INDEX_NONE);
}
- Tcl_AppendToObj(errorMsg, methodNames[i], -1);
+ Tcl_AppendToObj(errorMsg, methodNames[i], TCL_INDEX_NONE);
}
if (i) {
- Tcl_AppendToObj(errorMsg, " or ", -1);
+ Tcl_AppendToObj(errorMsg, " or ", TCL_INDEX_NONE);
}
- Tcl_AppendToObj(errorMsg, methodNames[i], -1);
+ Tcl_AppendToObj(errorMsg, methodNames[i], TCL_INDEX_NONE);
Tcl_Free((void *)methodNames);
Tcl_SetObjResult(interp, errorMsg);
Tcl_SetErrorCode(interp, "TCL", "LOOKUP", "METHOD",
@@ -635,7 +637,7 @@ TclOO_Object_LinkVar(
Interp *iPtr = (Interp *) interp;
Tcl_Object object = Tcl_ObjectContextObject(context);
Namespace *savedNsPtr;
- int i;
+ size_t i;
if ((size_t)objc < Tcl_ObjectContextSkippedArgs(context)) {
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv,
@@ -653,7 +655,7 @@ TclOO_Object_LinkVar(
return TCL_OK;
}
- for (i=Tcl_ObjectContextSkippedArgs(context) ; i<objc ; i++) {
+ for (i = Tcl_ObjectContextSkippedArgs(context) ; i < (size_t)objc ; i++) {
Var *varPtr, *aryPtr;
const char *varName = TclGetString(objv[i]);
@@ -814,7 +816,7 @@ TclOO_Object_VarName(
}
}
- varNamePtr = Tcl_NewStringObj(namespacePtr->fullName, -1);
+ varNamePtr = Tcl_NewStringObj(namespacePtr->fullName, TCL_INDEX_NONE);
Tcl_AppendToObj(varNamePtr, "::", 2);
Tcl_AppendObjToObj(varNamePtr, argPtr);
}
@@ -840,10 +842,10 @@ TclOO_Object_VarName(
* WARNING! This code pokes inside the implementation of hash tables!
*/
- Tcl_AppendToObj(varNamePtr, "(", -1);
+ Tcl_AppendToObj(varNamePtr, "(", TCL_INDEX_NONE);
Tcl_AppendObjToObj(varNamePtr, ((VarInHash *)
varPtr)->entry.key.objPtr);
- Tcl_AppendToObj(varNamePtr, ")", -1);
+ Tcl_AppendToObj(varNamePtr, ")", TCL_INDEX_NONE);
} else {
Tcl_GetVariableFullName(interp, (Tcl_Var) varPtr, varNamePtr);
}
@@ -1007,7 +1009,7 @@ TclOONextToObjCmd(
static int
NextRestoreFrame(
- ClientData data[],
+ void *data[],
Tcl_Interp *interp,
int result)
{
@@ -1016,7 +1018,7 @@ NextRestoreFrame(
iPtr->varFramePtr = (CallFrame *)data[0];
if (contextPtr != NULL) {
- contextPtr->index = PTR2INT(data[2]);
+ contextPtr->index = PTR2UINT(data[2]);
}
return result;
}
@@ -1090,14 +1092,14 @@ TclOOSelfObjCmd(
return TCL_OK;
case SELF_NS:
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- contextPtr->oPtr->namespacePtr->fullName,-1));
+ contextPtr->oPtr->namespacePtr->fullName, TCL_INDEX_NONE));
return TCL_OK;
case SELF_CLASS: {
Class *clsPtr = CurrentlyInvoked(contextPtr).mPtr->declaringClassPtr;
if (clsPtr == NULL) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "method not defined by a class", -1));
+ "method not defined by a class", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "UNMATCHED_CONTEXT", NULL);
return TCL_ERROR;
}
@@ -1118,7 +1120,7 @@ TclOOSelfObjCmd(
case SELF_FILTER:
if (!CurrentlyInvoked(contextPtr).isFilter) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "not inside a filtering context", -1));
+ "not inside a filtering context", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "UNMATCHED_CONTEXT", NULL);
return TCL_ERROR;
} else {
@@ -1135,7 +1137,7 @@ TclOOSelfObjCmd(
}
result[0] = TclOOObjectName(interp, oPtr);
- result[1] = Tcl_NewStringObj(type, -1);
+ result[1] = Tcl_NewStringObj(type, TCL_INDEX_NONE);
result[2] = miPtr->mPtr->namePtr;
Tcl_SetObjResult(interp, Tcl_NewListObj(3, result));
return TCL_OK;
@@ -1144,7 +1146,7 @@ TclOOSelfObjCmd(
if ((framePtr->callerVarPtr == NULL) ||
!(framePtr->callerVarPtr->isProcCallFrame & FRAME_IS_METHOD)){
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "caller is not an object", -1));
+ "caller is not an object", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "CONTEXT_REQUIRED", NULL);
return TCL_ERROR;
} else {
@@ -1162,7 +1164,7 @@ TclOOSelfObjCmd(
*/
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "method without declarer!", -1));
+ "method without declarer!", TCL_INDEX_NONE));
return TCL_ERROR;
}
@@ -1194,7 +1196,7 @@ TclOOSelfObjCmd(
*/
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "method without declarer!", -1));
+ "method without declarer!", TCL_INDEX_NONE));
return TCL_ERROR;
}
@@ -1212,7 +1214,7 @@ TclOOSelfObjCmd(
case SELF_TARGET:
if (!CurrentlyInvoked(contextPtr).isFilter) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "not inside a filtering context", -1));
+ "not inside a filtering context", TCL_INDEX_NONE));
Tcl_SetErrorCode(interp, "TCL", "OO", "UNMATCHED_CONTEXT", NULL);
return TCL_ERROR;
} else {
@@ -1239,7 +1241,7 @@ TclOOSelfObjCmd(
*/
Tcl_SetObjResult(interp, Tcl_NewStringObj(
- "method without declarer!", -1));
+ "method without declarer!", TCL_INDEX_NONE));
return TCL_ERROR;
}
result[0] = TclOOObjectName(interp, declarerPtr);