From 37610b5180399204d6a247af83fc3abd82242b10 Mon Sep 17 00:00:00 2001 From: Sam Blackshear Date: Thu, 17 Nov 2016 14:45:03 -0800 Subject: [PATCH] [quandary] faster access list comparisons Summary: Using address equality check to short-circuit comparison of equal lists faster + kill use of `next`. Reviewed By: jeremydubreil Differential Revision: D4189581 fbshipit-source-id: bdf5d1e --- facebook-clang-plugins | 2 +- infer/src/checkers/accessPath.ml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/facebook-clang-plugins b/facebook-clang-plugins index 189047104..248d630ea 160000 --- a/facebook-clang-plugins +++ b/facebook-clang-plugins @@ -1 +1 @@ -Subproject commit 18904710494629ff27a5350d715f3a2a228970b6 +Subproject commit 248d630ea8a64a01ca56ccb87f97acd707610660 diff --git a/infer/src/checkers/accessPath.ml b/infer/src/checkers/accessPath.ml index 261ce58a9..5f10a9946 100644 --- a/infer/src/checkers/accessPath.ml +++ b/infer/src/checkers/accessPath.ml @@ -61,7 +61,9 @@ let raw_compare ((base1, accesses1) as ap1) ((base2, accesses2) as ap2) = let n = base_compare base1 base2 in if n <> 0 then n - else (IList.compare access_compare) accesses1 accesses2 + else if accesses1 == accesses2 + then 0 + else IList.compare access_compare accesses1 accesses2 let raw_equal ap1 ap2 = raw_compare ap1 ap2 = 0