From a42e3cd63cbb7d84ff785e9d806f2daba97df4ed Mon Sep 17 00:00:00 2001 From: redkale Date: Wed, 25 Sep 2024 15:21:24 +0800 Subject: [PATCH] ProtobufDynEncoder --- .../java/org/redkale/convert/pb/ProtobufDynEncoder.java | 9 ++++++++- .../redkale/test/convert/pb/UserBeanProtoDynEncoder.java | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java b/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java index 8b00702db..d406a5e57 100644 --- a/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java +++ b/src/main/java/org/redkale/convert/pb/ProtobufDynEncoder.java @@ -287,10 +287,17 @@ public abstract class ProtobufDynEncoder extends ProtobufObjectEncoder { false); } } - + // out.writeObjectE(value); mv.visitVarInsn(ALOAD, 3); // out mv.visitVarInsn(ALOAD, 2); // value mv.visitMethodInsn(INVOKEVIRTUAL, pbwriterName, "writeObjectE", "(Ljava/lang/Object;)V", false); + // offerWriter(out0, out); + mv.visitVarInsn(ALOAD, 0); // this + mv.visitVarInsn(ALOAD, 1); // out0 + mv.visitVarInsn(ALOAD, 3); // out + mv.visitMethodInsn( + INVOKEVIRTUAL, newDynName, "offerWriter", "(" + pbwriterDesc + pbwriterDesc + ")V", false); + mv.visitInsn(RETURN); mv.visitMaxs(4, 3); mv.visitEnd(); diff --git a/src/test/java/org/redkale/test/convert/pb/UserBeanProtoDynEncoder.java b/src/test/java/org/redkale/test/convert/pb/UserBeanProtoDynEncoder.java index e6b2ba5f4..ee96e0b66 100644 --- a/src/test/java/org/redkale/test/convert/pb/UserBeanProtoDynEncoder.java +++ b/src/test/java/org/redkale/test/convert/pb/UserBeanProtoDynEncoder.java @@ -80,6 +80,7 @@ public class UserBeanProtoDynEncoder extends ProtobufDynEncoder { out.writeFieldValue(100, value.kind); out.writeObjectField(mapEnMember, value); - out.writeObjectE(out); + out.writeObjectE(value); + offerWriter(out0, out); } }