X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Frender.c;h=8c02833ceef3b225669851ef67cc13221726612f;hb=f8cbc356e15010f4ca86b4f43652bbc12b57b8fc;hp=450d5de7ef241b8f43caaa116c2c64ad870dc382;hpb=933040005343d87414f14c48c90dfaa92110dc0a;p=pspp diff --git a/src/output/render.c b/src/output/render.c index 450d5de7ef..8c02833cee 100644 --- a/src/output/render.c +++ b/src/output/render.c @@ -778,6 +778,7 @@ render_page_unref (struct render_page *page) { if (page != NULL && --page->ref_cnt == 0) { + int i; struct render_overflow *overflow, *next; HMAP_FOR_EACH_SAFE (overflow, next, struct render_overflow, node, @@ -786,8 +787,13 @@ render_page_unref (struct render_page *page) hmap_destroy (&page->overflows); table_unref (page->table); - free (page->cp[H]); - free (page->cp[V]); + + for (i = 0; i < TABLE_N_AXES; ++i) + { + free (page->join_crossing[i]); + free (page->cp[i]); + } + free (page); } } @@ -1051,7 +1057,10 @@ void render_break_destroy (struct render_break *b) { if (b != NULL) - render_page_unref (b->page); + { + render_page_unref (b->page); + b->page = NULL; + } } /* Returns true if B still has cells that are yet to be returned, @@ -1390,4 +1399,3 @@ insert_overflow (struct render_page_selection *s, return of; } -