* lib/rexml/entity.rb (unnormalized): do not call

document.record_entity_expansion if document is nil.
  see <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502535>.
  Thanks, Naohisa Goto.
* test/rexml/test_document.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20120 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
shugo 2008-11-06 17:03:40 +00:00
parent e992737b4a
commit a324863b99
3 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,12 @@
Fri Nov 7 02:00:12 2008 Shugo Maeda <shugo@ruby-lang.org>
* lib/rexml/entity.rb (unnormalized): do not call
document.record_entity_expansion if document is nil.
see <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=502535>.
Thanks, Naohisa Goto.
* test/rexml/test_document.rb: ditto.
Fri Nov 7 01:24:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> Fri Nov 7 01:24:20 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* tool/make-snapshot: binary encoding spec is no longer needed in 1.9. * tool/make-snapshot: binary encoding spec is no longer needed in 1.9.

View File

@ -73,7 +73,7 @@ module REXML
# all entities -- both %ent; and &ent; entities. This differs from # all entities -- both %ent; and &ent; entities. This differs from
# +value()+ in that +value+ only replaces %ent; entities. # +value()+ in that +value+ only replaces %ent; entities.
def unnormalized def unnormalized
document.record_entity_expansion document.record_entity_expansion unless document.nil?
v = value() v = value()
return nil if v.nil? return nil if v.nil?
@unnormalized = Text::unnormalize(v, parent) @unnormalized = Text::unnormalize(v, parent)

View File

@ -35,6 +35,7 @@ EOF
<member> <member>
&a; &a;
&a2; &a2;
&lt;
</member> </member>
EOF EOF
@ -53,7 +54,7 @@ EOF
REXML::Document.entity_expansion_limit = 4 REXML::Document.entity_expansion_limit = 4
doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION) doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION)
assert_equal("\na\na a\n", doc.root.children.first.value) assert_equal("\na\na a\n<\n", doc.root.children.first.value)
REXML::Document.entity_expansion_limit = 3 REXML::Document.entity_expansion_limit = 3
doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION) doc = REXML::Document.new(XML_WITH_4_ENTITY_EXPANSION)
assert_raise(RuntimeError) do assert_raise(RuntimeError) do