◀Unicode版開発トップへ
  • 298 Commit報告:(Fix) CEditAppの解放忘れ修正
    • 303 Re:Commit報告:(Fix) CEditAppの解放忘れ修正
      • 307 Re2:Commit報告:(Fix) CEditAppの解放忘れ修正
  • [298] Commit報告:(Fix) CEditAppの解放忘れ修正 kobake 2008年04月20日 12:25

    リビジョン:
     rev1287

    変更種別:
     バグ修正。(ユーザ視点では変化無し)

    内容:
     アプリ終了時に CEditApp を解放するのを忘れていたので、解放するように修正。

    メモリをはじめとする消費リソースは、アプリ終了時にOSが勝手に解放してくれるので、
    なんとか大丈夫な状態でした。
    が、明示的に解放しないと気分的に気持ち悪いので、修正。
    • [303] Re:Commit報告:(Fix) CEditAppの解放忘れ修正 Uchi 2008年04月20日 16:11

      ▼ kobakeさん
      > リビジョン:
      >  rev1287
      不具合報告をさせていただきます。
      1) Grep で『ファイル毎』を指定した結果の『ファイル名』(行ではなく)をダブルクリックすると、ディレクトリ指定部が重複したファイルを開こうとし、
      上記ファイル名は不正です。…
      のエラーメッセージが表示されます。
      (行のダブルクリックはOKです)
      2) Grepで『オプション』(『単語単位で探す』等)の設定が利かない。
      Grep画面内でのGrepは問題なし。他のファイルからのGrepで発生する。
      Grep 呼び出しのとき -GOPT=が設定されていないようです。
      以前に報告し、修正されたのを確認したと思ったのですが、再発したのでしょうか?
      3) 拡張子にかかわらず、起動直後は『基本』で表示される。
      内部的な選択は拡張子で設定されているようです。
      『上書き保存』等を行うと選択された『タイプ別設定』で再表示されます。
      286の1)で報告したものはこれのようです。
      4) ファイルを閉じるときに落ちる。
      問題が発生したため、sakuraW.exeを終了します。…
      のメッセージが出ます。
      exeでダウンロードした物では発生せず、SVNでチェックアウトしコンパイルしたもので発生します。
      コンパイル環境 Visual C++ 2005 Express Edition
      以上4点です。
      参考にしてください。
      4) に関してはおそらくそちらでは再現しない可能性が高そうなので、こちらで少しデバッグしてみます。
      • [307] Re2:Commit報告:(Fix) CEditAppの解放忘れ修正 Uchi 2008年04月20日 20:50

        > 4) ファイルを閉じるときに落ちる。
        > 問題が発生したため、sakuraW.exeを終了します。…
        > のメッセージが出ます。
        > exeでダウンロードした物では発生せず、SVNでチェックアウトしコンパイルしたもので発生します。
        > コンパイル環境 Visual C++ 2005 Express Edition
        CEditApp のデストラクタの破棄順番の問題だと思います。

        CEditApp.cpp のデストラクタを以下のように変更しいただけたら思います。

        CEditApp::~CEditApp()
        {
        delete m_pcSMacroMgr;
        delete m_pcPropertyManager;
        delete m_pcMruListener;
        // delete m_pcEditWnd; // move to
        delete m_pcGrepAgent;
        delete m_pcVisualProgress;
        delete m_pcSaveAgent;
        delete m_pcLoadAgent;
        delete m_pcEditDoc; // この中で m_pcEditWnd を使用しています。
        delete m_pcEditWnd; // move from
        }