1,6 → 1,6 |
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
; ýëåìåíò TreeList äëÿ Kolibri OS |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 29.04.2010 IgorA |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 15.05.2010 IgorA |
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
|
|
17,37 → 17,7 |
|
macro use_tree_list |
{ |
;----------------------------------------------------------------------------- |
;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè |
;input: |
; ecx = size data |
;otput: |
; eax = pointer to memory |
align 4 |
mem_Alloc: |
push ebx |
mov eax,68 |
mov ebx,12 |
int 0x40 |
pop ebx |
ret |
;----------------------------------------------------------------------------- |
;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè |
;input: |
; ecx = pointer to memory |
align 4 |
mem_Free: |
push eax ebx |
cmp ecx,0 |
jz @f |
mov eax,68 |
mov ebx,13 |
int 0x40 |
@@: |
pop ebx eax |
ret |
|
align 4 |
tl_data_init: ;âûäåëíèå ïàìÿòè äëÿ ñòðóêòóð ñïèñêà è îñíîâíîé èíôîðìàöèè (êîíñòðóêòîð) |
push ebp |
mov ebp,esp |
95,29 → 65,23 |
ret 4 |
|
align 4 |
tl_data_clear: ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) |
push ebp |
mov ebp,esp |
push ecx edi |
mov edi,dword[ebp+8] |
proc tl_data_clear, tlist:dword ;î÷èñòêà ïàìÿòè ýëåìåíòà (äåñòðóêòîð) |
push edi |
mov edi,dword[tlist] |
cmp tl_data_img,0 |
je @f |
mov ecx,tl_data_img |
call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê |
stdcall mem_Free,tl_data_img ;÷èñòêà ñèñòåìíûõ èêîíîê |
@@: |
cmp tl_data_img_sys,0 |
je @f |
mov ecx,tl_data_img_sys |
call mem_Free ;÷èñòêà ñèñòåìíûõ èêîíîê |
stdcall mem_Free,tl_data_img_sys ;÷èñòêà ñèñòåìíûõ èêîíîê |
@@: |
mov ecx,dword[edi] |
call mem_Free |
stdcall mem_Free,dword[edi] |
|
mov ecx,tl_data_nodes |
call mem_Free |
pop edi ecx |
pop ebp |
ret 4 |
stdcall mem_Free,tl_data_nodes |
pop edi |
ret |
endp |
|
align 4 |
tl_info_clear: ;î÷èñòêà ñïèñêà (èíôîðìàöèè) |