in structs.h I have added a pointer to my char_creation routine, it IS at the top of descriptor data. struct current_table { int nuyen; byte skill_pts; byte attrib_pts; bool magic; /* 0 not set 1 no magic 2 magic */ byte magic_pts; bool race; /* 0 not set, 2 metahuman 1 human */ }; struct char_creation { struct current_table stats[6]; byte priority; }; struct descriptor_data { struct char_creation *create; /* this added to descriptor data */ ... }; In interpreter.c in my nanny() I added if (d->character == NULL) { CREATE(d->character, struct char_data, 1); clear_char(d->character); CREATE(d->character->player_specials, struct player_special_data, 1); if (d->create == NULL) { CREATE(d->create, struct char_creation, 1); memset((char *) d->create, 0, sizeof(struct char_creation)); } d->character->desc = d; } right after I use the creation table I do a if (d->create) free(d->create); Also, just for safety, in comm.c I added to close_socket if (d->create) free(d->create); Now, When I try to use this code my mud crashes on a MALLOC failure, it says it can't allocated memory, but if I comment out all relevent portions of this code the mud runs fine. I could manage to scrounge up a a core dump, but it doesn't give a line or any .c file for a reference, just a malloc failure. Perhaps someone could see something I might have overlooked ? Sorren +------------------------------------------------------------+ | 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