diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2013-08-02 20:19:44 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2013-08-02 20:19:44 (GMT) |
commit | ed2e06d4526c12d6cb4c559b6746216396ca4a10 (patch) | |
tree | 1385968014ba13306c9c262b6c09ad5ae34e39d3 /generic | |
parent | 6af366a7dcf18d187e53d5e58264b34675b31d22 (diff) | |
download | tcl-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')
-rw-r--r-- | generic/tclOODefineCmds.c | 3 |
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], |