* file.c (rb_file_s_basename): rb_enc_asciicompat() evaluates the argument multiple times.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35118 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2012-03-23 03:04:20 +00:00
Родитель ee3e7dcf68
Коммит 2bf3b20dbe
1 изменённых файлов: 2 добавлений и 2 удалений

4
file.c
Просмотреть файл

@ -3640,9 +3640,9 @@ rb_file_s_basename(int argc, VALUE *argv)
rb_encoding *enc;
if (rb_scan_args(argc, argv, "11", &fname, &fext) == 2) {
rb_encoding *enc;
StringValue(fext);
if (!rb_enc_asciicompat(enc = rb_enc_get(fext))) {
enc = rb_enc_get(fext);
if (!rb_enc_asciicompat(enc)) {
rb_raise(rb_eEncCompatError, "ascii incompatible character encodings: %s",
rb_enc_name(enc));
}