case ALOAD_0: case ALOAD_1: case ALOAD_2: case ALOAD_3: register = seen - ALOAD_0; Method m = dbc.getMethod();
case ALOAD: register = dbc.getRegisterOperand(); m = dbc.getMethod();
 	public void sawOpcode(DismantleBytecode dbc, int seen) { 		int register; 		LocalVariableTable lvt; 		LocalVariable lv; 		JavaClass cls; 		String signature = null; 		 		try 		{	 		switch (seen) {	 			case ALOAD_0:	 			case ALOAD_1:	 			case ALOAD_2:	 			case ALOAD_3:	 				register = seen - ALOAD_0;	 				Method m = dbc.getMethod();	 				lvt = m.getLocalVariableTable();	 				if (lvt != null) {	 					lv = lvt.getLocalVariable(register); 						signature = lv.getSignature();	  				}	 				pushBySignature(signature);	 				break;	 					 			case INVOKEVIRTUAL:	 			case INVOKESPECIAL:	 				signature = dbc.getSigConstantOperand();	 				Type[] argTypes = Type.getArgumentTypes(signature);	 				pop(argTypes.length);	 				pushBySignature(Type.getReturnType(signature).getSignature());	 				break;	 					 			default:	 				throw new UnsupportedOperationException("OpCode not supported yet" );	 		}	 	}	 	catch (Exception e) {	 		//If an error occurs, we clear the stack. one of two things will occur. Either the client will expect more stack	 		//items than really exist, and so they're condition check will fail, or the stack will resync with the code.	 		//But hopefully not false positives	 		stack.clear();	 	} 	}