1 件の投稿を表示中 (合計 3 個)
  • 作成者
    投稿
  • #22996

    開発お疲れ様です。
    Windows 10 で EmEditor x64 16.1.4 を使っていて不具合らしきものがあります。

    正規表現エンジンに Onigmo を使用していて、強調表示に正規表現を使ってると、メモリリークしているようです。

    再現方法
    まっさらの EmEditor x64 16.1.4 ポータブルを用意。
    「Textのプロパティ」→「強調(1)」に二つ登録
    ((\b(function|repeat|do|then))|((?<=el)se))\b
    \b(el(?=se)(?!seif)|((elseif|end|until)\b))
    右側のチェックボックスは、ともに、「大文字小文字を区別」と、「正規表現」にチェック。残りはチェックを外す。

    新規文書を二つ作り、片方に
    if then elseif then else end
    do end
    のような、先のパターンにヒットするような文字列を、とりあえず100行ほど繰り返しコピー&ペーストして埋める。

    そうして、タスクマネージャでメモリ量を見つつ、Ctrl+Tabを押しっぱなしにして二つの文書を切り替え続けてると、
    メモリ消費量が増えてゆき、手を放しても、元には戻りません。

    なお、正規表現エンジンが Boost.Regexの時は発生しません。

    では確認お願いします。

    #23002
    Yutaka Emura
    キーマスター

    星くず彼方に 様

    いつもお世話になっております。江村です。

    確かに再現しました。記録のために書いておくと、

    onig_new_without_alloc

    という Onigmo の API 関数を使うと、そのようなメモリ リークになってしまいます。API の使い方が悪いのかもしれません。
    他の方法で対応いたしました。

    よろしくお願い申し上げます。

    #23045

    v16.1.5で、修正されてるの確認しました。
    ありがとうございました。

1 件の投稿を表示中 (合計 3 個)
  • このトピックに返信するにはログインしてください。