1,12 → 1,23 |
; ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
; ýëåìåíò TreeList äëÿ Kolibri OS |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 20.11.2009 IgorA |
; ôàéë ïîñëåäíèé ðàç èçìåíÿëñÿ 23.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] ;óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè) |
21,7 → 32,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] ;óêàçàòåëü íà ôóíêöèþ ïåðåðèñîâûâàþùóþ ñêðîëëèíã |
32,49 → 43,15 |
tl_draw_par_line equ 10b ;ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó |
tl_list_box_mode equ 100b ;ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå îäíîãî óðîâíÿ) |
|
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 |
;data_info dd ? ;+ 0 óêàçàòåëü íà îñíîâíûå äàíûå |
;info_max_count dd ? ;+ 6 ìàêñèìàëüíîå êîëëè÷åñòâî ñòðóêòóð |
;data_img dd ? ;+18 óêàçàòåëü íà èçîáðàæåíèÿ |
;ls_tim dd ? ;+34 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
;on_activate dd ? ;+92 óêàçàòåëü íà ôóíêöèþ ïðè àêòèâèðîâàíèè óçëà |
|
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,fun_enter { |
el_focus, p_scrol,p_sb_draw,on_press { |
.data_info dd 0 |
.info_size dw info_size |
.info_max_count dd info_max_count |
101,7 → 78,7 |
.p_scrol dd p_scrol |
.p_sb_draw dd p_sb_draw |
.on_activate dd 0 |
.on_press dd fun_enter |
.on_press dd on_press |
} |
|
;----------------------------------------------------------------------------- |
144,7 → 121,7 |
mov edi,dword[ebp+8] |
|
xor ecx,ecx |
mov cx,word[edi+4] |
mov cx,tl_info_size |
imul ecx,dword[edi+6] |
call mem_Alloc |
mov dword[edi],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
154,7 → 131,7 |
mov ecx,sizeof.TreeList |
imul ecx,dword[edi+6] |
call mem_Alloc |
mov dword[edi+14],eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
mov tl_data_nodes,eax ;êîïèðóåì óêàçàòåëü íà ïîëó÷åíóþ ïàìÿòü â ñòðóêòóðó |
|
push dword edi |
call tl_info_clear |
202,7 → 179,7 |
mov ecx,dword[edi] |
call mem_Free |
|
mov ecx,dword[edi+14] |
mov ecx,tl_data_nodes |
call mem_Free |
pop edi ecx |
pop ebp |
221,13 → 198,13 |
;xor ecx,ecx |
mov ecx,sizeof.TreeList |
imul ecx,dword[edi+6] |
mov eax,dword[edi+14] |
mov eax,tl_data_nodes |
@@: |
mov byte[eax],0 ;÷èñòèì óçëû 0-ìè |
inc eax |
loop @b |
mov eax,dword[edi+14] ;óêàçàòåëü íà 1-é óçåë |
mov dword[eax+8],1 ;óêàçàòåëü next â 1-ì óçëå ïðèðàâíèâàåì ê 1 |
mov eax,tl_data_nodes ;óêàçàòåëü íà 0-é óçåë |
mov dword[eax+8],1 ;óêàçàòåëü next â 0-ì óçëå ïðèðàâíèâàåì ê 1 |
call tb_scrol_resize ;îáðàáîòêà ñêðîëëèíãà |
pop edi ecx eax |
pop ebp |
314,9 → 291,6 |
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 |
342,6 → 316,9 |
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 |
366,10 → 343,13 |
mov eax,ecx ;åñëè êóðñîð íå âûøåë çà ïðåäåëû óçëîâ, âîññòàíàâëèâàåì ñòàðîå çíà÷åíèå eax |
@@: |
|
mov ebx,0x80000000 ;ñòàâèì ôëàã äëÿ âûõîäà áåç îáíîâëåíèÿ |
cmp eax,tl_cur_pos ;åñëè íîâîå çíà÷åíèå êóðñîðà ñîâïàëî ñ ïðåäûäóùèì |
je @f ;òî ìîæåì âûéòè áåç îáíîâëåíèÿ îêíà |
xor ebx,ebx |
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 |
@@: |
|
mov tl_cur_pos,eax |
379,7 → 359,7 |
cmp eax,2 |
jl .no_open_close ;êóðñîð ñòîèò íà ïóñòîì ìåñòå, áåç óçëîâ |
imul eax,sizeof.TreeList |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add eax,tl_data_nodes |
xor bx,bx |
mov bl,byte[eax+2] ;+2 lev ñîõðàíÿåì óðîâåíü òåêóùåãî óçëà |
inc bx ;+ ïîëå äëÿ êóðñîðà |
399,13 → 379,14 |
call tl_node_close_open |
.no_open_close: |
|
bt ebx,31 |
jc .no_draw |
push dword edi |
call tl_draw |
mov esi,tl_box_top |
add esi,tl_box_height ;esi = coord bottom border |
call tl_draw_cursor ;ïåðåðèñîâêà êóðñîðà |
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: |
|
456,10 → 437,10 |
jl .no_work |
|
push eax ebx ecx edx |
mov edx,dword[edi+14] |
mov edx,tl_data_nodes |
mov ecx,edx |
add ecx,sizeof.TreeList |
call tl_move_next ;long i=tex[0].next; |
call tl_move_next ;long i=node[0].next; |
mov eax,tl_tim_undo |
sub tl_ch_tim,eax ;ch_tim-=tim_undo; |
mov eax,tl_ch_tim |
470,7 → 451,7 |
cmp edx,ecx |
jle @f |
|
;if(tex[i].tc>ch_tim){ // åñëè ñîçäàíèå ñèìâîëà áûëî îòìåíåíî |
;if(node[i].tc>ch_tim){ // åñëè ñîçäàíèå ñèìâîëà áûëî îòìåíåíî |
cmp dword[edx+12],eax |
jle .no_u1 |
mov dword[edx+12],0 |
478,19 → 459,19 |
|
mov ebx, dword[edx+4] |
imul ebx,sizeof.TreeList |
add ebx, dword[edi+14] ;.next |
push dword[edx+8] ;tex[tex[i].perv].next=tex[i].next; |
add ebx, tl_data_nodes ;.next |
push dword[edx+8] ;node[node[i].perv].next=node[i].next; |
pop dword[ebx+8] |
|
mov ebx, dword[edx+8] |
imul ebx,sizeof.TreeList |
add ebx, dword[edi+14] ;.perv |
push dword[edx+4] ;tex[tex[i].next].perv=tex[i].perv; |
add ebx, tl_data_nodes ;.perv |
push dword[edx+4] ;node[node[i].next].perv=node[i].perv; |
pop dword[ebx+4] |
|
.no_u1: |
|
;else if(tex[i].td>ch_tim) tex[i].td=0; // åñëè óäàëåíèå ñèìâîëà áûëî îòìåíåíî |
;else if(node[i].td>ch_tim) node[i].td=0; // åñëè óäàëåíèå ñèìâîëà áûëî îòìåíåíî |
cmp dword[edx+16],eax |
jle .no_u2 |
mov dword[edx+16],0 |
588,7 → 569,7 |
|
;cycle to nodes |
xor eax,eax |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,tl_data_nodes |
mov ecx,edx |
add ecx,sizeof.TreeList |
|
750,7 → 731,7 |
tl_move_next: |
mov edx,dword[edx+8] |
imul edx,sizeof.TreeList |
add edx,dword[edi+14] |
add edx,tl_data_nodes |
ret |
|
;input: |
762,7 → 743,7 |
tl_move_perv: |
mov edx,dword[edx+4] |
imul edx,sizeof.TreeList |
add edx,dword[edi+14] |
add edx,tl_data_nodes |
ret |
|
;input: |
770,12 → 751,12 |
; edi = pointer to 'TreeList' struct |
;output: |
; al = 1 if sumbol not visible |
; (tex[i].td+tim_Undo<=ch_tim && tex[i].td) || (tex[i].tc>ch_tim-tim_Undo) |
; (node[i].td+tim_Undo<=ch_tim && node[i].td) || (node[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=tex[i].td |
mov eax,dword[edx+16] ;eax=node[i].td |
add eax,tl_tim_undo |
cmp eax,tl_ch_tim |
jg @f |
986,7 → 967,7 |
@@: |
|
mov al,byte[edx+2] ;draw minus '-' |
mov ecx,dword[edi+14] |
mov ecx,tl_data_nodes |
add ecx,sizeof.TreeList |
|
mov ah,10 ;get icon index '+' or '-' ? |
1128,7 → 1109,7 |
push ebx ecx edx esi |
|
xor esi,esi |
mov si,word[edi+4];info_size |
mov si,tl_info_size |
cmp esi,tl_info_capt_offs |
jle @f ;if caption size <= 0 |
|
1220,11 → 1201,11 |
|
mov ebx,sizeof.TreeList |
imul ebx,dword[edi+6] ;+6 ìàêñ. êîëè÷åñòâî óçëîâ |
add ebx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add ebx,tl_data_nodes |
;-- |
call tl_get_cur_node_index ;eax=po_t |
imul eax,sizeof.TreeList |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add eax,tl_data_nodes |
mov edx,eax |
call tl_move_perv |
call tl_get_node_index ;eax = index of pointer [edx] |
1231,8 → 1212,8 |
;-- |
mov edx,sizeof.TreeList |
shl edx,1 |
add edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
@@: ;for(i=2;i<texMax;i++) |
add edx,tl_data_nodes |
@@: ;for(i=2;i<nodeMax;i++) |
cmp dword [edx+12],0 |
jne .u0 |
cmp dword [edx+16],0 |
1242,6 → 1223,11 |
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; |
1248,7 → 1234,7 |
;*** copy node data *** |
push esi |
xor ecx,ecx |
mov cx,word[edi+4];info_size |
mov cx,tl_info_size |
mov esi,ecx |
|
push eax |
1263,7 → 1249,7 |
mov esi,edi |
mov edi,dword[ebp+16] ;restore edi |
mov ecx,tl_info_capt_offs |
cmp cx,word[edi+4] ;+4 info_size |
cmp cx,tl_info_size |
jge .no_text_data |
dec esi |
mov byte[esi],0 |
1272,9 → 1258,9 |
|
mov ecx,eax |
imul ecx,sizeof.TreeList |
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; |
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; |
pop dword [edx+8] |
|
call tl_get_node_index ;*** eax = i *** |
1281,11 → 1267,11 |
cmp eax,dword[edi+6] ;info_max_count |
jge .u0 |
|
mov [ecx],eax ;tex[po_t].next=i; // ññûëêè ïåðåíàïðàâëÿåì |
mov ecx,[edx+8] ; *** ecx = tex[i].next *** |
mov [ecx],eax ;node[po_t].next=i; // ññûëêè ïåðåíàïðàâëÿåì |
mov ecx,[edx+8] ; *** ecx = node[i].next *** |
imul ecx,sizeof.TreeList |
add ecx,dword[edi+14] ; *** ecx = tex[tex[i].next] *** |
mov [ecx+4],eax ;tex[tex[i].next].perv=i; |
add ecx,tl_data_nodes ; *** ecx = node[node[i].next] *** |
mov [ecx+4],eax ;node[node[i].next].perv=i; |
|
call tb_scrol_resize ;îáðàáîòêà ñêðîëëèíãà |
jmp @f |
1336,7 → 1322,7 |
cmp eax,2 |
jl @f |
xor ecx,ecx |
mov cx,word[edi+4];info_size |
mov cx,tl_info_size |
imul eax,ecx |
add eax,dword[edi] |
mov edi,eax |
1346,7 → 1332,7 |
mov esi,edi |
mov edi,dword[ebp+12] ;restore edi |
mov ecx,tl_info_capt_offs |
cmp cx,word[edi+4] ;+4 info_size |
cmp cx,tl_info_size |
jge .no_text_data |
dec esi |
mov byte[esi],0 |
1370,7 → 1356,7 |
cmp eax,2 |
jl @f |
xor ecx,ecx |
mov cx,word[edi+4];info_size |
mov cx,tl_info_size |
imul eax,ecx |
add eax,dword[edi] |
mov dword[ebp+8],eax ;return node data pointer |
1391,7 → 1377,7 |
mov eax,dword[ebp+8] |
|
;cycle to nodes |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,tl_data_nodes |
mov ecx,edx |
add ecx,sizeof.TreeList |
@@: |
1421,7 → 1407,7 |
mov edi,dword[ebp+12] |
mov edx,dword[ebp+8] |
|
mov ecx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov ecx,tl_data_nodes |
add ecx,sizeof.TreeList |
|
call tl_iterat_next_all |
1451,7 → 1437,7 |
cmp eax,2 |
jl @f |
xor ecx,ecx |
mov cx,word[edi+4];info_size |
mov cx,tl_info_size |
imul eax,ecx |
add eax,dword[edi] |
mov dword[ebp+12],eax ;return node data pointer |
1469,7 → 1455,7 |
push ecx edx |
;cycle to nodes |
xor eax,eax |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,tl_data_nodes |
mov ecx,edx |
add ecx,sizeof.TreeList |
@@: |
1482,7 → 1468,7 |
jmp @b |
@@: |
mov eax,edx |
sub eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
sub eax,tl_data_nodes |
xor edx,edx |
mov ecx,sizeof.TreeList |
div ecx |
1498,7 → 1484,7 |
tl_get_node_index: ;áåðåò ïîçèöèþ óêàçàííîãî ñèìâîëà |
push ecx edx |
mov eax,edx |
sub eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
sub eax,tl_data_nodes |
xor edx,edx |
mov ecx,sizeof.TreeList |
div ecx |
1515,7 → 1501,7 |
cmp eax,2 |
jl @f |
imul eax,sizeof.TreeList |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add eax,tl_data_nodes |
mov edx,eax |
inc tl_ch_tim |
mov eax,tl_ch_tim |
1596,7 → 1582,7 |
push ecx edx |
;cycle to nodes |
xor eax,eax |
mov edx,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
mov edx,tl_data_nodes |
mov ecx,edx |
add ecx,sizeof.TreeList |
@@: |
1659,7 → 1645,7 |
cmp eax,2 ;êóðñîð ñòîèò íà óçëå ? |
jl @f |
imul eax,sizeof.TreeList |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add eax,tl_data_nodes |
;eax = óêàçàòåëü íà ñòðóêòóðó óçëà âûáðàííîãî êóðñîðîì |
push dword edi |
push dword eax |
1692,7 → 1678,7 |
cmp eax,2 |
jl @f |
imul eax,sizeof.TreeList |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add eax,tl_data_nodes |
mov edx,eax |
inc word[edx+2] |
@@: |
1710,7 → 1696,7 |
cmp eax,2 |
jl @f |
imul eax,sizeof.TreeList |
add eax,dword[edi+14] ;+14 óêàçàòåëü íà ñòðóêòóðû óçëîâ |
add eax,tl_data_nodes |
mov edx,eax |
cmp word[edx+2],0 |
je @f |