summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-03-28 08:43:25 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-03-28 08:43:25 +0000
commit62261ccb47fce9c4728cfbeb84f81d23369ab910 (patch)
tree3f1464728d4c6d3ba1e64bbe22e1f00672a8690a /eval.c
parent6771ffa97125d57a48378daed460ec22db7dd835 (diff)
* object.c (rb_str2cstr): warn if string contains \0 and length
value is ignored. * class.c (rb_singleton_class_clone): should copy class constant table as well. * class.c (rb_include_module): sometimes cache was mistakenly left uncleared - based on the patch by K.Kosako. * ruby.h: all Check_SafeStr()'s are replaced by SafeStr() to ensure 'to_str' be always effective. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/eval.c b/eval.c
index ffa465a6b1..80eabdac7c 100644
--- a/eval.c
+++ b/eval.c
@@ -4091,6 +4091,7 @@ static int STACK_LEVEL_MAX = 65535;
#ifdef __human68k__
extern int _stacksize;
# define STACK_LEVEL_MAX (_stacksize - 4096)
+#undef HAVE_GETRLIMIT
#else
#ifdef HAVE_GETRLIMIT
static int STACK_LEVEL_MAX = 655300;
@@ -4857,10 +4858,10 @@ rb_f_eval(argc, argv, self)
}
if (ruby_safe_level >= 4) {
- Check_Type(src, T_STRING);
+ src = rb_str_to_str(src);
}
else {
- Check_SafeStr(src);
+ SafeStr(src);
}
if (NIL_P(scope) && ruby_frame->prev) {
struct FRAME *prev;
@@ -4932,10 +4933,10 @@ eval_under(under, self, src, file, line)
VALUE args[4];
if (ruby_safe_level >= 4) {
- Check_Type(src, T_STRING);
+ src = rb_str_to_str(src);
}
else {
- Check_SafeStr(src);
+ SafeStr(src);
}
args[0] = self;
args[1] = src;
@@ -5002,16 +5003,17 @@ specific_eval(argc, argv, klass, self)
else {
char *file = "(eval)";
int line = 1;
+ VALUE src = argv[0];
if (argc == 0) {
rb_raise(rb_eArgError, "block not supplied");
}
else {
if (ruby_safe_level >= 4) {
- Check_Type(argv[0], T_STRING);
+ src = rb_str_to_str(src);
}
else {
- Check_SafeStr(argv[0]);
+ SafeStr(src);
}
if (argc > 3) {
rb_raise(rb_eArgError, "wrong # of arguments: %s(src) or %s{..}",
@@ -5067,10 +5069,10 @@ rb_load(fname, wrap)
TMP_PROTECT;
if (wrap) {
- Check_Type(fname, T_STRING);
+ fname = rb_str_to_str(fname);
}
else {
- Check_SafeStr(fname);
+ SafeStr(fname);
}
file = rb_find_file(RSTRING(fname)->ptr);
if (!file) {
@@ -5264,7 +5266,7 @@ rb_f_require(obj, fname)
int state;
volatile int safe = ruby_safe_level;
- Check_SafeStr(fname);
+ SafeStr(fname);
if (rb_feature_p(RSTRING(fname)->ptr, Qtrue))
return Qfalse;
ext = strrchr(RSTRING(fname)->ptr, '.');