public void visitFieldInsn(final int opcode, final String owner,
			final String name, final String desc) {
		mv.visitFieldInsn(opcode, owner, name, desc);

		if (constructor) {
			char c = desc.charAt(0);
			boolean longOrDouble = c == 'J' || c == 'D';
			switch (opcode) {
			case GETSTATIC:
				pushValue(OTHER);
				if (longOrDouble) {
					pushValue(OTHER);
				}
				break;
			case PUTSTATIC:
				popValue();
				if (longOrDouble) {
					popValue();
				}
				break;
			case PUTFIELD:
				popValue();
				if (longOrDouble) {
					popValue();
					popValue();
				}
				break;
			// case GETFIELD:
			default:
				if (longOrDouble) {
					pushValue(OTHER);
				}
			}
		}
	}