summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-08-19 07:33:15 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-08-19 07:33:15 +0000
commitd73fa69935a2d6657e13bfe2d3fa266fef55614d (patch)
tree2b91232f5c6bf8601ed38337fae396d2e391a41e /dir.c
parent4c57b2b49905d652fb500249c34303d8c0571155 (diff)
* dir.c (free_dir): fix memory leak. reported by yamamoto
madoka. * eval.c (bind_eval): new method. [RCR 251] * string.c (rb_str_clear): new method. [ruby-dev:24104] * io.c (rb_io_reopen): should clear allocated OpenFile. pointed out by Guy Decoux. [ruby-core:03288] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/dir.c b/dir.c
index b25c799529..c3301bc51f 100644
--- a/dir.c
+++ b/dir.c
@@ -349,7 +349,11 @@ static void
free_dir(dir)
struct dir_data *dir;
{
- if (dir && dir->dir) closedir(dir->dir);
+ if (dir) {
+ if (dir->dir) closedir(dir->dir);
+ if (dir->path) free(dir->path);
+ }
+ free(dir);
}
static VALUE dir_close _((VALUE));