1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* marshal.c (w_object): dump string encoding in USERDEF.

[ruby-dev:33401]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2008-01-26 10:31:11 +00:00
parent 51ea2cf4e4
commit 26b86d8a72
3 changed files with 17 additions and 1 deletions

View file

@ -1,3 +1,8 @@
Sat Jan 26 19:08:45 2008 Tanaka Akira <akr@fsij.org>
* marshal.c (w_object): dump string encoding in USERDEF.
[ruby-dev:33401]
Sat Jan 26 17:42:23 2008 Koichi Sasada <ko1@atdot.net>
* compile.c (iseq_compile_each): validate argument expr of "next"

View file

@ -613,7 +613,7 @@ w_object(VALUE obj, struct dump_arg *arg, int limit)
w_class(TYPE_USERDEF, obj, arg, Qfalse);
w_bytes(RSTRING_PTR(v), RSTRING_LEN(v), arg);
if (hasiv2) {
w_ivar(obj, ivtbl2, &c_arg);
w_ivar(v, ivtbl2, &c_arg);
}
else if (hasiv) {
w_ivar(obj, ivtbl, &c_arg);

View file

@ -57,6 +57,7 @@ class TestMarshal < Test::Unit::TestCase
def initialize(str)
@str = str
end
attr_reader :str
def _dump(limit)
@str
end
@ -73,4 +74,14 @@ class TestMarshal < Test::Unit::TestCase
}
assert_equal("marshal data too short", e.message)
end
def test_userdef_encoding
s1 = "\xa4\xa4".force_encoding("euc-jp")
o1 = C.new(s1)
m = Marshal.dump(o1)
o2 = Marshal.load(m)
s2 = o2.str
assert_equal(s1, s2)
end
end