mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* parse.y (dispose_string): dispose String object.
* parse.y (heredoc_restore, here_document): fix memory leak. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
009f78761d
commit
c476b6e05c
2 changed files with 21 additions and 7 deletions
16
ChangeLog
16
ChangeLog
|
@ -1,10 +1,16 @@
|
|||
Sun Dec 15 11:43:26 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
|
||||
|
||||
* parse.y (dispose_string): dispose String object.
|
||||
|
||||
* parse.y (heredoc_restore, here_document): fix memory leak.
|
||||
|
||||
Sat Dec 14 14:25:00 2002 Takaaki Uematsu <mail@uema2.cjb.net>
|
||||
|
||||
* wince/sys : add stat.c, stat.h, timeb.c, timeb.h,
|
||||
types.h, utime.c, utime.h
|
||||
* wince/dll.mak : object file name changed.
|
||||
* wince/io.c : add empty dup2().
|
||||
* wince/io.h : add dup2 definition.
|
||||
* wince/sys : add stat.c, stat.h, timeb.c, timeb.h,
|
||||
types.h, utime.c, utime.h
|
||||
* wince/dll.mak : object file name changed.
|
||||
* wince/io.c : add empty dup2().
|
||||
* wince/io.h : add dup2 definition.
|
||||
|
||||
Sat Dec 14 01:51:29 2002 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||
|
||||
|
|
12
parse.y
12
parse.y
|
@ -2829,6 +2829,14 @@ enum string_type {
|
|||
str_dsym = (STR_FUNC_SYMBOL|STR_FUNC_EXPAND),
|
||||
};
|
||||
|
||||
static void
|
||||
dispose_string(str)
|
||||
VALUE str;
|
||||
{
|
||||
free(RSTRING(str)->ptr);
|
||||
rb_gc_force_recycle(str);
|
||||
}
|
||||
|
||||
static int
|
||||
tokadd_string(func, term, paren)
|
||||
int func, term, paren;
|
||||
|
@ -3044,7 +3052,7 @@ heredoc_restore(here)
|
|||
lex_p = lex_pbeg + here->nd_nth;
|
||||
heredoc_end = ruby_sourceline;
|
||||
ruby_sourceline = nd_line(here);
|
||||
rb_gc_force_recycle(here->nd_lit);
|
||||
dispose_string(here->nd_lit);
|
||||
rb_gc_force_recycle((VALUE)here);
|
||||
}
|
||||
|
||||
|
@ -3099,7 +3107,7 @@ here_document(here)
|
|||
str = rb_str_new(RSTRING(line)->ptr, RSTRING(line)->len);
|
||||
lex_p = lex_pend;
|
||||
if (nextc() == -1) {
|
||||
if (str) rb_gc_force_recycle(str);
|
||||
if (str) dispose_string(str);
|
||||
goto error;
|
||||
}
|
||||
} while (!whole_match_p(eos, len, indent));
|
||||
|
|
Loading…
Reference in a new issue