Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 661 → Rev 662

/kernel/trunk/core/heap.inc
537,6 → 537,9
pages_count dd ?
endl
 
push ebx
push edi
 
mov eax, [size]
add eax, 4095
and eax, not 4095;
591,9 → 594,13
jnz @B
.end:
mov eax, [lin_addr]
pop edi
pop ebx
ret
.err:
xor eax, eax
pop edi
pop ebx
ret
endp
 
665,7 → 672,6
mov [ebx+APPDATA.heap_top], eax
 
sub eax, esi
; add esi, new_app_base
shr esi, 10
mov ecx, eax
sub eax, 4096
677,6 → 683,10
align 4
proc user_alloc stdcall, alloc_size:dword
 
push ebx
push esi
push edi
 
mov ecx, [alloc_size]
add ecx, (4095+4096)
and ecx, not 4095
725,6 → 735,10
call update_mem_size
 
lea eax, [esi+4096]
 
pop edi
pop esi
pop ebx
ret
test_used:
test al, USED_BLOCK
736,6 → 750,9
jmp l_0
m_exit:
xor eax, eax
pop edi
pop esi
pop ebx
ret
endp
 
742,10 → 759,14
align 4
proc user_free stdcall, base:dword
 
push esi
 
mov esi, [base]
test esi, esi
jz .exit
 
push ebx
 
xor ebx, ebx
shr esi, 12
mov eax, [page_tabs+(esi-1)*4]
776,6 → 797,8
dec ecx
jnz .release
.released:
push edi
 
mov edx, [current_slot]
mov esi, dword [edx+APPDATA.heap_base]
mov edi, dword [edx+APPDATA.heap_top]
783,13 → 806,20
neg ebx
call update_mem_size
call user_normalize
pop edi
pop ebx
pop esi
ret
.exit:
xor eax, eax
inc eax
pop esi
ret
.cantfree:
xor eax, eax
pop edi
pop ebx
pop esi
ret
endp