View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001428 | Far Manager | Plugins API | public | 2010-07-07 20:30 | 2010-07-14 20:21 |
Reporter | Maximus | Assigned To | alexy | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | XP SP2 |
Product Version | 2.0 | ||||
Fixed in Version | 2.0 | ||||
Summary | 0001428: Падение при FCTL_SETNUMERICSORT | ||||
Description | Причина - CurFile оказывается больше FileCount, а это не проверяется (CurFile еще не сброшен). | ||||
Steps To Reproduce | Фар получил от панельного плагина список папок/файлов (например 1000). Пользователь входит в папку (например последниюю). Фар опять получает список папок/файлов. Теперь их намного меньше (10). GetFindDataW успешно отработала. Фар вызывает GetOpenPluginInfoW, а плагин из нее вызывает psi.Control(hPlugin, FCTL_SETNUMERICSORT, 0, NULL); Фар успешно падает при попытке сохранить позицию strCurName = ListData[CurFile]->strName; т.к. FileList::ChangeDir еще до конца не отработал и CurFile еще не обновлен. | ||||
Additional Information | Стек вызовов. far.exe!FileList::SortFileList(int KeepPosition=1) Line 314 C++ far.exe!FileList::ChangeNumericSort(int Mode=0) Line 3166 + 0x14 bytes C++ far.exe!Panel::SetPluginCommand(int Command=19, int Param1=0, long Param2=0) Line 2093 + 0x16 bytes C++ far.exe!FarControl(void * hPlugin=0x02a521a0, int Command=19, int Param1=0, long Param2=0) Line 1420 + 0x14 bytes C++ RegEditorW.dll!REPlugin::ChangeFarSorting(bool abFastAccess=false) Line 389 + 0x14 bytes C++ RegEditorW.dll!GetOpenPluginInfoW(void * hPlugin=0x02a521a0, OpenPluginInfo * Info=0x0012a384) Line 876 C++ far.exe!PluginW::GetOpenPluginInfo(void * hPlugin=0x02a521a0, OpenPluginInfo * pInfo=0x0012a384) Line 1203 + 0x9b bytes C++ far.exe!PluginManager::GetOpenPluginInfo(void * hPlugin=0x01643f40, OpenPluginInfo * Info=0x0012a384) Line 1220 + 0x24 bytes C++ far.exe!FileList::ReadDiz(PluginPanelItem * ItemList=0x02a5eb98, int ItemLength=1, unsigned long dwFlags=1) Line 872 C++ far.exe!FileList::UpdatePlugin(int KeepSelection=0, int IgnoreVisible=0) Line 826 + 0x22 bytes C++ far.exe!FileList::Update(int Mode=0) Line 93 C++ far.exe!FileList::ChangeDir(const wchar_t * NewDir=0x032ce6d8, int IsUpdated=1) Line 2628 + 0x11 bytes C++ | ||||
Tags | No tags attached. | ||||
Build | 1612 | ||||
Date Modified | Username | Field | Change |
---|---|---|---|
2010-07-07 20:30 | Maximus | New Issue | |
2010-07-07 20:30 | Maximus | File Added: 100707fl.diff.7z | |
2010-07-07 21:11 | alexy | Assigned To | => alexy |
2010-07-07 21:11 | alexy | Status | new => assigned |
2010-07-07 21:16 | alexy | Note Added: 0005560 | |
2010-07-07 21:16 | alexy | Status | assigned => feedback |
2010-07-08 17:15 | alexy | Note Added: 0005566 | |
2010-07-14 20:21 | alexy | Build | => 1612 |
2010-07-14 20:21 | alexy | Status | feedback => closed |
2010-07-14 20:21 | alexy | Resolution | open => fixed |
2010-07-14 20:21 | alexy | Fixed in Version | => 2.0 |