Wayde Milas wrote:
> Question. Isn't the second line totally wrong? if you calloc an array of
> top_of_zone_table size, and then you set an element in
> new_table[top_of_zone_table + 1] (number) aren't you WAY past the end of
> the new array that you allocated?
>
> Not only that... but you are actually 2 spaces past it since you have to
> consider that they array starts at [0].
>
> So, is it me, or does this piece of code look totally fubared? I think its
> time for me to re-write it. :)
>
> Wayde
This is just a cut and paste from another post someone else made. I
did not write this, but it may help answer your question....
My "zedit new <vnum>" now works after the following change:
The fix is in zedit.c line 1174 :
Change:
/*. Make a new zone in memory.*/
CREATE(new_table, struct zone_data, top_of_zone_table);
new_table[top_of_zone_table + 1].number = 32000;
To:
/*. Make a new zone in memory.*/
CREATE(new_table, struct zone_data, top_of_zone_table+3);
new_table[top_of_zone_table + 1].number = 32000;
I found the problem using purify, which just kept reporting that i was
writing above the array bounds in new_table[], so i kept incrementing it
until there were no more errors. I can understand why it should be
top_of_zone_table+1, but why +3? (+1 and +2 still reported Array Bounds
Write errors)
+------------------------------------------------------------+
| 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