public void init(SmaliMethod method, int linesCount, boolean doMapParams) {
		if(isInitialized)
			return;
		
		isInitialized = true;
		
		this.linesCount = linesCount;
		
		this.sliceLength = method.getRegisters();
		
		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)
	}