int frameRateIndex, int frameTimeIndex) {
if (!isInitState) {
init();
+ initInsertForCompareValue(seq, featureIndex, frameRateIndex, frameTimeIndex);
}
if (isChangeStateValue(featureIndex, value)) {
// System.out.println("this : " + contextID + " contextID : " +
}
}
+ private void initInsertForCompareValue(int seq, int featureIndex, int frameRateIndex,
+ int frameTimeIndex) {
+ updateContextHistoryValue(seq, featureIndex, frameRateIndex, frameTimeIndex);
+ GLDataManager.getInstance().getContextDBTableManage()
+ .insertContextData(getCurrentValueList());
+ }
+
private boolean isChangeStateValue(int featureIndex, Object newValue) {
Object preValue = getPreValueList().get(featureIndex);
boolean isChange = false;
if (!GLDataManager.getInstance().getContextDBTableManage().isIntegerType(featureIndex)) {
return false;
}
- if ((Integer) preValue != (Integer) newValue) {
+ int preInt = (Integer) preValue;
+ int newInt = (Integer) newValue;
+ if (preInt != newInt) {
return true;
} else {
return false;
if (!GLDataManager.getInstance().getContextDBTableManage().isLongType(featureIndex)) {
return false;
}
- if ((Long) preValue != (Long) newValue) {
+ long preLong = (Long) preValue;
+ long newLong = (Long) newValue;
+ if (preLong != newLong) {
return true;
} else {
return false;
if (!GLDataManager.getInstance().getContextDBTableManage().isBooleans(featureIndex)) {
return false;
}
- if ((Boolean) preValue != (Boolean) newValue) {
+ boolean preBoolean = (Boolean) preValue;
+ boolean newBoolean = (Boolean) newValue;
+ if (preBoolean != newBoolean) {
return true;
} else {
return false;
LinkedHashMap<Long, GLContextDataManager> contextMap, long sharingContextId) {
sharingContextIdList.add(sharingContextId);
GLContextDataManager sharingContextValueType = contextMap.get(sharingContextId);
+ if (null == sharingContextValueType) {
+ return;
+ }
for (int i = 0; i < sharingContextValueType.sharingContextIdList.size(); i++) {
long savedSharingContextId = sharingContextValueType.sharingContextIdList.get(i);
if (isFinishUpdateCurrentContextDataManger(savedSharingContextId, sharingContextId)
private void updateSharingListOfSharingContext(
LinkedHashMap<Long, GLContextDataManager> contextMap, long sharingContextId) {
GLContextDataManager sharingContextValueType = contextMap.get(sharingContextId);
+ if (null == sharingContextValueType) {
+ return;
+ }
for (int i = 0; i < sharingContextValueType.sharingContextIdList.size(); i++) {
long savedSharingContextId = sharingContextValueType.sharingContextIdList.get(i);
if (isFinishUpdateCurrentContextDataManger(savedSharingContextId, sharingContextId)) {
return this.glStateDataManager;
}
- public void extractEGLAPIParameter(GLES20LogData logData) {
+ public void extractSharingContextAPIParameter(GLES20LogData logData) {
+ String apiName = logData.getApiName();
+ if (!apiName.equals(GLAPINameDefine.API_EGL_CREATE_CONTEXT)
+ && !apiName.equals(GLAPINameDefine.API_EVAS_GL_CREATE_CONTEXT)) {
+ return;
+ }
if (glStateDataManager.isNormalAPIStatusForExtractParameter(logData)) {
eglAPILogManager(logData);
}
private void eglAPILogManager(GLES20LogData logData) {
String apiName = logData.getApiName();
+ if (apiName.equals(GLAPINameDefine.API_EGL_CREATE_CONTEXT)) {
+ insertContextOfEGL(logData);
+ } else if (apiName.equals(GLAPINameDefine.API_EVAS_GL_CREATE_CONTEXT)) {
+ insertContextOfEvasGL(logData);
+ } else {
+ DA_LOG.error("GL extract sharing context API parameter : " + apiName);
+ }
+ }
+
+ private void insertContextOfEGL(GLES20LogData logData) {
+ String apiName = logData.getApiName();
String parameter = logData.getArgs();
String parameters[] = parameter.split(CommonConstants.COMMA + CommonConstants.SPACE);
String returnValue = logData.getReturn();
- if (!apiName.equals(GLAPINameDefine.API_EGL_CREATE_CONTEXT)) {
- return;
- }
if (parameters.length != 4) {
DA_LOG.error("GL extract API parameter : " + apiName);
return;
insertSharingData();
}
+ private void insertContextOfEvasGL(GLES20LogData logData) {
+ String apiName = logData.getApiName();
+ String parameter = logData.getArgs();
+ String parameters[] = parameter.split(CommonConstants.COMMA + CommonConstants.SPACE);
+ String returnValue = logData.getReturn();
+ if (parameters.length != 2) {
+ DA_LOG.error("GL extract API parameter : " + apiName);
+ return;
+ }
+ long currentContextId = AnalyzerUtil.addrToLong(returnValue);
+ long sharingContextId = AnalyzerUtil.addrToLong(parameters[1]);
+ if (!isExistSharingContextID(currentContextId)) {
+ return;
+ }
+ updateSharingDataAtCurrentContextDataManager(currentContextId, sharingContextId);
+ insertSharingData();
+ }
+
private boolean isExistSharingContextID(long currentContextId) {
if (currentContextId != 0) {
return true;