Check-in [ec19b5e416]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix the bug; [info class methods -private] regression with TIP 500
Timelines: family | ancestors | descendants | both | bug-36e5517a6850
Files: files | file ages | folders
SHA3-256: ec19b5e416d964de8aeaeff347256d8abdf706b51ec55d42e7f17cb411126b83
User & Date: dkf 2024-05-16 08:44:49.439
Context
2024-05-16
08:51
Add code comments Closed-Leaf check-in: b301f4ad65 user: dkf tags: bug-36e5517a6850
08:44
Fix the bug; [info class methods -private] regression with TIP 500 check-in: ec19b5e416 user: dkf tags: bug-36e5517a6850
08:23
Tests to illustrate problem found in [36e5517a6850] check-in: 16cfbe1ef0 user: dkf tags: bug-36e5517a6850
Changes
Unified Diff Ignore Whitespace Patch
Changes to generic/tclOOInfo.c.
617
618
619
620
621
622
623


624






625
626

627
628
629
630
631
632
633
	    Tcl_ListObjAppendElement(NULL, resultObj,
		    Tcl_NewStringObj(names[i], -1));
	}
	if (numNames > 0) {
	    Tcl_Free((void *)names);
	}
    } else if (oPtr->methodsPtr) {


	FOREACH_HASH(namePtr, mPtr, oPtr->methodsPtr) {






	    if (mPtr->typePtr && (mPtr->flags & SCOPE_FLAGS) == flag) {
		Tcl_ListObjAppendElement(NULL, resultObj, namePtr);

	    }
	}
    }
    Tcl_SetObjResult(interp, resultObj);
    return TCL_OK;
}








>
>
|
>
>
>
>
>
>
|
|
>







617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
	    Tcl_ListObjAppendElement(NULL, resultObj,
		    Tcl_NewStringObj(names[i], -1));
	}
	if (numNames > 0) {
	    Tcl_Free((void *)names);
	}
    } else if (oPtr->methodsPtr) {
	if (scope == -1) {
	    int scopeFilter = flag | TRUE_PRIVATE_METHOD;
	    FOREACH_HASH(namePtr, mPtr, oPtr->methodsPtr) {
		if (mPtr->typePtr && (mPtr->flags & scopeFilter) == flag) {
		    Tcl_ListObjAppendElement(NULL, resultObj, namePtr);
		}
	    }
	} else {
	    FOREACH_HASH(namePtr, mPtr, oPtr->methodsPtr) {
		if (mPtr->typePtr && (mPtr->flags & SCOPE_FLAGS) == flag) {
		    Tcl_ListObjAppendElement(NULL, resultObj, namePtr);
		}
	    }
	}
    }
    Tcl_SetObjResult(interp, resultObj);
    return TCL_OK;
}

1374
1375
1376
1377
1378
1379
1380



1381






1382
1383

1384
1385
1386
1387
1388
1389
1390
	}
	if (numNames > 0) {
	    Tcl_Free((void *)names);
	}
    } else {
	FOREACH_HASH_DECLS;




	FOREACH_HASH(namePtr, mPtr, &clsPtr->classMethods) {






	    if (mPtr->typePtr && (mPtr->flags & SCOPE_FLAGS) == flag) {
		Tcl_ListObjAppendElement(NULL, resultObj, namePtr);

	    }
	}
    }
    Tcl_SetObjResult(interp, resultObj);
    return TCL_OK;
}








>
>
>
|
>
>
>
>
>
>
|
|
>







1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
	}
	if (numNames > 0) {
	    Tcl_Free((void *)names);
	}
    } else {
	FOREACH_HASH_DECLS;

	if (scope == -1) {
	    int scopeFilter = flag | TRUE_PRIVATE_METHOD;

	    FOREACH_HASH(namePtr, mPtr, &clsPtr->classMethods) {
		if (mPtr->typePtr && (mPtr->flags & scopeFilter) == flag) {
		    Tcl_ListObjAppendElement(NULL, resultObj, namePtr);
		}
	    }
	} else {
	    FOREACH_HASH(namePtr, mPtr, &clsPtr->classMethods) {
		if (mPtr->typePtr && (mPtr->flags & SCOPE_FLAGS) == flag) {
		    Tcl_ListObjAppendElement(NULL, resultObj, namePtr);
		}
	    }
	}
    }
    Tcl_SetObjResult(interp, resultObj);
    return TCL_OK;
}