summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--enum.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index c3a606d9bd..49c3790e0f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Thu Mar 19 04:46:36 2015 Koichi Sasada <ko1@atdot.net>
+
+ * enum.c (enum_sort_by): add WBs.
+
Thu Mar 19 03:37:52 2015 Koichi Sasada <ko1@atdot.net>
* gc.c (check_rvalue_consistency): refactoring.
diff --git a/enum.c b/enum.c
index cd4366281f..f561960dd6 100644
--- a/enum.c
+++ b/enum.c
@@ -846,8 +846,8 @@ enum_sort(VALUE obj)
#define SORT_BY_BUFSIZE 16
struct sort_by_data {
- VALUE ary;
- VALUE buf;
+ const VALUE ary;
+ const VALUE buf;
long n;
};
@@ -989,8 +989,8 @@ enum_sort_by(VALUE obj)
memo = MEMO_NEW(0, 0, 0);
OBJ_INFECT(memo, obj);
data = (struct sort_by_data *)&memo->v1;
- data->ary = ary;
- data->buf = buf;
+ RB_OBJ_WRITE(memo, &data->ary, ary);
+ RB_OBJ_WRITE(memo, &data->buf, buf);
data->n = 0;
rb_block_call(obj, id_each, 0, 0, sort_by_i, (VALUE)memo);
ary = data->ary;