this.timeline = new ArrayList<ArrayList<RegisterInfo>>(linesCount);
for(int i = 0; i < linesCount; i++) {
ArrayList<RegisterInfo> slice = new ArrayList<RegisterInfo>(sliceLength);
this.timeline.add(slice);
for(int j = 0; j < sliceLength; j++)
slice.add(new RegisterInfo());
}
if(doMapParams) {
List<Param> params = method.getParams();
boolean isMethodStatic = method.isFlagSet(SmaliEntity.STATIC);
int localsCount = method.getLocals();
ArrayList<RegisterInfo> slice = this.timeline.get(0);
int delta = 0;
if(!isMethodStatic) {
slice.get(localsCount).isThis = true;
slice.get(localsCount).type = method.getSmaliClass().getClassName();
delta = 1;
}
for(int i = 0; i < params.size() ; i++) {
Param param = params.get(i);
if(param.info.is64bit) {
RegisterInfo info = slice.get(localsCount + delta + i);
info.is64bit = true;
info.is64bitMaster = true;
info.type = param.info.type;
delta++;
info = slice.get(localsCount + delta + i);
info.is64bit = true;
info.is64bitMaster = false;
info.type = param.info.type;
} else {
RegisterInfo info = slice.get(localsCount + delta + i);
info.type = param.info.type;
}
}
} //end if(doMapParams)
}