Obsah / Utility / HASH / Zrušení položky ze seznamu
Zdrojový kód: INCLUDE\UTIL\HASH.INC, UTIL\HASH.ASM
Zrušení položky ze seznamu
|
Při zrušení položky ze seznamu je funkci HashDel předán v registru EAX ukazatel na rušenou položku (resp. ukazatel na popisovač hashovaného seznamu v položce).
Nejdříve jsou uchovány registry EBX a ECX. Poté je do registru ECX načten z rušené položky ukazatel na následující položku (ukazatel může být nulový) a do registru EBX ukazatel na předcházející položku (může jí být záhlaví).
Nyní je potřeba vzájemně propojit předcházející a následující položku. Do proměnné HASHE_Next předcházející položky je uložen ukazatel na následující položku. Předcházející položkou může být záhlaví seznamu, v tom případě bude ukazatel uložen do proměnné HASHH_First záhlaví seznamu a následující položka se stane novou první položkou seznamu. Pokud nenásleduje žádná další položka (tj. ukazatel na následující položku, který je v registru ECX, je nulový), přeskočí se operace nastavení ukazatele do následující položky. Jinak se do proměnné HASHE_Prev následující položky uloží ukazatel na předcházející položku (nebo na záhlaví seznamu).
Obsah / Utility / HASH / Zrušení položky ze seznamu