PluginPanelItem.UserData и FARPANELITEMFREECALLBACK

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
artemsen
Posts: 752
Joined: Sun 07 Feb, 2010 08:55
Been thanked: 4 times

PluginPanelItem.UserData и FARPANELITEMFREECALLBACK

Post by artemsen »

На последней версии (возможно раньше) стал падать мой плагин PortaDev при рекурсивном копировании с устройства на локальный диск. При дебаге нашел странный момент - стандартная функция GetPluginDirList считывает каталоги на моём устройстве и вызывает FARPANELITEMFREECALLBACK, в итоге я имею невалидные указатели в PluginPanelItem.UserData.Data.
Это баг или я что-то упустил? В текущей документации описание довольно скудное
...когда UserData.Data указывает на структуру данных и требуется её освобождение, то плагин должен определить функцию UserData.FreeData, используемую Far Manager'ом для освобождения занятых ресурсов.
и из него не понятно, в какой момент будет освобождена память.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: PluginPanelItem.UserData и FARPANELITEMFREECALLBACK

Post by NightRoman »

По задумке, когда Фар больше не держит у себя элемент панели плагина. То есть совсем в самый последний момент. Это может быть и не скоро, например, при поиске для каких-то элементов вызывается быстро (не попавшие под фильтр), а для каких-то позже, когда закроется диалог результатов поиска. Но это задумка, а фича-то новая, могут быть и баги. Когда я начал пробовать ее в плагине, пара нашлась сразу, zg исправил.

Тема целая есть http://forum.farmanager.com/viewtopic.php?f=8&t=6176
Post Reply

Return to “Разработка плагинов”