summaryrefslogtreecommitdiffstats
path: root/generic/tclOODefineCmds.c
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2013-08-02 20:19:44 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2013-08-02 20:19:44 (GMT)
commited2e06d4526c12d6cb4c559b6746216396ca4a10 (patch)
tree1385968014ba13306c9c262b6c09ad5ae34e39d3 /generic/tclOODefineCmds.c
parent6af366a7dcf18d187e53d5e58264b34675b31d22 (diff)
downloadtcl-ed2e06d4526c12d6cb4c559b6746216396ca4a10.zip
tcl-ed2e06d4526c12d6cb4c559b6746216396ca4a10.tar.gz
tcl-ed2e06d4526c12d6cb4c559b6746216396ca4a10.tar.bz2
Deal with the elaborate rip-apart-a-metaclass case as well.
Diffstat (limited to 'generic/tclOODefineCmds.c')
-rw-r--r--generic/tclOODefineCmds.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/generic/tclOODefineCmds.c b/generic/tclOODefineCmds.c
index 1a5058c..f0983cc 100644
--- a/generic/tclOODefineCmds.c
+++ b/generic/tclOODefineCmds.c
@@ -2215,6 +2215,9 @@ ClassSuperSet(
superclasses = ckrealloc(superclasses, sizeof(Class *));
superclasses[0] = oPtr->fPtr->objectCls;
superc = 1;
+ if (TclOOIsReachable(oPtr->fPtr->classCls, oPtr->classPtr)) {
+ superclasses[0] = oPtr->fPtr->classCls;
+ }
} else {
for (i=0 ; i<superc ; i++) {
superclasses[i] = GetClassInOuterContext(interp, superv[i],