protected final String installBitSet(int[]arr) { String bitsetName = BITSET + ++bitsets; installArray(bitsetName, arr); return bitsetName; }
private void installArray(String name, byte[]arr, int p, int length) { factory.visitField(ACC_PRIVATE + ACC_FINAL, name, "[B", null, null); factoryInit.visitVarInsn(ALOAD, THIS); // this; loadInt(factoryInit, arr.length); // this, length factoryInit.visitIntInsn(NEWARRAY, T_BYTE); // this, arr for (int i=p, j=0; i < p + length; i++, j++) buildArray(j, arr[i] & 0xff, BASTORE); factoryInit.visitFieldInsn(PUTFIELD, factoryName, name, "[B"); }
protected final void store(String field, String singature) { loadThis(); match.visitFieldInsn(PUTFIELD, machineName, field, singature); }
protected final void store(String field) { store(field, "I"); }
protected final void load(String field) { load(field, "I"); }
private void installArray(String name, int[]arr) { factory.visitField(ACC_PRIVATE + ACC_FINAL, name, "[I", null, null); factoryInit.visitVarInsn(ALOAD, THIS); // this; loadInt(factoryInit, arr.length); // this, length factoryInit.visitIntInsn(NEWARRAY, T_INT); // this, arr for (int i=0;i < arr.length; i++) buildArray(i, arr[i], IASTORE); factoryInit.visitFieldInsn(PUTFIELD, factoryName, name, "[I"); }
protected final void load(String field, String singature) { loadThis(); match.visitFieldInsn(GETFIELD, machineName, field, singature); }
protected final void store(String field) { store(field, "I"); }
protected final void load(String field) { load(field, "I"); }
private void installArray(String name, int[]arr) { factory.visitField(ACC_PRIVATE + ACC_FINAL, name, "[I", null, null); factoryInit.visitVarInsn(ALOAD, THIS); // this; loadInt(factoryInit, arr.length); // this, length factoryInit.visitIntInsn(NEWARRAY, T_INT); // this, arr for (int i=0;i < arr.length; i++) buildArray(i, arr[i], IASTORE); factoryInit.visitFieldInsn(PUTFIELD, factoryName, name, "[I"); }
protected final String installTemplate(byte[]arr, int p, int length) { String templateName = TEMPLATE + ++templates; installArray(templateName, arr, p, length); return templateName; }
protected final void load(String field, String singature) { loadThis(); match.visitFieldInsn(GETFIELD, machineName, field, singature); }
private void installArray(String name, byte[]arr, int p, int length) { factory.visitField(ACC_PRIVATE + ACC_FINAL, name, "[B", null, null); factoryInit.visitVarInsn(ALOAD, THIS); // this; loadInt(factoryInit, arr.length); // this, length factoryInit.visitIntInsn(NEWARRAY, T_BYTE); // this, arr for (int i=p, j=0; i < p + length; i++, j++) buildArray(j, arr[i] & 0xff, BASTORE); factoryInit.visitFieldInsn(PUTFIELD, factoryName, name, "[B"); }
protected final String installCodeRange(int[]arr) { String coreRangeName = CODERANGE + ++ranges; installArray(coreRangeName, arr); return coreRangeName; }