Decompile memaRealloc
This commit is contained in:
parent
7e574fe2a6
commit
0e8e7da547
|
|
@ -10069,7 +10069,7 @@ glabel func0f15dc58
|
|||
/* f15e27c: 01e02825 */ or $a1,$t7,$zero
|
||||
/* f15e280: 51e20009 */ beql $t7,$v0,.L0f15e2a8
|
||||
/* f15e284: 8c730014 */ lw $s3,0x14($v1)
|
||||
/* f15e288: 0c004b52 */ jal func00012d48
|
||||
/* f15e288: 0c004b52 */ jal memaRealloc
|
||||
/* f15e28c: 00403025 */ or $a2,$v0,$zero
|
||||
/* f15e290: 3c19800a */ lui $t9,%hi(g_Rooms)
|
||||
/* f15e294: 8f394928 */ lw $t9,%lo(g_Rooms)($t9)
|
||||
|
|
@ -10658,7 +10658,7 @@ glabel func0f15dc58
|
|||
/* f158a74: 01a02825 */ or $a1,$t5,$zero
|
||||
/* f158a78: 51a20009 */ beql $t5,$v0,.NB0f158aa0
|
||||
/* f158a7c: 8c720014 */ lw $s2,0x14($v1)
|
||||
/* f158a80: 0c004d69 */ jal func00012d48
|
||||
/* f158a80: 0c004d69 */ jal memaRealloc
|
||||
/* f158a84: 00403025 */ or $a2,$v0,$zero
|
||||
/* f158a88: 3c0e800b */ lui $t6,0x800b
|
||||
/* f158a8c: 8dce90a8 */ lw $t6,-0x6f58($t6)
|
||||
|
|
|
|||
|
|
@ -9,9 +9,10 @@ void memaInit(void);
|
|||
void memaHeapInit(void *ptr, u32 size);
|
||||
void memaPrint(void);
|
||||
void *memaAlloc(u32 size);
|
||||
u32 func00012c3c(void);
|
||||
bool memaGrow(u32 arg0, u32 arg1);
|
||||
void _memaFree(s32 addr, s32 size);
|
||||
void memaFree(void *addr, s32 size);
|
||||
s32 memaGetLongestFree(void);
|
||||
u32 func00012d48(void);
|
||||
bool memaRealloc(s32 addr, u32 oldsize, u32 newsize);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -621,7 +621,7 @@ glabel memaAlloc
|
|||
//}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func00012c3c
|
||||
glabel memaGrow
|
||||
/* 12c3c: 3c0f800a */ lui $t7,%hi(g_MemaHeap+0xc)
|
||||
/* 12c40: 8def9484 */ lw $t7,%lo(g_MemaHeap+0xc)($t7)
|
||||
/* 12c44: 3c0e800a */ lui $t6,%hi(g_MemaHeap+0xc)
|
||||
|
|
@ -697,36 +697,18 @@ s32 memaGetLongestFree(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func00012d48
|
||||
/* 12d48: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* 12d4c: 00a6082b */ sltu $at,$a1,$a2
|
||||
/* 12d50: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* 12d54: afa40018 */ sw $a0,0x18($sp)
|
||||
/* 12d58: 10200008 */ beqz $at,.L00012d7c
|
||||
/* 12d5c: 00a03825 */ or $a3,$a1,$zero
|
||||
/* 12d60: 00852021 */ addu $a0,$a0,$a1
|
||||
/* 12d64: 0c004b0f */ jal func00012c3c
|
||||
/* 12d68: 00c52823 */ subu $a1,$a2,$a1
|
||||
/* 12d6c: 5440000a */ bnezl $v0,.L00012d98
|
||||
/* 12d70: 24020001 */ addiu $v0,$zero,0x1
|
||||
/* 12d74: 10000008 */ b .L00012d98
|
||||
/* 12d78: 00001025 */ or $v0,$zero,$zero
|
||||
.L00012d7c:
|
||||
/* 12d7c: 00c7082b */ sltu $at,$a2,$a3
|
||||
/* 12d80: 10200004 */ beqz $at,.L00012d94
|
||||
/* 12d84: 8faf0018 */ lw $t7,0x18($sp)
|
||||
/* 12d88: 01e62021 */ addu $a0,$t7,$a2
|
||||
/* 12d8c: 0c004b2d */ jal memaFree
|
||||
/* 12d90: 00e62823 */ subu $a1,$a3,$a2
|
||||
.L00012d94:
|
||||
/* 12d94: 24020001 */ addiu $v0,$zero,0x1
|
||||
.L00012d98:
|
||||
/* 12d98: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* 12d9c: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* 12da0: 03e00008 */ jr $ra
|
||||
/* 12da4: 00000000 */ nop
|
||||
);
|
||||
bool memaRealloc(s32 addr, u32 oldsize, u32 newsize)
|
||||
{
|
||||
if (newsize > oldsize) {
|
||||
if (!memaGrow(addr + oldsize, newsize - oldsize)) {
|
||||
return false;
|
||||
}
|
||||
} else if (oldsize > newsize) {
|
||||
memaFree((void *)(addr + newsize), oldsize - newsize);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
u32 memaGetSize(void)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue