Fossil SCM
Fixed a memleak in the th1 variadic proc args support.
Commit
bee00366812f437af172118505a72f5cca76053c
Parent
24b9fbca0fb2202…
1 file changed
+3
+3
| --- src/th_lang.c | ||
| +++ src/th_lang.c | ||
| @@ -371,10 +371,13 @@ | ||
| 371 | 371 | int nArgs = 0; |
| 372 | 372 | for(i=p->nParam+1; i<pArgs->argc; i++){ |
| 373 | 373 | Th_ListAppend(interp, &zArgs, &nArgs, pArgs->argv[i], pArgs->argl[i]); |
| 374 | 374 | } |
| 375 | 375 | Th_SetVar(interp, (const char *)"args", -1, zArgs, nArgs); |
| 376 | + if(zArgs){ | |
| 377 | + Th_Free(interp, zArgs); | |
| 378 | + } | |
| 376 | 379 | } |
| 377 | 380 | |
| 378 | 381 | Th_SetResult(interp, 0, 0); |
| 379 | 382 | return Th_Eval(interp, 0, p->zProgram, p->nProgram); |
| 380 | 383 | } |
| 381 | 384 |
| --- src/th_lang.c | |
| +++ src/th_lang.c | |
| @@ -371,10 +371,13 @@ | |
| 371 | int nArgs = 0; |
| 372 | for(i=p->nParam+1; i<pArgs->argc; i++){ |
| 373 | Th_ListAppend(interp, &zArgs, &nArgs, pArgs->argv[i], pArgs->argl[i]); |
| 374 | } |
| 375 | Th_SetVar(interp, (const char *)"args", -1, zArgs, nArgs); |
| 376 | } |
| 377 | |
| 378 | Th_SetResult(interp, 0, 0); |
| 379 | return Th_Eval(interp, 0, p->zProgram, p->nProgram); |
| 380 | } |
| 381 |
| --- src/th_lang.c | |
| +++ src/th_lang.c | |
| @@ -371,10 +371,13 @@ | |
| 371 | int nArgs = 0; |
| 372 | for(i=p->nParam+1; i<pArgs->argc; i++){ |
| 373 | Th_ListAppend(interp, &zArgs, &nArgs, pArgs->argv[i], pArgs->argl[i]); |
| 374 | } |
| 375 | Th_SetVar(interp, (const char *)"args", -1, zArgs, nArgs); |
| 376 | if(zArgs){ |
| 377 | Th_Free(interp, zArgs); |
| 378 | } |
| 379 | } |
| 380 | |
| 381 | Th_SetResult(interp, 0, 0); |
| 382 | return Th_Eval(interp, 0, p->zProgram, p->nProgram); |
| 383 | } |
| 384 |