InstanceKey[] fieldsKeys = getInvariantContents(symtab, du, opNode, fieldsVn); newFieldOperationObjectAndFieldConstant(isLoadOperation, action, objKeys, fieldsKeys);
InstanceKey[] fieldsKeys = getInvariantContents(symtab, du, opNode, fieldsVn); newFieldOperationObjectAndFieldConstant(isLoadOperation, action, objKeys, fieldsKeys);
protected void newFieldOperationFieldConstant(CGNode opNode, final boolean isLoadOperation, final ReflectedFieldAction action, final int objVn, final InstanceKey[] fieldsKeys) { IRView ir = getBuilder().getCFAContextInterpreter().getIRView(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); if (contentsAreInvariant(symtab, du, objVn)) { system.recordImplicitPointsToSet(objKey); InstanceKey[] objectKeys = getInvariantContents(symtab, du, opNode, objVn); newFieldOperationObjectAndFieldConstant(isLoadOperation, action, objectKeys, fieldsKeys); } else { newFieldOperationOnlyFieldConstant(isLoadOperation, action, objKey, fieldsKeys); } }
protected void newFieldOperationFieldConstant(CGNode opNode, final boolean isLoadOperation, final ReflectedFieldAction action, final int objVn, final InstanceKey[] fieldsKeys) { IRView ir = getBuilder().getCFAContextInterpreter().getIRView(opNode); SymbolTable symtab = ir.getSymbolTable(); DefUse du = getBuilder().getCFAContextInterpreter().getDU(opNode); PointerKey objKey = getBuilder().getPointerKeyForLocal(opNode, objVn); if (contentsAreInvariant(symtab, du, objVn)) { system.recordImplicitPointsToSet(objKey); InstanceKey[] objectKeys = getInvariantContents(symtab, du, opNode, objVn); newFieldOperationObjectAndFieldConstant(isLoadOperation, action, objectKeys, fieldsKeys); } else { newFieldOperationOnlyFieldConstant(isLoadOperation, action, objKey, fieldsKeys); } }