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]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ayumin 2012-01-07 13:40:21 +00:00
parent e87360009c
commit 68fff3881d
3 changed files with 18 additions and 16 deletions

View file

@ -1,3 +1,9 @@
Tue Jan 03 23:57:37 2012 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
* 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@gmail.com> Tue Jan 03 19:13:05 2012 Ayumu AIZAWA <ayumu.aizawa@gmail.com>
* test/rexml/test_sax.rb: add require 'rexml/document'. * test/rexml/test_sax.rb: add require 'rexml/document'.

View file

@ -114,22 +114,10 @@ module REXML
def initialize( source ) def initialize( source )
self.stream = source self.stream = source
@listeners = []
end end
def add_listener( listener ) 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 @listeners << listener
end end
@ -192,6 +180,14 @@ module REXML
# Returns the next event. This is a +PullEvent+ object. # Returns the next event. This is a +PullEvent+ object.
def pull def pull
_pull_inner.tap do |event|
@listeners.each do |listener|
listener.receive event
end
end
end
def _pull_inner
if @closed if @closed
x, @closed = @closed, nil x, @closed = @closed, nil
return [ :end_element, x ] return [ :end_element, x ]

View file

@ -1,10 +1,10 @@
#define RUBY_VERSION "1.9.3" #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_YEAR 2012
#define RUBY_RELEASE_MONTH 1 #define RUBY_RELEASE_MONTH 1
#define RUBY_RELEASE_DAY 4 #define RUBY_RELEASE_DAY 7
#include "ruby/version.h" #include "ruby/version.h"