[alt.sources] oneko dumps core! BUG FIX + System V port

ag@amix.commodore.com (Keith "Cheese Whiz" Gabryelski) (03/07/91)

In article <MICHEL.91Mar5164822@eutes3.es.ele.tue.nl> michel@es.ele.tue.nl
(Michel Berkelaar) writes:
>The oneko version I took from alt.sources dumps core on Apollo workstations
>and an Alliant FX/8 computer in our group, whether compiled with cc or gcc.
>It looks as if it can only work with compilers which allow NULL pointer
>dereferencing ... Or else something is going wrong completely.

Not a NULL pointer bug per se'.  It was due to a questionable
structure array definition.  The diffs:

*** oneko.c-	Wed Mar  6 12:09:37 1991
--- oneko.c	Wed Mar  6 17:26:33 1991
***************
*** 187,228 ****
  
  Animation	AnimationPattern[][2] =
  {
!     { &Mati2GC, &Mati2Msk },
!     { &Mati2GC, &Mati2Msk },		/* NekoState == NEKO_STOP */
!     { &Jare2GC, &Jare2Msk },
!     { &Mati2GC, &Mati2Msk },		/* NekoState == NEKO_JARE */
!     { &Kaki1GC, &Kaki1Msk },
!     { &Kaki2GC, &Kaki2Msk },		/* NekoState == NEKO_KAKI */
!     { &Mati3GC, &Mati3Msk },
!     { &Mati3GC, &Mati3Msk },		/* NekoState == NEKO_AKUBI */
!     { &Sleep1GC, &Sleep1Msk },
!     { &Sleep2GC, &Sleep2Msk },		/* NekoState == NEKO_SLEEP */
!     { &AwakeGC, &AwakeMsk },
!     { &AwakeGC, &AwakeMsk },		/* NekoState == NEKO_AWAKE */
!     { &Up1GC, &Up1Msk },
!     { &Up2GC, &Up2Msk },		/* NekoState == NEKO_U_MOVE */
!     { &Down1GC, &Down1Msk },
!     { &Down2GC, &Down2Msk },		/* NekoState == NEKO_D_MOVE */
!     { &Left1GC, &Left1Msk },
!     { &Left2GC, &Left2Msk },		/* NekoState == NEKO_L_MOVE */
!     { &Right1GC, &Right1Msk },
!     { &Right2GC, &Right2Msk },		/* NekoState == NEKO_R_MOVE */
!     { &UpLeft1GC, &UpLeft1Msk },
!     { &UpLeft2GC, &UpLeft2Msk },	/* NekoState == NEKO_UL_MOVE */
!     { &UpRight1GC, &UpRight1Msk },
!     { &UpRight2GC, &UpRight2Msk },	/* NekoState == NEKO_UR_MOVE */
!     { &DownLeft1GC, &DownLeft1Msk },
!     { &DownLeft2GC, &DownLeft2Msk },	/* NekoState == NEKO_DL_MOVE */
!     { &DownRight1GC, &DownRight1Msk },
!     { &DownRight2GC, &DownRight2Msk },	/* NekoState == NEKO_DR_MOVE */
!     { &UpTogi1GC, &UpTogi1Msk },
!     { &UpTogi2GC, &UpTogi2Msk },	/* NekoState == NEKO_U_TOGI */
!     { &DownTogi1GC, &DownTogi1Msk },
!     { &DownTogi2GC, &DownTogi2Msk },	/* NekoState == NEKO_D_TOGI */
!     { &LeftTogi1GC, &LeftTogi1Msk },
!     { &LeftTogi2GC, &LeftTogi2Msk },	/* NekoState == NEKO_L_TOGI */
!     { &RightTogi1GC, &RightTogi1Msk },
!     { &RightTogi2GC, &RightTogi2Msk },	/* NekoState == NEKO_R_TOGI */
  };
  
  
--- 187,228 ----
  
  Animation	AnimationPattern[][2] =
  {
!     { { &Mati2GC, &Mati2Msk },
!       { &Mati2GC, &Mati2Msk }, },	/* NekoState == NEKO_STOP */
!     { { &Jare2GC, &Jare2Msk },
!       { &Mati2GC, &Mati2Msk }, },	/* NekoState == NEKO_JARE */
!     { { &Kaki1GC, &Kaki1Msk },
!       { &Kaki2GC, &Kaki2Msk }, },	/* NekoState == NEKO_KAKI */
!     { { &Mati3GC, &Mati3Msk },
!       { &Mati3GC, &Mati3Msk }, },	/* NekoState == NEKO_AKUBI */
!     { { &Sleep1GC, &Sleep1Msk },
!       { &Sleep2GC, &Sleep2Msk }, },	/* NekoState == NEKO_SLEEP */
!     { { &AwakeGC, &AwakeMsk },
!       { &AwakeGC, &AwakeMsk }, },	/* NekoState == NEKO_AWAKE */
!     { { &Up1GC, &Up1Msk },
!       { &Up2GC, &Up2Msk }, },		/* NekoState == NEKO_U_MOVE */
!     { { &Down1GC, &Down1Msk },
!       { &Down2GC, &Down2Msk }, },	/* NekoState == NEKO_D_MOVE */
!     { { &Left1GC, &Left1Msk },
!       { &Left2GC, &Left2Msk }, },	/* NekoState == NEKO_L_MOVE */
!     { { &Right1GC, &Right1Msk },
!       { &Right2GC, &Right2Msk }, },	/* NekoState == NEKO_R_MOVE */
!     { { &UpLeft1GC, &UpLeft1Msk },
!       { &UpLeft2GC, &UpLeft2Msk }, },	/* NekoState == NEKO_UL_MOVE */
!     { { &UpRight1GC, &UpRight1Msk },
!       { &UpRight2GC, &UpRight2Msk }, },	/* NekoState == NEKO_UR_MOVE */
!     { { &DownLeft1GC, &DownLeft1Msk },
!       { &DownLeft2GC, &DownLeft2Msk }, }, /* NekoState == NEKO_DL_MOVE */
!     { { &DownRight1GC, &DownRight1Msk },
!       { &DownRight2GC, &DownRight2Msk }, }, /* NekoState == NEKO_DR_MOVE */
!     { { &UpTogi1GC, &UpTogi1Msk },
!       { &UpTogi2GC, &UpTogi2Msk }, },	/* NekoState == NEKO_U_TOGI */
!     { { &DownTogi1GC, &DownTogi1Msk },
!       { &DownTogi2GC, &DownTogi2Msk }, }, /* NekoState == NEKO_D_TOGI */
!     { { &LeftTogi1GC, &LeftTogi1Msk },
!       { &LeftTogi2GC, &LeftTogi2Msk }, }, /* NekoState == NEKO_L_TOGI */
!     { { &RightTogi1GC, &RightTogi1Msk },
!       { &RightTogi2GC, &RightTogi2Msk }, }, /* NekoState == NEKO_R_TOGI */
  };
  
  
***************
*** 1056,1061 ****
--- 1056,1064 ----
  NullFunction()
  {
      /* No Operation */
+ #ifdef SYSV
+     signal(SIGALRM, NullFunction);
+ #endif /* !SYSV */
  }
  
  /*

-- 
Would you like some Bill Sperm with that?
Keith Gabryelski                                 Advanced Products Group
ag@amix.commodore.com                                 ...!cbmvax!amix!ag