lastCallSig = getDottedSigConstantOperand();
lastCallSig = getSigConstantOperand();
	public void sawOpcode(int seen) {		if (seen == INVOKEVIRTUAL || seen == INVOKEINTERFACE) {			lastCallClass = getDottedClassConstantOperand();			lastCallMethod = getNameConstantOperand();			lastCallSig = getDottedSigConstantOperand();		}		if (seen == INVOKEVIRTUAL || seen == INVOKEINTERFACE)			if (getNameConstantOperand().equals("available")					&& getSigConstantOperand().equals("()I")					|| getNameConstantOperand().startsWith("get")					&& getNameConstantOperand().endsWith("Length")					&& getSigConstantOperand().equals("()I")					|| getClassConstantOperand().equals("java/io/File")					&& getNameConstantOperand().equals("length")					&& getSigConstantOperand().equals("()J")) {				sawAvailable = 70;				return;			}		sawAvailable--;		if ((seen == INVOKEVIRTUAL || seen == INVOKEINTERFACE)				&& getNameConstantOperand().equals("read")				&& (getSigConstantOperand().equals("([B)I")						|| getSigConstantOperand().equals("([BII)I")						|| getSigConstantOperand().equals("([C)I") || getSigConstantOperand()						.equals("([CII)I")) && isInputStream()) {			sawRead = true;			recentCallToAvailable = sawAvailable > 0;			readPC = getPC();			return;		}		if ((seen == INVOKEVIRTUAL || seen == INVOKEINTERFACE) 				&& getNameConstantOperand().equals("skip")				&& getSigConstantOperand().equals("(J)J")				&& isInputStream() ) {			// if not ByteArrayInput Stream			// and either no recent calls to length			// or it is a BufferedInputStream			wasBufferedInputStream = isBufferedInputStream();			sawSkip = true;			recentCallToAvailable = sawAvailable > 0 && !wasBufferedInputStream;			skipPC = getPC();			return;		}		if ((seen == POP) || (seen == POP2)) {			if (sawRead) {				bugReporter.reportBug(new BugInstance(this, "RR_NOT_CHECKED",						recentCallToAvailable ? LOW_PRIORITY : NORMAL_PRIORITY)						.addClassAndMethod(this).addCalledMethod(lastCallClass,								lastCallMethod, lastCallSig, false)						.addSourceLine(this, readPC));			} else if (sawSkip) {				bugReporter.reportBug(new BugInstance(this, "SR_NOT_CHECKED",						(wasBufferedInputStream ? HIGH_PRIORITY								: recentCallToAvailable ? LOW_PRIORITY										: NORMAL_PRIORITY)).addClassAndMethod(						this).addCalledMethod(lastCallClass, lastCallMethod,						lastCallSig, false).addSourceLine(this, skipPC));			}		}		sawRead = false;		sawSkip = false;	}