View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002181 | Far Manager | Viewer | public | 2012-10-31 14:13 | 2013-01-15 08:48 |
Reporter | zg | Assigned To | 2useven10 | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Windows | OS Version | 2008 SP2 |
Product Version | 3.0 | ||||
Target Version | 3.0 | Fixed in Version | 3.0 | ||
Summary | 0002181: падение после VE_READ. | ||||
Description | в атаче плагин. запускаем фар с плагином, на любом файле ctrlq, появится диалог, в нём нажимаем любую клавишу на которой не висит макрос и которая не имеет специального значения, например f12, фар падает. (проверялись gcc/vc release/vc debug. vc debug должна падать 100%.) причины: объект Viewer удаляется внутри вызова CtrlObject->Plugins->ProcessViewerEvent(VE_READ,nullptr,ViewerID) и дальнейшие выполнение Viewer::OpenFile приводит к падению. | ||||
Tags | No tags attached. | ||||
Build | 2915 | ||||
|
|
|
и какие претензии к вьюверу ? |
|
падает. |
|
ну, наверное, можно сделать, чтобы он немного подержал себя за волосы, когда из под него стул выдернули. но тогда вполне может упасть QuickView, тоже дилитнутый к тому времени. вообще ситуация абсурдная, когда во время выполнения метода класса сам класс уничтожают. |
|
сделал, падает теперь ScreenObject. причина та же. может все-таки плагину не стоит так себя вести? |
|
как так? плагин вызывает абсолютно легальные апи с абсолютно легальными параметрами. |
|
для меня это малознакомая область, так что судить, что здесь легально и правильно не могу. но (как я вижу) происходит следующее: плагин получает эвент VE_READ в контексте метода QuickView::ShowObject(), посылает клавишу CtrlQ в FilePanels, что вызывает удаление объекта QuickView. При этом даже не утруждая себя, или не имея механизма, известить QuckView, что его больше нет. Может это и легально, но imho совершенно неправильно. |
|
то что ты описал, работает и не падает. в плагине немного другой код. |
|
ну если всё легально, пробуем - 2915 |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-10-31 14:13 | zg | New Issue | |
2012-10-31 14:13 | zg | File Added: testviewer.7z | |
2012-10-31 16:08 | 2useven10 | Note Added: 0009686 | |
2012-10-31 17:33 | zg | Note Added: 0009687 | |
2012-10-31 18:21 | 2useven10 | Note Added: 0009689 | |
2012-10-31 18:53 | 2useven10 | Note Added: 0009690 | |
2012-10-31 18:57 | 2useven10 | Note Edited: 0009689 | |
2012-10-31 19:21 | zg | Note Added: 0009691 | |
2012-10-31 20:02 | 2useven10 | Note Added: 0009692 | |
2012-10-31 20:09 | zg | Note Added: 0009693 | |
2012-11-01 08:56 | 2useven10 | Note Added: 0009694 | |
2012-11-01 08:56 | 2useven10 | Assigned To | => 2useven10 |
2012-11-01 08:56 | 2useven10 | Status | new => feedback |
2013-01-15 08:48 | 2useven10 | Build | => 2915 |
2013-01-15 08:48 | 2useven10 | Status | feedback => closed |
2013-01-15 08:48 | 2useven10 | Resolution | open => fixed |
2013-01-15 08:48 | 2useven10 | Fixed in Version | => 3.0 |