◀ANSI版開発トップへ
  • 4020 コードのメンテ
    • 4025 コードのメンテ2
    • 4027 コードのメンテ3
      • 4029 RE: コードのメンテ3
        • 4031 Re2: コードのメンテ3
    • 4028 コードのメンテ4
      • 4035 Re:コードのメンテ4
    • 4036 RE: コードのメンテ
      • 4037 Re2: コードのメンテ
  • [4020] コードのメンテ dskoba 2005年08月20日 23:13

    CLayoutMgr::DoLayoutとCLayoutMgr::DoLayout_Rangeのメンテナンス
    ・変数nCharChars2,nCharChars3のスコープを狭める
    ・句読点ぶらさげ,行末禁則,行頭禁則の処理対象位置かどうかの判断部分を関数として分離
    ・nCOMMENTMODEとnCOMMENTMODE_Prevの初期化で無意味なコードを削除

    http://www2.wbs.ne.jp/~dskoba/sakura/1541dsk_clayoutmgr20050820c.lzh
    • [4025] コードのメンテ2 dskoba 2005年08月21日 21:32

      ・CShareData::InitPopupMenu()での初期化方法を変更
      ・CShareData::Init()でm_pShareData->m_Commonを参照で置き換え
      ・CShareData::InitTypeConfig()でpShareData->m_Types[0]を参照で置き換え

      http://www2.wbs.ne.jp/~dskoba/sakura/1541dsk_csharedata20050821.lzh
    • [4027] コードのメンテ3 dskoba 2005年08月24日 01:19

      ・メンバ関数がstaticである必要がないのでstaticをやめた
      ・上記変更に伴い,メンバ変数を引数で渡すのをやめ,直接読み書きする

      http://www2.wbs.ne.jp/~dskoba/sakura/1541dsk_ccommandline20050824.lzh
      • [4029] RE: コードのメンテ3 げんた 2005年08月29日 07:37

        >・メンバ関数がstaticである必要がないのでstaticをやめた
        ParseCommandline()は引数や一時変数が削減できて良いと思うのですが,AtoiOptionIntの方は効果あるんですかね.
        メンバ変数である必要がないからstaticにしている(見えない引数が1つ減る)とも考えられますが.
        コンパイラがインライン展開してしまえばどちらも同じかもしれませんが.
        • [4031] Re2: コードのメンテ3 dskoba 2005年08月30日 23:00

          > ParseCommandline()は引数や一時変数が削減できて良いと思うのですが,AtoiOptionIntの方は効果あるんですかね.
          > メンバ変数である必要がないからstaticにしている(見えない引数が1つ減る)とも考えられますが.

          ParseCommandline()を変更した際に勢い余って他のもstaticを止めてしまいました。
          privateになっているし,staticのままのほうがよいと思います。

          ところでSingletonになっていますが,その必要性はあるのだろうか。
          そのままでもいいとしてDestroyInstance()があった方がいいのかも。
    • [4028] コードのメンテ4 dskoba 2005年08月27日 22:45

      CMemory::MemCharNext()は全箇所(?)で
      int nCharChars = CMemory::MemCharNext( pLine, nLineLen, &pLine[i] ) - &pLine[i];
      のように指定した箇所の文字が何バイト文字かを調べるのに使っているので,新しく関数を用意する。

      int CMemory::GetSizeOfChar( const char* pData, const int nDataLen, const int nIdx )
      {
      if( nIdx >= nDataLen ){
      return 0;
      }else if( nIdx == (nDataLen - 1) ){
      return 1;
      }

      //if( pData[nIdx] == '\0' ){
      // return 1;
      //}
      if( _IS_SJIS_1( reinterpret_cast<const unsigned char*>(pData)[nIdx] )
      && _IS_SJIS_2( reinterpret_cast<const unsigned char*>(pData)[nIdx+1] ) ){
      return 2;
      }
      return 1;
      }
      • [4035] Re:コードのメンテ4 dskoba 2005年09月03日 00:04

        置き換え可能な部分をCMemory::GetSizeOfChar()で置き換えた物をとりあえず作ってみました。
        加えて以下の変更を含みます
        ・コードのメンテ1の1541dsk_clayoutmgr20050820c.lzh
        ・CLayoutMgr::DoLayout()とCLayoutMgr::DoLayout_Range()のnCharCharsのスコープを狭めた
        ・CLayoutMgr::DoLayout()とCLayoutMgr::DoLayout_Range()で条件式の変更

        http://www2.wbs.ne.jp/~dskoba/sakura/1550dsk_20050902_diff.lzh
    • [4036] RE: コードのメンテ げんた 2005年09月03日 10:20

      >・句読点ぶらさげ,行末禁則,行頭禁則の処理対象位置かどうかの判断部分を関数として分離
      引数がconst int&となっていますが,これconst intでいいんですよね?
      何故&をつけたのかが謎ですが...
      • [4037] Re2: コードのメンテ dskoba 2005年09月05日 00:45

        > 引数がconst int&となっていますが,これconst intでいいんですよね?
        > 何故&をつけたのかが謎ですが...

        &付けた方が逆に遅くなりますね。付けた理由ですが,クセかな……。
        1.5.6.0でのコメント追加,お手数かけました。