после. Подебажить Фар я еще не пробовал, поэтому просто всухую по коду сделаю
предположение, что Фар не копирует мой текст, а сохраняет указатель, а потом,
вероятно, пытается его удалить, хотя ЭТОТ указатель удалять должен плагин.
Вот ключевые строки из 4-х функций, где протаскивается переданный мною
указатель на строку и сохраняется живьем без копирования данных как
Item[PosAdd]->strName:
Code: Select all
case DM_LISTINSERT: // Param1=ID Param2=FarListInsert
..
if((Ret=ListBox->InsertItem((struct FarListInsert *)Param2)) == -1)
int VMenu::InsertItem(const struct FarListInsert *NewItem)
..
if (AddItem(FarList2MenuItem(&NewItem->Item,&MItem),NewItem->Index) >= 0)
struct MenuItemEx *VMenu::FarList2MenuItem(const FarListItem *FItem,
..
MItem->strName = FItem->Text;
int VMenu::AddItem(const MenuItemEx *NewItem,int PosAdd)
..
Item[PosAdd]->strName = NewItem->strName;