[comp.windows.x] CWM on Andrew Toolkit

km@emory.uucp (Ken Mandelberg) (03/12/88)

I am trying to bring up the Andrew Toolkit from contrib.src
for the x11r2 distribution on the Sun 3, running SunOS 3.4.

Except for minor (but timeconsuming) problems, it all builds
ok. When I run "cwm", I find that it seems to start up
sanely. It rearragnes my windows, and responds properly to
button 2 bringing up a set of cascading menus.

The problem appears when I release button 2. Whether I choose
an item or not cwm aborts and I get a core dump. If I select
nothing the core is from cwm, if I do select an option the
core is from runapp. In the cwm case, dbx tells me that cwm
was in EventLoop when it aborted. Thats all I know so far.

Has anyone got cwm running in this environment? Any suggestions?
-- 
Ken Mandelberg      |  {decvax,sun!sunatl,gatech}!emory!km  UUCP
Emory University    |  km@emory                             BITNET
Dept of Math and CS |  km@emory.ARPA                        ARPA,CSNET
Atlanta, GA 30322   |  Phone: (404) 727-7963

salzman@garfield.RDL.COM (Gumby) (03/13/88)

In article <2743@emory.uucp> km@emory.uucp (Ken Mandelberg) writes:
>I am trying to bring up the Andrew Toolkit from contrib.src
>for the x11r2 distribution on the Sun 3, running SunOS 3.4.
>
>The problem appears when I release button 2. Whether I choose
>an item or not cwm aborts and I get a core dump. If I select
>nothing the core is from cwm, if I do select an option the
>core is from runapp. In the cwm case, dbx tells me that cwm
>was in EventLoop when it aborted. Thats all I know so far.
>
>Has anyone got cwm running in this environment? Any suggestions?

I've got some of the Andrew code working under SunOS 3.5 on
a 3/60. It was a real pain to build. I think those makefiles
are somewhat brain damaged. There were some nil pointer bugs
(trying to access a member of a pointer to a structure where
the pointer was nil) in the cwm code and I assume they exist 
elsewhere. I didn't spend a lot of time on it, but I did get 
cwm to run ok. Here's an example (XV11R2/contrib/andrew/overhead/cwm):

*** arbitrator.c~	Fri Mar  4 18:11:18 1988
--- arbitrator.c	Fri Mar  4 18:11:18 1988
***************
*** 720,729 ****
  		debug ( ("w 0x%x ", w) );
  		wqe = (struct wqe *) XLookUpAssoc (XDisplay, windowinfo, w);
  
! 		if (w == Destroyee->titlebar)
  			debug ( ("It's the Destroyee's title bar - do nothing \n") );
  
! 		else if (w == Destroyee->client)
  			{
  			debug ( ("It's the Destroyee's client window - cleaning up \n") );
  			free (Destroyee);
--- 720,729 ----
  		debug ( ("w 0x%x ", w) );
  		wqe = (struct wqe *) XLookUpAssoc (XDisplay, windowinfo, w);
  
! 		if (Destroyee && (w == Destroyee->titlebar))
  			debug ( ("It's the Destroyee's title bar - do nothing \n") );
  
! 		else if (Destroyee && (w == Destroyee->client))
  			{
  			debug ( ("It's the Destroyee's client window - cleaning up \n") );
  			free (Destroyee);
***************
*** 739,745 ****
  			{
  			debug ( ("Client destroyed its window - cleaning up \n") );
  			KillWindow (W);
! 			free (Destroyee);
  			memdebug ( ("FREE wqe 0x%x %d bytes \n", Destroyee,
  				sizeof (struct wqe) ) );
  			Destroyee = 0;
--- 739,746 ----
  			{
  			debug ( ("Client destroyed its window - cleaning up \n") );
  			KillWindow (W);
! 			if (Destroyee)
! 			    free (Destroyee);
  			memdebug ( ("FREE wqe 0x%x %d bytes \n", Destroyee,
  				sizeof (struct wqe) ) );
  			Destroyee = 0;
=========

I suppose some compilers will let you get away with it, wether they should
or not it's an assumption that never should be made.... Runaps probably has
similar problems. I'd love to see the whole thing working. Anyone else
get anywhere on this?

Anyone figure out what's wrong with xmh???

			-Isaac.

-- 
* Isaac Salzman - Sr. Systems Analyst                         ----     
* Research & Development Labs (RDL)                          /o o/  /  
* 5721 W. Slauson Ave., Culver City, CA. 90230-6509          | v |  |  
* AT&T: +1 213 410 1244, x118                               _|   |_/   
* ARPA: salzman@rdlvax.RDL.COM                             / |   |
* UUCP: ...!{psivax,csun,sdcrdcf,ttidca}!rdlvax!salzman    | |   |     

km@emory.uucp (Ken Mandelberg) (03/13/88)

In article <2743@emory.uucp> km@emory.uucp (Ken Mandelberg) writes:
>I am trying to bring up the Andrew Toolkit from contrib.src
>for the x11r2 distribution on the Sun 3, running SunOS 3.4.
>
>The problem appears when I release button 2. Whether I choose
>an item or not cwm aborts and I get a core dump. 

Well I bit the bullet, compiled with symbols and let dbx find the
problem for me. As usual, the Sun was chasing a null pointer that
presumably doesn't bother a Vax. I'm a little surprised this didn't
show up in testing on at least one of the non Vax machines.

I will include a diff of the fix. Its not clear to me how I submit
an Andrew bug report. If someone will tell me, I'll be glad to
do it.

    Fix for overhead/cwm/arbitrator.c


*** arbitrator.c	Sun Mar 13 00:29:49 1988
--- arbitrator.c.orig	Thu Mar 10 19:32:20 1988
***************
*** 720,729 ****
  		debug ( ("w 0x%x ", w) );
  		wqe = (struct wqe *) XLookUpAssoc (XDisplay, windowinfo, w);
  
! 		if (Destroyee && w == Destroyee->titlebar)
  			debug ( ("It's the Destroyee's title bar - do nothing \n") );
  
! 		else if (Destroyee && w == Destroyee->client)
  			{
  			debug ( ("It's the Destroyee's client window - cleaning up \n") );
  			free (Destroyee);
--- 720,729 ----
  		debug ( ("w 0x%x ", w) );
  		wqe = (struct wqe *) XLookUpAssoc (XDisplay, windowinfo, w);
  
! 		if (w == Destroyee->titlebar)
  			debug ( ("It's the Destroyee's title bar - do nothing \n") );
  
! 		else if (w == Destroyee->client)
  			{
  			debug ( ("It's the Destroyee's client window - cleaning up \n") );
  			free (Destroyee);



*******

-- 
Ken Mandelberg      |  {decvax,sun!sunatl,gatech}!emory!km  UUCP
Emory University    |  km@emory                             BITNET
Dept of Math and CS |  km@emory.ARPA                        ARPA,CSNET
Atlanta, GA 30322   |  Phone: (404) 727-7963

rapatel@topaz.rutgers.edu ( Rakesh Patel) (03/15/88)

I found the same *exact* problem previously. If you run the
applications under uwm it should solve that particular problem. I did
fix it, but due to various problems, I had removed the sources and
rebuilt from scratch. I'll try to pin point it again and send a
message about it.



							Rakesh Patel.