• Stefan Krah's avatar
    1) Remove claim of an input invariant that is only true for static mpd_t. · ec766a61
    Stefan Krah authored
       Resizing is used _inside_ libmpdec functions, and it is permitted to
       change x->alloc several times while setting x->len at the end of the
       function. Therefore, for dynamic mpd_t x->alloc can _temporarily_ drop
       below x->len. Of course the final result always has x->len <= x->alloc.
    
       For static mpd_t this cannot happen, since resizing to a smaller
       coefficient is a no-op.
    
    2) Remove micro optimization in mpd_switch_to_dyn(): Previously only the
       valid initialized part of the existing coefficient up to x->len was
       copied to the new dynamic memory area. Now copying does the same as
       realloc() and the entire old memory area is copied.
    
       The rationale for this change is that it is no longer needed to memorize
       the explanation given in 1).
    ec766a61
mpdecimal.c 202 KB