private void store() {
        int localSize = locals.getSize();
        int needSize = type.getSize();
        for (int i = 0; i < localSize; i++) {
            ScopeLogicVariable survivor = (ScopeLogicVariable) locals.getLastVariable(i);
            if (isShareable(survivor)) {
                this.positions = ArrayUtils.add(this.positions, i);
                this.locals.store(i, this);
                survivor.positions = ArrayUtils.subarray(survivor.positions, 1,
                        survivor.positions.length);
                needSize--;
                if (needSize == 0) {
                    break;
                }
            } else {
                if(!this.isAnonymous() && !survivor.isAnonymous()){
                    if (survivor.getName().equals(this.name)) {
                        throw new ASMSupportException("Duplicate local variable \"" + name + "\"");
                    }
                }
            }
        }
        while (needSize > 0) {
            this.positions = ArrayUtils
                    .add(this.positions, this.locals.getSize());
            this.locals.store(this);
            needSize--;
        }
        this.initStartPos = this.positions[0];
    }