String className = obj.getClassName(cpg); try { Map<String, XField> accessMap = InnerClassAccessMap.instance().getAccessMapForClass(className); XField accessField = accessMap.get(methodName); if (accessField != null) {  Type[] argumentTypeList = Type.getArgumentTypes(methodSig); Type returnType = Type.getReturnType(methodSig);  String classSig = "L" + className.replace('.', '/') + ";";  if (returnType.equals(Type.VOID)) {  if (argumentTypeList.length == 1 && accessField.isStatic()) {  storeStaticField((StaticField) accessField, obj); return; } else if (argumentTypeList.length == 2 && classSig.equals(argumentTypeList[0].getSignature()) && !accessField.isStatic()) {  storeInstanceField((InstanceField) accessField, obj); return; } } else {  if (argumentTypeList.length == 0 && accessField.isStatic()) {  loadStaticField((StaticField) accessField, obj); return; } else if (argumentTypeList.length == 1 && classSig.equals(argumentTypeList[0].getSignature()) && !accessField.isStatic()) {  loadInstanceField((InstanceField) accessField, obj); return; } } } } catch (ClassNotFoundException e) { lookupFailureCallback.reportMissingClass(e); }
	public void visitINVOKESTATIC(INVOKESTATIC obj) {		if (REDUNDANT_LOAD_ELIMINATION) {			ConstantPoolGen cpg = getCPG();			String methodName = obj.getName(cpg);			String methodSig = obj.getSignature(cpg);				if (methodName.equals("class$") && methodSig.equals("(Ljava/lang/String;)Ljava/lang/Class;")) {				// Access of a Class object				ValueNumberFrame frame = getFrame();				try {					ValueNumber arg = frame.getTopValue();					String className = stringConstantMap.get(arg);					if (className != null) {						frame.popValue();						if (RLE_DEBUG) System.out.print("[found access of class object " + className + "]");						frame.pushValue(getClassObjectValue(className));						return;					}				} catch (DataflowAnalysisException e) {					throw new IllegalStateException("stack underflow at " + handle);				}			} else if (methodName.startsWith("access$")) {				// Field access from inner class to outer			}		}		handleNormalInstruction(obj);	}