まつもと ゆきひろです

In message "[ruby-dev:13910] Re: Forward: Seg fault in latest regex.c (PR#154)"
    on 01/07/17, "U.Nakamura" <usa / osb.att.ne.jp> writes:

|regex.cを1.43にしたら問題ないですが、1.44以降にすると発生す
|るようです。

なかむらさん、それからtietewさん、ありがとうございました。
おかげではっきりしました。

regex.cの3376行目、

#define NUM_FAILURE_ITEMS  (last_used_reg * NUM_REG_ITEMS + NUM_REG_ITEMS + 1)

を

#define NUM_FAILURE_ITEMS  (last_used_reg * NUM_REG_ITEMS + NUM_NONREG_ITEMS + 1)

に変更すると直るようです。以前はこのふたつの値は同じ値(3)だっ
たので気がつきませんでした。確認していただけませんか?

                                まつもと ゆきひろ /:|)

--- regex.c~	Tue Jul 17 11:26:20 2001
+++ regex.c	Tue Jul 17 11:20:54 2001
@@ -3375,3 +3375,3 @@ re_search(bufp, string, size, startpos, 
 /* We push this many things on the stack whenever we fail.  */
-#define NUM_FAILURE_ITEMS  (last_used_reg * NUM_REG_ITEMS + NUM_REG_ITEMS + 1)
+#define NUM_FAILURE_ITEMS  (last_used_reg * NUM_REG_ITEMS + NUM_NONREG_ITEMS + 1)