CVS update: php3

From: Date: Sat, 06 Feb 1999 11:56:45 +0000
Subject: CVS update: php3
Groups: php.dev 
Request: Send a blank email to php-dev+get-3935@lists.php.net to get a copy of this message
Date: Saturday February 6, 1999 @ 6:56 Author: zeev Update of /repository/php3 In directory asf:/u/temp/cvs-serv9686 Modified Files: alloc.c Log Message: Ah, right. Make alignment picky platforms happy with the debugging memory manager Index: php3/alloc.c diff -c php3/alloc.c:1.77 php3/alloc.c:1.78 *** php3/alloc.c:1.77 Fri Feb 5 10:06:53 1999 --- php3/alloc.c Sat Feb 6 06:56:45 1999 *************** *** 17,24 **** --- 17,26 ---- #if DEBUG # define END_MAGIC_SIZE sizeof(long) + # define END_ALIGNMENT(size) (((size)%PLATFORM_ALIGNMENT)?(PLATFORM_ALIGNMENT-((size)%PLATFORM_ALIGNMENT)):0) #else # define END_MAGIC_SIZE 0 + # define END_ALIGNMENT(size) 0 #endif *************** *** 110,116 **** UNBLOCK_INTERRUPTIONS; return (void *)((char *)p + sizeof(mem_header) + PLATFORM_PADDING); } else { ! p = (mem_header *) malloc(sizeof(mem_header) + size + PLATFORM_PADDING + END_MAGIC_SIZE); } if (!p) { --- 112,118 ---- UNBLOCK_INTERRUPTIONS; return (void *)((char *)p + sizeof(mem_header) + PLATFORM_PADDING); } else { ! p = (mem_header *) malloc(sizeof(mem_header) + size + PLATFORM_PADDING + END_ALIGNMENT(size) + END_MAGIC_SIZE); } if (!p) { *************** *** 130,136 **** p->filename = filename; p->lineno = lineno; p->magic = MEM_BLOCK_START_MAGIC; ! *((long *)(((char *) p) + sizeof(mem_header)+size+PLATFORM_PADDING)) = MEM_BLOCK_END_MAGIC; #endif #if MEMORY_LIMIT CHECK_MEMORY_LIMIT(size); --- 132,138 ---- p->filename = filename; p->lineno = lineno; p->magic = MEM_BLOCK_START_MAGIC; ! *((long *)(((char *) p) + sizeof(mem_header)+size+PLATFORM_PADDING+END_ALIGNMENT(size))) = MEM_BLOCK_END_MAGIC; #endif #if MEMORY_LIMIT CHECK_MEMORY_LIMIT(size); *************** *** 218,224 **** } BLOCK_INTERRUPTIONS; REMOVE_POINTER_FROM_LIST(p); ! p = (mem_header *) realloc(p,sizeof(mem_header)+size+PLATFORM_PADDING+END_MAGIC_SIZE); if (!p) { fprintf(stderr,"FATAL: erealloc(): Unable to allocate %d bytes\n", size); exit(1); --- 220,226 ---- } BLOCK_INTERRUPTIONS; REMOVE_POINTER_FROM_LIST(p); ! p = (mem_header *) realloc(p,sizeof(mem_header)+size+PLATFORM_PADDING+END_ALIGNMENT(size)+END_MAGIC_SIZE); if (!p) { fprintf(stderr,"FATAL: erealloc(): Unable to allocate %d bytes\n", size); exit(1); *************** *** 241,247 **** p->filename = filename; p->lineno = lineno; p->magic = MEM_BLOCK_START_MAGIC; ! *((long *)(((char *) p) + sizeof(mem_header)+size+PLATFORM_PADDING)) = MEM_BLOCK_END_MAGIC; #endif #if MEMORY_LIMIT CHECK_MEMORY_LIMIT(size - p->size); --- 243,249 ---- p->filename = filename; p->lineno = lineno; p->magic = MEM_BLOCK_START_MAGIC; ! *((long *)(((char *) p) + sizeof(mem_header)+size+PLATFORM_PADDING+END_ALIGNMENT(size))) = MEM_BLOCK_END_MAGIC; #endif #if MEMORY_LIMIT CHECK_MEMORY_LIMIT(size - p->size); *************** *** 399,405 **** return _mem_block_check(ptr, 0, filename, lineno); } fprintf(stderr,"---------------------------------------\n"); ! fprintf(stderr,"Block 0x%0.8X status at %s:%d:\n", p, filename, lineno); fprintf(stderr,"%10s\t","Beginning: "); } --- 401,407 ---- return _mem_block_check(ptr, 0, filename, lineno); } fprintf(stderr,"---------------------------------------\n"); ! fprintf(stderr,"Block 0x%0.8lX status at %s:%d:\n", (long) p, filename, lineno); fprintf(stderr,"%10s\t","Beginning: "); } *************** *** 430,436 **** break; default: if (!silent) { ! fprintf(stderr,"Overrun (magic=0x%0.8X, expected=0x%0.8X)\n", p->magic, MEM_BLOCK_START_MAGIC); } else { return _mem_block_check(ptr, 0, filename, lineno); } --- 432,438 ---- break; default: if (!silent) { ! fprintf(stderr,"Overrun (magic=0x%0.8lX, expected=0x%0.8lX)\n", p->magic, MEM_BLOCK_START_MAGIC); } else { return _mem_block_check(ptr, 0, filename, lineno); } *************** *** 440,446 **** if (valid_beginning ! && *((long *)(((char *) p)+sizeof(mem_header)+p->size+PLATFORM_PADDING)) != MEM_BLOCK_END_MAGIC) { long magic_num = MEM_BLOCK_END_MAGIC; char *overflow_ptr, *magic_ptr=(char *) &magic_num; int overflows=0; --- 442,448 ---- if (valid_beginning ! && *((long *)(((char *) p)+sizeof(mem_header)+p->size+PLATFORM_PADDING+END_ALIGNMENT(p->size))) != MEM_BLOCK_END_MAGIC) { long magic_num = MEM_BLOCK_END_MAGIC; char *overflow_ptr, *magic_ptr=(char *) &magic_num; int overflows=0; *************** *** 459,466 **** } fprintf(stderr,"%10s\t", "End:"); ! fprintf(stderr,"Overflown (magic=0x%0.8X instead of 0x%0.8X)\n", ! *((long *)(((char *) p) + sizeof(mem_header)+p->size+PLATFORM_PADDING)), MEM_BLOCK_END_MAGIC); fprintf(stderr,"%10s\t",""); if (overflows>=sizeof(long)) { fprintf(stderr, "At least %d bytes overflown\n", sizeof(long)); --- 461,468 ---- } fprintf(stderr,"%10s\t", "End:"); ! fprintf(stderr,"Overflown (magic=0x%0.8lX instead of 0x%0.8lX)\n", ! *((long *)(((char *) p) + sizeof(mem_header)+p->size+PLATFORM_PADDING+END_ALIGNMENT(p->size))), MEM_BLOCK_END_MAGIC); fprintf(stderr,"%10s\t",""); if (overflows>=sizeof(long)) { fprintf(stderr, "At least %d bytes overflown\n", sizeof(long)); -- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net For help: php-dev-help@lists.php.net

« previous php.dev (#3935) next »