[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]