From 027154fa24e7353af2e644e26a2d723863d20819 Mon Sep 17 00:00:00 2001 From: nahi Date: Fri, 31 Oct 2003 16:50:27 +0000 Subject: * lib/soap/mapping/factory.rb: mark marshalled basetype objects when @allow_original_mapping is true. multi-referencing basetype node is prohibited in SOAP/1.1 encoding but soap4r's original ruby object mapping requires basetype to be marked to detect self referencing loop. e.g. o = 1; o.instance_eval { @iv = o } soap4r's original mapping is only used through soap/marshal API. * test/soap/marshal/test_marshal.rb: add tests for self referencing immutable objects. * test/soap/calc/test_calc_cgi.rb: fix test name. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/soap/mapping/factory.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/soap/mapping/factory.rb b/lib/soap/mapping/factory.rb index 6a34da55a..92ed194a4 100644 --- a/lib/soap/mapping/factory.rb +++ b/lib/soap/mapping/factory.rb @@ -136,7 +136,10 @@ class BasetypeFactory_ < Factory rescue XSD::ValueSpaceError return nil end - # Basetype except String should not be multiref-ed in SOAP/1.1. + if @allow_original_mapping + # Basetype except String should not be multiref-ed in SOAP/1.1. + mark_marshalled_obj(obj, soap_obj) + end soap_obj end -- cgit