From e2fc88eef49af4ca8e35ae78ce3221c947e168c7 Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Fri, 14 Oct 2005 15:04:57 +0000 Subject: Avoid memleak in dev mode with fastcgi git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2584 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/lib/active_record/base.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index 8af2c33ce5..be8b672fa7 100755 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -940,9 +940,14 @@ module ActiveRecord #:nodoc: # end def define_attr_method(name, value=nil, &block) sing = class << self; self; end - block = proc { value.to_s } if value - sing.send( :alias_method, "original_#{name}", name ) - sing.send( :define_method, name, &block ) + sing.send :alias_method, "original_#{name}", name + if value + # use eval instead of a block to work around a memory leak in dev + # mode in fcgi + sing.class_eval "def #{name}; #{value.to_s.inspect}; end" + else + sing.send :define_method, name, &block + end end protected -- cgit v1.2.3