mirror of
https://github.com/ruby/ruby.git
synced 2025-09-15 08:33:58 +02:00
* 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
This commit is contained in:
parent
076ef717ac
commit
cc043890f8
15 changed files with 133 additions and 58 deletions
17
ruby.h
17
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));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue