# HG changeset patch # User Nina Engelhardt # Date 1345563891 -7200 # Node ID 7a2039d9fa7d16a5da864a4262891c42dedceb2a # Parent 88fd330feef342b528a27c33a3597f953e122a6a move vms_defs diff -r 88fd330feef3 -r 7a2039d9fa7d Services_Offered_by_VMS/Memory_Handling/vmalloc.c --- a/Services_Offered_by_VMS/Memory_Handling/vmalloc.c Fri Aug 17 17:15:45 2012 -0700 +++ b/Services_Offered_by_VMS/Memory_Handling/vmalloc.c Tue Aug 21 17:44:51 2012 +0200 @@ -17,6 +17,8 @@ #include "VMS_impl/VMS.h" #include "Histogram/Histogram.h" +#include + #define MAX_UINT64 0xFFFFFFFFFFFFFFFF //A MallocProlog is a head element if the HigherInMem variable is NULL @@ -265,7 +267,8 @@ foundChunk = removeSmallChunk(freeLists, freeListIdx); //Mark as allocated - foundChunk->prevChunkInFreeList = NULL; + foundChunk->prevChunkInFreeList = NULL; + VALGRIND_MAKE_MEM_UNDEFINED(foundChunk + 1,sizeRequested); return foundChunk + 1; } @@ -284,6 +287,7 @@ MEAS__Capture_Post_Malloc_Point //skip over the prolog by adding its size to the pointer return + VALGRIND_MAKE_MEM_UNDEFINED(foundChunk + 1,sizeRequested); return foundChunk + 1; } @@ -331,6 +335,7 @@ } size_t chunkSize = getChunkSize(chunkToFree); + VALGRIND_MAKE_MEM_UNDEFINED(chunkToFree,chunkSize); if(chunkSize < BIG_LOWER_BOUND) { containerIdx = (chunkSize/SMALL_CHUNK_SIZE)-1; @@ -383,6 +388,7 @@ //Create first element in lastContainer MallocProlog *firstChunk = malloc( MALLOC_ADDITIONAL_MEM_FROM_OS_SIZE ); if( firstChunk == NULL ) {printf("Can't allocate initial memory\n"); exit(1);} + VALGRIND_MAKE_MEM_NOACCESS(firstChunk,MALLOC_ADDITIONAL_MEM_FROM_OS_SIZE); freeLists->memSpace = firstChunk; //Touch memory to avoid page faults