ruby-changes:22174
From: ayumin <ko1@a...>
Date: Sat, 7 Jan 2012 22:40:39 +0900 (JST)
Subject: [ruby-changes:22174] ayumin:r34223 (ruby_1_9_3): merge revision(s) 34202:
ayumin 2012-01-07 22:40:21 +0900 (Sat, 07 Jan 2012) New Revision: 34223 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34223 Log: merge revision(s) 34202: * lib/rexml/parsers/baseparser.rb: rexml BaseParser uses instance_eval unnecessarily on listener add. patch from Charles Nutter. [Bug #5696] [ruby-core:41437] Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/lib/rexml/parsers/baseparser.rb branches/ruby_1_9_3/version.h Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 34222) +++ ruby_1_9_3/ChangeLog (revision 34223) @@ -1,3 +1,9 @@ +Tue Jan 03 23:57:37 2012 Ayumu AIZAWA <ayumu.aizawa@g...> + + * lib/rexml/parsers/baseparser.rb: rexml BaseParser uses + instance_eval unnecessarily on listener add. + patch from Charles Nutter. [Bug #5696] [ruby-core:41437] + Tue Jan 03 19:13:05 2012 Ayumu AIZAWA <ayumu.aizawa@g...> * test/rexml/test_sax.rb: add require 'rexml/document'. Index: ruby_1_9_3/lib/rexml/parsers/baseparser.rb =================================================================== --- ruby_1_9_3/lib/rexml/parsers/baseparser.rb (revision 34222) +++ ruby_1_9_3/lib/rexml/parsers/baseparser.rb (revision 34223) @@ -114,22 +114,10 @@ def initialize( source ) self.stream = source + @listeners = [] end def add_listener( listener ) - if !defined?(@listeners) or !@listeners - @listeners = [] - instance_eval <<-EOL - alias :_old_pull :pull - def pull - event = _old_pull - @listeners.each do |listener| - listener.receive event - end - event - end - EOL - end @listeners << listener end @@ -192,6 +180,14 @@ # Returns the next event. This is a +PullEvent+ object. def pull + _pull_inner.tap do |event| + @listeners.each do |listener| + listener.receive event + end + end + end + + def _pull_inner if @closed x, @closed = @closed, nil return [ :end_element, x ] Index: ruby_1_9_3/version.h =================================================================== --- ruby_1_9_3/version.h (revision 34222) +++ ruby_1_9_3/version.h (revision 34223) @@ -1,10 +1,10 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 19 +#define RUBY_PATCHLEVEL 20 -#define RUBY_RELEASE_DATE "2012-01-04" +#define RUBY_RELEASE_DATE "2012-01-07" #define RUBY_RELEASE_YEAR 2012 #define RUBY_RELEASE_MONTH 1 -#define RUBY_RELEASE_DAY 4 +#define RUBY_RELEASE_DAY 7 #include "ruby/version.h" -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/