load.c (features_index_add): avoid repeat calculation

Reduce cognitive overhead, eye strain and keep lines less than 80
columns to benefit users of giant fonts (honestly I prefer 64 column
wrap :P).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
normal 2015-08-13 00:02:01 +00:00
Родитель ccdcaf6b78
Коммит efef2c6308
2 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -1,3 +1,7 @@
Thu Aug 13 09:01:25 2015 Eric Wong <e@80x24.org>
* load.c (features_index_add): avoid repeat calculation
Wed Aug 12 21:57:31 2015 Koichi Sasada <ko1@atdot.net>
* id_table.c: IMPL() macro accept op as _opname instead of opname

7
load.c
Просмотреть файл

@ -239,16 +239,19 @@ features_index_add(VALUE feature, VALUE offset)
p = ext ? ext : feature_end;
while (1) {
long beg;
p--;
while (p >= feature_str && *p != '/')
p--;
if (p < feature_str)
break;
/* Now *p == '/'. We reach this point for every '/' in `feature`. */
short_feature = rb_str_subseq(feature, p + 1 - feature_str, feature_end - p - 1);
beg = p + 1 - feature_str;
short_feature = rb_str_subseq(feature, beg, feature_end - p - 1);
features_index_add_single(short_feature, offset);
if (ext) {
short_feature = rb_str_subseq(feature, p + 1 - feature_str, ext - p - 1);
short_feature = rb_str_subseq(feature, beg, ext - p - 1);
features_index_add_single(short_feature, offset);
}
}