aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--marshal.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 108e4465cc..10685567cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 1 08:46:11 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * marshal.c (w_encoding): encodings need extra depth.
+ [ruby-core:24100]
+
Wed Jul 1 06:47:09 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* enum.c (enum_grep): gets rid of type-punning calls.
diff --git a/marshal.c b/marshal.c
index d67168db97..0c44eba609 100644
--- a/marshal.c
+++ b/marshal.c
@@ -493,12 +493,12 @@ w_encoding(VALUE obj, long num, struct dump_call_arg *arg)
/* special treatment for US-ASCII and UTF-8 */
if (encidx == rb_usascii_encindex()) {
w_symbol(rb_intern("E"), arg->arg);
- w_object(Qfalse, arg->arg, arg->limit);
+ w_object(Qfalse, arg->arg, arg->limit + 1);
return;
}
else if (encidx == rb_utf8_encindex()) {
w_symbol(rb_intern("E"), arg->arg);
- w_object(Qtrue, arg->arg, arg->limit);
+ w_object(Qtrue, arg->arg, arg->limit + 1);
return;
}
@@ -511,7 +511,7 @@ w_encoding(VALUE obj, long num, struct dump_call_arg *arg)
name = (st_data_t)rb_str_new2(rb_enc_name(enc));
st_insert(arg->arg->encodings, (st_data_t)rb_enc_name(enc), name);
} while (0);
- w_object(name, arg->arg, arg->limit);
+ w_object(name, arg->arg, arg->limit + 1);
}
static void