Mail Archives: djgpp/1996/10/07/12:15:11
On Mon, 7 Oct 1996, Pieter Kunst wrote:
> > The traceback always shows that the problem occured in
> > _dj_movedata+33
> > wnoutrefresh+319
> > wrefresh()+50
> > from line 29 in the attached program
>
> The problem occurs when calling 'wrefresh()', i.e. when the
> transfer from the internal PDCurses screen memory buffer to
> the physical screen memory is made. This is done (by PDCurses)
> using a call to 'movedata()' which is the standard method to
> transfer data from protected mode to real-mode DOS memory
> (in this case the text video memory at B800:0000).
I don't think so. First, `wnoutrefresh' doesn't call `movedata', and
`movedata' doesn't call `_dj_movedata'. So if the (incomplete) traceback
posted by Ronen is anywhere near the truth, the program crashes when
moving data between two buffers (probably inside `memcpy' call), and not
from a PM buffer to the video memory.
However, without a full traceback, it is impossible to say what exactly
goes wrong. For all I know, it might be that the program passes a null
pointer to `memcpy' and is killed by CWSDPMI's null pointer protection,
whereby on NT it manages to get away with it.
- Raw text -