summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-13 00:02:01 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-08-13 00:02:01 +0000
commitefef2c63084235c5296ac05ad9ce023495195897 (patch)
treeddb9b6e094ace467babc36a2f855f4ad35047b1a
parentccdcaf6b786e5ce8c8fa796433eb8e74675e4f95 (diff)
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
-rw-r--r--ChangeLog4
-rw-r--r--load.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b9ea2d..0a6fcff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/load.c b/load.c
index 47c3bfe..0a8aeda 100644
--- a/load.c
+++ b/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);
}
}