]> git.llucax.com Git - software/dgc/cdgc.git/blobdiff - rt/gc/cdgc/iface.d
stats: Add more type information to malloc logging
[software/dgc/cdgc.git] / rt / gc / cdgc / iface.d
index 7f7843732a01b4c4aa9d505c318755936ea9597e..3002284cfdc461c465223e057d33257bdd6ee090 100644 (file)
 
 module rt.gc.cdgc.iface;
 
-import rt.gc.cdgc.gc;
-import rt.gc.cdgc.stats;
-import rt.gc.cdgc.libc;
+import rt.gc.cdgc.gc: GC, BlkInfo;
+import rt.gc.cdgc.stats: GCStats;
+
+import cstdlib = tango.stdc.stdlib;
 
 version=GCCLASS;
 
@@ -64,16 +65,15 @@ extern (C) void thread_init();
 extern (C) void gc_init()
 {
     version (GCCLASS)
-    {   void* p;
+    {
         ClassInfo ci = GC.classinfo;
-
-        p = 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
     {
-        _gc = cast(GC*) calloc(1, GC.sizeof);
+        _gc = cast(GC*) cstdlib.calloc(1, GC.sizeof);
     }
     _gc.initialize();
     version (DigitalMars) version(OSX) {
@@ -102,10 +102,9 @@ extern (C) void gc_term()
         //
         _gc.fullCollectNoStack(); // not really a 'collect all' -- still scans
                                   // static data area, roots, and ranges.
-        _gc.Dtor();
     } else {
         // default (safe) clenup
-        _gc.fullCollect(); 
+        _gc.fullCollect();
     }
 }
 
@@ -145,19 +144,22 @@ extern (C) uint gc_clrAttr( void* p, uint a )
     return _gc.clrAttr( p, a );
 }
 
-extern (C) void* gc_malloc( size_t sz, uint ba = 0 )
+extern (C) void* gc_malloc(size_t sz, uint attrs = 0,
+        PointerMap ptrmap = PointerMap.init)
 {
-    return _gc.malloc( sz, ba );
+    return _gc.malloc(sz, attrs, ptrmap);
 }
 
-extern (C) void* gc_calloc( size_t sz, uint ba = 0 )
+extern (C) void* gc_calloc(size_t sz, uint attrs = 0,
+        PointerMap ptrmap = PointerMap.init)
 {
-    return _gc.calloc( sz, ba );
+    return _gc.calloc(sz, attrs, ptrmap);
 }
 
-extern (C) void* gc_realloc( void* p, size_t sz, uint ba = 0 )
+extern (C) void* gc_realloc(void* p, size_t sz, uint attrs = 0,
+        PointerMap ptrmap = PointerMap.init)
 {
-    return _gc.realloc( p, sz, ba );
+    return _gc.realloc(p, sz, attrs, ptrmap);
 }
 
 extern (C) size_t gc_extend( void* p, size_t mx, size_t sz )
@@ -233,3 +235,6 @@ extern (C) Object gc_weakpointerGet( void* wp )
 {
     return _gc.weakpointerGet(wp);
 }
+
+
+// vim: set et sw=4 sts=4 :