View Issue Details

IDProjectCategoryView StatusLast Update
0000543Far ManagerEditorpublic2008-06-04 08:55
ReporterDenis Assigned Tovskirdin  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version1.80 alpha 1 
Summary0000543: Не освобождается память при прерывании операции открытия файла в редакторе
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
TagsNo tags attached.
Build492

Activities

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
               }
             }
filelist.diff (814 bytes)   

vskirdin

2008-06-04 00:39

administrator   bugnote:0001527

в 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;
plugapi.diff (624 bytes)   

Denis

2008-06-04 01:18

reporter   bugnote:0001530

добавил патч

Denis

2008-06-04 01:20

reporter   bugnote:0001531

В Far 1.71 ошибка тоже воспроизводится.

vskirdin

2008-06-04 01:28

administrator   bugnote:0001532

> В Far 1.71 ошибка тоже воспроизводится.
знаю. починим

vskirdin

2008-06-04 01:44

administrator   bugnote:0001533

после 492/2369

Denis

2008-06-04 03:24

reporter   bugnote:0001538

Проверено на 492

Issue History

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