From 26e714d26eff2633fd33ba6f21295a376fcad091 Mon Sep 17 00:00:00 2001 From: wycats Date: Sat, 27 Mar 2010 04:32:08 -0700 Subject: Remove stray instance variable to resolve serialization problem [#3769 state:resolved] (ht: Joe Rafaniello) --- .../active_support/core_ext/time/marshal_with_utc_flag.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'activesupport/lib/active_support/core_ext') diff --git a/activesupport/lib/active_support/core_ext/time/marshal_with_utc_flag.rb b/activesupport/lib/active_support/core_ext/time/marshal_with_utc_flag.rb index 9de8157eb0..656939947c 100644 --- a/activesupport/lib/active_support/core_ext/time/marshal_with_utc_flag.rb +++ b/activesupport/lib/active_support/core_ext/time/marshal_with_utc_flag.rb @@ -7,14 +7,20 @@ if RUBY_VERSION < '1.9' alias_method :_original_load, :_load def _load(marshaled_time) time = _original_load(marshaled_time) - utc = time.instance_variable_get('@marshal_with_utc_coercion') - utc ? time.utc : time + time.instance_eval do + if defined?(@marshal_with_utc_coercion) + remove_instance_variable("@marshal_with_utc_coercion") + utc + else + self + end + end end end alias_method :_original_dump, :_dump def _dump(*args) - obj = frozen? ? dup : self + obj = dup obj.instance_variable_set('@marshal_with_utc_coercion', utc?) obj._original_dump(*args) end -- cgit v1.2.3