[comp.windows.open-look] Problems with pixwins in code converted from SunTools to XView

spitz@parc.xerox.com (Larry Spitz) (04/26/91)

I am not sure if this is the proper newsgroup for this message.
I have a problem with some code converted to XView.

The only change I made to the working conversion of a SunTools program
is as follows.

I moved the line of code: screen_pw = canvas_pixwin(mainCanvas);
from before the line: window_main_loop(mainFrame);
to after that line (but it doesn't seem to change the problem)

After that I do the following:
ret = pw_rop(screen_pw,0,0,win_rect.r_width,win_rect.r_height,PIX_CLR,NULL,0,0);
This clears (an already clear) pixwin and does so without generating an error

Later I do the following:
pw_lock(screen_pw,&win_rect);
This causes a segmentation fault

If I remove that line of code, the next to do an operation on a pixwin is:
pw_rop(screen_pw,left,top,w,h,PIX_SET,NULL,0,0);
This too causes a segmentation fault although it is in essence identical to
the pw_rop() which was successful.

Using dbxtool screen_pw looks like a pointer.
Looking at *screen_pw yields garbage, viz:
*screen_pw = {
        pw_ops        = 0xf0a58142
        pw_opshandle  = 0x20908 ""
        pw_opsx       = 304264
        pw_opsy       = 303976
        pw_fixup      = {
                rl_x     = 4
                rl_y     = -23656
                rl_head  = (nil)
                rl_tail  = 0x20
                rl_bound = {
                        r_left   = 2338
                        r_top    = 8232
                        r_width  = 0
                        r_height = 0
                }
        }
        pw_pixrect    = 0x404e0a01
        pw_prretained = 0x4e348
        pw_clipops    = (nil)
        pw_clipdata   = (nil)
        pw_cmsname    = "( )
"
}


Any help would be appreciated.

Larry
-- 
Larry Spitz            Xerox PARC                Spitz@parc.xerox.com 
           415-494-4216          415-494-4241 Fax