Menu

#695 色指定リストが初期化されて表示される(r3447-)

open
nobody
None
5
2013-11-30
2013-11-20
Moca
No

タイプ別設定を表示すると、色指定が初期化されます。

1 Attachments

Discussion

  • novice123

    novice123 - 2013-11-20

    項目名のみを更新するようにしました。
    また、ヘッダとassert()を追加しました。

    言語DLLを切り替えたときに項目名が変更されるのを確認しました。

     
  • novice123

    novice123 - 2013-11-28

    ColorInfo構造体のメンバ変数で名前をを配列で確保している部分をポインタに変更しました。
    共有メモリと文字列のコピー処理が削減できます。

     
  • ds14050

    ds14050 - 2013-11-28

    コードの流れを見つけるのも追いかけるのも難しいのですが、
    struct DLLSHAREDATA.m_Types[i].m_ColorInfoArr[j].m_pszName
    はどのプロセスからもアクセス可能なポインタになっているでしょうか。

    初期化は CType.cpp, CType_*.cppで行われ、アクセスは主に CType.h
    の CTypeConfigを通して行われるようです。おそらく。

    また枝葉ですが、szが zero-terminated stringの意だとすると
    std:tstringメンバのプリフィックスとしては相応しくないと思います。
    sか、それが structと紛らわしいなら、strはどうでしょうか。

     
  • novice123

    novice123 - 2013-11-29

    ColorInfo構造体からメンバ変数(m_szName)を削除し、
    項目名は関数経由で取得するようにしました。

     
  • ds14050

    ds14050 - 2013-11-29

    void SetColorInfoName( int nIndex )に関して、
    名前とその有りように改善の余地があると思います。

    1.setterでありながらセットする値を受け取らない点
    2.利用者にとって呼ぶ価値・理由がなく、.cpp内に隠蔽すべきであると考えられる点

    1については Init、Re-set、Prepareなどが候補です。
    2については GetColorInfoName内でどうにか必要性の有無を判断できないでしょうか。

     
  • novice123

    novice123 - 2013-11-29

    trunk2_fix_typecolor_b.patchについて、
    色指定リストが初期化されて表示される件とは別の話なので
    このticket内での対応は取り下げたいと思います(別件対応)。

    また、共有メモリと文字列のコピー処理削減の対応については、
    ds14050さんがよい案をお持ちのようなので、お任せしたいと思います。
    (自分は手を引きます)

     
  • novice123

    novice123 - 2013-11-29

    trunk2_fix_typecolor.patch
    [r3471]でcommitしました。

     

    Related

    Commit: [r3471]

  • ds14050

    ds14050 - 2013-11-30

    ましな案を思いついて書き込もうと思ったらはしごを外されていました。ds14050です。

    自分は最適化のために壊れたり、ミスの起こりやすい造りになったりして
    禍根を残すくらいなら何もしない方がましだという考えでコメントしています。最適化が目的ではありませんが妥当な最適化を否定するつもりもありません。(脱線。たぶん「最適化」よりも「合理化」のほうが正しい)


    せっかくなので案を書いておきます。
    色名の取得を GetDefaultColorInfoから GetColorInfoName一本に切り離せるのが最善なのは変わりませんが、いつ SetColorInfoName相当の処理を行うのか判断が無理なら GetColorInfoNameと GetCachedColorInfoNameの二本立てにすると、色名が欲しい人間にとってそこそこわかりやすいのでないでしょうか。

     

    Last edit: ds14050 2013-11-30

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.