Issue information

Issue ID
#4478
Status
Duplicate
Severity
None
Started
Hercules Elf Bot
Oct 13, 2010 2:45
Last Post
Hercules Elf Bot
Oct 13, 2010 2:45
Confirmation
N/A

Hercules Elf Bot - Oct 13, 2010 2:45

Originally posted by [b]karmic[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=4478

CODE
unsigned int exp, old_exp=g->member[i].exp;
...
exp = g->member[i].exp - old_exp;


g->member[i].exp is uint64, and is sizer than unsigned int.

So, you can lose data. but I know it is not necessary to store so much data.
The compiler tells you a warning telling you that this can happen

Fix: tell the compiler that the conversion we do consciously, and that there is no dismissal.
unsigned int exp, old_exp=(unsigned int)g->member[i].exp;
exp = (unisgned int)g->member[i].exp - old_exp;