Fix T41767: Memory free problem when console area copy fail.
authorBastien Montagne <montagne29@wanadoo.fr>
Wed, 10 Sep 2014 11:14:29 +0000 (13:14 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Wed, 10 Sep 2014 11:14:29 +0000 (13:14 +0200)
Nice little memleak!

Patch by reporter (randon (Dun Liang)) with minor own cleanup, thanks!

source/blender/editors/space_console/console_ops.c

index b8743d697628cf94165d49e8a87d5ec20e140c7e..b44e942527cf80c36710220d426ee342602778fa 100644 (file)
@@ -888,7 +888,7 @@ static int console_copy_exec(bContext *C, wmOperator *UNUSED(op))
 {
        SpaceConsole *sc = CTX_wm_space_console(C);
 
-       DynStr *buf_dyn = BLI_dynstr_new();
+       DynStr *buf_dyn;
        char *buf_str;
        
        ConsoleLine *cl;
@@ -897,14 +897,6 @@ static int console_copy_exec(bContext *C, wmOperator *UNUSED(op))
 
        ConsoleLine cl_dummy = {NULL};
 
-#if 0
-       /* copy whole file */
-       for (cl = sc->scrollback.first; cl; cl = cl->next) {
-               BLI_dynstr_append(buf_dyn, cl->line);
-               BLI_dynstr_append(buf_dyn, "\n");
-       }
-#endif
-
        if (sc->sel_start == sc->sel_end)
                return OPERATOR_CANCELLED;
 
@@ -919,6 +911,7 @@ static int console_copy_exec(bContext *C, wmOperator *UNUSED(op))
                return OPERATOR_CANCELLED;
        }
 
+       buf_dyn = BLI_dynstr_new();
        offset -= 1;
        sel[0] = offset - sc->sel_end;
        sel[1] = offset - sc->sel_start;