diff --git a/source/src/command.cpp b/source/src/command.cpp index 275fb60a..e0b248b0 100644 --- a/source/src/command.cpp +++ b/source/src/command.cpp @@ -231,7 +231,7 @@ char *executeret(const char *p) // all evaluation hap const int MAXWORDS = 25; // limit, remove char *w[MAXWORDS]; char *retval = NULL; - #define setretval(v) { char *rv = v; if(rv) retval = rv; commandret = NULL; } + #define setretval(v) { char *rv = v; if(rv) retval = rv; } for(bool cont = true; cont;) // for each ; seperated statement { int numargs = MAXWORDS; @@ -298,6 +298,7 @@ char *executeret(const char *p) // all evaluation hap } } setretval(commandret); + commandret = NULL; break; case ID_VAR: // game defined variables diff --git a/source/src/menus.cpp b/source/src/menus.cpp index 915479b9..bdcb1207 100644 --- a/source/src/menus.cpp +++ b/source/src/menus.cpp @@ -198,6 +198,7 @@ struct mitemtextinput : mitemtext const char *p = defaultvalueexp; char *r = executeret(p); s_strcpy(input.buf, r ? r : ""); + if(r) delete[] r; } }; @@ -252,7 +253,11 @@ struct mitemslider : mitem { const char *p = valueexp; char *v = executeret(p); - if(v) value = min(max_, max(min_, atoi(v))); + if(v) + { + value = min(max_, max(min_, atoi(v))); + delete[] v; + } displaycurvalue(); getmaxvaluewidth(); } @@ -389,6 +394,7 @@ struct mitemcheckbox : mitem const char *p = valueexp; char *r = executeret(p); checked = (r && atoi(r) > 0); + if(r) delete[] r; } virtual void render(int x, int y, int w)