14 May 01:54
Re: Minor memory leak in 1.8.6?
From: Nathan Weizenbaum <nex342 <at> gmail.com>
Subject: Re: Minor memory leak in 1.8.6?
Newsgroups: gmane.comp.lang.ruby.core
Date: 2008-05-13 23:54:47 GMT
Subject: Re: Minor memory leak in 1.8.6?
Newsgroups: gmane.comp.lang.ruby.core
Date: 2008-05-13 23:54:47 GMT
I think the point of ALLOCA_N is that the memory is allocated from the
stack, and thus doesn't have to be explicitly freed.
Christopher Thompson wrote:
> Is it not the case that rb_Str_to_inum(str, base, badcheck) in
> bignum.c leaks the memory allocated with ALLOCA_N?
>
> I think it should always be the case that the string has a sentinel
> and so if we end up running that section, there's already a bug, in
> which case this may not be worth worrying about.
>
>
> VALUE
> rb_str_to_inum(str, base, badcheck)
> VALUE str;
> int base;
> int badcheck;
> {
> char *s;
> long len;
>
> StringValue(str);
> if (badcheck) {
> s = StringValueCStr(str);
> }
> else {
> s = RSTRING(str)->ptr;
> }
> if (s) {
> len = RSTRING(str)->len;
> if (s[len]) { /* no sentinel somehow */
> char *p = ALLOCA_N(char, len+1); /* THIS BIT HERE */
>
> MEMCPY(p, s, char, len);
> p[len] = '\0';
> s = p;
> }
> }
> return rb_cstr_to_inum(s, base, badcheck);
> }
>
>
RSS Feed