CVS update: php3
| From: | zeev | 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