[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
PSPP-BUG: [bug #45272] psppire / pspp crashes when exporting pdf
From: |
Friedrich Beckmann |
Subject: |
PSPP-BUG: [bug #45272] psppire / pspp crashes when exporting pdf |
Date: |
Mon, 22 Jun 2015 04:15:14 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/7.1.6 Safari/537.85.15 |
Follow-up Comment #4, bug #45272 (project pspp):
I looked into this problem, so here is some analysis but not the fix yet...
The problem is related to a page break and a text/table which does not render
with a progress in y direction as Ben mentioned below. In the file
"charts.sps" is a part
======
frequencies
/variables = fred
/format=notable
/histogram=normal.
frequencies
/variables = pos neg posneg bigavgsmallvar bigavgbigvar smallavgbigvar
smallavgsmallvar small uni
/format=notable
/histogram=normal.
==========
psppire runs without assertion when I remove the empty line between the
frequencies statements. With the empty line, the first frequency statement is
rendered, then the table, then the chart. After the chart the empty line is
rendered. I added some printfs to the code and the output looks like this:
....
xr_driver_output_item item 0x7f8529718790
xr_render_output_item - item text, y: 788366
xr_render_text item: 0x7f8529718790, type: 5, y: 788366
xr_create_text_renderer y: 788366, text
xr_render_table item: 0x7f85297a4550, y: 788366
render_page_create
xr_measure_cell_width min: 0, max: 0
accumulate_row_widths axis 0 with 1 entries
cp[0] = 0
cp[1] = 0
accumulate_row_widths axis 1 with 1 entries
cp[0] = 0
cp[1] = 0
xr_driver_run_fsm
render_break_has_next axis: 0 return 0
render_break_has_next axis: 0 return 1
render_break_next axis: 0, size: 535833
render_break_has_next axis: 0 return 1
render_break_has_next axis: 1 return 1
render_pager_has_next true
render_pager_draw_next space: -13653
render_break_has_next axis: 1 return 1
render_pager_has_next true
render_break_next axis: 1, size: -13653
render_break_has_next axis: 1 return 1
xr_table_render y: 802019, length: 788366, used 0
xr_driver_need_new_page: fsm 0x7f8529798240
xr_driver_next_page
xr_driver_run_fsm
render_break_has_next axis: 1 return 1
render_pager_has_next true
render_pager_draw_next space: 788366
render_break_has_next axis: 1 return 1
render_pager_has_next true
render_break_next axis: 1, size: 788366
render_break_has_next axis: 1 return 1
render_page_draw
render_page_draw_cells
render_cell
render_pager_draw_next ofs(v): 0
render_break_has_next axis: 1 return 0
render_break_has_next axis: 0 return 0
render_pager_has_next false
xr_table_render y: 0, length: 788366, used 0
Assertion failed: (xr->y > 0), function xr_table_render, file
../pspp/src/output/cairo.c, line 1504.
Abort trap: 6
friedrismacbook:build fritz$
=======
So y is at 788366, while the page has length 788366. In
xr_create_text_renderer, the string is printed (you see the line break). The
render_page_create measures zero width and length if I interpret this right.
Then render_pager_draw_next is started with a space of -13653 (I think this is
one line). Then an empty page is generated, but in the new draw attempt the
result of the drawing uses 0 space in y direction. This is the reason for the
assert.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?45272>
_______________________________________________
Nachricht gesendet von/durch Savannah
http://savannah.gnu.org/