Fix compile warnings in dlmalloc
authorKumar Gala <galak@kernel.crashing.org>
Wed, 30 Jul 2008 13:01:15 +0000 (08:01 -0500)
committerWolfgang Denk <wd@denx.de>
Thu, 31 Jul 2008 09:21:15 +0000 (11:21 +0200)
commit57c219ad5d34dd9d49991777a62e3899595f2ec7
treed2c7f14906580e9583d948527de782ed7d8b5936
parent3f9ae1a5d43c49a8ecf497470c3d1d80255e44b9
Fix compile warnings in dlmalloc

The origional code was using on odd reference to get to the first
real element in av_[].  The first two elements of the array are
not used for actual bins, but for house keeping.  If we are more
explicit about how use the first few elements we can get rid of the
warnings:

dlmalloc.c: In function 'malloc_extend_top':
dlmalloc.c:1971: warning: dereferencing type-punned pointer will break strict-aliasing rules
dlmalloc.c:1999: warning: dereferencing type-punned pointer will break strict-aliasing rules
dlmalloc.c:2029: warning: dereferencing type-punned pointer will break strict-aliasing rules
...

The logic of how this code came to be is:
bin_at(0) = (char*)&(av_[2]) - 2*SIZE_SZ

SIZE_SZ is the size of pointer, and av_ is arry of pointers so:
bin_at(0) = &(av_[0])

Going from there to bin_at(0)->fd or bin_at(0)->size should be straight forward.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
common/dlmalloc.c