/shark/trunk/drivers/linuxc26/linuxcomp.c |
---|
375,7 → 375,7 |
diff = (unsigned long)((((unsigned long)mem/4)+1)*4-(unsigned long)mem); |
*(unsigned long *)(mem+diff) = (diff | 0x80000000); |
return (mem+diff+4); |
} |
382,10 → 382,11 |
void vfree(void *addr) { |
if (addr == NULL) return; |
if (addr == NULL || *(unsigned long *)(addr-4) == 0) return; |
if ((*(unsigned long *)(addr-4) & 0x80000000) == 0x80000000) { |
free(addr-(*(unsigned long *)(addr-4) & 0x7FFFFFFF)-4); |
*(unsigned long *)(addr-4) = 0; |
return; |
} |