pspp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Debian package pspp-0.8.5-2 is on mentors - added a patch to fix the s39


From: Friedrich Beckmann
Subject: Debian package pspp-0.8.5-2 is on mentors - added a patch to fix the s390 regression failure
Date: Mon, 22 Jun 2015 16:43:10 +0200

Hi Ben,

i have uploaded a new debian version 0.8.5-2 on mentors


This package contains the debian/patches/render.patch (see below) which
hopefully fixes the s390 regression failure.

I made the patch based on the assumption, that the s390 regression failure
and bug https://savannah.gnu.org/bugs/?45272 have the same root cause.

I find the problem analysis quite difficult but my change is based on the
behavior that the current xr_measure_cell_height function will result zero height, 
if the width is 0. The MacOS bug is provoced by a text field which includes
just carriage returns. Then the computed width is 0 and 
as a result the height is also 0. This results in the assertion if this happens at
the end of a page which is the case as the previous rendered item is a chart.

With the patch below the xr_layout_cell function is called in xr_measure_cell_height
which yields a non zero height and the problem disappears. 

Do you think this change may break other parts? I thought that the code
was just a shortcut to avoid the call to the xr_layout_cell.

Friedrich

—————————— render.patch —————————————
Description: The 0.8.5-1 version did not pass the regression
on s390 with an identical assertion failure as in bug


This patch fixes the described problem. Maybe this is also the
root course for the regression failure on s390. The patch is
not yet in upstream.

Author: Friedrich Beckmann

Index: pspp-0.8.5/src/output/cairo.c
===================================================================
--- pspp-0.8.5.orig/src/output/cairo.c
+++ pspp-0.8.5/src/output/cairo.c
@@ -842,8 +842,6 @@ xr_measure_cell_height (void *xr_, const
 
   bb[H][0] = 0;
   bb[H][1] = width - xr->cell_margin * 2;
-  if (bb[H][1] <= 0)
-    return 0;
   bb[V][0] = 0;
   bb[V][1] = INT_MAX;
   clip[H][0] = clip[H][1] = clip[V][0] = clip[V][1] = 0;
———————————————————————————————————





reply via email to

[Prev in Thread] Current Thread [Next in Thread]