Ticket #244 (assigned 不具合)

Opened 2 years ago

Last modified 2 years ago

pre-write-conversion のある coding-system で encode-coding-string するとエラー

Reported by: anonymous Assigned to: horiguti (accepted)
Priority: major Milestone:
Component: Emacs Lisp Version: 3.00 (開発中)
Keywords: Cc:

Description

pre-write-conversion で一時バッファを作る coding-system を指定して encode-coding-string を実行するとエラーになることがある。

(while (encode-coding-string "a" 'viqr))
->
Debugger entered--Lisp error: (wrong-type-argument stringp viqr)
  encode-coding-string("a" viqr)
  (while (encode-coding-string "a" (quote viqr)))
  eval((while (encode-coding-string "a" (quote viqr))))
  eval-expression((while (encode-coding-string "a" (quote viqr))) nil)
  call-interactively(eval-expression)

Attachments

Change History

11/25/05 18:07:25 changed by horiguti

  • owner set to horiguti.
  • status changed from new to assigned.

unwind する関数の中で kill-buffer を呼ぶのですが, この中でGCが起きて, パラメータが壊されます. GCPRO が必要な環境では coding.c のcode_convert_region_unwind のなかで arg を GCPRO する必要があって, Meadow3 ではこの対処で直ります.

一方で emacs ではおそらく発生しません. (GCの仕組みの関係で) これって Meadowローカルにすべきなのか, 設定によっては起き得るので emacs の話なのか..どちらにすべきでしょう. 前には別件で同じような処置を受け入れてもらったこともありますが..


Add/Change #244 (pre-write-conversion のある coding-system で encode-coding-string するとエラー)




Change Properties
Action