diff options
author | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-10-31 16:50:27 +0000 |
---|---|---|
committer | nahi <nahi@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-10-31 16:50:27 +0000 |
commit | 3f4d04564b979ddc74bcc6dc8c09491f3c96a4e6 (patch) | |
tree | 88bda0497bd74d7d865a52900124e46d8d40d7d6 /lib/soap | |
parent | e6775cc1933ffcfa07235a1c030aad4ed88fa1bf (diff) |
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/soap')
-rw-r--r-- | lib/soap/mapping/factory.rb | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/soap/mapping/factory.rb b/lib/soap/mapping/factory.rb index 6a34da55a8..92ed194a42 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 |