View Issue Details

IDProjectCategoryView StatusLast Update
0001428Far ManagerPlugins APIpublic2010-07-14 20:21
ReporterMaximus Assigned Toalexy  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS VersionXP SP2
Product Version2.0 
Fixed in Version2.0 
Summary0001428: Падение при 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++
TagsNo tags attached.
Build1612

Activities

Maximus

2010-07-07 20:30

reporter  

100707fl.diff.7z (431 bytes)

alexy

2010-07-07 21:16

administrator   bugnote:0005560

1607

alexy

2010-07-08 17:15

administrator   bugnote:0005566

1612

Issue History

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