User Activity

  • Modified ticket #1113 on SAKURA Editor

    矩形選択置換が範囲を無視して置換してしまう

  • Modified ticket #1028 on SAKURA Editor

    矩形選択置換で置換範囲がおかしいバグの修正

  • Committed [r4215]

    SourceForge_ds14050_GitHub_ds14050_OSDN_ds14050

  • Posted a comment on ticket #1115 on SAKURA Editor

    これはひとり言です。古いコードを見ていると新鮮な発見があります。 https://sourceforge.net/p/sakura-editor/code/215/tree//sakura/trunk/sakura_core/CProcess.h このときの CProcess::Run が呼ぶ3つのメソッドは =0 で純粋仮想とされておりテンプレートメソッドであることが明確でした。 https://sourceforge.net/p/sakura-editor/code/215/tree//sakura/trunk/sakura_core/CNormalProcess.cpp#l63 CNormalProcess::Initialize 関数で CShareData m_cShareData; DLLSHAREDATA m_pShareData; の2変数を m_cShareData.Init() などとして初期化していますが、この変数は Initialize 関数のローカル変数です! CShareData のデストラクタで ::UnmapViewOfFile されるのに共有メモリの寿命は???と首をひねりましたが、CNormalProcess...

  • Modified a comment on ticket #1115 on SAKURA Editor

    具象クラスがCProcessの継承ルールを守っている限り、CProcess::GetShareData()の呼出しで問題が起きることはないように思います。 これを信用していないんです。CControlProcess/CNormalProcess に手を入れる将来の人間、また第3のプロセスクラスを書く人間にそのルールを守らせるものがコードではなくコメントですらない。※その信用ならない人間が私です(反省) いいえ。 今後は積極的に例外を活用していくべきだと考えています。 自分について述べますと、これまで try/catch/throw を書いたことがありません。デバッグ時にコーディングエラーを捕捉する目的で assert を書く(間接的に例外を発生させる)程度です。数日前に実験して知ったのですが、引数を指定しないで例外を発生させる throw; は catch(...) でキャッチできないのですね。これは驚きでした。そして throw; といっても同じ例外を再スローする意味の場合はまた違うのでしょう。

  • Posted a comment on ticket #1115 on SAKURA Editor

    具象クラスがCProcessの継承ルールを守っている限り、CProcess::GetShareData()の呼出しで問題が起きることはないように思います。 これを信用していないんです。CControlProcess/CNormalProcess に手を入れる将来の人間、また第3のプロセスクラスを書く人間にそのルールを守らせるものがコードではなくコメントですらない。※その信用ならない人間が私です(反省) いいえ。 今後は積極的に例外を活用していくべきだと考えています。 自分について述べますと、これまで try/catch/throw を書いたことがありません。デバッグ時にコーディングエラーを捕捉する目的で assert を書く(間接的に例外を発生させる)程度です。数日前に実験して知ったのですが、引数を指定しない throw; は catch(...) でキャッチできないのですね。これは驚きでした。

  • Modified a comment on ticket #1115 on SAKURA Editor

    まとめて返答します。 こう書いたら良いんではないでしょうか? つまり元の通りですね。共有メモリの確保と初期化を一体的に扱うためにはその手順が必要なことがわかったので、CShareData に関してそうすべきだという点を争うつもりはありません。ただそういう問題がなければ、どうして処理をコンストラクタに移したいと考えたのかは理解してもらいたいと考えています。 責任の放棄であり間違いの元 GetShareData というアクセサを定義しているのは CProcess だから、それを通してアクセスする CShareData が InitShareData 済みの有効なオブジェクトであることを保証するのは CProcess の仕事だということです。すべての派生クラス(具体的には CControlProcess/CNormalProcess)に対して「確保と初期化が一体的に行われるようになんらかの調停手段を講じたうえで CProcess::InitializeProcess を呼んでくださいね。そうしないうちに GetShareData を呼んで CShareData を操作すると何か良くないことが起きるけど、私は知りませんよ」という...

  • Modified a comment on ticket #1115 on SAKURA Editor

    まとめて返答します。 こう書いたら良いんではないでしょうか? つまり元の通りですね。共有メモリの確保と初期化を一体的に扱うためにはその手順が必要なことがわかったので、CShareData に関してそうすべきだという点を争うつもりはありません。ただそういう問題がなければ、どうして処理をコンストラクタに移したいと考えたのかは理解してもらいたいと考えています。 責任の放棄であり間違いの元 GetShareData というアクセサを定義しているのは CProcess だから、それを通してアクセスする CShareData が InitShareData 済みの有効なオブジェクトであることを保証するのは CProcess の仕事だということです。すべての派生クラス(具体的には CControlProcess/CNormalProcess)に対して「確保と初期化が一体的に行われるようになんらかの調停手段を講じたうえで CProcess::InitializeProcess を呼んでくださいね。そうしないうちに GetShareData を呼んで CShareData を操作すると何か良くないことが起きるけど、私は知りませんよ」という...

View All

Personal Data

Username:
ds14050
Joined:
2009-09-26 14:25:47
Location:
Japan / JST

Projects

This is a list of open source software projects that ds14050 is associated with:

  • Project Logo SAKURA Editor A free Japanese text editor for Windows Last Updated:

Skills

This is a list of skills that ds14050 possesses:

  • JavaScript
  • Ruby

Personal Tools

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.