if (hasTarget()) position += 1;
if (hasTarget()) position += positionOffset;
    public void initializeArgVars() {        if (argVars != null) return;    	InstructionFactory fact = getFactory();        int len = getArgCount();        argVars = new BcelVar[len];                             if (getKind().argsOnStack()) {            // we move backwards because we're popping off the stack            for (int i = len - 1; i >= 0; i--) {                TypeX type = getArgType(i);                BcelVar tmp = genTempVar(type, "ajc$arg" + i);                range.insert(tmp.createStore(getFactory()), Range.OutsideBefore);                int position = i;                if (hasTarget()) position += 1;                tmp.setPositionInAroundState(position);                argVars[i] = tmp;            }        } else {            int index = 0;            if (hasThis()) index++;            for (int i = 0; i < len; i++) {                TypeX type = getArgType(i);                 BcelVar tmp = genTempVar(type, "ajc$arg" + i);                range.insert(tmp.createCopyFrom(fact, index), Range.OutsideBefore);                argVars[i] = tmp;                int position = i;                if (hasTarget()) position += 1;                tmp.setPositionInAroundState(position);                index += type.getSize();            }               }    }   