]> git.llucax.com Git - software/druntime.git/blobdiff - src/compiler/dmd/memory.d
* Removed "-debug" from the list of debug build flags. The purpose of debug builds...
[software/druntime.git] / src / compiler / dmd / memory.d
index 7ed28b696dbde6a7dfe99f29dfd53447fb162dea..7ea24dd9f10faef57a7aec2bd94050ea34505983 100644 (file)
@@ -37,6 +37,8 @@ private
             extern (C) extern void* __libc_stack_end;
         }
     }
+    extern (C) void gc_addRange( void* p, size_t sz );
+    extern (C) void gc_removeRange( void *p );
 }
 
 
@@ -130,23 +132,18 @@ private
             alias __data_start  Data_Start;
             alias _end          Data_End;
     }
-
-    alias void delegate( void*, void* ) scanFn;
 }
 
 
-/**
- *
- */
-extern (C) void rt_scanStaticData( scanFn scan )
+void initStaticDataGC()
 {
     version( Windows )
     {
-        scan( &_xi_a, &_end );
+        gc_addRange( &_xi_a, cast(size_t) &_end - cast(size_t) &_xi_a );
     }
     else version( linux )
     {
-        scan( &__data_start, &_end );
+        gc_addRange( &__data_start, cast(size_t) &_end - cast(size_t) &__data_start );
     }
     else
     {