diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-07-31 09:20:59 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-07-31 09:20:59 +0000 |
commit | 3597f08030aada2a0d9a3cd8855bd1878acb5db6 (patch) | |
tree | 5d7aba389d999523c87bf86ab81f9a03de56beed | |
parent | 6759827504247fac86651c8a18a9f3bb565caf66 (diff) |
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@862 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | configure.in | 5 | ||||
-rw-r--r-- | defines.h | 2 | ||||
-rw-r--r-- | dir.c | 1 | ||||
-rw-r--r-- | lib/weakref.rb | 8 | ||||
-rw-r--r-- | regex.h | 4 |
6 files changed, 19 insertions, 6 deletions
@@ -1,3 +1,8 @@ +Sat Jul 29 23:42:04 2000 Yukihiro Matsumoto <matz@netlab.co.jp> + + * dir.c (dir_each): should check whether dir is closed during the + block execution. (ruby-bugs:#PR47) + Sat Jul 29 21:57:30 2000 WATANABE Hirofumi <eban@os.rim.or.jp> * ruby.c (rubylib_mangle): provide another buffer for the result. diff --git a/configure.in b/configure.in index b88e7b8b7c..7f6f8fb6ac 100644 --- a/configure.in +++ b/configure.in @@ -764,9 +764,12 @@ case "$host_os" in openstep*) CFLAGS="$CFLAGS -pipe" ;; - rhasody*) + rhapsody*) CFLAGS="$CFLAGS -pipe -no-precomp" ;; + os2_emx) + CFLAGS="$CFLAGS -DOS2" + ;; *) ;; esac @@ -28,6 +28,8 @@ #endif #define S_IXGRP 0000010 /* execute/search permission, group */ #define S_IXOTH 0000001 /* execute/search permission, other */ + +#define HAVE_SYS_WAIT_H /* configure fails to find this */ #endif /* NeXT */ #ifdef NT @@ -305,6 +305,7 @@ dir_each(dir) for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) { file = rb_tainted_str_new(dp->d_name, NAMLEN(dp)); rb_yield(file); + if (DATA_PTR(dir) == NULL) dir_closed(); } return dir; } diff --git a/lib/weakref.rb b/lib/weakref.rb index a6519e64c0..3dff9038eb 100644 --- a/lib/weakref.rb +++ b/lib/weakref.rb @@ -45,7 +45,13 @@ class WeakRef<Delegator @__id = orig.__id__ ObjectSpace.call_finalizer orig ObjectSpace.call_finalizer self - ID_MAP[@__id] = [] unless ID_MAP[@__id] + begin + __old_status = Thread.critical + Thread.critical = true + ID_MAP[@__id] = [] unless ID_MAP[@__id] + ensure + Thread.critical = __old_status + end ID_MAP[@__id].push self.__id__ ID_REV_MAP[self.id] = @__id end @@ -183,10 +183,6 @@ typedef struct } regmatch_t; -#ifdef NeXT -#define re_match rre_match -#endif - #ifdef __STDC__ extern char *re_compile_pattern (const char *, int, struct re_pattern_buffer *); |