- 作成者投稿
- 2016年9月13日 11:08 pm #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の時は発生しません。
では確認お願いします。
2016年9月16日 6:23 am #23002Yutaka Emura
キーマスター星くず彼方に 様
いつもお世話になっております。江村です。
確かに再現しました。記録のために書いておくと、
onig_new_without_alloc
という Onigmo の API 関数を使うと、そのようなメモリ リークになってしまいます。API の使い方が悪いのかもしれません。
他の方法で対応いたしました。よろしくお願い申し上げます。
2016年9月25日 12:05 am #23045星くず彼方に
参加者v16.1.5で、修正されてるの確認しました。
ありがとうございました。 - 作成者投稿
- このトピックに返信するにはログインしてください。