[PATCH 3/3] Table print: Ignore a dive instead of breaking the dive loop

Lubomir I. Ivanov neolit123 at gmail.com
Sun Mar 10 05:50:02 PDT 2013


From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

draw_table():
When get_dive_for_printing() returns NULL, instead of
breaking, we should 'continue' trough the entire loop. Otherwise
the paginate() handler will be called dive_table.nr times, until
it returns TRUE.

Fixes a bug where, for example one selected dive can end up allocating
dive_table.nr pages for printing.

Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
 print.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/print.c b/print.c
index 2d2476f..61d4a9d 100644
--- a/print.c
+++ b/print.c
@@ -802,7 +802,7 @@ static void draw_table(GtkPrintOperation *operation, GtkPrintContext *context, g
 	for (i = 0; i < dive_table.nr - nr; i++) {
 		dive = get_dive_for_printing(nr+i);
 		if (!dive)
-			break;
+			continue;
 		/* Write the dive data and get the max. height of the row */
 		max_ext = show_dive_table(dive, cr, layout, w*2, delta_y / 4 / PANGO_SCALE, paginate);
 		/* Draw a frame for each row */
-- 
1.7.11.msysgit.0



More information about the subsurface mailing list