View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000543 | Far Manager | Editor | public | 2008-06-03 22:52 | 2008-06-04 08:55 |
Reporter | Denis | Assigned To | vskirdin | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Fixed in Version | 1.80 alpha 1 | ||||
Summary | 0000543: Не освобождается память при прерывании операции открытия файла в редакторе | ||||
Description | Взято отсюда: http://forum.farmanager.com/viewtopic.php?p=33059#p33059 ============================== день добрый. Помоему не освобождается память при прерывании операции открытия файла в редакторе, наблюдается на больших файлах, например: если на большом файле (например на фильме 700Мб) на жать F4 (открыть во встроенном редакторе) и через некоторое время прервать операцию нажав Esc (и отвертив утвердительно на вопрос о прерывании операции), управление возвращается в панел ... а вот память которая успела выделиться для открытия не освобождается (видно в taskmanager-е). если повторять эту операцию (открыть-подождать-прервать) то вскором времени система будет ругаться на то, что нехватает памяти ... повторяется на: 1.71 alpha 4 (build 2368) 1.80 alpha 1 (build 491) ============================== | ||||
Additional Information | Патч для 1.80 | ||||
Tags | No tags attached. | ||||
Build | 492 | ||||
2008-06-03 22:52
|
filelist.diff (814 bytes)
Index: filelist.cpp =================================================================== --- filelist.cpp (revision 1695) +++ filelist.cpp (working copy) @@ -1332,8 +1332,16 @@ FrameManager->ExecuteModal();//OT } #else - ShellEditor->SetNamesList (&EditList); - FrameManager->ExecuteModal();//OT + if (ShellEditor->GetExitCode() == XC_LOADING_INTERRUPTED + || ShellEditor->GetExitCode() == XC_OPEN_ERROR) + { + delete ShellEditor; + } + else + { + ShellEditor->SetNamesList (&EditList); + FrameManager->ExecuteModal();//OT + } #endif } } |
|
в plugapi.cpp::FarEditor наверное тоже стоит поправить? (на предмет проверки XC_LOADING_INTERRUPTED) |
2008-06-04 01:17
|
plugapi.diff (624 bytes)
Index: plugapi.cpp =================================================================== --- plugapi.cpp (revision 1695) +++ plugapi.cpp (working copy) @@ -1890,7 +1890,7 @@ X1,Y1,X2,Y2, DeleteOnClose,OpMode); // �������� - �������� ���� �������� (����� ��������� XC_OPEN_ERROR - ��. ��� FileEditor::Init()) - if (Editor && Editor->GetExitCode() == XC_OPEN_ERROR) + if (Editor && (Editor->GetExitCode() == XC_OPEN_ERROR || Editor->GetExitCode() == XC_LOADING_INTERRUPTED)) { delete Editor; Editor=NULL; |
|
добавил патч |
|
В Far 1.71 ошибка тоже воспроизводится. |
|
> В Far 1.71 ошибка тоже воспроизводится. знаю. починим |
|
после 492/2369 |
|
Проверено на 492 |
Date Modified | Username | Field | Change |
---|---|---|---|
2008-06-03 22:52 | Denis | New Issue | |
2008-06-03 22:52 | Denis | Status | new => assigned |
2008-06-03 22:52 | Denis | Assigned To | => vskirdin |
2008-06-03 22:52 | Denis | File Added: filelist.diff | |
2008-06-04 00:39 | vskirdin | Note Added: 0001527 | |
2008-06-04 01:17 | Denis | File Added: plugapi.diff | |
2008-06-04 01:18 | Denis | Note Added: 0001530 | |
2008-06-04 01:20 | Denis | Note Added: 0001531 | |
2008-06-04 01:28 | vskirdin | Note Added: 0001532 | |
2008-06-04 01:44 | vskirdin | Note Added: 0001533 | |
2008-06-04 01:44 | vskirdin | Status | assigned => feedback |
2008-06-04 03:24 | Denis | Status | feedback => resolved |
2008-06-04 03:24 | Denis | Resolution | open => fixed |
2008-06-04 03:24 | Denis | Note Added: 0001538 | |
2008-06-04 08:52 | vskirdin | Build | => 492 |
2008-06-04 08:52 | vskirdin | Status | resolved => closed |
2008-06-04 08:55 | vskirdin | Fixed in Version | => 1.80 alpha 1 |