From 037875f2c35c46406115432d71ecd7953b590a07 Mon Sep 17 00:00:00 2001 From: Sascha Hlusiak Date: Fri, 28 Aug 2020 18:21:06 +0800 Subject: [PATCH] Remove unnecessary extra child traversal in collectDirtyChildren --- parse/src/main/java/com/parse/ParseObject.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/parse/src/main/java/com/parse/ParseObject.java b/parse/src/main/java/com/parse/ParseObject.java index d00526522..b23825add 100644 --- a/parse/src/main/java/com/parse/ParseObject.java +++ b/parse/src/main/java/com/parse/ParseObject.java @@ -606,7 +606,9 @@ protected boolean visit(Object node) { // Check for cycles of new objects. Any such cycle means it will be // impossible to save this collection of objects, so throw an exception. if (object.getObjectId() != null) { - seenNew = new HashSet<>(); + if (!seenNew.isEmpty()) { + seenNew = new HashSet<>(); + } } else { if (seenNew.contains(object)) { throw new RuntimeException("Found a circular dependency while saving."); @@ -621,7 +623,6 @@ protected boolean visit(Object node) { if (seen.contains(object)) { return true; } - seen = new HashSet<>(seen); seen.add(object); // Recurse into this object's children looking for dirty children.