Reinstate Massif.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3102 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/massif/ms_main.c b/massif/ms_main.c
index 2c4ee8c..8830e71 100644
--- a/massif/ms_main.c
+++ b/massif/ms_main.c
@@ -664,7 +664,8 @@
 static void hp_census(void);
 
 static
-void* new_block ( void* p, SizeT size, SizeT align, Bool is_zeroed )
+void* new_block ( ThreadId tid, void* p, SizeT size, SizeT align,
+                  Bool is_zeroed )
 {
    HP_Chunk* hc;
    Bool custom_alloc = (NULL == p);
@@ -692,7 +693,7 @@
    hc->data = (Addr)p;
    hc->where = NULL;    // paranoia
    if (clo_heap) {
-      hc->where = get_XCon( VG_(get_current_or_recent_tid)(), custom_alloc );
+      hc->where = get_XCon( tid, custom_alloc );
       if (0 != size) 
          update_XCon(hc->where, size);
    }
@@ -738,47 +739,47 @@
 }
  
 
-void* TL_(malloc) ( SizeT n )
+void* TL_(malloc) ( ThreadId tid, SizeT n )
 {
-   return new_block( NULL, n, VG_(clo_alignment), /*is_zeroed*/False );
+   return new_block( tid, NULL, n, VG_(clo_alignment), /*is_zeroed*/False );
 }
 
-void* TL_(__builtin_new) ( SizeT n )
+void* TL_(__builtin_new) ( ThreadId tid, SizeT n )
 {
-   return new_block( NULL, n, VG_(clo_alignment), /*is_zeroed*/False );
+   return new_block( tid, NULL, n, VG_(clo_alignment), /*is_zeroed*/False );
 }
 
-void* TL_(__builtin_vec_new) ( SizeT n )
+void* TL_(__builtin_vec_new) ( ThreadId tid, SizeT n )
 {
-   return new_block( NULL, n, VG_(clo_alignment), /*is_zeroed*/False );
+   return new_block( tid, NULL, n, VG_(clo_alignment), /*is_zeroed*/False );
 }
 
-void* TL_(calloc) ( SizeT m, SizeT size )
+void* TL_(calloc) ( ThreadId tid, SizeT m, SizeT size )
 {
-   return new_block( NULL, m*size, VG_(clo_alignment), /*is_zeroed*/True );
+   return new_block( tid, NULL, m*size, VG_(clo_alignment), /*is_zeroed*/True );
 }
 
-void *TL_(memalign)( SizeT align, SizeT n )
+void *TL_(memalign)( ThreadId tid, SizeT align, SizeT n )
 {
-   return new_block( NULL, n, align, False );
+   return new_block( tid, NULL, n, align, False );
 }
 
-void TL_(free) ( void* p )
+void TL_(free) ( ThreadId tid, void* p )
 {
    die_block( p, /*custom_free*/False );
 }
 
-void TL_(__builtin_delete) ( void* p )
+void TL_(__builtin_delete) ( ThreadId tid, void* p )
 {
    die_block( p, /*custom_free*/False);
 }
 
-void TL_(__builtin_vec_delete) ( void* p )
+void TL_(__builtin_vec_delete) ( ThreadId tid, void* p )
 {
    die_block( p, /*custom_free*/False );
 }
 
-void* TL_(realloc) ( void* p_old, SizeT new_size )
+void* TL_(realloc) ( ThreadId tid, void* p_old, SizeT new_size )
 {
    HP_Chunk*    hc;
    HP_Chunk**   remove_handle;
@@ -814,8 +815,7 @@
    }
    
    old_where = hc->where;
-   new_where = get_XCon( VG_(get_current_or_recent_tid)(),
-                         /*custom_malloc*/False);
+   new_where = get_XCon( tid, /*custom_malloc*/False);
 
    // Update HP_Chunk
    hc->data  = (Addr)p_new;
@@ -1136,7 +1136,7 @@
       void* p         = (void*)argv[1];
       SizeT sizeB     =        argv[2];
       *ret            = 0;
-      res = new_block( p, sizeB, /*align -- ignored*/0, /*is_zeroed*/False );
+      res = new_block( tid, p, sizeB, /*align--ignored*/0, /*is_zeroed*/False );
       tl_assert(res == p);
       return True;
    }