diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-05-24 22:03:41 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-05-24 22:03:41 +0000 |
commit | 37b862c6371f3fa4b8201ce0a3420e3f75d899e0 (patch) | |
tree | d8d80dee77885253070948b3a5fdecc0966cae9f /safe.c | |
parent | bea632a0168ca1238342e93809f3889336b889e7 (diff) | |
download | ruby-37b862c6371f3fa4b8201ce0a3420e3f75d899e0.tar.gz |
call rb_frame_callee() only once
* eval_error.c (error_pos): no needs to call rb_frame_callee() twice.
* safe.c (rb_secure, rb_insecure_operation): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'safe.c')
-rw-r--r-- | safe.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -79,9 +79,10 @@ void rb_secure(int level) { if (level <= rb_safe_level()) { - if (rb_frame_callee()) { + ID caller_name = rb_frame_callee(); + if (caller_name) { rb_raise(rb_eSecurityError, "Insecure operation `%s' at level %d", - rb_id2name(rb_frame_callee()), rb_safe_level()); + rb_id2name(caller_name), rb_safe_level()); } else { rb_raise(rb_eSecurityError, "Insecure operation at level %d", @@ -100,9 +101,10 @@ rb_secure_update(VALUE obj) void rb_insecure_operation(void) { - if (rb_frame_callee()) { + ID caller_name = rb_frame_callee(); + if (caller_name) { rb_raise(rb_eSecurityError, "Insecure operation - %s", - rb_id2name(rb_frame_callee())); + rb_id2name(caller_name)); } else { rb_raise(rb_eSecurityError, "Insecure operation: -r"); |