MURASE Masamitsu
masam****@gmail*****
2012年 4月 14日 (土) 17:42:22 JST
村瀬です。 昨日のメール中の「修正方法」は、 Ruby のソースコードとしては下記の方が分かりやすくてよさそうでした。 #= ここから = if (trim && ds[i-1] == 0) i--; k = SIZEOF_BDIGITS; while (k--) { s[--j] = ruby_digitmap[num % base]; num /= base; if (!trim && j <= 1) break; if (trim && i == 0 && num == 0) break; } } RB_GC_GUARD(t); /* 追加 */ if (trim) {while (s[j] == '0') j++;} i = RSTRING(ss)->len - j; if (RBIGNUM(x)->sign) { memmove(s, s+j, i); RSTRING(ss)->len = i-1; } else { #= ここまで = Ruby 本家に障害として挙がっていなければ、投稿してみます。 また、参考までにパッチファイルを添付いたします。 以上です。 -- Mail: masam****@gmail***** 村瀬 昌満 (MURASE Masamitsu) -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: bignum_gc_guard.diff 型: application/octet-stream サイズ: 446 バイト 説明: 無し 下载