summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--gc.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3f310b040c..f84f45804c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Jul 28 01:04:44 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * gc.c (run_final): wrong order of data. [ruby-dev:23948]
+
Tue Jul 27 07:05:04 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* eval.c (rb_eval): copy on write for argument local variable
diff --git a/gc.c b/gc.c
index 6361ef2f24..a32de714e6 100644
--- a/gc.c
+++ b/gc.c
@@ -1756,8 +1756,8 @@ run_final(obj)
if (finalizer_table && st_delete(finalizer_table, (st_data_t*)&obj, &table)) {
for (i=0; i<RARRAY(table)->len; i++) {
VALUE final = RARRAY(table)->ptr[i];
- args[0] = FIX2INT(RARRAY(final)->ptr[0]);
- args[2] = RARRAY(final)->ptr[1];
+ args[0] = RARRAY(final)->ptr[1];
+ args[2] = FIX2INT(RARRAY(final)->ptr[0]);
rb_protect((VALUE(*)_((VALUE)))run_single_final, (VALUE)args, &status);
}
}