View Issue Details

IDProjectCategoryView StatusLast Update
0000782Far ManagerPanelpublic2009-03-13 18:25
Reporteralexeypa Assigned Toalexy  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Fixed in Version2.0 
Summary0000782: FileList::ProcessEnter падает после ChangeDir.
DescriptionRepro:

1. Запустить Far 2.0. x64 под AppVerifier.
2. cd \\network\share
3. Перейти в родительский каталог.

Проблема в том, что после вызова ChangeDir в FileList::ProcessEnter, this может быть уже удалён. Прикрепленный патч это дело исправляет. 0001--this-cannot-be-used-after-ChangeDir-was-called.-Fi.patch
TagsNo tags attached.
Build823

Relationships

has duplicate 0000743 closed Крэш после использования Ctrl-H в модуле network 
has duplicate 0000734 closed FAR падает при работе с сетью 

Activities

2009-03-12 02:51

 

0001--this-cannot-be-used-after-ChangeDir-was-called.-Fi.patch (1,027 bytes)   
From f6c6bc7248793371650f2202b759ca109f4890c7 Mon Sep 17 00:00:00 2001
From: Alexey Pakhunov <alexeypa@gmail.com>
Date: Wed, 11 Mar 2009 13:06:59 -0700
Subject: [PATCH 1/2] "this" cannot be used after ChangeDir was called. FileList can be deleted by that time.

---
 unicode_far/filelist.cpp |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/unicode_far/filelist.cpp b/unicode_far/filelist.cpp
index f80094a..5d88a7c 100644
--- a/unicode_far/filelist.cpp
+++ b/unicode_far/filelist.cpp
@@ -1982,8 +1982,10 @@ void FileList::ProcessEnter(int EnableExec,int SeparateWindow)
       }
       else
         res=ChangeDir(CurPtr->strShortName);
-      CtrlObject->Cp()->ActivePanel->Show();
-      if(CheckFullScreen!=IsFullScreen())
+      
+      Panel* ActivePanel = CtrlObject->Cp()->ActivePanel;
+      ActivePanel->Show();
+      if(CheckFullScreen!=ActivePanel->ViewSettings.FullScreen)
       {
         CtrlObject->Cp()->GetAnotherPanel(this)->Show();
       }
-- 
1.6.2.1217.gd7bc3

alexy

2009-03-12 05:53

administrator   bugnote:0002752

А там последняя строка:
CtrlObject->Cp()->GetAnotherPanel(this)->Show();

там уже this валиден? Падать оно не будет там но тоже не хорошо.

alexy

2009-03-12 05:58

administrator   bugnote:0002753

И там ещё в файле есть пару мест с ChangeDir которые наверно нужно также поправить.

alexeypa

2009-03-12 06:35

reporter   bugnote:0002754

> там уже this валиден? Падать оно не будет там но тоже не хорошо.
> И там ещё в файле есть пару мест с ChangeDir которые наверно нужно также поправить.

Точно. Завтра поправлю.

alexy

2009-03-12 18:33

administrator   bugnote:0002766

Нестрашно, я сам доделаю. Всеровно и в 1.75 надо править это.

alexy

2009-03-13 14:23

administrator   bugnote:0002780

823

Issue History

Date Modified Username Field Change
2009-03-12 02:51 alexeypa New Issue
2009-03-12 02:51 alexeypa File Added: 0001--this-cannot-be-used-after-ChangeDir-was-called.-Fi.patch
2009-03-12 05:53 alexy Note Added: 0002752
2009-03-12 05:58 alexy Note Added: 0002753
2009-03-12 06:35 alexeypa Note Added: 0002754
2009-03-12 06:43 alexy Status new => assigned
2009-03-12 06:43 alexy Assigned To => alexy
2009-03-12 15:59 DrKnS Relationship added duplicate of 0000734
2009-03-12 18:33 alexy Note Added: 0002766
2009-03-12 18:53 alexy Relationship added has duplicate 0000743
2009-03-12 19:16 alexy Relationship deleted 0000734
2009-03-12 19:17 alexy Relationship added has duplicate 0000734
2009-03-13 14:23 alexy Note Added: 0002780
2009-03-13 14:23 alexy Status assigned => feedback
2009-03-13 16:24 alexeypa Status feedback => resolved
2009-03-13 16:24 alexeypa Resolution open => fixed
2009-03-13 18:25 alexy Build => 823
2009-03-13 18:25 alexy Status resolved => closed
2009-03-13 18:25 alexy Fixed in Version => 2.0