View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002330 | Far Manager | Plugins API | public | 2013-03-07 18:52 | 2013-03-14 19:13 |
Reporter | sonar | Assigned To | DrKnS | ||
Priority | normal | Severity | major | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0002330: утечки памяти UserData при работе с AnalyseW | ||||
Description | описание на примере плагина EventViewer (исходники http://code.google.com/p/evil-programmers/source/checkout), собранная библиотека в атаче плагин создает виртуальную файловую панель. для элементов панели заполняется UserData.Data и UserData.FreeData вызываем плагин из меню или командной строки. заходим в одну из "подпапок" , затем выходим. для элементов панели вызывается функция, указанная в UserData.FreeData. предварительно в плагине делаем копию одной из "папок" кнопкой F5. создается файл с расширением evt. Если зайти в этот файл по Enter срабатывает механизм работы Analyse. плагин открывает панель с файлами. при выходе из панели не вызывается функция, указанная в UserData.FreeData. данные не очищаются. происходит утечка. Причина в filelist.cpp не срабатывает проверка if (this->PanelMode == PLUGIN_PANEL && i->Callback) в данном случае PanelMode=NORMAL_PANEL . | ||||
Tags | No tags attached. | ||||
Build | 3243 | ||||
|
|
|
Интересно, а такой патч подойдёт? if (i->Callback) |
|
думаю , что не подойдет. почему то PanelMode=NORMAL_PANEL, это главная проблема. тут все таки PLUGIN_PANEL |
|
Так оставить от if (this->PanelMode == PLUGIN_PANEL && i->Callback) только if (i->Callback) |
|
Попробуйте так: Index: flplugin.cpp =================================================================== --- flplugin.cpp (revision 9801) +++ flplugin.cpp (working copy) @@ -74,6 +74,8 @@ int FileList::PopPlugin(int EnableRestoreViewMode) { + DeleteListData(ListData); + OpenPanelInfo Info={}; if (PluginsList.empty()) Index: flupdate.cpp =================================================================== --- flupdate.cpp (revision 9801) +++ flupdate.cpp (working copy) @@ -652,7 +652,6 @@ if (!Global->CtrlObject->Plugins->GetFindData(hPlugin,&PanelData,&PluginFileCount,0)) { - DeleteListData(ListData); PopPlugin(TRUE); Update(KeepSelection); |
|
так утечек нет. |
|
Я догадываюсь, что нет. Больше интересует, не сломалось ли что-нибудь. |
|
Пока ничего не упало. |
|
у меня ничего не падало. и все же, не странно ли, что плагинновая панель имеет значение PanelMode=NORMAL_PANEL ? |
|
> и все же, не странно ли, что плагинновая панель имеет значение PanelMode=NORMAL_PANEL ? Элементы плагинового списка удалялись уже после перехода панели в обычный режим. Патч, который выше, как раз это и лечит. |
|
ну тогда в ночную сборку, и на кошках ... -) после исправлений интеловский аналайзер по плагину ничего не показал. а по фару есть всякие хэндлы. больше всего на sqllite. выделенная им память не подчищалась при выходе. вроде память на prepare селектов. но это отдельный разговор. |
|
> но это отдельный разговор. заведи баг, это тоже интересно. Особенно если не sqlite, а наш код. |
|
3243 |
|
все отлично |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-03-07 18:52 | sonar | New Issue | |
2013-03-07 18:52 | sonar | File Added: ntevent.7z | |
2013-03-08 17:37 | Denis | Note Added: 0010485 | |
2013-03-09 04:50 | sonar | Note Added: 0010486 | |
2013-03-12 21:40 | Denis | Note Added: 0010491 | |
2013-03-12 22:33 | DrKnS | Note Added: 0010492 | |
2013-03-13 01:42 | sonar | Note Added: 0010493 | |
2013-03-13 09:30 | DrKnS | Note Added: 0010495 | |
2013-03-13 09:34 | Denis | Note Added: 0010496 | |
2013-03-13 11:02 | sonar | Note Added: 0010497 | |
2013-03-13 11:07 | DrKnS | Note Added: 0010498 | |
2013-03-13 11:32 | sonar | Note Added: 0010499 | |
2013-03-13 11:46 | DrKnS | Note Added: 0010500 | |
2013-03-13 15:54 | alexy | Assigned To | => DrKnS |
2013-03-13 15:54 | alexy | Status | new => assigned |
2013-03-13 19:19 | DrKnS | Note Added: 0010513 | |
2013-03-13 19:19 | DrKnS | Status | assigned => feedback |
2013-03-14 03:27 | sonar | Note Added: 0010517 | |
2013-03-14 03:27 | sonar | Status | feedback => assigned |
2013-03-14 19:13 | DrKnS | Build | => 3243 |
2013-03-14 19:13 | DrKnS | Status | assigned => closed |
2013-03-14 19:13 | DrKnS | Resolution | open => fixed |
2013-03-14 19:13 | DrKnS | Fixed in Version | => 3.0 |