diff options
author | dkf <dkf@noemail.net> | 2010-03-04 23:42:51 (GMT) |
---|---|---|
committer | dkf <dkf@noemail.net> | 2010-03-04 23:42:51 (GMT) |
commit | 3f1774b388185bdbacbc7ad8f239575b0d472449 (patch) | |
tree | 7df7890a99597754e9b18126fc1ce888486901de /generic/tclOODefineCmds.c | |
parent | 4675d7dfa508d67375fb5a5a77ac21337704e518 (diff) | |
download | tcl-3f1774b388185bdbacbc7ad8f239575b0d472449.zip tcl-3f1774b388185bdbacbc7ad8f239575b0d472449.tar.gz tcl-3f1774b388185bdbacbc7ad8f239575b0d472449.tar.bz2 |
Fix [Bug 2962664] by forcing oo::object deletion on oo::class deletion.
FossilOrigin-Name: b1e964413ea1920263f3ab66418d70fce6f27cd4
Diffstat (limited to 'generic/tclOODefineCmds.c')
-rw-r--r-- | generic/tclOODefineCmds.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/generic/tclOODefineCmds.c b/generic/tclOODefineCmds.c index 2fb9ce5..ad088af 100644 --- a/generic/tclOODefineCmds.c +++ b/generic/tclOODefineCmds.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclOODefineCmds.c,v 1.11 2009/05/04 17:39:51 dkf Exp $ + * RCS: @(#) $Id: tclOODefineCmds.c,v 1.12 2010/03/04 23:42:54 dkf Exp $ */ #ifdef HAVE_CONFIG_H @@ -1043,12 +1043,12 @@ TclOODefineClassObjCmd( if (oPtr == NULL) { return TCL_ERROR; } - if (oPtr == fPtr->objectCls->thisPtr) { + if (oPtr->flags & ROOT_OBJECT) { Tcl_AppendResult(interp, - "may not modify the class of the root object", NULL); + "may not modify the class of the root object class", NULL); return TCL_ERROR; } - if (oPtr == fPtr->classCls->thisPtr) { + if (oPtr->flags & ROOT_CLASS) { Tcl_AppendResult(interp, "may not modify the class of the class of classes", NULL); return TCL_ERROR; @@ -1679,7 +1679,7 @@ TclOODefineSuperclassObjCmd( NULL); return TCL_ERROR; } - if (oPtr == fPtr->objectCls->thisPtr) { + if (oPtr->flags & ROOT_OBJECT) { Tcl_AppendResult(interp, "may not modify the superclass of the root object", NULL); return TCL_ERROR; |