diff options
author | dgp <dgp@users.sourceforge.net> | 2013-08-21 19:00:17 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-08-21 19:00:17 (GMT) |
commit | 88f6a82f096bab2c48289cf27f99c6f2df66da9b (patch) | |
tree | 509a52c25398b3ac2a89896d674a104171966338 | |
parent | b9100f680a4f29439312a01ce54c8340b5d53374 (diff) | |
download | tcl-88f6a82f096bab2c48289cf27f99c6f2df66da9b.zip tcl-88f6a82f096bab2c48289cf27f99c6f2df66da9b.tar.gz tcl-88f6a82f096bab2c48289cf27f99c6f2df66da9b.tar.bz2 |
Don't allocate memory until you know you're going to use it and arrange for
it to be freed. Leak!
-rw-r--r-- | generic/tclOOBasic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/generic/tclOOBasic.c b/generic/tclOOBasic.c index 073abab..aba06a5 100644 --- a/generic/tclOOBasic.c +++ b/generic/tclOOBasic.c @@ -88,7 +88,7 @@ TclOO_Class_Constructor( Tcl_Obj *const *objv) { Object *oPtr = (Object *) Tcl_ObjectContextObject(context); - Tcl_Obj **invoke = ckalloc(3 * sizeof(Tcl_Obj *)); + Tcl_Obj **invoke; if (objc-1 > Tcl_ObjectContextSkippedArgs(context)) { Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv, @@ -102,6 +102,7 @@ TclOO_Class_Constructor( * Delegate to [oo::define] to do the work. */ + invoke = ckalloc(3 * sizeof(Tcl_Obj *)); invoke[0] = oPtr->fPtr->defineName; invoke[1] = TclOOObjectName(interp, oPtr); invoke[2] = objv[objc-1]; |