import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.tizen.dynamicanalyzer.ui.summary.SummaryDataManager;
import org.tizen.dynamicanalyzer.ui.toolbar.ToolbarArea;
import org.tizen.dynamicanalyzer.util.WorkbenchUtil;
+import org.tizen.dynamicanalyzer.widgets.chartBoard.DAChartBoardItem;
import org.tizen.dynamicanalyzer.widgets.da.base.DADialog;
public class LeakDataMaker {
public LeakDataMaker() {
memoryAllocDataList = new ArrayList<List<Object>>();
freeDataList = new ArrayList<List<Object>>();
+ leakDataList = new ArrayList<List<Object>>();
rangeDataList = new ArrayList<List<Object>>();
}
int size = inputs.size();
for (int i = 0; i < size; i++) {
LogData input = (LogData) inputs.get(i);
+ if (input == null) continue;
checkHeapMemory();
switch (leakDetector.runLeakDetect(input)) {
case LogCenterConstants.MEMORY_API_ALLOC: // alloc, realloc
public void makeLeakData(CurrentLeakData input) {
ArrayList<Object> dbLeakData = new ArrayList<Object>();
+ if (input == null) return;
dbLeakData.add(Integer.valueOf(input.getSequenceNumber()));
dbLeakData.add(Long.valueOf(input.getAllocatedValue()));
dbLeakData.add(Integer.valueOf(input.getPid()));
// }
} else if (chk.getApiType() == API_TYPE_CLOSE) {
int key = log.getKey();
- LeakData freeData = getChildHash().get(key);
+ LeakData freeData = getChildHash().get(Long.valueOf(key));
if (null != freeData) {
LeakData parent = leaks.get((long)freeData.getParentKey());
parent.removeChild(key);
- getChildHash().remove(key);
+ getChildHash().remove(Long.valueOf(key));
if (parent.getChildren().isEmpty()) {
- leaks.remove(parent.getKey());
+ leaks.remove(Long.valueOf(parent.getKey()));
}
} else {
- leaks.remove(key);
+ leaks.remove(Long.valueOf(key));
}
} else if (chk.getApiType() == API_TYPE_REALLOC) {
if (param.contains("0x")) {
rmKey = Long.decode(param);
} else {
- rmKey = Integer.parseInt(splitInputParam[0]);
+ rmKey = Long.parseLong(splitInputParam[0]);
}
leaks.remove(rmKey);
} catch (NumberFormatException e) {
String inputParam = log.getArgs();
String[] splitInputParam = inputParam.split("\\,"); //$NON-NLS-1$
String param = String.valueOf(splitInputParam[0]);
- long rmKey = -1;
+ int rmKey = -1;
try {
if (param.contains("0x")) {
- rmKey = Long.decode(param);
+ rmKey = Integer.decode(param);
} else {
rmKey = Integer.parseInt(splitInputParam[0]);
}