Changeset 333 for eaccelerator/trunk/mm.c
- Timestamp:
- 08/20/07 18:40:16 (1 year ago)
- Files:
-
- eaccelerator/trunk/mm.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
eaccelerator/trunk/mm.c
r301 r333 67 67 #endif 68 68 69 #undef MM_CHECK 70 #define MM_PATTERN 0xdeadbeef 71 69 72 #if defined(MM_SHM_MMAP_FILE) || defined(MM_SHM_MMAP_ZERO) || defined(MM_SHM_MMAP_ANON) || defined(MM_SHM_MMAP_POSIX) || defined(HAVE_MPROTECT) 70 73 # include <sys/mman.h> … … 1066 1069 mm_mem_head* x = NULL; 1067 1070 size_t realsize = (size_t)MM_ALIGN(MM_SIZE(size)); 1071 #if MM_CHECK 1072 realsize += (size_t)MM_ALIGN(sizeof(int)); 1073 #endif 1068 1074 if (realsize <= mm->available) { 1069 1075 /* Search for free bucket */ … … 1084 1090 break; 1085 1091 } else if (p->size > realsize && (best == NULL || best->size > p->size)) { 1086 /* Found best bucket (smallest bucket with the grater size) */1092 /* Found best bucket (smallest bucket with the bigger size) */ 1087 1093 best = p; 1088 1094 best_prev = q; … … 1119 1125 } 1120 1126 if (x != NULL) { 1127 #ifdef MM_CHECK 1128 *(int *)((char *)x + realsize - (size_t)MM_ALIGN(sizeof(int))) = MM_PATTERN; 1129 #endif 1121 1130 return HEAD_TO_PTR(x); 1122 1131 } … … 1319 1328 } 1320 1329 1330 #if defined(MM_CHECK) && !(defined(MM_TEST_SHM) || defined(MM_TEST_SEM)) 1331 void mm_check_mem(void *x) { 1332 mm_mem_head *p = PTR_TO_HEAD(x); 1333 if (*((unsigned int *)((char *)p + p->size - (size_t)MM_ALIGN(sizeof(int)))) != MM_PATTERN) { 1334 ea_debug_error("[EACCELERATOR] Corrupted memory detected\n"); 1335 } 1336 } 1337 #else 1338 void mm_check_mem(void *x) {} 1339 #endif 1340 1321 1341 #ifdef MM_TEST_SHM 1322 1342 int main() {