]> git.llucax.com Git - software/dgc/cdgc.git/blobdiff - rt/gc/cdgc/iface.d
Call memset() only for large enough chunks of data
[software/dgc/cdgc.git] / rt / gc / cdgc / iface.d
index dfaf9a72e7064afc5930c66068a655326a7c0872..fec035a68c11f1292ea0ef1c5a4f3946561c96d6 100644 (file)
@@ -28,7 +28,8 @@ module rt.gc.cdgc.iface;
 
 import rt.gc.cdgc.gc: GC, BlkInfo;
 import rt.gc.cdgc.stats: GCStats;
 
 import rt.gc.cdgc.gc: GC, BlkInfo;
 import rt.gc.cdgc.stats: GCStats;
-import libc = rt.gc.cdgc.libc;
+
+import cstdlib = tango.stdc.stdlib;
 
 version=GCCLASS;
 
 
 version=GCCLASS;
 
@@ -64,16 +65,15 @@ extern (C) void thread_init();
 extern (C) void gc_init()
 {
     version (GCCLASS)
 extern (C) void gc_init()
 {
     version (GCCLASS)
-    {   void* p;
+    {
         ClassInfo ci = GC.classinfo;
         ClassInfo ci = GC.classinfo;
-
-        p = libc.malloc(ci.init.length);
+        void* p = cstdlib.malloc(ci.init.length);
         (cast(byte*)p)[0 .. ci.init.length] = ci.init[];
         _gc = cast(GC)p;
     }
     else
     {
         (cast(byte*)p)[0 .. ci.init.length] = ci.init[];
         _gc = cast(GC)p;
     }
     else
     {
-        _gc = cast(GC*) libc.calloc(1, GC.sizeof);
+        _gc = cast(GC*) cstdlib.calloc(1, GC.sizeof);
     }
     _gc.initialize();
     version (DigitalMars) version(OSX) {
     }
     _gc.initialize();
     version (DigitalMars) version(OSX) {
@@ -102,7 +102,6 @@ extern (C) void gc_term()
         //
         _gc.fullCollectNoStack(); // not really a 'collect all' -- still scans
                                   // static data area, roots, and ranges.
         //
         _gc.fullCollectNoStack(); // not really a 'collect all' -- still scans
                                   // static data area, roots, and ranges.
-        _gc.Dtor();
     } else {
         // default (safe) clenup
         _gc.fullCollect(); 
     } else {
         // default (safe) clenup
         _gc.fullCollect(); 
@@ -233,3 +232,6 @@ extern (C) Object gc_weakpointerGet( void* wp )
 {
     return _gc.weakpointerGet(wp);
 }
 {
     return _gc.weakpointerGet(wp);
 }
+
+
+// vim: set et sw=4 sts=4 :