private void addGetData(BCClass bc) { // return getObjectField(i); BCMethod method = bc.declareMethod("getData", Object.class, new Class[]{ int.class }); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokevirtual().setMethod("getObject", Object.class, new Class[]{ int.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addGetData(BCClass bc) { // return getObjectField(i); BCMethod method = bc.declareMethod("getData", Object.class, new Class[]{ int.class }); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokevirtual().setMethod("getObject", Object.class, new Class[]{ int.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addGetData(BCClass bc) { // return getObjectField(i); BCMethod method = bc.declareMethod("getData", Object.class, new Class[]{ int.class }); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokevirtual().setMethod("getObject", Object.class, new Class[]{ int.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addGetData(BCClass bc) { // return getObjectField(i); BCMethod method = bc.declareMethod("getData", Object.class, new Class[]{ int.class }); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokevirtual().setMethod("getObject", Object.class, new Class[]{ int.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
private void addGetData(BCClass bc) { // return getObjectField(i); BCMethod method = bc.declareMethod("getData", Object.class, new Class[]{ int.class }); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokevirtual().setMethod("getObject", Object.class, new Class[]{ int.class }); code.areturn(); code.calculateMaxLocals(); code.calculateMaxStack(); }
/** * Adds the appropriate load method for the given type and local * index. */ private void loadLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.iload().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dload().setLocal(locidx); break; case JavaTypes.FLOAT: code.fload().setLocal(locidx); break; case JavaTypes.LONG: code.lload().setLocal(locidx); break; default: code.aload().setLocal(locidx); break; } }
/** * Adds the appropriate load method for the given type and local * index. */ private void loadLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.iload().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dload().setLocal(locidx); break; case JavaTypes.FLOAT: code.fload().setLocal(locidx); break; case JavaTypes.LONG: code.lload().setLocal(locidx); break; default: code.aload().setLocal(locidx); break; } }
/** * Adds the appropriate load method for the given type and local * index. */ private void loadLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.iload().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dload().setLocal(locidx); break; case JavaTypes.FLOAT: code.fload().setLocal(locidx); break; case JavaTypes.LONG: code.lload().setLocal(locidx); break; default: code.aload().setLocal(locidx); break; } }
/** * Adds the appropriate load method for the given type and local * index. */ private void loadLocalValue(Code code, int locidx, int typeCode) { switch (typeCode) { case JavaTypes.CHAR: case JavaTypes.BYTE: case JavaTypes.SHORT: case JavaTypes.INT: code.iload().setLocal(locidx); break; case JavaTypes.DOUBLE: code.dload().setLocal(locidx); break; case JavaTypes.FLOAT: code.fload().setLocal(locidx); break; case JavaTypes.LONG: code.lload().setLocal(locidx); break; default: code.aload().setLocal(locidx); break; } }
private void addSynchronization(BCClass bc) { BCMethod[] methods = bc.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].isPublic() && _synchs.contains(methods[i].getName())) methods[i].setSynchronized(true); } // add synchronized isLoaded call. // public synchronized boolean isLoaded (int field) // { // return super.isLoaded (field); // } BCMethod method = bc.declareMethod("isLoaded", boolean.class, new Class[]{ int.class }); method.setSynchronized(true); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokespecial().setMethod(AbstractPCData.class, "isLoaded", boolean.class, new Class[]{ int.class }); code.calculateMaxLocals(); code.calculateMaxStack(); code.ireturn(); }
private void addSynchronization(BCClass bc) { BCMethod[] methods = bc.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].isPublic() && _synchs.contains(methods[i].getName())) methods[i].setSynchronized(true); } // add synchronized isLoaded call. // public synchronized boolean isLoaded (int field) // { // return super.isLoaded (field); // } BCMethod method = bc.declareMethod("isLoaded", boolean.class, new Class[]{ int.class }); method.setSynchronized(true); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokespecial().setMethod(AbstractPCData.class, "isLoaded", boolean.class, new Class[]{ int.class }); code.calculateMaxLocals(); code.calculateMaxStack(); code.ireturn(); }
private void addSynchronization(BCClass bc) { BCMethod[] methods = bc.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].isPublic() && _synchs.contains(methods[i].getName())) methods[i].setSynchronized(true); } // add synchronized isLoaded call. // public synchronized boolean isLoaded (int field) // { // return super.isLoaded (field); // } BCMethod method = bc.declareMethod("isLoaded", boolean.class, new Class[]{ int.class }); method.setSynchronized(true); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokespecial().setMethod(AbstractPCData.class, "isLoaded", boolean.class, new Class[]{ int.class }); code.calculateMaxLocals(); code.calculateMaxStack(); code.ireturn(); }
private void addSynchronization(BCClass bc) { BCMethod[] methods = bc.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].isPublic() && _synchs.contains(methods[i].getName())) methods[i].setSynchronized(true); } // add synchronized isLoaded call. // public synchronized boolean isLoaded (int field) // { // return super.isLoaded (field); // } BCMethod method = bc.declareMethod("isLoaded", boolean.class, new Class[]{ int.class }); method.setSynchronized(true); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokespecial().setMethod(AbstractPCData.class, "isLoaded", boolean.class, new Class[]{ int.class }); code.calculateMaxLocals(); code.calculateMaxStack(); code.ireturn(); }
private void addSynchronization(BCClass bc) { BCMethod[] methods = bc.getDeclaredMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].isPublic() && _synchs.contains(methods[i].getName())) methods[i].setSynchronized(true); } // add synchronized isLoaded call. // public synchronized boolean isLoaded (int field) // { // return super.isLoaded (field); // } BCMethod method = bc.declareMethod("isLoaded", boolean.class, new Class[]{ int.class }); method.setSynchronized(true); Code code = method.getCode(true); code.aload().setThis(); code.iload().setParam(0); code.invokespecial().setMethod(AbstractPCData.class, "isLoaded", boolean.class, new Class[]{ int.class }); code.calculateMaxLocals(); code.calculateMaxStack(); code.ireturn(); }
private void addAttributeTranslation() { _pc.declareInterface(AttributeTranslator.class); BCMethod method = _pc.declareMethod(PRE + "AttributeIndexToFieldName", String.class, new Class[] { int.class }); method.makePublic(); Code code = method.getCode(true); FieldMetaData[] fmds = _meta.getFields(); // switch (val) code.iload().setParam(0); TableSwitchInstruction tabins = code.tableswitch(); tabins.setLow(0); tabins.setHigh(fmds.length - 1); // case i: // return <_attrsToFields.get(fmds[i].getName())> for (int i = 0; i < fmds.length; i++) { tabins.addTarget(code.constant().setValue( _attrsToFields.get(fmds[i].getName()))); code.areturn(); } // default: throw new IllegalArgumentException () tabins.setDefaultTarget(throwException (code, IllegalArgumentException.class)); code.calculateMaxLocals(); code.calculateMaxStack(); }
else { code.iload().setLocal(relLocal); TableSwitchInstruction tabins = code.tableswitch(); tabins.setLow(0);
ret = code.previous(); code.iload().setLocal(clear); toret = code.ifeq(); loadManagedInstance(code, false);
ret = code.previous(); code.iload().setLocal(clear); toret = code.ifeq(); loadManagedInstance(code, false);
ret = code.previous(); code.iload().setLocal(clear); toret = code.ifeq(); loadManagedInstance(code, false);