package com.squareup.haha.perflib; import gnu.trove.TLongHashSet; import java.util.ArrayDeque; import java.util.Deque; /* loaded from: classes.dex */ public class NonRecursiveVisitor implements Visitor { public final Deque mStack = new ArrayDeque(); public final TLongHashSet mSeen = new TLongHashSet(); protected void defaultAction(Instance instance) { } public void doVisit(Iterable iterable) { for (Instance instance : iterable) { if (instance instanceof RootObj) { instance.accept(this); } else { visitLater(null, instance); } } while (!this.mStack.isEmpty()) { Instance pop = this.mStack.pop(); if (this.mSeen.add(pop.getId())) { pop.accept(this); } } } @Override // com.squareup.haha.perflib.Visitor public void visitArrayInstance(ArrayInstance arrayInstance) { defaultAction(arrayInstance); } @Override // com.squareup.haha.perflib.Visitor public void visitClassInstance(ClassInstance classInstance) { defaultAction(classInstance); } @Override // com.squareup.haha.perflib.Visitor public void visitClassObj(ClassObj classObj) { defaultAction(classObj); } @Override // com.squareup.haha.perflib.Visitor public void visitLater(Instance instance, Instance instance2) { this.mStack.push(instance2); } @Override // com.squareup.haha.perflib.Visitor public void visitRootObj(RootObj rootObj) { defaultAction(rootObj); } }