515516517518519520521522523524525
mv.visitJumpInsn( Opcodes.IFNE, l1 ); // __fieldIsSet = true; final Label l3 = new Label(); mv.visitLabel( l3 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitInsn( Opcodes.ICONST_1 ); mv.visitFieldInsn( Opcodes.PUTFIELD, className,
528529530531532533534535536537538
if ( Map.class.isAssignableFrom( fieldType ) || Collection.class.isAssignableFrom( fieldType ) || fieldType.isArray() ) { // FieldType aux = this.delegate.getField(); Label l01 = new Label(); mv.visitLabel( l01 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitFieldInsn( Opcodes.GETFIELD, className, DELEGATE_FIELD_NAME,
551552553554555556557558559560561
mv.visitVarInsn( Opcodes.ASTORE, 1 ); // this.field = (FieldType) ShadoProxyUtils.clone( aux ); Label l11 = new Label(); mv.visitLabel( l11 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitVarInsn( Opcodes.ALOAD, 1 ); mv.visitMethodInsn( Opcodes.INVOKESTATIC,
570571572573574575576577578579580
Type.getDescriptor( fieldType ) ); } else { // __field = this.delegate.method(); final Label l2 = new Label(); mv.visitLabel( l2 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitFieldInsn( Opcodes.GETFIELD,
599600601602603604605606607608609
} // } // return __field; mv.visitLabel( l1 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitFieldInsn( Opcodes.GETFIELD, className, fieldName,
890891892893894895896897898899900
new Type[]{} ), null, null ); mv.visitCode(); final Label l0 = new Label(); mv.visitLabel( l0 ); // this.clear(); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL, className,
900901902903904905906907908909910
className, "clear", Type.getMethodDescriptor( Type.VOID_TYPE, new Type[0] ) ); Label l1 = new Label(); mv.visitLabel( l1 ); // this.putAll( this.delegate ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitVarInsn( Opcodes.ALOAD, 0 );
916917918919920921922923924925926
className, "putAll", Type.getMethodDescriptor( Type.VOID_TYPE, new Type[]{Type.getType( Map.class )} ) ); Label l2 = new Label(); mv.visitLabel( l2 ); mv.visitInsn( Opcodes.RETURN ); Label l3 = new Label(); mv.visitLabel( l3 ); mv.visitLocalVariable( "this", "L" + className + ";",
919920921922923924925926927928929
new Type[]{Type.getType( Map.class )} ) ); Label l2 = new Label(); mv.visitLabel( l2 ); mv.visitInsn( Opcodes.RETURN ); Label l3 = new Label(); mv.visitLabel( l3 ); mv.visitLocalVariable( "this", "L" + className + ";", null, l0, l3,
947948949950951952953954955956957
exceptions ); mv.visitCode(); // return this.delegate.method(...); final Label l0 = new Label(); mv.visitLabel( l0 ); mv.visitVarInsn( Opcodes.ALOAD, 0 ); mv.visitFieldInsn( Opcodes.GETFIELD, className, ShadowProxyFactory.DELEGATE_FIELD_NAME,