[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:7157] rev4004 以降の文字コード関連修正を revert しませんか
- X-ml-count: 7160
- Subject: Re: [MD:7157] rev4004 以降の文字コード関連修正を revert しませんか
- From: "M.Fujii" <boochang@xxxxxxxxxxxx>
- Date: Mon, 23 Jan 2006 00:54:06 +0900 (JST)
- X-mailer: Mew version 4.1 on Emacs 22.0.50 / Mule 5.0 (SAKAKI)
藤井です。
From: "M.Fujii" <boochang@xxxxxxxxxxxx>
Subject: [MD:7157] rev4004 以降の文字コード関連修正を revert しませんか
Date: Sat, 21 Jan 2006 02:38:24 +0900 (JST)
> openp で落ちるというバグが報告されています。
>
> http://www.meadowy.org/meadow/ticket/279
>
> これと同じところで落ちる現象は私の環境でも発生します。
> # まだ確実な再現手順が分かっていないですが
(snip)
> openp が落ちるというのは、漢字交じりのパスが使えないことよりもかなり深
> 刻な問題だと思います。私としては「別の問題」というのがどういうものか分
> からない以上、まず一旦 rev4004 以前の状況に戻して、問題を再整理してから
> 再度修正すべきだと思います。
元に戻すという提案は後向きなので、ちょっとコードを見てみました。
確証はまだないのですが、GC がらみではないでしょうか?
以下の ChangeLog.Meadow のエントリを見るかぎりでは、rev4006 で
sys_spawnve に導入された変数 decoded_program にも GC 対策が必要なのでは
ないでしょうか?
2005-07-10 Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx>
* w32proc.c (sys_spawnve): Don't use LISP string object directly
being pointed by C pointer here because GC may move the object on
Ffuncall(call1) used after here.
ということで、以下のパッチを作ってみました。openp で落ちる方は試してみ
てください。
Index: w32proc.c
===================================================================
--- w32proc.c (revision 4014)
+++ w32proc.c (working copy)
@@ -855,8 +855,14 @@
{
Lisp_Object func, arg, result, decoded_cmdname;
- func = call1 (intern ("find-process-argument-editing-function"),
- decoded_program);
+ {
+ struct gcpro gcpro1;
+
+ GCPRO1 (decoded_program);
+ func = call1 (intern ("find-process-argument-editing-function"),
+ decoded_program);
+ UNGCPRO;
+ }
if (NILP (func))
{
arglen = 0;
@@ -880,9 +886,9 @@
}
else
{
- struct gcpro gcpro1, gcpro2;
+ struct gcpro gcpro1, gcpro2, gcpro3;
arg = Qnil;
- GCPRO2 (arg, func);
+ GCPRO3 (arg, func, decoded_program);
targ = argv;
while (*targ)
{
--
藤井 正行 / Masayuki FUJII