Obsah / Utility / TEXT / TextDetach, TextTerm
Zdrojový kód: INCLUDE\UTIL\TEXT.INC, UTIL\TEXT.ASM
TextDetach, TextTerm - Odpojení dat textového řetězce od proměnné textového řetězce, destrukce proměnné textového řetězce
Funkce TextDetach odpojí data textového řetězce od proměnné textového řetězce. Funkce TextTerm slouží k destrukci proměnné textového řetězce. Jedná se o totožné funkce, ale v budoucnu mohou být funkce odděleny.
|
Na vstupu funkce obsahuje registr EBX ukazatel na textovou proměnnou TEXT. Funkce pro připojení a odpojení dat (TextAttach a TextDetach) musí být spárovány, tj. počet připojení musí odpovídat počtu odpojení.
|
Funkce načte z proměnné textového řetězce EBX ukazatel na data textového řetězce do registru EAX. Kontrolou referenčního čítače se rozliší, zda jsou data textového řetězce konstantní. Pokud se jedná o konstantní text (nejvyšší bajt referenčního čítače má hodnotu 80h), referenční čítač nebude měněn a funkce se ukončí. Nejedná-li se o konstantní text, dekrementuje se referenční čítač dat textového řetězce. Dekrementace se provede s uzamknutím sběrnice procesoru instrukcí LOCK, čímž je ošetřena možnost souběhu více procesorů. Pokud referenční čítač dosáhl nuly, žádný další vlastník data textového řetězce již nevlastní a proto jsou zrušena pomocí makra TEXTBUFFREE.
Obsah / Utility / TEXT / TextDetach, TextTerm