[#25636] [Oniguruma 3.X] reggnu.c — "K.Kosako" <sndgk393@...>

さっき気がついたのですが、元々は

15 messages 2005/02/05

[#25655] openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — Tanaka Akira <akr@...17n.org>

open-uri で https を扱うことを考えていろいろと調べていた所、openssl で、

9 messages 2005/02/08
[#25670] Re: openssl binding for SSL_CTX_set_default_verify_paths and X509_STORE_set_default_paths — GOTOU Yuuzou <gotoyuzo@...> 2005/02/10

In message <876513vce0.fsf@serein.a02.aist.go.jp>,

[#25713] pthread trouble on sighandler — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

17 messages 2005/02/18
[#25714] Re: pthread trouble on sighandler — Yukihiro Matsumoto <matz@...> 2005/02/18

まつもと ゆきひろです

[#25755] I/O operation differs signal handler — Minero Aoki <aamine@...>

青木です。

14 messages 2005/02/24
[#25756] Re: I/O operation differs signal handler — Tanaka Akira <akr@...17n.org> 2005/02/24

In article <20050224091450P.aamine@loveruby.net>,

[ruby-dev:25718] Re: [Oniguruma 3.X] reggnu.c

From: "K.Kosako" <sndgk393@...>
Date: 2005-02-18 12:41:49 UTC
List: ruby-dev #25718
Minero Aoki wrote:
>>こちらの都合で申し訳ありませんが、
>>以下のように変更しても構いませんか?
> 
> それは構わないんですが、実は strscan には struct re_register を
> 直接いじっている個所があります。ここです。
> 
>   /* DANGEROUS; need to synchronize with regex.c */
>   static void
>   adjust_registers_to_matched(p)
>       struct strscanner *p;
>   {
>       if (p->regs.allocated == 0) {
> 	  p->regs.beg = ALLOC_N(int, RE_NREGS);
> 	  p->regs.end = ALLOC_N(int, RE_NREGS);
> 	  p->regs.allocated = RE_NREGS;
>       }
>       p->regs.num_regs = 1;
>       p->regs.beg[0] = 0;
>       p->regs.end[0] = p->curr - p->prev;
>   }
> 
> こういうコードは鬼車では危険だったりしますか。

現時点では危険ではありませんが、
将来のことも考えてonig_region_set()
というような名前の関数を追加した上で、
以下のように変更しようと思います。

  static void
  adjust_registers_to_matched(p)
      struct strscanner *p;
  {
	onig_region_clear(&(p->regs));
	onig_region_set(&(p->regs), 0, 0, p->curr - p->prev);
  }
--
小迫

In This Thread