Uh-oh. The problem was not fixed after all. I turned on a debug switch
to see what was happening, saw the empty strings (in J6), then threw
them out and tested in J8, and it worked.
But it only worked with the debugging statements in. These statements
type out info about the graphics being drawn. When I took out the
typeout, it crashes again.
By dumping results out to a log file, I determined that jqt crashes when
my code calls glfont with an empty for an operand. I have fixed the
code to stop doing that, and it works now with no debug statements.
jqt should be fixed to ignore the empty font too. The operand I was
giving was an empty string.
So why did the debug typeout mask the problem? The text was drawn from
a line like
font_info drawtext"2 text_info
where font_info has rank 2 and text_info has rank 3 (to use the same
font_info twice).
The drawtext verb looked like:
drawtext =: 4 : 0"1
if. DEBUG do.
debug typeout
end.
glfont etc.
)
The failure happened when font_info and text_info were empty. In this
case, drawtext was executed on a cell of fills. This crashed J8 on the
glfont line, because the cell of fills contained empty strings for font
and size.
But with debugging turned on, the debug typeout, which expected valid
font info, failed. However, since it was executing in a cell of fills,
it failed quietly: the execution of drawtext was aborted (before it
could get to the deadly glfont), and the rest of the code ran as usual.
dissect is now fixed on the server.
Henry Rich
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm