Originally posted by [b]Itakou[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=834
the stackdump based on revision 12082,
QUOTE
-------------------
Error occured on Wednesday, January 16, 2008 at 20:34:28.
C:\Inetpub\vhosts\icarus.legacyro.com\Icarus\map-server_sql.exe caused an Access Violation at location 005e0ef1 in module C:\Inetpub\vhosts\icarus.legacyro.com\Icarus\map-server_sql.exe Reading from location 785a93d4.
Registers:
eax=dddddddd ebx=7ffff000 ecx=00000000 edx=ffffddcb esi=0012fd70 edi=0012f794
eip=005e0ef1 esp=0012f6c8 ebp=0012f794 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010206
Call stack:
005E0EF1 map_delobjectnofree c:\users\itakou\desktop\server\icarus\src\map\map.c:1142
0069815A skill_delunit c:\users\itakou\desktop\server\icarus\src\map\skill.c:9333
006988F8 skill_delunitgroup c:\users\itakou\desktop\server\icarus\src\map\skill.c:9457
006B7BB6 status_change_end c:\users\itakou\desktop\server\icarus\src\map\status.c:6404
006BA06E status_change_timer c:\users\itakou\desktop\server\icarus\src\map\status.c:7067
00533177 do_timer c:\users\itakou\desktop\server\icarus\src\common\timer.c:386
0051CA4E main c:\users\itakou\desktop\server\icarus\src\common\core.c:253
006E0203 __tmainCRTStartup
Since I have modifications in place, here is where the lines point for me...
map.c:1142
CODE
int map_delobjectnofree(int id)
{
if(objects[id]==NULL) // LINE 1142
return 0;
skill.c:9333
CODE
int skill_delunit (struct skill_unit* unit)
{
...
clif_skill_delunit(unit);
unit->group=NULL;
unit->alive=0;
map_delobjectnofree(unit->bl.id); // LINE 9333
if(--group->alive_count==0)
skill_delunitgroup(NULL, group);
return 0;
}
skill.c:9457
CODE
int skill_delunitgroup (struct block_list *src, struct skill_unit_group *group)
{
...
if (src->type==BL_PC && group->state.ammo_consume)
battle_consume_ammo((TBL_PC*)src, group->skill_id, group->skill_lv);
group->alive_count=0;
// remove all unit cells
if(group->unit != NULL)
for( i = 0; i < group->unit_count; i++ )
skill_delunit(&group->unit[i]); // LINE 9457
status.c:6404
CODE
case SC_DANCING:
{
struct map_session_data *dsd;
struct status_change_entry *dsc;
struct skill_unit_group *group;
if(sce->val2)
{
group = (struct skill_unit_group *)sce->val2;
sce->val2 = 0;
skill_delunitgroup(bl, group); // LINE 6404
}
status.c:7067
CODE
int status_change_timer(int tid, unsigned int tick, int id, int data)
{
...
// default for all non-handled control paths is to end the status
return status_change_end( bl,type,tid ); // LINE 7067
#undef sc_timer_next
}