diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-07-13 05:50:04 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-07-13 05:50:04 +0000 |
commit | b0fd7aed1a78dbc6fc0007f9eec0ec24625628df (patch) | |
tree | 711690ba13265c7eba6c95913b940df4a0f819ce | |
parent | e690040379ed10e238bfa7f17b48fe31ecb2bab0 (diff) |
* eval.c: wrapper modifies updated to 1.7 changes.
* object.c (rb_obj_dup): should free generic_ivar if original owns
them.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | config.guess | 2 | ||||
-rw-r--r-- | dir.c | 4 | ||||
-rw-r--r-- | dln.c | 2 | ||||
-rw-r--r-- | eval.c | 14 | ||||
-rw-r--r-- | object.c | 3 | ||||
-rw-r--r-- | string.c | 2 | ||||
-rw-r--r-- | version.h | 4 |
8 files changed, 27 insertions, 13 deletions
@@ -17,6 +17,11 @@ Sun Jul 8 16:05:36 2001 Minero Aoki <[email protected]> * lib/net/protocol.rb (ProtoSocket#read): modify typo. +Fri Jul 6 18:01:10 2001 Yukihiro Matsumoto <[email protected]> + + * object.c (rb_obj_dup): should free generic_ivar if original owns + them. + Fri Jul 6 15:11:38 2001 Akinori MUSHA <[email protected]> * lib/tempfile.rb: merge from 1.7: do not delete a used tempfile @@ -46,6 +51,10 @@ Thu Jul 5 22:53:27 2001 Nobuyoshi Nakada <[email protected]> * file.c (rb_find_file_noext): move rb_file_s_expand_path to rb_f_require(). +Thu Jul 5 22:01:02 2001 Mitsuhiro Kondo <[email protected]> + + * dln.c (dln_load): should use NSLINKMODULE_OPTION_BINDNOW. + Thu Jul 5 20:28:53 2001 Tietew <[email protected]> * string.c (rb_str_each_line): should propagate taint mark. diff --git a/config.guess b/config.guess index c55635bd7b..4b71675d16 100644 --- a/config.guess +++ b/config.guess @@ -970,7 +970,7 @@ EOF echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} + echo `uname -p`-apple-darwin${UNAME_RELEASE} | sed -e 's/\([1-9][0-9]*\.[0-9][0-9]*\)\..*$/\1/' exit 0 ;; esac @@ -572,7 +572,7 @@ void rb_glob_helper(path, flags, func, arg) char *path; int flags; - void (*func)(); + void (*func) _((const char*, VALUE)); VALUE arg; { struct stat st; @@ -702,7 +702,7 @@ rb_glob(path, func, arg) void rb_iglob(path, func, arg) char *path; - void (*func)(); + void (*func) _((const char*, VALUE)); VALUE arg; { rb_glob_helper(path, FNM_PERIOD|FNM_NOCASE, func, arg); @@ -1383,7 +1383,7 @@ dln_load(file) rb_loaderror("Failed to load %.200s", file); } - NSLinkModule(obj_file, file, TRUE); + NSLinkModule(obj_file, file, NSLINKMODULE_OPTION_BINDNOW); /* lookup the initial function */ /*NSIsSymbolNameDefined require function name without "_" */ @@ -574,6 +574,7 @@ new_blktag() _block.vmode = scope_vmode; \ _block.flags = BLOCK_D_SCOPE; \ _block.dyna_vars = ruby_dyna_vars; \ + _block.wrapper = ruby_wrapper; \ ruby_block = &_block; #define POP_BLOCK_TAG(tag) do { \ @@ -3511,8 +3512,9 @@ rb_yield_0(val, self, klass, acheck) NODE *node; volatile VALUE result = Qnil; volatile VALUE old_cref; - struct BLOCK *block; - struct SCOPE *old_scope; + volatile VALUE old_wrapper; + struct BLOCK * volatile block; + struct SCOPE * volatile old_scope; struct FRAME frame; int state; static unsigned serial = 1; @@ -3529,6 +3531,8 @@ rb_yield_0(val, self, klass, acheck) ruby_frame = &(frame); old_cref = (VALUE)ruby_cref; ruby_cref = (NODE*)ruby_frame->cbase; + old_wrapper = ruby_wrapper; + ruby_wrapper = block->wrapper; old_scope = ruby_scope; ruby_scope = block->scope; ruby_block = block->prev; @@ -3654,6 +3658,7 @@ rb_yield_0(val, self, klass, acheck) ruby_block = block; ruby_frame = ruby_frame->prev; ruby_cref = (NODE*)old_cref; + ruby_wrapper = old_wrapper; if (ruby_scope->flag & SCOPE_DONT_RECYCLE) scope_dup(old_scope); ruby_scope = old_scope; @@ -6334,7 +6339,6 @@ proc_call(proc, args) orphan = blk_orphan(data); ruby_wrapper = data->wrapper; - /* PUSH BLOCK from data */ old_block = ruby_block; _block = *data; @@ -6455,7 +6459,6 @@ block_pass(self, node) int state; volatile int orphan; volatile int safe = ruby_safe_level; - volatile VALUE old_wrapper = ruby_wrapper; if (NIL_P(block)) { return rb_eval(self, node->nd_iter); @@ -6471,8 +6474,6 @@ block_pass(self, node) Data_Get_Struct(block, struct BLOCK, data); orphan = blk_orphan(data); - ruby_wrapper = data->wrapper; - /* PUSH BLOCK from data */ old_block = ruby_block; _block = *data; @@ -6510,7 +6511,6 @@ block_pass(self, node) } } ruby_block = old_block; - ruby_wrapper = old_wrapper; ruby_safe_level = safe; switch (state) {/* escape from orphan procedure */ @@ -115,6 +115,9 @@ rb_obj_dup(obj) if (!SPECIAL_CONST_P(dup)) { OBJSETUP(dup, rb_obj_type(obj), BUILTIN_TYPE(obj)); OBJ_INFECT(dup, obj); + if (FL_TEST(obj, FL_EXIVAR)) { + FL_SET(dup, FL_EXIVAR); + } } return dup; } @@ -216,6 +216,8 @@ rb_str_dup(str) str2 = rb_str_new3(rb_str_new4(str)); } OBJ_INFECT(str2, str); + if (FL_TEST(str, FL_EXIVAR)) + rb_clone_generic_ivar(str2, str); RBASIC(str2)->klass = klass; return str2; } @@ -1,4 +1,4 @@ #define RUBY_VERSION "1.6.4" -#define RUBY_RELEASE_DATE "2001-07-12" +#define RUBY_RELEASE_DATE "2001-07-13" #define RUBY_VERSION_CODE 164 -#define RUBY_RELEASE_CODE 20010712 +#define RUBY_RELEASE_CODE 20010713 |