Path: utzoo!mnetor!uunet!husc6!think!bloom-beacon!oberon!garfield!salzman From: salzman@garfield.RDL.COM (Gumby) Newsgroups: comp.windows.x Subject: Re: CWM on Andrew Toolkit Message-ID: <128@garfield.RDL.COM> Date: 13 Mar 88 01:26:43 GMT References: <2743@emory.uucp> Reply-To: salzman@rdlvax.RDL.COM (Gumby) Organization: Research & Development Labs, Culver City, CA. Lines: 81 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 | | |