Index: generic/nsf.c
===================================================================
diff -u -r431884041c9c056ebac1efc5a86fa2a75d318214 -rde1e5161b1a0bb287ec3f522f54bcdfdf0958098
--- generic/nsf.c	(.../nsf.c)	(revision 431884041c9c056ebac1efc5a86fa2a75d318214)
+++ generic/nsf.c	(.../nsf.c)	(revision de1e5161b1a0bb287ec3f522f54bcdfdf0958098)
@@ -484,7 +484,7 @@
 
 static int NextSearchAndInvoke(Tcl_Interp *interp,
                                const char *methodName, int objc, Tcl_Obj *CONST objv[],
-                               NsfCallStackContent *cscPtr, int freeArgumentVector)
+                               NsfCallStackContent *cscPtr, bool freeArgumentVector)
   nonnull(1) nonnull(2) nonnull(4) nonnull(5);
 
 static void CmdListFree(NsfCmdList **cmdList, NsfFreeCmdListClientData *freeFct)
@@ -13183,7 +13183,7 @@
            */
 
           /*fprintf(stderr, "... calling nextmethod cscPtr %p\n", cscPtr);*/
-          result = NextSearchAndInvoke(interp, methodName, objc, objv, cscPtr, 0);
+          result = NextSearchAndInvoke(interp, methodName, objc, objv, cscPtr, NSF_FALSE);
           /*fprintf(stderr, "... after nextmethod result %d\n", result);*/
         }
 
@@ -13529,9 +13529,9 @@
         (cmdFlags & NSF_CMD_CALL_PRIVATE_METHOD) != 0u) {
       subMethodCmd = NULL;
     } else if (unlikely((cmdFlags & NSF_CMD_CALL_PROTECTED_METHOD) != 0u)) {
-      NsfObject *lastSelf;
+      NsfObject     *lastSelf;
       Tcl_CallFrame *framePtr0;
-      int withinEnsemble = ((cscPtr->frameType & NSF_CSC_TYPE_ENSEMBLE) != 0u);
+      bool           withinEnsemble = ((cscPtr->frameType & NSF_CSC_TYPE_ENSEMBLE) != 0u);
 
       if (withinEnsemble) {
         Tcl_CallFrame *framePtr1;
@@ -13648,7 +13648,7 @@
     /* fprintf(stderr, "==> trying to find <%s> in ensemble <%s> via next\n",
        subMethodName, MethodName(cscPtr1->objv[0]));*/
     result = NextSearchAndInvoke(interp, MethodName(cscPtr1->objv[0]),
-                                 cscPtr1->objc, cscPtr1->objv, cscPtr1, 0);
+                                 cscPtr1->objc, cscPtr1->objv, cscPtr1, NSF_FALSE);
 
     /*fprintf(stderr, "==> next %s.%s subMethodName %s (obj %s) cscPtr %p (flags %.8x)) cscPtr1 %p (flags %.8x) result %d unknown %d\n",
             ObjectName(callerSelf), methodName, subMethodName, ObjectName(invokedObject),
@@ -18778,16 +18778,17 @@
  */
 static int NextGetArguments(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[],
                  NsfCallStackContent **cscPtrPtr, const char **methodNamePtr,
-                 int *outObjc, Tcl_Obj ***outObjv, int *freeArgumentVector)
+                 int *outObjc, Tcl_Obj ***outObjv, bool *freeArgumentVector)
   nonnull(1) nonnull(4) nonnull(5) nonnull(6) nonnull(7) nonnull(8);
 
 static int
 NextGetArguments(Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[],
                  NsfCallStackContent **cscPtrPtr, const char **methodNamePtr,
-                 int *outObjc, Tcl_Obj ***outObjv, int *freeArgumentVector) {
-  Tcl_Obj **nobjv;
-  int nobjc, oc, inEnsemble;
-  Tcl_CallFrame *framePtr;
+                 int *outObjc, Tcl_Obj ***outObjv, bool *freeArgumentVector) {
+  Tcl_Obj            **nobjv;
+  int                  nobjc, oc;
+  bool                 inEnsemble;
+  Tcl_CallFrame       *framePtr;
   NsfCallStackContent *cscPtr;
 
   nonnull_assert(interp != NULL);
@@ -18800,7 +18801,7 @@
   /*
    * Initialize to zero to make sure, we only decrement when necessary.
    */
-  *freeArgumentVector = 0;
+  *freeArgumentVector = NSF_FALSE;
 
   cscPtr = CallStackGetTopFrame(interp, &framePtr);
   if (cscPtr == NULL) {
@@ -18822,10 +18823,10 @@
      */
     cscPtr = CallStackFindEnsembleCsc(framePtr, &framePtr);
     assert(cscPtr != NULL);
-    inEnsemble = 1;
+    inEnsemble = NSF_TRUE;
     *methodNamePtr = MethodName(cscPtr->objv[0]);
   } else {
-    inEnsemble = 0;
+    inEnsemble = NSF_FALSE;
     *methodNamePtr = Tcl_GetCommandName(interp, cscPtr->cmdPtr);
   }
 
@@ -18839,7 +18840,7 @@
      * vector with the first argument(s) as the method name. In an
      * ensemble, we have to insert the objs of the full ensemble name.
      */
-    if (inEnsemble != 0) {
+    if (inEnsemble) {
       methodNameLength = 1 + cscPtr->objc - oc;
       nobjc = objc + methodNameLength;
       nobjv = (Tcl_Obj **)ckalloc((unsigned)sizeof(Tcl_Obj *) * (unsigned)nobjc);
@@ -18872,7 +18873,7 @@
     }
 
     INCR_REF_COUNT(nobjv[0]); /* we seem to need this here */
-    *freeArgumentVector = 1;
+    *freeArgumentVector = NSF_TRUE;
   } else {
     /*
      * No arguments were provided
@@ -18976,7 +18977,7 @@
 NextSearchAndInvoke(Tcl_Interp *interp, const char *methodName,
                     int objc, Tcl_Obj *CONST objv[],
                     NsfCallStackContent *cscPtr,
-                    int freeArgumentVector) {
+                    bool freeArgumentVector) {
   Tcl_Command cmd = NULL, currentCmd = NULL;
   int result, isMixinEntry = 0, isFilterEntry = 0,
     endOfFilterChain = 0;
@@ -19065,7 +19066,7 @@
          * to call NextInvokeFinalize manually on return.
          */
         Tcl_NRAddCallback(interp, NextInvokeFinalize,
-                          (freeArgumentVector != 0) ? (ClientData)objv : NULL,
+                          freeArgumentVector ? (ClientData)objv : NULL,
                           cscPtr, NULL, NULL);
         return MethodDispatch(interp, objc, objv, cmd,
                               object, cl, methodName, frameType, flags);
@@ -19192,10 +19193,11 @@
 
 static int
 NsfNextObjCmd(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
-  int freeArgumentVector, result, nobjc = 0;
-  const char *methodName = NULL;
+  int                  result, nobjc = 0;
+  bool                 freeArgumentVector;
+  const char          *methodName = NULL;
   NsfCallStackContent *cscPtr;
-  Tcl_Obj **nobjv;
+  Tcl_Obj            **nobjv;
 
   nonnull_assert(interp != NULL);
   nonnull_assert(objv != NULL);
@@ -25085,11 +25087,11 @@
  *----------------------------------------------------------------------
  */
 
-static int ListSuperClasses(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *pattern, int withClosure)
+static int ListSuperClasses(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *pattern, bool withClosure)
   nonnull(1) nonnull(2);
 
 static int
-ListSuperClasses(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *pattern, int withClosure) {
+ListSuperClasses(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *pattern, bool withClosure) {
 
   nonnull_assert(interp != NULL);
   nonnull_assert(class != NULL);
@@ -25122,7 +25124,7 @@
       }
     }
 
-    if (withClosure != 0) {
+    if (withClosure) {
       NsfClasses *pl = PrecedenceOrder(class);
 
       if (pl != NULL) {
@@ -27130,11 +27132,11 @@
     if (class == NULL) {
       result = NsfAddObjectMethod(interp, (Nsf_Object *)object, methodName,
                                   (Tcl_ObjCmdProc *)NsfForwardMethod,
-                                  tcd, ForwardCmdDeleteProc, 0);
+                                  tcd, ForwardCmdDeleteProc, 0u);
     } else {
       result = NsfAddClassMethod(interp, (Nsf_Class *)class, methodName,
                                  (Tcl_ObjCmdProc *)NsfForwardMethod,
-                                 tcd, ForwardCmdDeleteProc, 0);
+                                 tcd, ForwardCmdDeleteProc, 0u);
     }
     if (likely(result == TCL_OK)) {
       Tcl_SetObjResult(interp, MethodHandleObj(object, (class == NULL), methodName));
@@ -27504,11 +27506,11 @@
   if (cl != NULL) {
     result = NsfAddClassMethod(interp, (Nsf_Class *)cl, methodName,
                                (Tcl_ObjCmdProc *)NsfSetterMethod,
-                               setterClientData, SetterCmdDeleteProc, 0);
+                               setterClientData, SetterCmdDeleteProc, 0u);
   } else {
     result = NsfAddObjectMethod(interp, (Nsf_Object *)object, methodName,
                                 (Tcl_ObjCmdProc *)NsfSetterMethod,
-                                setterClientData, SetterCmdDeleteProc, 0);
+                                setterClientData, SetterCmdDeleteProc, 0u);
   }
   if (likely(result == TCL_OK)) {
     Tcl_SetObjResult(interp, MethodHandleObj(object, cl == NULL, methodName));
@@ -27919,7 +27921,8 @@
 */
 static int
 NsfNextCmd(Tcl_Interp *interp, Tcl_Obj *argumentsObj) {
-  int                  freeArgumentVector, oc, nobjc = 0, result;
+  int                  oc, nobjc = 0, result;
+  bool                 freeArgumentVector;
   NsfCallStackContent *cscPtr = NULL;
   const char          *methodName = NULL;
   Tcl_Obj            **nobjv = NULL, **ov;
@@ -28618,7 +28621,7 @@
     }
     class = (NsfClass *)object;
     if (valueObj == NULL) {
-      return ListSuperClasses(interp, class, NULL, 0);
+      return ListSuperClasses(interp, class, NULL, NSF_FALSE);
     }
     if (unlikely(Tcl_ListObjGetElements(interp, valueObj, &oc, &ov) != TCL_OK)) {
       return TCL_ERROR;
@@ -32595,7 +32598,7 @@
   nonnull_assert(interp != NULL);
   nonnull_assert(class != NULL);
 
-  return ListSuperClasses(interp, class, patternObj, withClosure);
+  return ListSuperClasses(interp, class, patternObj, (withClosure == 1));
 }
 
 /***********************************************************************