aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/attribute_methods
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2015-09-28 16:17:08 -0400
committerSean Griffin <sean@seantheprogrammer.com>2015-09-28 16:26:50 -0400
commitfb03a9ab35ed22e569ec9cef8a50ef72754b5dbe (patch)
tree6a3bd9b1b02e35f452c8158544a8748d7a6ec301 /activerecord/lib/active_record/attribute_methods
parente950c4b4a503d801ac141c143171dbffe758e6eb (diff)
downloadrails-fb03a9ab35ed22e569ec9cef8a50ef72754b5dbe.tar.gz
rails-fb03a9ab35ed22e569ec9cef8a50ef72754b5dbe.tar.bz2
rails-fb03a9ab35ed22e569ec9cef8a50ef72754b5dbe.zip
Separate `dup` from `deep_dup` in the attributes hash
I'm looking to move towards a tree-like structure for dirty checking that involves an attribute holding onto the attribute that it was created from. This means that `changed?` can be fully encapsulated on that object. Since the objects are immutable, in `changes_applied`, we can simply perform a shallow dup, instead of a deep one. I'm not sure if that will actually end up in a performance boost, but I'd like to semantically separate these concepts regardless
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods')
-rw-r--r--activerecord/lib/active_record/attribute_methods/dirty.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/dirty.rb b/activerecord/lib/active_record/attribute_methods/dirty.rb
index 84b942d559..43c15841c2 100644
--- a/activerecord/lib/active_record/attribute_methods/dirty.rb
+++ b/activerecord/lib/active_record/attribute_methods/dirty.rb
@@ -47,7 +47,7 @@ module ActiveRecord
def initialize_dup(other) # :nodoc:
super
@mutation_tracker = AttributeMutationTracker.new(@attributes,
- self.class._default_attributes.dup)
+ self.class._default_attributes.deep_dup)
end
def changes_applied