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:
parent
51ea2cf4e4
commit
26b86d8a72
3 changed files with 17 additions and 1 deletions
|
@ -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"
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue