protected void readAttribute(String name, int length, ConstantPool cp,
			DataInputStream input, int howMuch) throws IOException {
		if ((howMuch & KNOWNATTRIBS) != 0 && name.equals("Code")) {
			bytecode = new BytecodeInfo(this);
			bytecode.read(cp, input);
		} else if (name.equals("Exceptions")) {
			int count = input.readUnsignedShort();
			exceptions = new String[count];
			for (int i = 0; i < count; i++)
				exceptions[i] = cp.getClassName(input.readUnsignedShort());
			if (length != 2 * (count + 1))
				throw new ClassFormatException(
						"Exceptions attribute has wrong length");
		} else if (name.equals("Synthetic")) {
			syntheticFlag = true;
			if (length != 0)
				throw new ClassFormatException(
						"Synthetic attribute has wrong length");
		} else if (name.equals("Deprecated")) {
			deprecatedFlag = true;
			if (length != 0)
				throw new ClassFormatException(
						"Deprecated attribute has wrong length");
		} else
			super.readAttribute(name, length, cp, input, howMuch);
	}