Changeset 46

Show
Ignore:
Timestamp:
11/06/08 15:36:50 (4 years ago)
Author:
sean
Message:

Fixed the static data area range calculation. Previous behavior was causing only 1/4 of the static data area to be scanned by the GC.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/D1.0/src/compiler/dmd/memory.d

    r38 r46  
    143143    version( Windows ) 
    144144    { 
    145         gc_addRange( &_xi_a, &_end - &_xi_a ); 
     145        gc_addRange( &_xi_a, cast(size_t) &_end - cast(size_t) &_xi_a ); 
    146146    } 
    147147    else version( linux ) 
    148148    { 
    149         gc_addRange( &__data_start, &_end - &__data_start ); 
     149        gc_addRange( &__data_start, cast(size_t) &_end - cast(size_t) &__data_start ); 
    150150    } 
    151151    else 
  • trunk/src/compiler/dmd/memory.d

    r38 r46  
    140140    version( Windows ) 
    141141    { 
    142         gc_addRange( &_xi_a, &_end - &_xi_a ); 
     142        gc_addRange( &_xi_a, cast(size_t) &_end - cast(size_t) &_xi_a ); 
    143143    } 
    144144    else version( linux ) 
    145145    { 
    146         gc_addRange( &__data_start, &_end - &__data_start ); 
     146        gc_addRange( &__data_start, cast(size_t) &_end - cast(size_t) &__data_start ); 
    147147    } 
    148148    else