From: Chris Proctor (cjp@YOYO.CC.MONASH.EDU.AU)
Date: 10/01/97

Been having a bit of trouble with the affect_from_char function.

I haven't touched it, so I dunno what's going on. It only seems to crash
when I call it to remove spells I've recently written, and charm, sometimes.

Here's the backtrace:

Program received signal SIGSEGV, Segmentation fault.
affect_from_char (ch=0x8269f30, type=7) at handler.c:336
336         if (hjp->type == type)
(gdb) bt
#0  affect_from_char (ch=0x8269f30, type=7) at handler.c:336
#1  0x8091dc7 in stop_follower (ch=0x8269f30) at utils.c:318
#2  0x8091e92 in die_follower (ch=0x8269f30) at utils.c:349
#3  0x8077660 in extract_char (ch=0x8269f30) at handler.c:934
#4  0x806354e in do_purge (ch=0x8296848, argument=0xbffff435 " yot",
        cmd=253, subcmd=0) at act.wizard.c:1176
#5  0x8079cad in command_interpreter (ch=0x8296848,
    argument=0xbffff430 "purge yot") at interpreter.c:787
#6  0x8049c86 in game_loop (mother_desc=5) at comm.c:519
#7  0x804952a in init_game (port=3333) at comm.c:203
#8  0x80494be in main (argc=1, argv=0xbffff800) at comm.c:176
#9  0x80491fb in ___crt_dummy__ ()

I've tried checking to see whether hjp is valid, specifically hjp->type,
etc. An assert(hjp) fails, too, but putting an if (hjp) in doesn't help
at all.

It also can't be anything specifically in stop_follower or any of those,
it happens from other places as well, such as removing a spell from the
victim in damage(). Strange.

The function is stock circle.
/* Call affect_remove with every spell of spelltype "skill" */
void affect_from_char(struct char_data * ch, sh_int type)
  struct affected_type *hjp;

  for (hjp = ch->affected; hjp; hjp = hjp->next)
    if (hjp->type == type)
        affect_remove(ch, hjp);

Any ideas? I'm well and truly stumped on this one.

      "A double-edged sword lets you cut down
      your enemies with the backswing as well."
             -- Gerrard of the Weatherlight
     Check out Dominia Mud, on snafu.net.au 3333
  Or my homepage: http://yoyo.cc.monash.edu.au/~cjp

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |

This archive was generated by hypermail 2b30 : 12/08/00 PST