diff --git a/ChangeLog b/ChangeLog index bebd7dff6b..f84d1f9929 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jul 7 11:34:18 2013 Kouhei Sutou + + * lib/rexml/text.rb (REXML::Text#clear_cache): Extract common + cache clear code. + Sun Jul 7 11:01:03 2013 Nobuyoshi Nakada * configure.in (RUBY_DTRACE_POSTPROCESS): dtrace version SUN D 1.11 diff --git a/lib/rexml/text.rb b/lib/rexml/text.rb index 23b17a7608..90099f4566 100644 --- a/lib/rexml/text.rb +++ b/lib/rexml/text.rb @@ -103,7 +103,7 @@ module REXML @raw = raw unless raw.nil? @entity_filter = entity_filter - @normalized = @unnormalized = nil + clear_cache if arg.kind_of? String @string = arg.dup @@ -256,8 +256,7 @@ module REXML # e[0].value = "" # <a> def value=( val ) @string = val.gsub( /\r\n?/, "\n" ) - @unnormalized = nil - @normalized = nil + clear_cache @raw = false end @@ -331,6 +330,12 @@ module REXML out << copy end + private + def clear_cache + @normalized = nil + @unnormalized = nil + end + # Reads text, substituting entities def Text::read_with_substitution( input, illegal=nil ) copy = input.clone