Skip to content
  • Kumar Gala's avatar
    Fix compile warnings in dlmalloc · 57c219ad
    Kumar Gala authored
    
    
    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: default avatarKumar Gala <galak@kernel.crashing.org>
    57c219ad