1,23 → 1,12 |
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
; ýëåìåíò TreeList äëÿ Kolibri OS |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 23.11.2009 IgorA |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 20.11.2009 IgorA |
; íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
|
|
sizeof.TreeList equ 20 |
;struct TreeList |
; type dw ? ;+ 0 òèï ýëåìåíòà, èëè èíäåêñ èêîíêè äëÿ óçëà |
; lev db ? ;+ 2 óðîâåíü ýëåìåíòà |
; clo db ? ;+ 3 ôëàã çàêðûòèÿ, èëè îòêðûòèÿ (èìååò ñìûñë äëÿ ðîäèòåëüñêîãî óçëà) |
; perv dd ? ;+ 4 èíäåêñ ïðåäûäóùåãî ýëåìåíòà |
; next dd ? ;+ 8 èíäåêñ ïîñëåäóþùåãî ýëåìåíòà |
; tc dd ? ;+12 âðåì. ñîçäàíèÿ |
; td dd ? ;+16 âðåì. óäàëåíèÿ |
;ends |
|
tl_info_size equ word[edi +4] ;ðàçìåð äàííûõ âûäåëÿåìûõ äëÿ êàæäîãî óçëà (ïîëüçîâàòåëüñüêèå äàííûå + òåêñò äëÿ ïîäïèñè) |
tl_style equ dword[edi+10] ;ñòèëè ýëåìåíòà |
tl_data_nodes equ dword[edi+14] ;óêàçàòåëü íà ñòðóêòóðû óçëîâ |
tl_img_cx equ word[edi+22] ;øèðèíà èêîíîê |
tl_img_cy equ word[edi+24] ;âûñîòà èêîíîê |
tl_data_img_sys equ dword[edi+26] ;óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè) |
32,7 → 21,7 |
tl_box_width equ dword[edi+66] |
tl_box_height equ dword[edi+70] |
tl_capt_cy equ word[edi+74] ;âûñîòà ïîäïèñè |
tl_info_capt_offs equ dword[edi+76] ;ñäâèã äëÿ íà÷àëà òåêñòà (ïîäïèñè óçëà) |
tl_info_capt_offs equ dword[edi+76] |
tl_el_focus equ dword[edi+80] ;óêàçàòåëü íà ñòðóêòóðó ýëåìåíòà â ôîêóñå |
tl_p_scrol equ dword[edi+84] ;óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà |
tl_sb_draw equ dword[edi+88] ;óêàçàòåëü íà ôóíêöèþ ïåðåðèñîâûâàþùóþ ñêðîëëèíã |
43,15 → 32,49 |
tl_draw_par_line equ 10b ;ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó |
tl_list_box_mode equ 100b ;ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå îäíîãî óðîâíÿ) |
|
;data_info dd ? ;+ 0 óêàçàòåëü íà îñíîâíûå äàíûå |
;info_max_count dd ? ;+ 6 ìàêñèìàëüíîå êîëëè÷åñòâî ñòðóêòóð |
;data_img dd ? ;+18 óêàçàòåëü íà èçîáðàæåíèÿ |
;ls_tim dd ? ;+34 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
;on_activate dd ? ;+92 óêàçàòåëü íà ôóíêöèþ ïðè àêòèâèðîâàíèè óçëà |
macro use_tree_list_structs |
{ |
struct TreeInfo |
data_info dd ? ;+ 0 óêàçàòåëü íà îñíîâíûå äàíûå |
info_size dw ? ;+ 4 ðàçìåð èíôîðìàöèîííîé ñòðóêòóðû (ïîëüçîâàòåëüñüêèå äàííûå + òåêñò äëÿ ïîäïèñè) |
info_max_count dd ? ;+ 6 ìàêñèìàëüíîå êîëëè÷åñòâî ñòðóêòóð |
style dd ? ;+10 ñòèëè ýëåìåíòà |
data_nodes dd ? ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
data_img dd ? ;+18 óêàçàòåëü íà èçîáðàæåíèÿ |
img_cx dw ? ;+22 øèðèíà èêîíîê |
img_cy dw ? ;+24 âûñîòà èêîíîê |
data_img_sys dd ? ;+26 óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè) |
ch_tim dd ? ;+30 êîëè÷åñòâî èçìåíåíèé â ôàéëå |
ls_tim dd ? ;+34 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
tim_undo dd ? ;+38 êîëè÷åñòâî îòìåíåííûõ äåéñòâèé |
cur_pos dd ? ;+42 ïîçèöèÿ êóðñîðà |
col_bkg dd ? ;+46 öâåò ôîíà |
col_zag dd ? ;+50 öâåò çàãîëîâêà |
col_txt dd ? ;+54 öâåò òåêñòà |
wndMain BOX ? ;+58 ðàçìåð îêíà äëÿ âûâîäà |
capt_cy dw ? ;+74 âûñîòà ïîäïèñè |
info_capt_offs dd ? ;+76 ñäâèã äëÿ íà÷àëà òåêñòà (ïîäïèñè óçëà) |
el_focus dd ? ;+80 óêàçàòåëü íà ñòðóêòóðó ýëåìåíòà â ôîêóñå |
p_scrol dd ? ;+84 óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà |
sb_draw dd ? ;+88 óêàçàòåëü íà ôóíêöèþ ïåðåðèñîâûâàþùóþ ñêðîëëèíã |
on_activate dd ? ;+92 óêàçàòåëü íà ôóíêöèþ ïðè àêòèâèðîâàíèè óçëà |
on_press dd ? ;+96 óêàçàòåëü íà ôóíêöèþ ïðè íàæàòèè Enter |
ends |
|
struct TreeList |
type dw ? ;+ 0 òèï ýëåìåíòà, èëè èíäåêñ èêîíêè äëÿ óçëà |
lev db ? ;+ 2 óðîâåíü ýëåìåíòà |
clo db ? ;+ 3 ôëàã çàêðûòèÿ, èëè îòêðûòèÿ (èìååò ñìûñë äëÿ ðîäèòåëüñêîãî óçëà) |
perv dd ? ;+ 4 èíäåêñ ïðåäûäóùåãî ýëåìåíòà |
next dd ? ;+ 8 èíäåêñ ïîñëåäóþùåãî ýëåìåíòà |
tc dd ? ;+12 âðåì. ñîçäàíèÿ |
td dd ? ;+16 âðåì. óäàëåíèÿ |
ends |
} |
|
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ |
col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ |
el_focus, p_scrol,p_sb_draw,on_press { |
el_focus, p_scrol,p_sb_draw,fun_enter { |
.data_info dd 0 |
.info_size dw info_size |
.info_max_count dd info_max_count |
78,7 → 101,7 |
.p_scrol dd p_scrol |
.p_sb_draw dd p_sb_draw |
.on_activate dd 0 |
.on_press dd on_press |
.on_press dd fun_enter |
} |
|
;----------------------------------------------------------------------------- |
121,7 → 144,7 |
mov edi,dword[ebp+8] |
|
xor ecx,ecx |
mov cx,tl_info_size |
mov cx,word[edi+4] |
imul ecx,dword[edi+6] |
call mem_Alloc |
mov dword[edi],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
131,7 → 154,7 |
mov ecx,sizeof.TreeList |
imul ecx,dword[edi+6] |
call mem_Alloc |
mov tl_data_nodes,eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
mov dword[edi+14],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
|
push dword edi |
call tl_info_clear |
179,7 → 202,7 |
mov ecx,dword[edi] |
call mem_Free |
|
mov ecx,tl_data_nodes |
mov ecx,dword[edi+14] |
call mem_Free |
pop edi ecx |
pop ebp |
198,13 → 221,13 |
;xor ecx,ecx |
mov ecx,sizeof.TreeList |
imul ecx,dword[edi+6] |
mov eax,tl_data_nodes |
mov eax,dword[edi+14] |
@@: |
mov byte[eax],0 ;÷èñòèì óçëû 0-ìè |
inc eax |
loop @b |
mov eax,tl_data_nodes ;óêàçàòåëü íà 0-é óçåë |
mov dword[eax+8],1 ;óêàçàòåëü next â 0-ì óçëå ïðèðàâíèâàåì ê 1 |
mov eax,dword[edi+14] ;óêàçàòåëü íà 1-é óçåë |
mov dword[eax+8],1 ;óêàçàòåëü next â 1-ì óçëå ïðèðàâíèâàåì ê 1 |
call tb_scrol_resize ;îáðàáîòêà ñêðîëëèíãà |
pop edi ecx eax |
pop ebp |
291,6 → 314,9 |
bt eax,0 ;left mouse button press |
jae .no_draw |
|
mov ebx,tl_el_focus |
mov dword[ebx],edi ;set focus |
|
mov eax,37 |
mov ebx,1 |
int 0x40 |
316,9 → 342,6 |
cmp ax,bx ;âåðõíÿÿ ãðàíèöà îêíà + âûñîòà ïîäïèñè |
jl .no_in_wnd |
|
mov esi,tl_el_focus |
mov dword[esi],edi ;set focus |
|
; if '+' or '-' press |
mov esi,eax |
shr esi,16 |
343,13 → 366,10 |
mov eax,ecx ;åñëè êóðñîð íå âûøåë çà ïðåäåëû óçëîâ, âîññòàíàâëèâàåì ñòàðîå çíà÷åíèå eax |
@@: |
|
mov ebx,0x80000000 ;ñòàâèì ôëàã äëÿ âûõîäà áåç îáíîâëåíèÿ |
cmp eax,tl_cur_pos ;åñëè íîâîå çíà÷åíèå êóðñîðà ñîâïàëî ñ ïðåäûäóùèì |
je @f ;òî íå ñòèðàåì êóðñîð |
push esi |
mov esi,tl_box_top |
add esi,tl_box_height ;esi = coord bottom border |
call tl_draw_null_cursor ;ñòèðàåì êóðñîð |
pop esi |
je @f ;òî ìîæåì âûéòè áåç îáíîâëåíèÿ îêíà |
xor ebx,ebx |
@@: |
|
mov tl_cur_pos,eax |
359,7 → 379,7 |
cmp eax,2 |
jl .no_open_close ;êóðñîð ñòîèò íà ïóñòîì ìåñòå, áåç óçëîâ |
imul eax,sizeof.TreeList |
add eax,tl_data_nodes |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
xor bx,bx |
mov bl,byte[eax+2] ;+2 lev ñîõðàíÿåì óðîâåíü òåêóùåãî óçëà |
inc bx ;+ ïîëå äëÿ êóðñîðà |
379,14 → 399,13 |
call tl_node_close_open |
.no_open_close: |
|
mov esi,tl_box_top |
add esi,tl_box_height ;esi = coord bottom border |
call tl_draw_cursor ;ïåðåðèñîâêà êóðñîðà |
bt ebx,31 |
jc .no_draw |
push dword edi |
call tl_draw |
jmp .no_draw |
.no_in_wnd: ;íå ïîïàëè â îêíî - ïîòåðÿ ôîêóñà (ïðè óñëîâèè ÷òî ôîêóñ áûë íà äàííîì ýåëåìåíòå) |
.no_in_wnd: ;íå ïîïàëè â îêíî - ïîòåðÿ ôîêóñà |
mov ebx,tl_el_focus |
cmp dword[ebx],edi |
jne .no_draw ;ýëåìåíò íå â ôîêóñå |
mov dword[ebx],0 ;reset focus |
.no_draw: |
|
437,10 → 456,10 |
jl .no_work |
|
push eax ebx ecx edx |
mov edx,tl_data_nodes |
mov edx,dword[edi+14] |
mov ecx,edx |
add ecx,sizeof.TreeList |
call tl_move_next ;long i=node[0].next; |
call tl_move_next ;long i=tex[0].next; |
mov eax,tl_tim_undo |
sub tl_ch_tim,eax ;ch_tim-=tim_undo; |
mov eax,tl_ch_tim |
451,7 → 470,7 |
cmp edx,ecx |
jle @f |
|
;if(node[i].tc>ch_tim){ // åñëè ñîçäàíèå ñèìâîëà áûëî îòìåíåíî |
;if(tex[i].tc>ch_tim){ // åñëè ñîçäàíèå ñèìâîëà áûëî îòìåíåíî |
cmp dword[edx+12],eax |
jle .no_u1 |
mov dword[edx+12],0 |
459,19 → 478,19 |
|
mov ebx, dword[edx+4] |
imul ebx,sizeof.TreeList |
add ebx, tl_data_nodes ;.next |
push dword[edx+8] ;node[node[i].perv].next=node[i].next; |
add ebx, dword[edi+14] ;.next |
push dword[edx+8] ;tex[tex[i].perv].next=tex[i].next; |
pop dword[ebx+8] |
|
mov ebx, dword[edx+8] |
imul ebx,sizeof.TreeList |
add ebx, tl_data_nodes ;.perv |
push dword[edx+4] ;node[node[i].next].perv=node[i].perv; |
add ebx, dword[edi+14] ;.perv |
push dword[edx+4] ;tex[tex[i].next].perv=tex[i].perv; |
pop dword[ebx+4] |
|
.no_u1: |
|
;else if(node[i].td>ch_tim) node[i].td=0; // åñëè óäàëåíèå ñèìâîëà áûëî îòìåíåíî |
;else if(tex[i].td>ch_tim) tex[i].td=0; // åñëè óäàëåíèå ñèìâîëà áûëî îòìåíåíî |
cmp dword[edx+16],eax |
jle .no_u2 |
mov dword[edx+16],0 |
569,7 → 588,7 |
|
;cycle to nodes |
xor eax,eax |
mov edx,tl_data_nodes |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov ecx,edx |
add ecx,sizeof.TreeList |
|
731,7 → 750,7 |
tl_move_next: |
mov edx,dword[edx+8] |
imul edx,sizeof.TreeList |
add edx,tl_data_nodes |
add edx,dword[edi+14] |
ret |
|
;input: |
743,7 → 762,7 |
tl_move_perv: |
mov edx,dword[edx+4] |
imul edx,sizeof.TreeList |
add edx,tl_data_nodes |
add edx,dword[edi+14] |
ret |
|
;input: |
751,12 → 770,12 |
; edi = pointer to 'TreeList' struct |
;output: |
; al = 1 if sumbol not visible |
; (node[i].td+tim_Undo<=ch_tim && node[i].td) || (node[i].tc>ch_tim-tim_Undo) |
; (tex[i].td+tim_Undo<=ch_tim && tex[i].td) || (tex[i].tc>ch_tim-tim_Undo) |
align 4 |
tl_node_not_vis: |
cmp dword[edx+16],0 |
je @f |
mov eax,dword[edx+16] ;eax=node[i].td |
mov eax,dword[edx+16] ;eax=tex[i].td |
add eax,tl_tim_undo |
cmp eax,tl_ch_tim |
jg @f |
967,7 → 986,7 |
@@: |
|
mov al,byte[edx+2] ;draw minus '-' |
mov ecx,tl_data_nodes |
mov ecx,dword[edi+14] |
add ecx,sizeof.TreeList |
|
mov ah,10 ;get icon index '+' or '-' ? |
1109,7 → 1128,7 |
push ebx ecx edx esi |
|
xor esi,esi |
mov si,tl_info_size |
mov si,word[edi+4];info_size |
cmp esi,tl_info_capt_offs |
jle @f ;if caption size <= 0 |
|
1201,11 → 1220,11 |
|
mov ebx,sizeof.TreeList |
imul ebx,dword[edi+6] ;+6 ìàêñ. êîëè÷åñòâî óçëîâ |
add ebx,tl_data_nodes |
add ebx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
;-- |
call tl_get_cur_node_index ;eax=po_t |
imul eax,sizeof.TreeList |
add eax,tl_data_nodes |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,eax |
call tl_move_perv |
call tl_get_node_index ;eax = index of pointer [edx] |
1212,8 → 1231,8 |
;-- |
mov edx,sizeof.TreeList |
shl edx,1 |
add edx,tl_data_nodes |
@@: ;for(i=2;i<nodeMax;i++) |
add edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
@@: ;for(i=2;i<texMax;i++) |
cmp dword [edx+12],0 |
jne .u0 |
cmp dword [edx+16],0 |
1223,11 → 1242,6 |
push word[ebp+14] ;get type |
pop word[edx] |
mov byte[edx+2], 0 ;node[i].lev=0 |
bt tl_style,2 ;tl_list_box_mode |
jc .l_box_m |
mov cl,byte[ebp+12] |
mov byte[edx+2],cl ;node[i].lev |
.l_box_m: |
push tl_ch_tim ;node[i].tc=ch_tim; |
pop dword[edx+12] |
mov dword[edx+4], eax ;node[i].perv=po_t; |
1234,7 → 1248,7 |
;*** copy node data *** |
push esi |
xor ecx,ecx |
mov cx,tl_info_size |
mov cx,word[edi+4];info_size |
mov esi,ecx |
|
push eax |
1249,7 → 1263,7 |
mov esi,edi |
mov edi,dword[ebp+16] ;restore edi |
mov ecx,tl_info_capt_offs |
cmp cx,tl_info_size |
cmp cx,word[edi+4] ;+4 info_size |
jge .no_text_data |
dec esi |
mov byte[esi],0 |
1258,9 → 1272,9 |
|
mov ecx,eax |
imul ecx,sizeof.TreeList |
add ecx,tl_data_nodes ; *** ecx = node[po_t] *** |
add ecx,8 ; *** ecx = node[po_t].next *** |
push dword [ecx] ;node[i].next=node[po_t].next; |
add ecx,dword[edi+14] ; *** ecx = tex[po_t] *** |
add ecx,8 ; *** ecx = tex[po_t].next *** |
push dword [ecx] ;tex[i].next=tex[po_t].next; |
pop dword [edx+8] |
|
call tl_get_node_index ;*** eax = i *** |
1267,11 → 1281,11 |
cmp eax,dword[edi+6] ;info_max_count |
jge .u0 |
|
mov [ecx],eax ;node[po_t].next=i; // ññûëêè ïåðåíàïðàâëÿåì |
mov ecx,[edx+8] ; *** ecx = node[i].next *** |
mov [ecx],eax ;tex[po_t].next=i; // ññûëêè ïåðåíàïðàâëÿåì |
mov ecx,[edx+8] ; *** ecx = tex[i].next *** |
imul ecx,sizeof.TreeList |
add ecx,tl_data_nodes ; *** ecx = node[node[i].next] *** |
mov [ecx+4],eax ;node[node[i].next].perv=i; |
add ecx,dword[edi+14] ; *** ecx = tex[tex[i].next] *** |
mov [ecx+4],eax ;tex[tex[i].next].perv=i; |
|
call tb_scrol_resize ;îáðàáîòêà ñêðîëëèíãà |
jmp @f |
1322,7 → 1336,7 |
cmp eax,2 |
jl @f |
xor ecx,ecx |
mov cx,tl_info_size |
mov cx,word[edi+4];info_size |
imul eax,ecx |
add eax,dword[edi] |
mov edi,eax |
1332,7 → 1346,7 |
mov esi,edi |
mov edi,dword[ebp+12] ;restore edi |
mov ecx,tl_info_capt_offs |
cmp cx,tl_info_size |
cmp cx,word[edi+4] ;+4 info_size |
jge .no_text_data |
dec esi |
mov byte[esi],0 |
1356,7 → 1370,7 |
cmp eax,2 |
jl @f |
xor ecx,ecx |
mov cx,tl_info_size |
mov cx,word[edi+4];info_size |
imul eax,ecx |
add eax,dword[edi] |
mov dword[ebp+8],eax ;return node data pointer |
1377,7 → 1391,7 |
mov eax,dword[ebp+8] |
|
;cycle to nodes |
mov edx,tl_data_nodes |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov ecx,edx |
add ecx,sizeof.TreeList |
@@: |
1407,7 → 1421,7 |
mov edi,dword[ebp+12] |
mov edx,dword[ebp+8] |
|
mov ecx,tl_data_nodes |
mov ecx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add ecx,sizeof.TreeList |
|
call tl_iterat_next_all |
1437,7 → 1451,7 |
cmp eax,2 |
jl @f |
xor ecx,ecx |
mov cx,tl_info_size |
mov cx,word[edi+4];info_size |
imul eax,ecx |
add eax,dword[edi] |
mov dword[ebp+12],eax ;return node data pointer |
1455,7 → 1469,7 |
push ecx edx |
;cycle to nodes |
xor eax,eax |
mov edx,tl_data_nodes |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov ecx,edx |
add ecx,sizeof.TreeList |
@@: |
1468,7 → 1482,7 |
jmp @b |
@@: |
mov eax,edx |
sub eax,tl_data_nodes |
sub eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
xor edx,edx |
mov ecx,sizeof.TreeList |
div ecx |
1484,7 → 1498,7 |
tl_get_node_index: ;áåðåò ïîçèöèþ óêàçàííîãî ñèìâîëà |
push ecx edx |
mov eax,edx |
sub eax,tl_data_nodes |
sub eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
xor edx,edx |
mov ecx,sizeof.TreeList |
div ecx |
1501,7 → 1515,7 |
cmp eax,2 |
jl @f |
imul eax,sizeof.TreeList |
add eax,tl_data_nodes |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,eax |
inc tl_ch_tim |
mov eax,tl_ch_tim |
1582,7 → 1596,7 |
push ecx edx |
;cycle to nodes |
xor eax,eax |
mov edx,tl_data_nodes |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov ecx,edx |
add ecx,sizeof.TreeList |
@@: |
1645,7 → 1659,7 |
cmp eax,2 ;êóðñîð ñòîèò íà óçëå ? |
jl @f |
imul eax,sizeof.TreeList |
add eax,tl_data_nodes |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
;eax = óêàçàòåëü íà ñòðóêòóðó óçëà âûáðàííîãî êóðñîðîì |
push dword edi |
push dword eax |
1678,7 → 1692,7 |
cmp eax,2 |
jl @f |
imul eax,sizeof.TreeList |
add eax,tl_data_nodes |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,eax |
inc word[edx+2] |
@@: |
1696,7 → 1710,7 |
cmp eax,2 |
jl @f |
imul eax,sizeof.TreeList |
add eax,tl_data_nodes |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,eax |
cmp word[edx+2],0 |
je @f |