[#413] Should we check alloca ret val? — Michal Rokos <m.rokos@...>
Hi,
7 messages
2002/09/03
[#441] Patch to add a Module#const_missing method — JanArne.Petersen@... (Jan Arne Petersen)
Hi,
11 messages
2002/09/05
[#443] Re: Patch to add a Module#const_missing method
— matz@... (Yukihiro Matsumoto)
2002/09/06
Hi,
[#444] io_write()/fwrite() and EINTR on Solaris — Jos Backus <jos@...>
I am encountering a problem similar to the one mentioned here,
19 messages
2002/09/06
[#453] Re: io_write()/fwrite() and EINTR on Solaris
— nobu.nokada@...
2002/09/08
Hi,
[#454] Re: io_write()/fwrite() and EINTR on Solaris
— matz@... (Yukihiro Matsumoto)
2002/09/09
Hi
[#469] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/09/09
On Mon, Sep 09, 2002 at 03:55:13PM +0900, Yukihiro Matsumoto wrote:
[#479] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/09/10
On Tue, Sep 10, 2002 at 01:04:10AM +0900, Jos Backus wrote:
[#492] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/09/21
On Wed, Sep 11, 2002 at 02:23:33AM +0900, Jos Backus wrote:
[#495] Re: io_write()/fwrite() and EINTR on Solaris
— nobu.nokada@...
2002/09/21
Hi,
[#496] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/09/21
Hello,
[#564] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/11/06
On Sun, Sep 22, 2002 at 04:24:31AM +0900, Jos Backus wrote:
[#566] Re: io_write()/fwrite() and EINTR on Solaris
— nobu.nokada@...
2002/11/07
Hi,
[#567] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/11/07
On Thu, Nov 07, 2002 at 01:43:03PM +0900, nobu.nokada@softhome.net wrote:
[#568] Re: io_write()/fwrite() and EINTR on Solaris
— nobu.nokada@...
2002/11/07
Hi,
[#569] Re: io_write()/fwrite() and EINTR on Solaris
— Jos Backus <jos@...>
2002/11/07
On Thu, Nov 07, 2002 at 03:49:51PM +0900, nobu.nokada@softhome.net wrote:
[#449] ruby.h, string.c — Michal Rokos <m.rokos@...>
Hello,
7 messages
2002/09/06
[#459] Parse.y — Michal Rokos <m.rokos@...>
Hi,
6 messages
2002/09/09
[#461] Related to [Memleak] in sprintf.c — Michal Rokos <m.rokos@...>
Hi,
5 messages
2002/09/09
[#508] can java applications invoke ruby scripts?? — "John Davis" <javaccnews@...>
I want to know if Java applications can invoke ruby scripts?? In other
8 messages
2002/09/26
[RFC] Related to [Memleak] in sprintf.c
From:
Michal Rokos <m.rokos@...>
Date:
2002-09-09 09:20:11 UTC
List:
ruby-core #461
Hi,
sometimes we cannot use ALLOCA and we have to use ALLOC. When
the exception is raised in some ruby func, memory can leak.
In these cases we can use some think like: (Example included
below.)
Michal
PS: I know that we can use rb_ensure, but it looks like overkill to me.
diff -u ../ruby-09-06/eval.c ./eval.c
--- ../ruby-09-06/eval.c Fri Sep 6 20:55:37 2002
+++ ./eval.c Sun Sep 8 17:47:34 2002
@@ -4240,6 +4240,29 @@
}
VALUE
+rb_when_raised_free(proc, data, arg)
+ VALUE (*proc)();
+ VALUE data;
+ void *arg;
+{
+ int state;
+ volatile VALUE result = Qnil;
+
+ PUSH_TAG(PROT_NONE);
+ if ((state = EXEC_TAG()) == 0) {
+ result = (*b_proc)(data1);
+ }
+ POP_TAG();
+ if (prot_tag) return_value(prot_tag->retval);
+
+ if (state) {
+ free(arg);
+ JUMP_TAG(state);
+ }
+ return result;
+}
+
+VALUE
rb_with_disable_interrupt(proc, data)
VALUE (*proc)();
VALUE data;
diff -u ../ruby-09-06/sprintf.c ./sprintf.c
--- ../ruby-09-06/sprintf.c Fri Sep 6 20:55:37 2002
+++ ./sprintf.c Sun Sep 8 18:21:53 2002
@@ -335,7 +335,7 @@
bin_retry:
switch (TYPE(val)) {
case T_FLOAT:
- val = rb_dbl2big(RFLOAT(val)->value);
+ val = rb_when_raised_free(rb_dbl2big(RFLOAT(val)->value), buf);
if (FIXNUM_P(val)) goto bin_retry;
bignum = 1;
break;
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Michal Rokos Czech Technical University, Prague
E-mail:m.rokos@sh.cvut.cz ICQ:36118339 Jabber:majkl@jabber.cz
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-