Re: Sorry folks, but yet another set of problems.

From: Nielsen (nielsenje@home.com)
Date: 03/21/01


> If anyone could help me figure these out It would be greatly
> appreciated. These are the locations that the debugger says things
> are going wrong.

Could you give us the debugger output?  Going on what you've given us, I can
guess that they're both segmentation faults due to NULL pointers, viz:

> void reset_char(struct char_data * ch)
> {
>   int i;
>
>   for (i = 0; i < NUM_WEARS; i++)
>     GET_EQ(ch, i) = NULL; <----- This line is where it says its going wrong.

If ch is NULL, this will crash.  Put something like the following at the top of
your function block after your variables:

if (!ch || !*ch) {
  log("SYSERR: NULL char passed to reset_char()!\r\n");
  return;
}

And see what happens.

> In dg_handler.c
> /* remove all triggers from a mob/obj/room */
> void extract_script(struct script_data *sc)
> {
>   struct trig_data *trig, *next_trig;
>
>   for (trig = TRIGGERS(sc); trig; trig = next_trig) { <-------- This
> line is where it says its going wrong.

Again, sc might be NULL, so at the top of your function block after variables:

if (!sc || !*sc) {
  log("SYSERR: NULL sc passed to extract_script()!\r\n");
  return;
}

HTH,

Jon A. Nielsen
Lazarus of Spear of Insanity MUD
http://spear.kilnar.com/
telnet://spear.kilnar.com:1066/

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/04/01 PST