From cc043890f8cb7c0c057fb076b30765973716c470 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 11 May 2001 05:24:59 +0000 Subject: * bignum.c (bigdivrem): access boundary bug. * marshal.c (w_object): prohibit dumping out singleton classes. * object.c (rb_mod_to_s): distinguish singleton classes. * variable.c (rb_class2name): it's ok to reveal NilClass, TrueClass, FalseClass. * eval.c (rb_yield_0): preserve and restore ruby_cref as well. * eval.c (is_defined): core dumped during instance_eval for special constants. * eval.c (rb_eval): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ruby.h | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'ruby.h') diff --git a/ruby.h b/ruby.h index 166bc6e7d9..971a7e06b9 100644 --- a/ruby.h +++ b/ruby.h @@ -186,22 +186,19 @@ void rb_check_type _((VALUE,int)); #define Check_Type(v,t) rb_check_type((VALUE)(v),t) VALUE rb_str_to_str _((VALUE)); -#define StringValue(v) do {\ - if (TYPE(v) != T_STRING) v = rb_str_to_str(v);\ -} while (0) +VALUE rb_string_value _((VALUE*)); + +#define StringValue(v) if (TYPE(v) != T_STRING) rb_string_value(&(v)) void rb_check_safe_str _((VALUE)); -/* obsolete macro - use SafeStringValue(v) */ -#define Check_SafeStr(v) rb_check_safe_str((VALUE)(v)) #define SafeStringValue(v) do {\ - if (TYPE(v) != T_STRING) v = rb_str_to_str(v);\ + StringValue(v);\ rb_check_safe_str(v);\ } while (0) - -#define StringValuePtr(v) \ - (((TYPE(v) != T_STRING) ? v = rb_str_to_str(v) : (v)), RSTRING(v)->ptr) +#define StringValuePtr(v) RSTRING((TYPE(v) == T_STRING) ? (v) : rb_string_value(&(v)))->ptr +/* obsolete macro - use SafeStringValue(v) */ +#define Check_SafeStr(v) rb_check_safe_str((VALUE)(v)) void rb_secure _((int)); - EXTERN int ruby_safe_level; #define rb_safe_level() (ruby_safe_level) void rb_set_safe_level _((int)); -- cgit v1.2.3