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

ruby-changes:22203

From: nagachika <ko1@a...>
Date: Tue, 10 Jan 2012 00:46:35 +0900 (JST)
Subject: [ruby-changes:22203] nagachika:r34252 (trunk): * lib/tempfile.rb (Tempfile#_close): clear @tempfile and @data[1] even

nagachika	2012-01-10 00:46:25 +0900 (Tue, 10 Jan 2012)

  New Revision: 34252

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34252

  Log:
    * lib/tempfile.rb (Tempfile#_close): clear @tempfile and @data[1] even
      when an exception is raised at @tempfile.close. [ruby-dev:45113]
    
    * lib/tempfile.rb (Tempfile#unlink): fix a typo.

  Modified files:
    trunk/ChangeLog
    trunk/lib/tempfile.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 34251)
+++ ChangeLog	(revision 34252)
@@ -1,3 +1,10 @@
+Tue Jan 10 00:41:28 2012  CHIKANAGA Tomoyuki  <nagachika00@g...>
+
+	* lib/tempfile.rb (Tempfile#_close): clear @tempfile and @data[1] even
+	  when exception is raised at @tempfile.close. [ruby-dev:45113]
+
+	* lib/tempfile.rb (Tempfile#unlink): fix a typo.
+
 Tue Jan 10 00:32:17 2012  CHIKANAGA Tomoyuki  <nagachika00@g...>
 
 	* gc.c (run_finalizer): clear rb_thread_t::errinfo when ignore
Index: lib/tempfile.rb
===================================================================
--- lib/tempfile.rb	(revision 34251)
+++ lib/tempfile.rb	(revision 34252)
@@ -162,9 +162,12 @@
   end
 
   def _close    # :nodoc:
-    @tmpfile.close if @tmpfile
-    @tmpfile = nil
-    @data[1] = nil if @data
+    begin
+      @tmpfile.close if @tmpfile
+    ensure
+      @tmpfile = nil
+      @data[1] = nil if @data
+    end
   end
   protected :_close
 
@@ -231,7 +234,7 @@
         File.unlink(@tmpname)
       end
       # remove tmpname from remover
-      @data[0] = @data[2] = nil
+      @data[0] = @data[1] = nil
       @tmpname = nil
     rescue Errno::EACCES
       # may not be able to unlink on Windows; just ignore

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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