From a79e7c4171bc5ce924a7588c53e626b99b2ecf56 Mon Sep 17 00:00:00 2001 From: "Sergey Semyonov (Serge)" Date: Wed, 7 Feb 2007 12:25:23 +0000 Subject: [PATCH] fixed bug in malloc.inc code cleanup in cursors.inc git-svn-id: svn://kolibrios.org@326 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/core/malloc.inc | 11 ++++---- kernel/trunk/drivers/unisound.asm | 2 +- kernel/trunk/video/cursors.inc | 43 ------------------------------- 3 files changed, 7 insertions(+), 49 deletions(-) diff --git a/kernel/trunk/core/malloc.inc b/kernel/trunk/core/malloc.inc index f721d97881..bd313b2eeb 100644 --- a/kernel/trunk/core/malloc.inc +++ b/kernel/trunk/core/malloc.inc @@ -27,6 +27,7 @@ malloc: jae .large mov ecx, esi + shr ecx, 3 or eax, -1 shl eax, cl and eax, [mst.smallmap] @@ -687,7 +688,6 @@ malloc_small: lea eax, [edi+ebp+4] pop edi or ecx, 3 - pop esi mov [ebx+4], ecx or dword [eax], 1 pop ebp @@ -918,9 +918,9 @@ malloc_large: lea esi, [ebx+ebp] call unlink_large_chunk -; if (rsize < 256) +; if (rsize < 16) - cmp edi, 256 + cmp edi, 16 jae .large ; v->head = (rsize + nb)|PINUSE_BIT|CINUSE_BIT; @@ -954,8 +954,9 @@ malloc_large: ; insert_large_chunk((tchunkptr)r, rsize); mov [esi+edi], edi - mov ebx, edi - call insert_large_chunk + mov eax, edi + mov ecx, esi + call insert_chunk lea eax, [ebp+8] add esp, 8 diff --git a/kernel/trunk/drivers/unisound.asm b/kernel/trunk/drivers/unisound.asm index 8b64b4e9cf..f33bbd7185 100644 --- a/kernel/trunk/drivers/unisound.asm +++ b/kernel/trunk/drivers/unisound.asm @@ -491,7 +491,7 @@ proc ac97_irq call [ctrl.ctrl_write8] mov eax, [civ_val] - add eax, 2 + add eax, 1 and eax, 31 mov ebx, dword [buff_list+eax*4] diff --git a/kernel/trunk/video/cursors.inc b/kernel/trunk/video/cursors.inc index cf16aba202..f9d8063be8 100644 --- a/kernel/trunk/video/cursors.inc +++ b/kernel/trunk/video/cursors.inc @@ -260,23 +260,6 @@ proc vesa_init_cursor stdcall, dst:dword, src:dword ret endp -align 4 -alloc_cursor: - - mov eax, CURSOR_SIZE - call malloc - test eax, eax - jz .fail - - xor ebx, ebx - mov [eax+CURSOR.magic], 'CURS' -; mov [eax+CURSOR.destructor], CURSOR_SIZE - mov [eax+CURSOR.pid], ebx - mov [eax+CURSOR.hot_x], ebx - mov [eax+CURSOR.hot_y], ebx -.fail: - ret - align 4 proc set_cursor stdcall, hcursor:dword mov eax, [hcursor] @@ -426,31 +409,6 @@ proc delete_cursor stdcall, hcursor:dword call [eax+APPOBJ.destroy] .fail: ret - -;@@: -; mov eax, [hw_cursor] -; test eax, eax -; jz @F - -; xor ebx, ebx -; mov ecx, [esi+CURSOR.base] -; mov [hsrv], eax -; mov [io_code], VIDEO_FREE -; mov [input], ecx -; mov [inp_size], 4 -; mov [output], ebx -; mov [out_size], ebx - -; lea eax, [hsrv] -; stdcall srv_handler, eax -; jmp .exit -;@@: -; stdcall kernel_free, [esi+CURSOR.base] -;.exit: -; mov eax, [hcursor] -; call destroy_kernel_object -;.fail: -; ret endp ; param @@ -463,7 +421,6 @@ destroy_cursor: stdcall kernel_free, [eax+CURSOR.base] pop eax - call destroy_kernel_object ret