Bug 1330306 - silence sa-checker regarding false-positive out-of-bounds access/read. r?jorendorff draft
authorAndi-Bogdan Postelnicu <bpostelnicu@mozilla.com>
Wed, 11 Jan 2017 16:07:04 +0200
changeset 459171 6851360e4e9c9a72ce5ab0cdf25748549a6bd55e
parent 458771 2963cf6be7f830c0d2155e2968cfc53585868a76
child 541825 7421b1de278a992c7b456a5de4c8124aa4c5996a
push id41147
push userbmo:bpostelnicu@mozilla.com
push dateWed, 11 Jan 2017 14:07:51 +0000
reviewersjorendorff
bugs1330306
milestone53.0a1
Bug 1330306 - silence sa-checker regarding false-positive out-of-bounds access/read. r?jorendorff MozReview-Commit-ID: 6jtsZUgGheC
js/src/gc/Statistics.cpp
--- a/js/src/gc/Statistics.cpp
+++ b/js/src/gc/Statistics.cpp
@@ -958,28 +958,17 @@ LongestPhaseSelfTime(const Statistics::P
 
     // Start with total times, including children's times.
     for (size_t i = 0; i < PHASE_LIMIT; ++i)
         selfTimes[i] = SumPhase(Phase(i), times);
 
     // Subtract out the children's times.
     for (size_t i = 0; i < PHASE_LIMIT; ++i) {
         Phase parent = phases[i].parent;
-        if (parent == PHASE_MULTI_PARENTS) {
-            // Subtract out only the time for the children specific to this
-            // parent.
-            for (auto edge : dagChildEdges) {
-                if (edge.parent == parent) {
-                    size_t dagSlot = phaseExtra[edge.parent].dagSlot;
-                    CheckSelfTime(parent, edge.child, times, selfTimes, times[dagSlot][edge.child]);
-                    MOZ_ASSERT(selfTimes[parent] >= times[dagSlot][edge.child]);
-                    selfTimes[parent] -= times[dagSlot][edge.child];
-                }
-            }
-        } else if (parent != PHASE_NO_PARENT) {
+        if (parent != PHASE_NO_PARENT) {
             MOZ_ASSERT(selfTimes[parent] >= selfTimes[i]);
             CheckSelfTime(parent, Phase(i), times, selfTimes, selfTimes[i]);
             selfTimes[parent] -= selfTimes[i];
         }
     }
 
     TimeDuration longestTime = 0;
     Phase longestPhase = PHASE_NONE;