* 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
@ -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>
|
Sat Jan 26 17:42:23 2008 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
* compile.c (iseq_compile_each): validate argument expr of "next"
|
* 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_class(TYPE_USERDEF, obj, arg, Qfalse);
|
||||||
w_bytes(RSTRING_PTR(v), RSTRING_LEN(v), arg);
|
w_bytes(RSTRING_PTR(v), RSTRING_LEN(v), arg);
|
||||||
if (hasiv2) {
|
if (hasiv2) {
|
||||||
w_ivar(obj, ivtbl2, &c_arg);
|
w_ivar(v, ivtbl2, &c_arg);
|
||||||
}
|
}
|
||||||
else if (hasiv) {
|
else if (hasiv) {
|
||||||
w_ivar(obj, ivtbl, &c_arg);
|
w_ivar(obj, ivtbl, &c_arg);
|
||||||
|
@ -57,6 +57,7 @@ class TestMarshal < Test::Unit::TestCase
|
|||||||
def initialize(str)
|
def initialize(str)
|
||||||
@str = str
|
@str = str
|
||||||
end
|
end
|
||||||
|
attr_reader :str
|
||||||
def _dump(limit)
|
def _dump(limit)
|
||||||
@str
|
@str
|
||||||
end
|
end
|
||||||
@ -73,4 +74,14 @@ class TestMarshal < Test::Unit::TestCase
|
|||||||
}
|
}
|
||||||
assert_equal("marshal data too short", e.message)
|
assert_equal("marshal data too short", e.message)
|
||||||
end
|
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
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user