ins2[i] instanceof LocalVariableInstruction)){
if(!ins1[i].equals(ins2[i]))
return false;
}
else{
LocalVariableInstruction lvi1 =
(LocalVariableInstruction)ins1[i];
LocalVariableInstruction lvi2 =
(LocalVariableInstruction)ins2[i];
int lvindex1 = lvi1.getIndex();
int lvindex2 = lvi2.getIndex();
// Indexes get replaced with their index in the newLocalVars
// array. That way, the same local vars are matched, even if
// they have a different index.
int nlvindex1 = -1;
int nlvindex2 = -1;
for(int f = 0; f < newLocalVars.length; f++){
if(newLocalVars[f] == lvindex1){
nlvindex1 = f;
break;
}
}
for(int f = 0; f < other.newLocalVars.length; f++){
if(other.newLocalVars[f] == lvindex2){
nlvindex2 = f;
break;
}
}
if(nlvindex1 != nlvindex2)
return false;
lvi1.setIndex(nlvindex1);
lvi2.setIndex(nlvindex2);
boolean eq = lvi1.toString().equals(lvi2.toString());
lvi1.setIndex(lvindex1);
lvi2.setIndex(lvindex2);
if(!eq)
return false;
}
}
return true;