.class public Lcom/alibaba/fastjson/serializer/ASMSerializerFactory; .super Ljava/lang/Object; .source "ASMSerializerFactory.java" # interfaces .implements Lcom/alibaba/fastjson/asm/Opcodes; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context; } .end annotation # static fields .field static final JSONSerializer:Ljava/lang/String; .field static final JavaBeanSerializer:Ljava/lang/String; .field static final JavaBeanSerializer_desc:Ljava/lang/String; .field static final SerialContext_desc:Ljava/lang/String; .field static final SerializeWriter:Ljava/lang/String; # instance fields .field protected final classLoader:Lcom/alibaba/fastjson/util/ASMClassLoader; .field private final seed:Ljava/util/concurrent/atomic/AtomicLong; # direct methods .method static constructor ()V .locals 2 .line 40 const-class v0, Lcom/alibaba/fastjson/serializer/JSONSerializer; invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; .line 41 const-class v0, Lcom/alibaba/fastjson/serializer/SerializeWriter; invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; .line 42 const-class v0, Lcom/alibaba/fastjson/serializer/JavaBeanSerializer; invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer:Ljava/lang/String; .line 43 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "L" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-class v1, Lcom/alibaba/fastjson/serializer/JavaBeanSerializer; invoke-static {v1}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v1, ";" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; .line 44 const-class v0, Lcom/alibaba/fastjson/serializer/SerialContext; invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerialContext_desc:Ljava/lang/String; return-void .end method .method public constructor ()V .locals 1 .line 34 invoke-direct {p0}, Ljava/lang/Object;->()V .line 36 new-instance v0, Lcom/alibaba/fastjson/util/ASMClassLoader; invoke-direct {v0}, Lcom/alibaba/fastjson/util/ASMClassLoader;->()V iput-object v0, p0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->classLoader:Lcom/alibaba/fastjson/util/ASMClassLoader; .line 38 new-instance v0, Ljava/util/concurrent/atomic/AtomicLong; invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicLong;->()V iput-object v0, p0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->seed:Ljava/util/concurrent/atomic/AtomicLong; return-void .end method .method private _after(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 4 const/16 v0, 0x19 const/4 v1, 0x1 .line 1358 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v1, 0x2 .line 1359 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v0, "seperator" .line 1360 invoke-virtual {p2, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x15 invoke-interface {p1, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1361 sget-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v1, "writeAfter" const-string v2, "(Ljava/lang/Object;C)C" const/16 v3, 0xb6 invoke-interface {p1, v3, v0, v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v0, "seperator" .line 1363 invoke-virtual {p2, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 const/16 v0, 0x36 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V return-void .end method .method private _apply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 5 .line 1406 iget-object p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; const/16 v0, 0x19 const/4 v1, 0x1 .line 1408 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v1, 0x2 .line 1409 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1410 sget v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, v0, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1412 sget-object v2, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; const/16 v3, 0x15 const/16 v4, 0xb8 if-ne p2, v2, :cond_0 const-string p2, "byte" .line 1413 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v3, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Byte" const-string p3, "valueOf" const-string v0, "(B)Ljava/lang/Byte;" .line 1414 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1415 :cond_0 sget-object v2, Ljava/lang/Short;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_1 const-string p2, "short" .line 1416 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v3, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Short" const-string p3, "valueOf" const-string v0, "(S)Ljava/lang/Short;" .line 1417 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1418 :cond_1 sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_2 const-string p2, "int" .line 1419 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v3, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Integer" const-string p3, "valueOf" const-string v0, "(I)Ljava/lang/Integer;" .line 1420 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1421 :cond_2 sget-object v2, Ljava/lang/Character;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_3 const-string p2, "char" .line 1422 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v3, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Character" const-string p3, "valueOf" const-string v0, "(C)Ljava/lang/Character;" .line 1423 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1424 :cond_3 sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_4 const/16 p2, 0x16 const-string v0, "long" .line 1425 invoke-virtual {p3, v0, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Long" const-string p3, "valueOf" const-string v0, "(J)Ljava/lang/Long;" .line 1426 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1427 :cond_4 sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_5 const/16 p2, 0x17 const-string v0, "float" .line 1428 invoke-virtual {p3, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Float" const-string p3, "valueOf" const-string v0, "(F)Ljava/lang/Float;" .line 1429 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1430 :cond_5 sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_6 const/16 p2, 0x18 const-string v0, "double" .line 1431 invoke-virtual {p3, v0, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Double" const-string p3, "valueOf" const-string v0, "(D)Ljava/lang/Double;" .line 1432 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1433 :cond_6 sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; if-ne p2, v1, :cond_7 const-string p2, "boolean" .line 1434 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v3, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Boolean" const-string p3, "valueOf" const-string v0, "(Z)Ljava/lang/Boolean;" .line 1435 invoke-interface {p1, v4, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1436 :cond_7 const-class v1, Ljava/math/BigDecimal; if-ne p2, v1, :cond_8 const-string p2, "decimal" .line 1437 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1438 :cond_8 const-class v1, Ljava/lang/String; if-ne p2, v1, :cond_9 const-string p2, "string" .line 1439 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1440 :cond_9 invoke-virtual {p2}, Ljava/lang/Class;->isEnum()Z move-result v1 if-eqz v1, :cond_a const-string p2, "enum" .line 1441 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1442 :cond_a const-class v1, Ljava/util/List; invoke-virtual {v1, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result p2 if-eqz p2, :cond_b const-string p2, "list" .line 1443 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 :cond_b const-string p2, "object" .line 1445 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V :goto_0 const/16 p2, 0xb6 .line 1447 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v0, "apply" const-string v1, "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Z" invoke-interface {p1, p2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V return-void .end method .method private _before(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 4 const/16 v0, 0x19 const/4 v1, 0x1 .line 1349 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v1, 0x2 .line 1350 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v0, "seperator" .line 1351 invoke-virtual {p2, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x15 invoke-interface {p1, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1352 sget-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v1, "writeBefore" const-string v2, "(Ljava/lang/Object;C)C" const/16 v3, 0xb6 invoke-interface {p1, v3, v0, v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v0, "seperator" .line 1354 invoke-virtual {p2, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 const/16 v0, 0x36 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V return-void .end method .method private _boolean(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 839 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 841 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 842 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "boolean" .line 843 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x36 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 845 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 847 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 848 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v1, 0x15 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 849 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "boolean" .line 850 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 852 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;Z)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 854 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 856 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _byte(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 872 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 874 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 875 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "byte" .line 876 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x36 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 878 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 880 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 881 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v1, 0x15 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 882 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "byte" .line 883 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 885 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;I)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 887 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 889 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _char(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 818 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 820 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 821 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "char" .line 822 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x36 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 824 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 826 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 827 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v1, 0x15 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 828 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "char" .line 829 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 831 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;C)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 833 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 835 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _decimal(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 935 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 937 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 938 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "decimal" .line 939 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x3a invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 941 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 943 new-instance v0, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v0}, Lcom/alibaba/fastjson/asm/Label;->()V .line 944 new-instance v1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 945 new-instance v2, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v2}, Lcom/alibaba/fastjson/asm/Label;->()V .line 947 invoke-interface {p2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v0, "decimal" .line 950 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v3, 0x19 invoke-interface {p2, v3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v0, 0xc7 .line 951 invoke-interface {p2, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 952 invoke-direct {p0, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_if_write_null(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 p3, 0xa7 .line 953 invoke-interface {p2, p3, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 955 invoke-interface {p2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v0, "out" .line 957 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 invoke-interface {p2, v3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v0, "seperator" .line 958 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x15 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 959 sget v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v0, "decimal" .line 960 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 invoke-interface {p2, v3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 961 sget-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v1, "writeFieldValue" const-string v3, "(CLjava/lang/String;Ljava/math/BigDecimal;)V" const/16 v4, 0xb6 invoke-interface {p2, v4, v0, v1, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 964 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 965 invoke-interface {p2, p3, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 967 invoke-interface {p2, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 969 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _double(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 798 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 800 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 801 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "double" const/4 v1, 0x2 .line 802 invoke-virtual {p4, v0, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result v0 const/16 v2, 0x39 invoke-interface {p2, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 804 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 806 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 807 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v2, 0x15 invoke-interface {p2, v2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 808 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "double" .line 809 invoke-virtual {p4, p3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 const/16 v0, 0x18 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 810 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;D)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 812 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 814 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _enum(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 704 invoke-virtual {p3}, Lcom/alibaba/fastjson/util/FieldInfo;->getAnnotation()Lcom/alibaba/fastjson/annotation/JSONField; move-result-object p1 const/4 v0, 0x0 if-eqz p1, :cond_2 .line 706 invoke-interface {p1}, Lcom/alibaba/fastjson/annotation/JSONField;->serialzeFeatures()[Lcom/alibaba/fastjson/serializer/SerializerFeature; move-result-object p1 array-length v1, p1 const/4 v2, 0x0 :goto_0 if-ge v0, v1, :cond_1 aget-object v3, p1, v0 .line 707 sget-object v4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingToString:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne v3, v4, :cond_0 const/4 v2, 0x1 :cond_0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 move v0, v2 .line 713 :cond_2 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 714 new-instance v1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 715 new-instance v2, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v2}, Lcom/alibaba/fastjson/asm/Label;->()V .line 717 invoke-direct {p0, p2, p3, p4, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 718 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const/16 v3, 0xc0 const-string v4, "java/lang/Enum" .line 719 invoke-interface {p2, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const/16 v3, 0x3a const-string v4, "enum" .line 720 invoke-virtual {p4, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v4 invoke-interface {p2, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 722 invoke-direct {p0, p2, p3, p4, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string v3, "enum" .line 724 invoke-virtual {p4, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v3 const/16 v4, 0x19 invoke-interface {p2, v4, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v3, 0xc7 .line 725 invoke-interface {p2, v3, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 726 invoke-direct {p0, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_if_write_null(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 p3, 0xa7 .line 727 invoke-interface {p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 729 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string p1, "out" .line 730 invoke-virtual {p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p1 invoke-interface {p2, v4, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p1, 0x15 const-string p3, "seperator" .line 731 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, p1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 732 sget p1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v4, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p1, "enum" .line 733 invoke-virtual {p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p1 invoke-interface {p2, v4, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p1, 0xb6 if-eqz v0, :cond_3 const-string p3, "java/lang/Object" const-string v0, "toString" const-string v3, "()Ljava/lang/String;" .line 736 invoke-interface {p2, p1, p3, v0, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 737 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v3, "(CLjava/lang/String;Ljava/lang/String;)V" invoke-interface {p2, p1, p3, v0, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_1 .line 740 :cond_3 invoke-static {p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result p3 if-eqz p3, :cond_4 const-string p3, "java/lang/Enum" const-string v0, "name" const-string v3, "()Ljava/lang/String;" .line 741 invoke-interface {p2, p1, p3, v0, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 742 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValueStringWithDoubleQuote" const-string v3, "(CLjava/lang/String;Ljava/lang/String;)V" invoke-interface {p2, p1, p3, v0, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_1 .line 745 :cond_4 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v3, "(CLjava/lang/String;Ljava/lang/Enum;)V" invoke-interface {p2, p1, p3, v0, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 750 :goto_1 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 752 invoke-interface {p2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 754 invoke-interface {p2, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .locals 6 .line 1219 iget-object v0, p2, Lcom/alibaba/fastjson/util/FieldInfo;->field:Ljava/lang/reflect/Field; const/16 v1, 0x9a const/16 v2, 0x19 if-eqz v0, :cond_0 .line 1220 iget-object v0, p2, Lcom/alibaba/fastjson/util/FieldInfo;->field:Ljava/lang/reflect/Field; invoke-virtual {v0}, Ljava/lang/reflect/Field;->getModifiers()I move-result v0 invoke-static {v0}, Ljava/lang/reflect/Modifier;->isTransient(I)Z move-result v0 if-eqz v0, :cond_0 const-string v0, "out" .line 1221 invoke-virtual {p3, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 invoke-interface {p1, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v0, 0xb6 .line 1222 sget-object v3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v4, "isSkipTransientField" const-string v5, "()Z" invoke-interface {p1, v0, v3, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1226 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1230 :cond_0 invoke-direct {p0, p1, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_notWriteDefault(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 1232 invoke-static {p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v0 if-eqz v0, :cond_1 return-void .line 1236 :cond_1 invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_apply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 v0, 0x99 .line 1237 invoke-interface {p1, v0, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1239 invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_processKey(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 1241 new-instance v0, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v0}, Lcom/alibaba/fastjson/asm/Label;->()V const/16 v3, 0x15 const-string v4, "checkValue" .line 1243 invoke-virtual {p3, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v4 invoke-interface {p1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1244 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1246 invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_processValue(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 1248 sget v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1249 sget v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->processValue:I invoke-interface {p1, v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v1, 0xa5 .line 1250 invoke-interface {p1, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1251 invoke-direct {p0, p1, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_writeObject(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const/16 p2, 0xa7 .line 1252 invoke-interface {p1, p2, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1254 invoke-interface {p1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _float(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 778 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 780 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 781 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "float" .line 782 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x38 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 784 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 786 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 787 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v1, 0x15 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 788 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "float" .line 789 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x17 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 790 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;F)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 792 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 794 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .locals 2 .line 860 iget-object v0, p3, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method; const/16 v1, 0x19 if-eqz v0, :cond_0 const-string p3, "entity" .line 862 invoke-virtual {p2, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p2, 0xb6 .line 863 invoke-virtual {v0}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class; move-result-object p3 invoke-static {p3}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object p3 invoke-virtual {v0}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String; move-result-object v1 invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/reflect/Method;)Ljava/lang/String; move-result-object v0 invoke-interface {p1, p2, p3, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_0 :cond_0 const-string v0, "entity" .line 865 invoke-virtual {p2, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p2, 0xb4 .line 866 iget-object v0, p3, Lcom/alibaba/fastjson/util/FieldInfo;->declaringClass:Ljava/lang/Class; invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v0 iget-object v1, p3, Lcom/alibaba/fastjson/util/FieldInfo;->field:Ljava/lang/reflect/Field; invoke-virtual {v1}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; move-result-object v1 iget-object p3, p3, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 867 invoke-static {p3}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object p3 .line 866 invoke-interface {p1, p2, v0, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_0 return-void .end method .method private _if_write_null(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 17 move-object/from16 v0, p1 move-object/from16 v1, p2 move-object/from16 v2, p3 .line 1590 iget-object v3, v1, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 1592 new-instance v4, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v4}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1593 new-instance v5, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v5}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1594 new-instance v6, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v6}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1595 new-instance v7, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v7}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1597 invoke-interface {v0, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1605 invoke-virtual/range {p2 .. p2}, Lcom/alibaba/fastjson/util/FieldInfo;->getAnnotation()Lcom/alibaba/fastjson/annotation/JSONField; move-result-object v1 const/4 v4, 0x0 if-eqz v1, :cond_6 .line 1607 invoke-interface {v1}, Lcom/alibaba/fastjson/annotation/JSONField;->serialzeFeatures()[Lcom/alibaba/fastjson/serializer/SerializerFeature; move-result-object v1 array-length v8, v1 const/4 v9, 0x0 const/4 v10, 0x0 const/4 v11, 0x0 const/4 v12, 0x0 const/4 v13, 0x0 :goto_0 if-ge v4, v8, :cond_5 aget-object v14, v1, v4 .line 1608 sget-object v15, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteMapNullValue:Lcom/alibaba/fastjson/serializer/SerializerFeature; const/16 v16, 0x1 if-ne v14, v15, :cond_0 const/4 v9, 0x1 goto :goto_1 .line 1610 :cond_0 sget-object v15, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullNumberAsZero:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne v14, v15, :cond_1 const/4 v11, 0x1 goto :goto_1 .line 1612 :cond_1 sget-object v15, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullStringAsEmpty:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne v14, v15, :cond_2 const/4 v10, 0x1 goto :goto_1 .line 1614 :cond_2 sget-object v15, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullBooleanAsFalse:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne v14, v15, :cond_3 const/4 v12, 0x1 goto :goto_1 .line 1616 :cond_3 sget-object v15, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullListAsEmpty:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne v14, v15, :cond_4 const/4 v13, 0x1 :cond_4 :goto_1 add-int/lit8 v4, v4, 0x1 goto :goto_0 :cond_5 move v4, v9 goto :goto_2 :cond_6 const/4 v10, 0x0 const/4 v11, 0x0 const/4 v12, 0x0 const/4 v13, 0x0 :goto_2 const/16 v1, 0x19 const/16 v8, 0xb6 if-nez v4, :cond_7 const-string v4, "out" .line 1623 invoke-virtual {v2, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v4 invoke-interface {v0, v1, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1624 sget-object v4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v9, "isWriteMapNullValue" const-string v14, "()Z" invoke-interface {v0, v8, v4, v9, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v4, 0x99 .line 1626 invoke-interface {v0, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1629 :cond_7 invoke-interface {v0, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v4, "out" .line 1631 invoke-virtual {v2, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v4 invoke-interface {v0, v1, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v4, 0x15 const-string v6, "seperator" .line 1632 invoke-virtual {v2, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v0, v4, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1633 sget v4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {v0, v1, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1635 const-class v1, Ljava/lang/String; if-eq v3, v1, :cond_10 const-class v1, Ljava/lang/Character; if-ne v3, v1, :cond_8 goto/16 :goto_4 .line 1644 :cond_8 const-class v1, Ljava/lang/Number; invoke-virtual {v1, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 const/4 v4, 0x3 if-eqz v1, :cond_a if-eqz v11, :cond_9 .line 1646 invoke-interface {v0, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1647 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldValue" const-string v4, "(CLjava/lang/String;I)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 .line 1650 :cond_9 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldNullNumber" const-string v4, "(CLjava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 .line 1653 :cond_a const-class v1, Ljava/lang/Boolean; if-ne v3, v1, :cond_c if-eqz v12, :cond_b .line 1655 invoke-interface {v0, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1656 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldValue" const-string v4, "(CLjava/lang/String;Z)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 .line 1659 :cond_b sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldNullBoolean" const-string v4, "(CLjava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 .line 1662 :cond_c const-class v1, Ljava/util/Collection; invoke-virtual {v1, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 if-nez v1, :cond_e invoke-virtual {v3}, Ljava/lang/Class;->isArray()Z move-result v1 if-eqz v1, :cond_d goto :goto_3 .line 1671 :cond_d sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldNull" const-string v4, "(CLjava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 :cond_e :goto_3 if-eqz v13, :cond_f .line 1664 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldEmptyList" const-string v4, "(CLjava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 .line 1667 :cond_f sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldNullList" const-string v4, "(CLjava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 :cond_10 :goto_4 if-eqz v10, :cond_11 const-string v1, "" .line 1637 invoke-interface {v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1638 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldValue" const-string v4, "(CLjava/lang/String;Ljava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_5 move-object/from16 v1, p0 goto :goto_6 .line 1641 :cond_11 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "writeFieldNullString" const-string v4, "(CLjava/lang/String;)V" invoke-interface {v0, v8, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_5 .line 1676 :goto_6 invoke-direct {v1, v0, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 v2, 0xa7 .line 1678 invoke-interface {v0, v2, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1680 invoke-interface {v0, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1682 invoke-interface {v0, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _int(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 914 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 916 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 917 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "int" .line 918 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x36 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 920 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 922 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 923 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v1, 0x15 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 924 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "int" .line 925 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 927 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;I)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 929 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 931 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _labelApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .locals 2 const/16 p3, 0x19 const/4 v0, 0x1 .line 1279 invoke-interface {p1, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1280 iget-object p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->label:Ljava/lang/String; invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1282 sget-object p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string p3, "applyLabel" const-string v0, "(Ljava/lang/String;)Z" const/16 v1, 0xb6 invoke-interface {p1, v1, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 p2, 0x99 .line 1283 invoke-interface {p1, p2, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _list(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 16 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p2 move-object/from16 v2, p3 move-object/from16 v3, p4 .line 1017 iget-object v4, v2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type; .line 1020 instance-of v5, v4, Ljava/lang/Class; if-eqz v5, :cond_0 .line 1021 const-class v4, Ljava/lang/Object; goto :goto_0 .line 1023 :cond_0 check-cast v4, Ljava/lang/reflect/ParameterizedType; invoke-interface {v4}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type; move-result-object v4 const/4 v5, 0x0 aget-object v4, v4, v5 :goto_0 const/4 v5, 0x0 .line 1027 instance-of v6, v4, Ljava/lang/Class; if-eqz v6, :cond_1 .line 1028 move-object v5, v4 check-cast v5, Ljava/lang/Class; .line 1031 :cond_1 new-instance v6, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v6}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1033 new-instance v7, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v7}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1034 new-instance v8, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v8}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1035 new-instance v9, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v9}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1037 invoke-interface {v1, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1039 invoke-direct {v0, v1, v2, v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 1040 invoke-direct {v0, v1, v3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v7, "java/util/List" const/16 v10, 0xc0 .line 1041 invoke-interface {v1, v10, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const-string v7, "list" .line 1042 invoke-virtual {v3, v7}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v7 const/16 v11, 0x3a invoke-interface {v1, v11, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1044 invoke-direct {v0, v1, v2, v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string v7, "list" .line 1046 invoke-virtual {v3, v7}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v7 const/16 v12, 0x19 invoke-interface {v1, v12, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v7, 0xc7 .line 1047 invoke-interface {v1, v7, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1048 invoke-direct {v0, v1, v2, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_if_write_null(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 v7, 0xa7 .line 1049 invoke-interface {v1, v7, v9}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1051 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v8, "out" .line 1053 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 invoke-interface {v1, v12, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v8, "seperator" .line 1054 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/16 v13, 0x15 invoke-interface {v1, v13, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1055 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v14, "write" const-string v15, "(I)V" const/16 v11, 0xb6 invoke-interface {v1, v11, v8, v14, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v8, "out" .line 1057 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 invoke-interface {v1, v12, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1058 sget v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {v1, v12, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v8, 0x3 .line 1059 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1060 sget-object v14, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v15, "writeFieldName" const-string v10, "(Ljava/lang/String;Z)V" invoke-interface {v1, v11, v14, v15, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v10, "list" .line 1063 invoke-virtual {v3, v10}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v10 invoke-interface {v1, v12, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "java/util/List" const-string v14, "size" const-string v15, "()I" const/16 v7, 0xb9 .line 1064 invoke-interface {v1, v7, v10, v14, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v10, "int" .line 1065 invoke-virtual {v3, v10}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v10 const/16 v14, 0x36 invoke-interface {v1, v14, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1067 new-instance v10, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v10}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1068 new-instance v15, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v15}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1069 new-instance v7, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v7}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1071 invoke-interface {v1, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v10, "int" .line 1073 invoke-virtual {v3, v10}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v10 invoke-interface {v1, v13, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1074 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 v10, 0xa0 .line 1075 invoke-interface {v1, v10, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V const-string v10, "out" .line 1077 invoke-virtual {v3, v10}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v10 invoke-interface {v1, v12, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "[]" .line 1078 invoke-interface {v1, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1079 sget-object v10, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v13, "write" const-string v14, "(Ljava/lang/String;)V" invoke-interface {v1, v11, v10, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v10, 0xa7 .line 1081 invoke-interface {v1, v10, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1083 invoke-interface {v1, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const/4 v10, 0x1 .line 1086 invoke-interface {v1, v12, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v13, "list" .line 1087 invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1088 sget v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {v1, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1089 sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v14, "setContext" const-string v15, "(Ljava/lang/Object;Ljava/lang/Object;)V" invoke-interface {v1, v11, v13, v14, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v13, "out" .line 1094 invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v13, 0x5b const/16 v14, 0x10 .line 1095 invoke-interface {v1, v14, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1096 sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v15, "write" const-string v14, "(I)V" invoke-interface {v1, v11, v13, v15, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1099 invoke-interface {v1, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1100 const-class v13, Lcom/alibaba/fastjson/serializer/ObjectSerializer; invoke-static {v13}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v13 const/16 v14, 0xc0 invoke-interface {v1, v14, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const-string v13, "list_ser" .line 1101 invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 const/16 v14, 0x3a invoke-interface {v1, v14, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1103 new-instance v13, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v13}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1104 new-instance v14, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v14}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1106 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const-string v8, "i" .line 1107 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/16 v15, 0x36 invoke-interface {v1, v15, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1110 invoke-interface {v1, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v8, "i" .line 1111 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/16 v15, 0x15 invoke-interface {v1, v15, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v8, "int" .line 1113 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 invoke-interface {v1, v15, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v8, 0x4 .line 1114 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 v15, 0x64 .line 1115 invoke-interface {v1, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 v15, 0xa2 .line 1117 invoke-interface {v1, v15, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1119 const-class v15, Ljava/lang/String; const/16 v8, 0x2c if-ne v4, v15, :cond_3 const-string v15, "out" .line 1121 invoke-virtual {v3, v15}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v15 invoke-interface {v1, v12, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v15, "list" .line 1122 invoke-virtual {v3, v15}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v15 invoke-interface {v1, v12, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v15, "i" .line 1123 invoke-virtual {v3, v15}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v15 const/16 v10, 0x15 invoke-interface {v1, v10, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "java/util/List" const-string v15, "get" const-string v12, "(I)Ljava/lang/Object;" const/16 v11, 0xb9 .line 1124 invoke-interface {v1, v11, v10, v15, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v10, "java/lang/String" const/16 v11, 0xc0 .line 1125 invoke-interface {v1, v11, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const/16 v10, 0x10 .line 1126 invoke-interface {v1, v10, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1128 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v8 if-eqz v8, :cond_2 .line 1129 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v10, "writeStringWithDoubleQuoteDirect" const-string v11, "(Ljava/lang/String;C)V" const/16 v12, 0xb6 invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_2 :cond_2 const/16 v12, 0xb6 .line 1132 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v10, "writeString" const-string v11, "(Ljava/lang/String;C)V" invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_2 :cond_3 const/16 v10, 0x19 const/4 v11, 0x1 .line 1136 invoke-interface {v1, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v11, "list" .line 1137 invoke-virtual {v3, v11}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v11 invoke-interface {v1, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "i" .line 1138 invoke-virtual {v3, v10}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v10 const/16 v11, 0x15 invoke-interface {v1, v11, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "java/util/List" const-string v12, "get" const-string v15, "(I)Ljava/lang/Object;" const/16 v8, 0xb9 .line 1139 invoke-interface {v1, v8, v10, v12, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v8, "i" .line 1140 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 invoke-interface {v1, v11, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v8, "java/lang/Integer" const-string v10, "valueOf" const-string v11, "(I)Ljava/lang/Integer;" const/16 v12, 0xb8 .line 1141 invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V if-eqz v5, :cond_4 .line 1143 invoke-virtual {v5}, Ljava/lang/Class;->getModifiers()I move-result v8 invoke-static {v8}, Ljava/lang/reflect/Modifier;->isPublic(I)Z move-result v8 if-eqz v8, :cond_4 .line 1144 move-object v8, v4 check-cast v8, Ljava/lang/Class; invoke-static {v8}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object v8 invoke-static {v8}, Lcom/alibaba/fastjson/asm/Type;->getType(Ljava/lang/String;)Lcom/alibaba/fastjson/asm/Type; move-result-object v8 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1145 iget v8, v2, Lcom/alibaba/fastjson/util/FieldInfo;->serialzeFeatures:I invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v8 invoke-interface {v1, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1146 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v10, "writeWithFieldName" const-string v11, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" const/16 v12, 0xb6 invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_1 :cond_4 const/16 v12, 0xb6 .line 1149 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v10, "writeWithFieldName" const-string v11, "(Ljava/lang/Object;Ljava/lang/Object;)V" invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_1 const-string v8, "out" .line 1153 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/16 v10, 0x19 invoke-interface {v1, v10, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v8, 0x10 const/16 v10, 0x2c .line 1154 invoke-interface {v1, v8, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1155 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v10, "write" const-string v11, "(I)V" invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_2 const-string v8, "i" .line 1158 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/4 v10, 0x1 invoke-interface {v1, v8, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitIincInsn(II)V const/16 v8, 0xa7 .line 1159 invoke-interface {v1, v8, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1161 invoke-interface {v1, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1163 const-class v8, Ljava/lang/String; if-ne v4, v8, :cond_6 const-string v2, "out" .line 1165 invoke-virtual {v3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 const/16 v4, 0x19 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v2, "list" .line 1166 invoke-virtual {v3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v2, "int" .line 1167 invoke-virtual {v3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 const/16 v4, 0x15 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v2, 0x4 .line 1168 invoke-interface {v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 v2, 0x64 .line 1169 invoke-interface {v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const-string v2, "java/util/List" const-string v4, "get" const-string v5, "(I)Ljava/lang/Object;" const/16 v8, 0xb9 .line 1170 invoke-interface {v1, v8, v2, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v2, "java/lang/String" const/16 v4, 0xc0 .line 1171 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const/16 v2, 0x5d const/16 v4, 0x10 .line 1172 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1173 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v2 if-eqz v2, :cond_5 .line 1174 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v4, "writeStringWithDoubleQuoteDirect" const-string v5, "(Ljava/lang/String;C)V" const/16 v8, 0xb6 invoke-interface {v1, v8, v2, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_3 const/4 v2, 0x1 const/16 v4, 0x19 goto/16 :goto_5 :cond_5 const/16 v8, 0xb6 .line 1177 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v4, "writeString" const-string v5, "(Ljava/lang/String;C)V" invoke-interface {v1, v8, v2, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_3 :cond_6 const/16 v8, 0x19 const/4 v10, 0x1 .line 1181 invoke-interface {v1, v8, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "list" .line 1182 invoke-virtual {v3, v10}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v10 invoke-interface {v1, v8, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v8, "i" .line 1183 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/16 v10, 0x15 invoke-interface {v1, v10, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v8, "java/util/List" const-string v11, "get" const-string v12, "(I)Ljava/lang/Object;" const/16 v13, 0xb9 .line 1184 invoke-interface {v1, v13, v8, v11, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v8, "i" .line 1185 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 invoke-interface {v1, v10, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v8, "java/lang/Integer" const-string v10, "valueOf" const-string v11, "(I)Ljava/lang/Integer;" const/16 v12, 0xb8 .line 1186 invoke-interface {v1, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V if-eqz v5, :cond_7 .line 1188 invoke-virtual {v5}, Ljava/lang/Class;->getModifiers()I move-result v5 invoke-static {v5}, Ljava/lang/reflect/Modifier;->isPublic(I)Z move-result v5 if-eqz v5, :cond_7 .line 1189 check-cast v4, Ljava/lang/Class; invoke-static {v4}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object v4 invoke-static {v4}, Lcom/alibaba/fastjson/asm/Type;->getType(Ljava/lang/String;)Lcom/alibaba/fastjson/asm/Type; move-result-object v4 invoke-interface {v1, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1190 iget v2, v2, Lcom/alibaba/fastjson/util/FieldInfo;->serialzeFeatures:I invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 invoke-interface {v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1191 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v4, "writeWithFieldName" const-string v5, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" const/16 v8, 0xb6 invoke-interface {v1, v8, v2, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_4 :cond_7 const/16 v8, 0xb6 .line 1194 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v4, "writeWithFieldName" const-string v5, "(Ljava/lang/Object;Ljava/lang/Object;)V" invoke-interface {v1, v8, v2, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_4 const-string v2, "out" .line 1198 invoke-virtual {v3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 const/16 v4, 0x19 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v2, 0x5d const/16 v5, 0x10 .line 1199 invoke-interface {v1, v5, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1200 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v5, "write" const-string v10, "(I)V" invoke-interface {v1, v8, v2, v5, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 v2, 0x1 .line 1205 :goto_5 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1206 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v4, "popContext" const-string v5, "()V" invoke-interface {v1, v8, v2, v4, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1209 invoke-interface {v1, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1211 invoke-direct {v0, v1, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 1213 invoke-interface {v1, v9}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1215 invoke-interface {v1, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _long(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 758 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 760 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 761 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "long" const/4 v1, 0x2 .line 762 invoke-virtual {p4, v0, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result v0 const/16 v2, 0x37 invoke-interface {p2, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 764 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 766 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 767 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v2, 0x15 invoke-interface {p2, v2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 768 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "long" .line 769 invoke-virtual {p4, p3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 const/16 v0, 0x16 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 770 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;J)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 772 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 774 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .locals 5 .line 1258 invoke-static {p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v0 const/16 v1, 0xb6 const/16 v2, 0x19 if-nez v0, :cond_0 const/4 v0, 0x1 .line 1259 invoke-interface {p1, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v0, 0x2 .line 1260 invoke-interface {p1, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1261 sget v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1262 sget-object v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v3, "applyName" const-string v4, "(Ljava/lang/Object;Ljava/lang/String;)Z" invoke-interface {p1, v1, v0, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v0, 0x99 .line 1264 invoke-interface {p1, v0, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1266 invoke-direct {p0, p1, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_labelApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 1269 :cond_0 iget-object p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->field:Ljava/lang/reflect/Field; if-nez p2, :cond_1 const-string p2, "out" .line 1270 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1271 sget-object p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string p3, "isIgnoreNonFieldGetter" const-string v0, "()Z" invoke-interface {p1, v1, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 p2, 0x9a .line 1274 invoke-interface {p1, p2, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V :cond_1 return-void .end method .method private _notWriteDefault(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .locals 4 .line 1367 new-instance v0, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v0}, Lcom/alibaba/fastjson/asm/Label;->()V const-string v1, "notWriteDefaultValue" .line 1369 invoke-virtual {p3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v1 const/16 v2, 0x15 invoke-interface {p1, v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v1, 0x99 .line 1370 invoke-interface {p1, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1372 iget-object p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 1373 sget-object v3, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_0 const-string p2, "boolean" .line 1374 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1375 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V goto/16 :goto_0 .line 1376 :cond_0 sget-object v3, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_1 const-string p2, "byte" .line 1377 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1378 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V goto/16 :goto_0 .line 1379 :cond_1 sget-object v3, Ljava/lang/Short;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_2 const-string p2, "short" .line 1380 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1381 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V goto :goto_0 .line 1382 :cond_2 sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_3 const-string p2, "int" .line 1383 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1384 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V goto :goto_0 .line 1385 :cond_3 sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_4 const/16 p2, 0x16 const-string v2, "long" .line 1386 invoke-virtual {p3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p2, 0x9 .line 1387 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 p2, 0x94 .line 1388 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1389 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V goto :goto_0 .line 1390 :cond_4 sget-object v2, Ljava/lang/Float;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_5 const/16 p2, 0x17 const-string v2, "float" .line 1391 invoke-virtual {p3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p2, 0xb .line 1392 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 p2, 0x95 .line 1393 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1394 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V goto :goto_0 .line 1395 :cond_5 sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class; if-ne p2, v2, :cond_6 const/16 p2, 0x18 const-string v2, "double" .line 1396 invoke-virtual {p3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p2, 0xe .line 1397 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/16 p2, 0x97 .line 1398 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1399 invoke-interface {p1, v1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1402 :cond_6 :goto_0 invoke-interface {p1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _object(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 689 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 691 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 692 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "object" .line 693 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x3a invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 695 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 697 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_writeObject(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 699 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _processKey(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 6 .line 1532 new-instance v0, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v0}, Lcom/alibaba/fastjson/asm/Label;->()V const-string v1, "hasNameFilters" .line 1534 invoke-virtual {p3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v1 const/16 v2, 0x15 invoke-interface {p1, v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v1, 0x9a .line 1535 invoke-interface {p1, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1537 iget-object p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; const/16 v1, 0x19 const/4 v3, 0x1 .line 1539 invoke-interface {p1, v1, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v3, 0x2 .line 1540 invoke-interface {p1, v1, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1541 sget v4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, v1, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1543 sget-object v4, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; const/16 v5, 0xb8 if-ne p2, v4, :cond_0 const-string p2, "byte" .line 1544 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Byte" const-string p3, "valueOf" const-string v1, "(B)Ljava/lang/Byte;" .line 1545 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1546 :cond_0 sget-object v4, Ljava/lang/Short;->TYPE:Ljava/lang/Class; if-ne p2, v4, :cond_1 const-string p2, "short" .line 1547 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Short" const-string p3, "valueOf" const-string v1, "(S)Ljava/lang/Short;" .line 1548 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1549 :cond_1 sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne p2, v4, :cond_2 const-string p2, "int" .line 1550 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Integer" const-string p3, "valueOf" const-string v1, "(I)Ljava/lang/Integer;" .line 1551 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1552 :cond_2 sget-object v4, Ljava/lang/Character;->TYPE:Ljava/lang/Class; if-ne p2, v4, :cond_3 const-string p2, "char" .line 1553 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Character" const-string p3, "valueOf" const-string v1, "(C)Ljava/lang/Character;" .line 1554 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1555 :cond_3 sget-object v4, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne p2, v4, :cond_4 const/16 p2, 0x16 const-string v1, "long" .line 1556 invoke-virtual {p3, v1, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Long" const-string p3, "valueOf" const-string v1, "(J)Ljava/lang/Long;" .line 1557 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1558 :cond_4 sget-object v4, Ljava/lang/Float;->TYPE:Ljava/lang/Class; if-ne p2, v4, :cond_5 const/16 p2, 0x17 const-string v1, "float" .line 1559 invoke-virtual {p3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Float" const-string p3, "valueOf" const-string v1, "(F)Ljava/lang/Float;" .line 1560 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_0 .line 1561 :cond_5 sget-object v4, Ljava/lang/Double;->TYPE:Ljava/lang/Class; if-ne p2, v4, :cond_6 const/16 p2, 0x18 const-string v1, "double" .line 1562 invoke-virtual {p3, v1, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Double" const-string p3, "valueOf" const-string v1, "(D)Ljava/lang/Double;" .line 1563 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1564 :cond_6 sget-object v3, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_7 const-string p2, "boolean" .line 1565 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v2, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Boolean" const-string p3, "valueOf" const-string v1, "(Z)Ljava/lang/Boolean;" .line 1566 invoke-interface {p1, v5, p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1567 :cond_7 const-class v2, Ljava/math/BigDecimal; if-ne p2, v2, :cond_8 const-string p2, "decimal" .line 1568 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1569 :cond_8 const-class v2, Ljava/lang/String; if-ne p2, v2, :cond_9 const-string p2, "string" .line 1570 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1571 :cond_9 invoke-virtual {p2}, Ljava/lang/Class;->isEnum()Z move-result v2 if-eqz v2, :cond_a const-string p2, "enum" .line 1572 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1573 :cond_a const-class v2, Ljava/util/List; invoke-virtual {v2, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result p2 if-eqz p2, :cond_b const-string p2, "list" .line 1574 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 :cond_b const-string p2, "object" .line 1576 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V :goto_0 const/16 p2, 0xb6 .line 1579 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v1, "processKey" const-string v2, "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;" invoke-interface {p1, p2, p3, v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 p2, 0x3a .line 1584 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1586 invoke-interface {p1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _processValue(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 8 .line 1452 iget-object p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; const/16 v0, 0x19 const/4 v1, 0x1 .line 1454 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v1, 0x0 .line 1455 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1456 invoke-static {p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v1 const-string v2, "nature" sget-object v3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; const/16 v4, 0xb4 invoke-interface {p1, v4, v1, v2, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 v1, 0x2 .line 1457 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1458 sget v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, v0, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v2, "Ljava/lang/Object;" .line 1461 sget-object v3, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; const/16 v4, 0x15 const/16 v5, 0x59 const/16 v6, 0xb8 const/16 v7, 0x3a if-ne p2, v3, :cond_0 const-string p2, "byte" .line 1462 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v4, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Byte" const-string p3, "valueOf" const-string v0, "(B)Ljava/lang/Byte;" .line 1463 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1464 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1465 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1466 :cond_0 sget-object v3, Ljava/lang/Short;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_1 const-string p2, "short" .line 1467 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v4, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Short" const-string p3, "valueOf" const-string v0, "(S)Ljava/lang/Short;" .line 1468 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1469 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1470 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1471 :cond_1 sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_2 const-string p2, "int" .line 1472 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v4, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Integer" const-string p3, "valueOf" const-string v0, "(I)Ljava/lang/Integer;" .line 1473 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1474 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1475 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1476 :cond_2 sget-object v3, Ljava/lang/Character;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_3 const-string p2, "char" .line 1477 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v4, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Character" const-string p3, "valueOf" const-string v0, "(C)Ljava/lang/Character;" .line 1478 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1479 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1480 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1481 :cond_3 sget-object v3, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_4 const/16 p2, 0x16 const-string v0, "long" .line 1482 invoke-virtual {p3, v0, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Long" const-string p3, "valueOf" const-string v0, "(J)Ljava/lang/Long;" .line 1483 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1484 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1485 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1486 :cond_4 sget-object v3, Ljava/lang/Float;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_5 const/16 p2, 0x17 const-string v0, "float" .line 1487 invoke-virtual {p3, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Float" const-string p3, "valueOf" const-string v0, "(F)Ljava/lang/Float;" .line 1488 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1489 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1490 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1491 :cond_5 sget-object v3, Ljava/lang/Double;->TYPE:Ljava/lang/Class; if-ne p2, v3, :cond_6 const/16 p2, 0x18 const-string v0, "double" .line 1492 invoke-virtual {p3, v0, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;I)I move-result p3 invoke-interface {p1, p2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Double" const-string p3, "valueOf" const-string v0, "(D)Ljava/lang/Double;" .line 1493 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1494 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1495 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1496 :cond_6 sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; if-ne p2, v1, :cond_7 const-string p2, "boolean" .line 1497 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v4, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p2, "java/lang/Boolean" const-string p3, "valueOf" const-string v0, "(Z)Ljava/lang/Boolean;" .line 1498 invoke-interface {p1, v6, p2, p3, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1499 invoke-interface {p1, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1500 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto/16 :goto_0 .line 1501 :cond_7 const-class v1, Ljava/math/BigDecimal; if-ne p2, v1, :cond_8 const-string p2, "decimal" .line 1502 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1503 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1504 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1505 :cond_8 const-class v1, Ljava/lang/String; if-ne p2, v1, :cond_9 const-string p2, "string" .line 1506 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1507 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1508 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1509 :cond_9 invoke-virtual {p2}, Ljava/lang/Class;->isEnum()Z move-result v1 if-eqz v1, :cond_a const-string p2, "enum" .line 1510 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1511 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1512 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1513 :cond_a const-class v1, Ljava/util/List; invoke-virtual {v1, p2}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result p2 if-eqz p2, :cond_b const-string p2, "list" .line 1514 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1515 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1516 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 :cond_b const-string p2, "object" .line 1518 invoke-virtual {p3, p2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1519 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1520 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->original:I invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V :goto_0 const/16 p2, 0xb6 .line 1523 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v0, "processValue" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V const-string v3, "(" invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v3, "Ljava/lang/Object;Ljava/lang/String;" invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, ")Ljava/lang/Object;" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-interface {p1, p2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1528 sget p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->processValue:I invoke-interface {p1, v7, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V return-void .end method .method private _seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 2 const/16 v0, 0x10 const/16 v1, 0x2c .line 1686 invoke-interface {p1, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v0, "seperator" .line 1687 invoke-virtual {p2, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p2 const/16 v0, 0x36 invoke-interface {p1, v0, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V return-void .end method .method private _short(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 893 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 895 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 896 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "short" .line 897 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x36 invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 899 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V const-string p3, "out" .line 901 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v0, 0x19 invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 902 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 const/16 v1, 0x15 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 903 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v0, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "short" .line 904 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v1, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 906 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v0, "writeFieldValue" const-string v1, "(CLjava/lang/String;I)V" const/16 v2, 0xb6 invoke-interface {p2, v2, p3, v0, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 908 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 910 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _string(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Lcom/alibaba/fastjson/util/FieldInfo;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .line 973 new-instance p1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {p1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 975 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_nameApply(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 976 invoke-direct {p0, p2, p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V const-string v0, "string" .line 977 invoke-virtual {p4, v0}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v0 const/16 v1, 0x3a invoke-interface {p2, v1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 979 invoke-direct {p0, p2, p3, p4, p1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_filters(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .line 981 new-instance v0, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v0}, Lcom/alibaba/fastjson/asm/Label;->()V .line 982 new-instance v1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v1}, Lcom/alibaba/fastjson/asm/Label;->()V const-string v2, "string" .line 985 invoke-virtual {p4, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 const/16 v3, 0x19 invoke-interface {p2, v3, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v2, 0xc7 .line 986 invoke-interface {p2, v2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 988 invoke-direct {p0, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_if_write_null(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 p3, 0xa7 .line 990 invoke-interface {p2, p3, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 992 invoke-interface {p2, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 994 invoke-static {p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result p3 const/16 v0, 0xb6 const/16 v2, 0x15 if-eqz p3, :cond_0 const-string p3, "out" .line 995 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v3, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 996 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 997 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v3, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "string" .line 998 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v3, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 999 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v2, "writeFieldValueStringWithDoubleQuoteCheck" const-string v3, "(CLjava/lang/String;Ljava/lang/String;)V" invoke-interface {p2, v0, p3, v2, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_0 :cond_0 const-string p3, "out" .line 1002 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v3, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "seperator" .line 1003 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v2, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1004 sget p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p2, v3, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string p3, "string" .line 1005 invoke-virtual {p4, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p3 invoke-interface {p2, v3, p3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1006 sget-object p3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v2, "writeFieldValue" const-string v3, "(CLjava/lang/String;Ljava/lang/String;)V" invoke-interface {p2, v0, p3, v2, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1009 :goto_0 invoke-direct {p0, p2, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 1011 invoke-interface {p2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 1013 invoke-interface {p2, p1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V return-void .end method .method private _writeObject(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/asm/Label;)V .locals 5 .line 1287 invoke-virtual {p2}, Lcom/alibaba/fastjson/util/FieldInfo;->getFormat()Ljava/lang/String; move-result-object v0 .line 1289 new-instance v1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 1292 invoke-static {p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v2 const/16 v3, 0x19 if-eqz v2, :cond_0 const-string v2, "object" .line 1293 invoke-virtual {p3, v2}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 invoke-interface {p1, v3, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_0 .line 1295 :cond_0 sget v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->processValue:I invoke-interface {p1, v3, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V :goto_0 const/16 v2, 0xc7 .line 1297 invoke-interface {p1, v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1298 invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_if_write_null(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 v2, 0xa7 .line 1299 invoke-interface {p1, v2, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 1301 invoke-interface {p1, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string p4, "out" .line 1303 invoke-virtual {p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p4 invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p4, 0x15 const-string v1, "seperator" .line 1304 invoke-virtual {p3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v1 invoke-interface {p1, p4, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1305 sget-object p4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v1, "write" const-string v2, "(I)V" const/16 v4, 0xb6 invoke-interface {p1, v4, p4, v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string p4, "out" .line 1308 invoke-virtual {p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p4 invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1309 sget p4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 p4, 0x3 .line 1310 invoke-interface {p1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 1311 sget-object p4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v1, "writeFieldName" const-string v2, "(Ljava/lang/String;Z)V" invoke-interface {p1, v4, p4, v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 p4, 0x1 .line 1314 invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1315 invoke-static {p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result p4 if-eqz p4, :cond_1 const-string p4, "object" .line 1316 invoke-virtual {p3, p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result p4 invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V goto :goto_1 .line 1318 :cond_1 sget p4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->processValue:I invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V :goto_1 if-eqz v0, :cond_2 .line 1321 invoke-interface {p1, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1322 sget-object p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string p4, "writeWithFormat" const-string v0, "(Ljava/lang/Object;Ljava/lang/String;)V" invoke-interface {p1, v4, p2, p4, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_3 .line 1325 :cond_2 sget p4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 1326 iget-object p4, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type; instance-of p4, p4, Ljava/lang/Class; if-eqz p4, :cond_3 iget-object p4, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type; check-cast p4, Ljava/lang/Class; .line 1327 invoke-virtual {p4}, Ljava/lang/Class;->isPrimitive()Z move-result p4 if-eqz p4, :cond_3 .line 1328 sget-object p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string p4, "writeWithFieldName" const-string v0, "(Ljava/lang/Object;Ljava/lang/Object;)V" invoke-interface {p1, v4, p2, p4, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_3 .line 1331 :cond_3 iget-object p4, p2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; const-class v0, Ljava/lang/String; if-ne p4, v0, :cond_4 .line 1332 const-class p4, Ljava/lang/String; invoke-static {p4}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object p4 invoke-static {p4}, Lcom/alibaba/fastjson/asm/Type;->getType(Ljava/lang/String;)Lcom/alibaba/fastjson/asm/Type; move-result-object p4 invoke-interface {p1, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V goto :goto_2 :cond_4 const/4 p4, 0x0 .line 1334 invoke-interface {p1, v3, p4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 p4, 0xb4 .line 1335 invoke-static {p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v0 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V iget-object v2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->name:Ljava/lang/String; invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, "_asm_fieldType" invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 const-string v2, "Ljava/lang/reflect/Type;" invoke-interface {p1, p4, v0, v1, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1338 :goto_2 iget p2, p2, Lcom/alibaba/fastjson/util/FieldInfo;->serialzeFeatures:I invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 invoke-interface {p1, p2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 1340 sget-object p2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string p4, "writeWithFieldName" const-string v0, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-interface {p1, v4, p2, p4, v0}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 1345 :goto_3 invoke-direct {p0, p1, p3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_seperator(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V return-void .end method .method private generateWriteAsArray(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Ljava/util/List;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 16 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Ljava/util/List<", "Lcom/alibaba/fastjson/util/FieldInfo;", ">;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p2 move-object/from16 v2, p4 const-string v3, "out" .line 361 invoke-virtual {v2, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v3 const/16 v4, 0x19 invoke-interface {v1, v4, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v3, 0x10 const/16 v5, 0x5b .line 362 invoke-interface {v1, v3, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 363 sget-object v5, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v6, "write" const-string v7, "(I)V" const/16 v8, 0xb6 invoke-interface {v1, v8, v5, v6, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 365 invoke-interface/range {p3 .. p3}, Ljava/util/List;->size()I move-result v5 const/16 v6, 0x5d if-nez v5, :cond_0 const-string v5, "out" .line 368 invoke-virtual {v2, v5}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v2 invoke-interface {v1, v4, v2}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 369 invoke-interface {v1, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 370 sget-object v2, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v3, "write" const-string v4, "(I)V" invoke-interface {v1, v8, v2, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V return-void :cond_0 const/4 v7, 0x0 const/4 v9, 0x0 :goto_0 if-ge v9, v5, :cond_d add-int/lit8 v10, v5, -0x1 if-ne v9, v10, :cond_1 move-object/from16 v10, p3 const/16 v11, 0x5d goto :goto_1 :cond_1 const/16 v10, 0x2c move-object/from16 v10, p3 const/16 v11, 0x2c .line 377 :goto_1 invoke-interface {v10, v9}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v12 check-cast v12, Lcom/alibaba/fastjson/util/FieldInfo; .line 378 iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 380 iget-object v14, v12, Lcom/alibaba/fastjson/util/FieldInfo;->name:Ljava/lang/String; invoke-interface {v1, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V const/16 v14, 0x3a .line 381 sget v15, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {v1, v14, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 383 sget-object v14, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; if-eq v13, v14, :cond_c sget-object v14, Ljava/lang/Short;->TYPE:Ljava/lang/Class; if-eq v13, v14, :cond_c sget-object v14, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_2 goto/16 :goto_3 .line 392 :cond_2 sget-object v14, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_3 const-string v13, "out" .line 393 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 394 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 395 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 396 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeLongAndChar" const-string v13, "(JC)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 398 :cond_3 sget-object v14, Ljava/lang/Float;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_4 const-string v13, "out" .line 399 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 400 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 401 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 402 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeFloatAndChar" const-string v13, "(FC)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 404 :cond_4 sget-object v14, Ljava/lang/Double;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_5 const-string v13, "out" .line 405 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 406 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 407 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 408 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeDoubleAndChar" const-string v13, "(DC)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 410 :cond_5 sget-object v14, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_6 const-string v13, "out" .line 411 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 412 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 413 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 414 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeBooleanAndChar" const-string v13, "(ZC)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 415 :cond_6 sget-object v14, Ljava/lang/Character;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_7 const-string v13, "out" .line 416 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 417 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 418 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 419 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeCharacterAndChar" const-string v13, "(CC)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 421 :cond_7 const-class v14, Ljava/lang/String; if-ne v13, v14, :cond_8 const-string v13, "out" .line 422 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 423 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 424 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 425 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeString" const-string v13, "(Ljava/lang/String;C)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 427 :cond_8 invoke-virtual {v13}, Ljava/lang/Class;->isEnum()Z move-result v13 if-eqz v13, :cond_9 const-string v13, "out" .line 428 invoke-virtual {v2, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 429 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 430 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 431 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v12, "writeEnum" const-string v13, "(Ljava/lang/Enum;C)V" invoke-interface {v1, v8, v11, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto/16 :goto_4 .line 433 :cond_9 invoke-virtual {v12}, Lcom/alibaba/fastjson/util/FieldInfo;->getFormat()Ljava/lang/String; move-result-object v13 const/4 v14, 0x1 .line 435 invoke-interface {v1, v4, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 436 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V if-eqz v13, :cond_a .line 438 invoke-interface {v1, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 439 sget-object v12, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v13, "writeWithFormat" const-string v14, "(Ljava/lang/Object;Ljava/lang/String;)V" invoke-interface {v1, v8, v12, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_2 .line 442 :cond_a sget v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {v1, v4, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 443 iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type; instance-of v13, v13, Ljava/lang/Class; if-eqz v13, :cond_b iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type; check-cast v13, Ljava/lang/Class; .line 444 invoke-virtual {v13}, Ljava/lang/Class;->isPrimitive()Z move-result v13 if-eqz v13, :cond_b .line 445 sget-object v12, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v13, "writeWithFieldName" const-string v14, "(Ljava/lang/Object;Ljava/lang/Object;)V" invoke-interface {v1, v8, v12, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_2 .line 448 :cond_b invoke-interface {v1, v4, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v13, 0xb4 .line 449 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v14 new-instance v15, Ljava/lang/StringBuilder; invoke-direct {v15}, Ljava/lang/StringBuilder;->()V iget-object v6, v12, Lcom/alibaba/fastjson/util/FieldInfo;->name:Ljava/lang/String; invoke-virtual {v15, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v6, "_asm_fieldType" invoke-virtual {v15, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 const-string v15, "Ljava/lang/reflect/Type;" invoke-interface {v1, v13, v14, v6, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 451 iget v6, v12, Lcom/alibaba/fastjson/util/FieldInfo;->serialzeFeatures:I invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v6 invoke-interface {v1, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 453 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v12, "writeWithFieldName" const-string v13, "(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-interface {v1, v8, v6, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_2 const-string v6, "out" .line 458 invoke-virtual {v2, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v1, v4, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 459 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 460 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v11, "write" const-string v12, "(I)V" invoke-interface {v1, v8, v6, v11, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_4 :cond_c :goto_3 const-string v6, "out" .line 387 invoke-virtual {v2, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v1, v4, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 388 invoke-direct {v0, v1, v2, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_get(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;Lcom/alibaba/fastjson/util/FieldInfo;)V .line 389 invoke-interface {v1, v3, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 390 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v11, "writeIntAndChar" const-string v12, "(IC)V" invoke-interface {v1, v8, v6, v11, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_4 add-int/lit8 v9, v9, 0x1 const/16 v6, 0x5d goto/16 :goto_0 :cond_d return-void .end method .method private generateWriteMethod(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Ljava/util/List;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .locals 16 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Lcom/alibaba/fastjson/asm/MethodVisitor;", "Ljava/util/List<", "Lcom/alibaba/fastjson/util/FieldInfo;", ">;", "Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;", ")V" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p1 move-object/from16 v2, p2 move-object/from16 v3, p4 .line 467 new-instance v4, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v4}, Lcom/alibaba/fastjson/asm/Label;->()V .line 469 invoke-interface/range {p3 .. p3}, Ljava/util/List;->size()I move-result v5 .line 473 new-instance v6, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v6}, Lcom/alibaba/fastjson/asm/Label;->()V .line 474 new-instance v7, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v7}, Lcom/alibaba/fastjson/asm/Label;->()V const-string v8, "out" .line 475 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 const/16 v9, 0x19 invoke-interface {v2, v9, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 476 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v10, "isPrettyFormat" const-string v11, "()Z" const/16 v12, 0xb6 invoke-interface {v2, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v8, 0x99 .line 478 invoke-interface {v2, v8, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V const/4 v10, 0x0 .line 480 invoke-interface {v2, v9, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 481 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v11 const-string v13, "nature" sget-object v14, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; const/16 v15, 0xb4 invoke-interface {v2, v15, v11, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v11, 0xc7 .line 482 invoke-interface {v2, v11, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 485 invoke-interface {v2, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 487 invoke-interface {v2, v9, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 488 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v7 const-string v13, "nature" sget-object v14, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; invoke-interface {v2, v15, v7, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 v7, 0x1 .line 489 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v13, 0x2 .line 490 invoke-interface {v2, v9, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v14, 0x3 .line 491 invoke-interface {v2, v9, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v14, 0x4 .line 492 invoke-interface {v2, v9, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v14, 0x15 const/4 v8, 0x5 .line 493 invoke-interface {v2, v14, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 494 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer:Ljava/lang/String; const-string v14, "write" new-instance v13, Ljava/lang/StringBuilder; invoke-direct {v13}, Ljava/lang/StringBuilder;->()V const-string v7, "(L" invoke-virtual {v13, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v7, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v13, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v7, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-virtual {v13, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v7 invoke-interface {v2, v12, v8, v14, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v7, 0xb1 .line 496 invoke-interface {v2, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 498 invoke-interface {v2, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 504 new-instance v6, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v6}, Lcom/alibaba/fastjson/asm/Label;->()V .line 505 new-instance v8, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v8}, Lcom/alibaba/fastjson/asm/Label;->()V .line 507 invoke-interface {v2, v9, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 508 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v13 const-string v14, "nature" sget-object v7, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; invoke-interface {v2, v15, v13, v14, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 509 invoke-interface {v2, v11, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 512 invoke-interface {v2, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 513 invoke-interface {v2, v9, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 514 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v7 const-string v8, "nature" sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; invoke-interface {v2, v15, v7, v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 v7, 0x1 .line 515 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v7, 0x2 .line 516 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v7, 0x5 const/16 v8, 0x15 .line 517 invoke-interface {v2, v8, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 518 sget-object v7, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer:Ljava/lang/String; const-string v8, "writeReference" new-instance v11, Ljava/lang/StringBuilder; invoke-direct {v11}, Ljava/lang/StringBuilder;->()V const-string v13, "(L" invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v13, ";Ljava/lang/Object;I)Z" invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v11 invoke-interface {v2, v12, v7, v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v7, 0x99 .line 521 invoke-interface {v2, v7, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V const/16 v7, 0xb1 .line 523 invoke-interface {v2, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 525 invoke-interface {v2, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 529 new-instance v6, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v6}, Lcom/alibaba/fastjson/asm/Label;->()V .line 531 invoke-interface {v2, v9, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 532 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v7 const-string v8, "nature" sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer_desc:Ljava/lang/String; invoke-interface {v2, v15, v7, v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 v7, 0x1 .line 533 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 534 sget-object v7, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JavaBeanSerializer:Ljava/lang/String; const-string v8, "isWriteAsArray" new-instance v11, Ljava/lang/StringBuilder; invoke-direct {v11}, Ljava/lang/StringBuilder;->()V const-string v13, "(L" invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v13, ";)Z" invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v11 invoke-interface {v2, v12, v7, v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v7, 0x99 .line 536 invoke-interface {v2, v7, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 539 invoke-interface {v2, v9, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v7, 0x1 .line 540 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v7, 0x2 .line 541 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v7, 0x3 .line 542 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v7, 0x4 .line 543 invoke-interface {v2, v9, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 544 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$200(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Ljava/lang/String; move-result-object v7 const-string v8, "writeAsArray" new-instance v11, Ljava/lang/StringBuilder; invoke-direct {v11}, Ljava/lang/StringBuilder;->()V const-string v13, "(L" invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v13, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;)V" invoke-virtual {v11, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v11 invoke-interface {v2, v12, v7, v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v7, 0xb1 .line 547 invoke-interface {v2, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 549 invoke-interface {v2, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const/4 v6, 0x1 .line 553 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 554 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v7, "getContext" new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;->()V const-string v11, "()" invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerialContext_desc:Ljava/lang/String; invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v8 invoke-interface {v2, v12, v6, v7, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v6, "parent" .line 556 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 const/16 v7, 0x3a invoke-interface {v2, v7, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x1 .line 558 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v6, "parent" .line 559 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x2 .line 560 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x3 .line 561 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 562 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$300(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)I move-result v6 invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v6 invoke-interface {v2, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 563 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v7, "setContext" new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;->()V const-string v11, "(" invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerialContext_desc:Ljava/lang/String; invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v11, "Ljava/lang/Object;Ljava/lang/Object;I)V" invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v8 invoke-interface {v2, v12, v6, v7, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 569 new-instance v6, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v6}, Lcom/alibaba/fastjson/asm/Label;->()V .line 570 new-instance v7, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v7}, Lcom/alibaba/fastjson/asm/Label;->()V .line 571 new-instance v8, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v8}, Lcom/alibaba/fastjson/asm/Label;->()V const/4 v11, 0x1 .line 573 invoke-interface {v2, v9, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v11, 0x4 .line 574 invoke-interface {v2, v9, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v13, 0x2 .line 575 invoke-interface {v2, v9, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 576 sget-object v14, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v15, "isWriteClassName" const-string v10, "(Ljava/lang/reflect/Type;Ljava/lang/Object;)Z" invoke-interface {v2, v12, v14, v15, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v10, 0x99 .line 578 invoke-interface {v2, v10, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 581 invoke-interface {v2, v9, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 582 invoke-interface {v2, v9, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v10, "java/lang/Object" const-string v11, "getClass" const-string v13, "()Ljava/lang/Class;" .line 583 invoke-interface {v2, v12, v10, v11, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v10, 0xa5 .line 584 invoke-interface {v2, v10, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 586 invoke-interface {v2, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v8, "out" .line 587 invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v8 invoke-interface {v2, v9, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 588 new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;->()V const-string v10, "{\"" invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v10, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String; invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v10, "\":\"" invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v10 invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v10, "\"" invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v8 invoke-interface {v2, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 589 sget-object v8, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v10, "write" const-string v11, "(Ljava/lang/String;)V" invoke-interface {v2, v12, v8, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v8, 0x10 const/16 v10, 0x2c .line 590 invoke-interface {v2, v8, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v10, 0xa7 .line 591 invoke-interface {v2, v10, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V .line 593 invoke-interface {v2, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const/16 v7, 0x7b .line 594 invoke-interface {v2, v8, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 596 invoke-interface {v2, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v6, "seperator" .line 599 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 const/16 v10, 0x36 invoke-interface {v2, v10, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 601 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v6 if-nez v6, :cond_0 .line 602 invoke-direct {v0, v2, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_before(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V :cond_0 const-string v6, "out" .line 605 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 606 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v11, "isNotWriteDefaultValue" const-string v13, "()Z" invoke-interface {v2, v12, v6, v11, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v6, "notWriteDefaultValue" .line 608 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v2, v10, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 610 invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v6 if-nez v6, :cond_1 const/4 v6, 0x1 .line 611 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 612 sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v13, "checkValue" const-string v14, "()Z" invoke-interface {v2, v12, v11, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v11, "checkValue" .line 613 invoke-virtual {v3, v11}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v11 invoke-interface {v2, v10, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 615 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 616 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v11, "hasNameFilters" const-string v13, "()Z" invoke-interface {v2, v12, v6, v11, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v6, "hasNameFilters" .line 617 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v2, v10, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V :cond_1 const/4 v6, 0x0 :goto_0 if-ge v6, v5, :cond_e move-object/from16 v10, p3 .line 621 invoke-interface {v10, v6}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v11 check-cast v11, Lcom/alibaba/fastjson/util/FieldInfo; .line 622 iget-object v13, v11, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 624 iget-object v14, v11, Lcom/alibaba/fastjson/util/FieldInfo;->name:Ljava/lang/String; invoke-interface {v2, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V const/16 v14, 0x3a .line 625 sget v15, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->fieldName:I invoke-interface {v2, v14, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 627 sget-object v14, Ljava/lang/Byte;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_2 .line 628 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_byte(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto/16 :goto_1 .line 629 :cond_2 sget-object v14, Ljava/lang/Short;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_3 .line 630 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_short(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 631 :cond_3 sget-object v14, Ljava/lang/Integer;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_4 .line 632 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_int(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 633 :cond_4 sget-object v14, Ljava/lang/Long;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_5 .line 634 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_long(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 635 :cond_5 sget-object v14, Ljava/lang/Float;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_6 .line 636 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_float(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 637 :cond_6 sget-object v14, Ljava/lang/Double;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_7 .line 638 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_double(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 639 :cond_7 sget-object v14, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_8 .line 640 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_boolean(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 641 :cond_8 sget-object v14, Ljava/lang/Character;->TYPE:Ljava/lang/Class; if-ne v13, v14, :cond_9 .line 642 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_char(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 643 :cond_9 const-class v14, Ljava/lang/String; if-ne v13, v14, :cond_a .line 644 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_string(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 645 :cond_a const-class v14, Ljava/math/BigDecimal; if-ne v13, v14, :cond_b .line 646 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_decimal(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 647 :cond_b const-class v14, Ljava/util/List; invoke-virtual {v14, v13}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v14 if-eqz v14, :cond_c .line 648 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_list(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 650 :cond_c invoke-virtual {v13}, Ljava/lang/Class;->isEnum()Z move-result v13 if-eqz v13, :cond_d .line 651 invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_enum(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V goto :goto_1 .line 653 :cond_d invoke-direct {v0, v1, v2, v11, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_object(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/util/FieldInfo;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V :goto_1 add-int/lit8 v6, v6, 0x1 goto/16 :goto_0 .line 657 :cond_e invoke-static/range {p4 .. p4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v1 if-nez v1, :cond_f .line 658 invoke-direct {v0, v2, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->_after(Lcom/alibaba/fastjson/asm/MethodVisitor;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 661 :cond_f new-instance v1, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v1}, Lcom/alibaba/fastjson/asm/Label;->()V .line 662 new-instance v5, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v5}, Lcom/alibaba/fastjson/asm/Label;->()V const-string v6, "seperator" .line 664 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 const/16 v10, 0x15 invoke-interface {v2, v10, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 665 invoke-interface {v2, v8, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitIntInsn(II)V const/16 v6, 0xa0 .line 666 invoke-interface {v2, v6, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V const-string v6, "out" .line 668 invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v6 invoke-interface {v2, v9, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 669 invoke-interface {v2, v8, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 670 sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v7, "write" const-string v10, "(I)V" invoke-interface {v2, v12, v6, v7, v10}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 672 invoke-interface {v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const-string v1, "out" .line 674 invoke-virtual {v3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v1 invoke-interface {v2, v9, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v1, 0x7d .line 675 invoke-interface {v2, v8, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 676 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v6, "write" const-string v7, "(I)V" invoke-interface {v2, v12, v1, v6, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 678 invoke-interface {v2, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V .line 679 invoke-interface {v2, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V const/4 v1, 0x1 .line 681 invoke-interface {v2, v9, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v1, "parent" .line 682 invoke-virtual {v3, v1}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v1 invoke-interface {v2, v9, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 683 sget-object v1, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v3, "setContext" new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V const-string v5, "(" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v5, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerialContext_desc:Ljava/lang/String; invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v5, ")V" invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v4 invoke-interface {v2, v12, v1, v3, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V return-void .end method # virtual methods .method public createJavaBeanSerializer(Ljava/lang/Class;Ljava/util/Map;)Lcom/alibaba/fastjson/serializer/ObjectSerializer; .locals 26 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Ljava/util/Map<", "Ljava/lang/String;", "Ljava/lang/String;", ">;)", "Lcom/alibaba/fastjson/serializer/ObjectSerializer;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation move-object/from16 v0, p0 move-object/from16 v1, p1 move-object/from16 v2, p2 .line 93 invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->isPrimitive()Z move-result v3 if-nez v3, :cond_16 .line 97 const-class v3, Lcom/alibaba/fastjson/annotation/JSONType; invoke-virtual {v1, v3}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation; move-result-object v3 check-cast v3, Lcom/alibaba/fastjson/annotation/JSONType; const/4 v4, 0x0 .line 99 invoke-static {v1, v3, v2, v4}, Lcom/alibaba/fastjson/util/TypeUtils;->computeGetters(Ljava/lang/Class;Lcom/alibaba/fastjson/annotation/JSONType;Ljava/util/Map;Z)Ljava/util/List; move-result-object v5 .line 101 invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v6 :cond_0 invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z move-result v7 if-eqz v7, :cond_1 invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v7 check-cast v7, Lcom/alibaba/fastjson/util/FieldInfo; .line 102 iget-object v8, v7, Lcom/alibaba/fastjson/util/FieldInfo;->field:Ljava/lang/reflect/Field; if-nez v8, :cond_0 iget-object v8, v7, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method; if-eqz v8, :cond_0 iget-object v7, v7, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method; .line 104 invoke-virtual {v7}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class; move-result-object v7 invoke-virtual {v7}, Ljava/lang/Class;->isInterface()Z move-result v7 if-eqz v7, :cond_0 .line 105 new-instance v2, Lcom/alibaba/fastjson/serializer/JavaBeanSerializer; invoke-direct {v2, v1}, Lcom/alibaba/fastjson/serializer/JavaBeanSerializer;->(Ljava/lang/Class;)V return-object v2 :cond_1 const/4 v6, 0x0 if-eqz v3, :cond_2 .line 112 invoke-interface {v3}, Lcom/alibaba/fastjson/annotation/JSONType;->orders()[Ljava/lang/String; move-result-object v7 goto :goto_0 :cond_2 move-object v7, v6 :goto_0 const/4 v8, 0x1 if-eqz v7, :cond_3 .line 116 array-length v7, v7 if-eqz v7, :cond_3 .line 117 invoke-static {v1, v3, v2, v8}, Lcom/alibaba/fastjson/util/TypeUtils;->computeGetters(Ljava/lang/Class;Lcom/alibaba/fastjson/annotation/JSONType;Ljava/util/Map;Z)Ljava/util/List; move-result-object v2 goto :goto_1 .line 119 :cond_3 new-instance v2, Ljava/util/ArrayList; invoke-direct {v2, v5}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V .line 120 invoke-static {v2}, Ljava/util/Collections;->sort(Ljava/util/List;)V .line 124 :goto_1 invoke-interface {v5}, Ljava/util/List;->size()I move-result v7 const/4 v9, 0x0 :goto_2 if-ge v9, v7, :cond_5 .line 125 invoke-interface {v5, v9}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v10 check-cast v10, Lcom/alibaba/fastjson/util/FieldInfo; invoke-interface {v2, v9}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object v11 invoke-virtual {v10, v11}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v10 if-nez v10, :cond_4 const/4 v7, 0x0 goto :goto_3 :cond_4 add-int/lit8 v9, v9, 0x1 goto :goto_2 :cond_5 const/4 v7, 0x1 .line 131 :goto_3 invoke-interface {v2}, Ljava/util/List;->size()I move-result v9 const/16 v10, 0x100 if-le v9, v10, :cond_6 return-object v6 .line 135 :cond_6 invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v9 :cond_7 invoke-interface {v9}, Ljava/util/Iterator;->hasNext()Z move-result v10 if-eqz v10, :cond_8 invoke-interface {v9}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v10 check-cast v10, Lcom/alibaba/fastjson/util/FieldInfo; .line 136 invoke-virtual {v10}, Lcom/alibaba/fastjson/util/FieldInfo;->getMember()Ljava/lang/reflect/Member; move-result-object v10 invoke-interface {v10}, Ljava/lang/reflect/Member;->getName()Ljava/lang/String; move-result-object v10 invoke-static {v10}, Lcom/alibaba/fastjson/util/ASMUtils;->checkName(Ljava/lang/String;)Z move-result v10 if-nez v10, :cond_7 return-object v6 .line 141 :cond_8 new-instance v6, Ljava/lang/StringBuilder; invoke-direct {v6}, Ljava/lang/StringBuilder;->()V const-string v9, "ASMSerializer_" invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v9, v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->seed:Ljava/util/concurrent/atomic/AtomicLong; invoke-virtual {v9}, Ljava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J move-result-wide v9 invoke-virtual {v6, v9, v10}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; const-string v9, "_" invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String; move-result-object v9 invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 .line 142 const-class v9, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory; invoke-virtual {v9}, Ljava/lang/Class;->getPackage()Ljava/lang/Package; move-result-object v9 invoke-virtual {v9}, Ljava/lang/Package;->getName()Ljava/lang/String; move-result-object v9 .line 143 new-instance v10, Ljava/lang/StringBuilder; invoke-direct {v10}, Ljava/lang/StringBuilder;->()V const/16 v11, 0x2e const/16 v12, 0x2f invoke-virtual {v9, v11, v12}, Ljava/lang/String;->replace(CC)Ljava/lang/String; move-result-object v11 invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v11, "/" invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v10, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v10 .line 144 new-instance v11, Ljava/lang/StringBuilder; invoke-direct {v11}, Ljava/lang/StringBuilder;->()V invoke-virtual {v11, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v9, "." invoke-virtual {v11, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v11, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 .line 145 invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/TypeUtils;->getSerializeFeatures(Ljava/lang/Class;)I move-result v9 .line 147 new-instance v11, Lcom/alibaba/fastjson/asm/ClassWriter; invoke-direct {v11}, Lcom/alibaba/fastjson/asm/ClassWriter;->()V const/16 v13, 0x31 const/16 v14, 0x21 .line 148 const-class v12, Lcom/alibaba/fastjson/serializer/ASMJavaBeanSerializer; .line 151 invoke-static {v12}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v16 new-array v15, v8, [Ljava/lang/String; const-class v12, Lcom/alibaba/fastjson/serializer/ObjectSerializer; .line 152 invoke-static {v12}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v12 aput-object v12, v15, v4 move-object v12, v11 move-object/from16 v17, v15 move-object v15, v10 .line 148 invoke-virtual/range {v12 .. v17}, Lcom/alibaba/fastjson/asm/ClassWriter;->visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V .line 155 invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v12 :cond_9 :goto_4 invoke-interface {v12}, Ljava/util/Iterator;->hasNext()Z move-result v13 if-eqz v13, :cond_b invoke-interface {v12}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v13 check-cast v13, Lcom/alibaba/fastjson/util/FieldInfo; .line 156 iget-object v14, v13, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; invoke-virtual {v14}, Ljava/lang/Class;->isPrimitive()Z move-result v14 if-nez v14, :cond_9 iget-object v14, v13, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 157 invoke-virtual {v14}, Ljava/lang/Class;->isEnum()Z move-result v14 if-nez v14, :cond_9 iget-object v14, v13, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; const-class v15, Ljava/lang/String; if-ne v14, v15, :cond_a goto :goto_4 .line 162 :cond_a new-instance v14, Lcom/alibaba/fastjson/asm/FieldWriter; new-instance v15, Ljava/lang/StringBuilder; invoke-direct {v15}, Ljava/lang/StringBuilder;->()V iget-object v13, v13, Lcom/alibaba/fastjson/util/FieldInfo;->name:Ljava/lang/String; invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v13, "_asm_fieldType" invoke-virtual {v15, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v15}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v13 const-string v15, "Ljava/lang/reflect/Type;" invoke-direct {v14, v11, v8, v13, v15}, Lcom/alibaba/fastjson/asm/FieldWriter;->(Lcom/alibaba/fastjson/asm/ClassWriter;ILjava/lang/String;Ljava/lang/String;)V .line 166 invoke-virtual {v14}, Lcom/alibaba/fastjson/asm/FieldWriter;->visitEnd()V goto :goto_4 .line 169 :cond_b new-instance v15, Lcom/alibaba/fastjson/asm/MethodWriter; const/4 v13, 0x1 const-string v14, "" const-string v16, "()V" const/16 v17, 0x0 const/16 v18, 0x0 move-object/from16 v19, v11 move-object v11, v15 move-object/from16 v12, v19 move-object v8, v15 move-object/from16 v15, v16 move-object/from16 v16, v17 move-object/from16 v17, v18 invoke-direct/range {v11 .. v17}, Lcom/alibaba/fastjson/asm/MethodWriter;->(Lcom/alibaba/fastjson/asm/ClassWriter;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V const/16 v15, 0x19 .line 170 invoke-interface {v8, v15, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 171 invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object v11 invoke-static {v11}, Lcom/alibaba/fastjson/asm/Type;->getType(Ljava/lang/String;)Lcom/alibaba/fastjson/asm/Type; move-result-object v11 invoke-interface {v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V const/16 v11, 0xb7 .line 172 const-class v12, Lcom/alibaba/fastjson/serializer/ASMJavaBeanSerializer; invoke-static {v12}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v12 const-string v13, "" const-string v14, "(Ljava/lang/Class;)V" invoke-interface {v8, v11, v12, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 175 invoke-interface {v2}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object v11 :cond_c :goto_5 invoke-interface {v11}, Ljava/util/Iterator;->hasNext()Z move-result v12 if-eqz v12, :cond_f invoke-interface {v11}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v12 check-cast v12, Lcom/alibaba/fastjson/util/FieldInfo; .line 176 iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; invoke-virtual {v13}, Ljava/lang/Class;->isPrimitive()Z move-result v13 if-nez v13, :cond_c iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; .line 177 invoke-virtual {v13}, Ljava/lang/Class;->isEnum()Z move-result v13 if-nez v13, :cond_c iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class; const-class v14, Ljava/lang/String; if-ne v13, v14, :cond_d goto :goto_5 .line 182 :cond_d invoke-interface {v8, v15, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 184 iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->declaringClass:Ljava/lang/Class; invoke-static {v13}, Lcom/alibaba/fastjson/util/ASMUtils;->desc(Ljava/lang/Class;)Ljava/lang/String; move-result-object v13 invoke-static {v13}, Lcom/alibaba/fastjson/asm/Type;->getType(Ljava/lang/String;)Lcom/alibaba/fastjson/asm/Type; move-result-object v13 invoke-interface {v8, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 186 iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method; const/16 v14, 0xb8 if-eqz v13, :cond_e .line 187 iget-object v13, v12, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method; invoke-virtual {v13}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String; move-result-object v13 invoke-interface {v8, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 188 const-class v13, Lcom/alibaba/fastjson/util/ASMUtils; invoke-static {v13}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v13 const-string v15, "getMethodType" const-string v4, "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Type;" invoke-interface {v8, v14, v13, v15, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V goto :goto_6 .line 192 :cond_e iget-object v4, v12, Lcom/alibaba/fastjson/util/FieldInfo;->field:Ljava/lang/reflect/Field; invoke-virtual {v4}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String; move-result-object v4 invoke-interface {v8, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLdcInsn(Ljava/lang/Object;)V .line 193 const-class v4, Lcom/alibaba/fastjson/util/ASMUtils; invoke-static {v4}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v4 const-string v13, "getFieldType" const-string v15, "(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Type;" invoke-interface {v8, v14, v4, v13, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V :goto_6 const/16 v4, 0xb5 .line 197 new-instance v13, Ljava/lang/StringBuilder; invoke-direct {v13}, Ljava/lang/StringBuilder;->()V iget-object v12, v12, Lcom/alibaba/fastjson/util/FieldInfo;->name:Ljava/lang/String; invoke-virtual {v13, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v12, "_asm_fieldType" invoke-virtual {v13, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v12 const-string v13, "Ljava/lang/reflect/Type;" invoke-interface {v8, v4, v10, v12, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitFieldInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/4 v4, 0x0 const/16 v15, 0x19 goto/16 :goto_5 :cond_f const/16 v4, 0xb1 .line 200 invoke-interface {v8, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V const/4 v15, 0x4 .line 201 invoke-interface {v8, v15, v15}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMaxs(II)V .line 202 invoke-interface {v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitEnd()V const/4 v8, 0x0 :goto_7 const/4 v14, 0x7 const/4 v4, 0x2 if-ge v8, v4, :cond_14 if-nez v8, :cond_10 const-string v16, "write" const/4 v11, 0x1 goto :goto_8 :cond_10 const-string v16, "write1" const/4 v11, 0x0 .line 217 :goto_8 new-instance v4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context; invoke-direct {v4, v10, v9, v11}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->(Ljava/lang/String;IZ)V .line 219 new-instance v11, Lcom/alibaba/fastjson/asm/MethodWriter; const/16 v17, 0x1 new-instance v12, Ljava/lang/StringBuilder; invoke-direct {v12}, Ljava/lang/StringBuilder;->()V const-string v13, "(L" invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v13, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v18 const/16 v22, 0x0 const/4 v13, 0x1 new-array v12, v13, [Ljava/lang/String; const-string v20, "java/io/IOException" const/16 v21, 0x0 aput-object v20, v12, v21 move-object/from16 v23, v11 move-object/from16 v24, v6 move-object/from16 v20, v12 const/16 v6, 0x3a move-object/from16 v12, v19 const/4 v6, 0x1 move/from16 v13, v17 move-object/from16 v14, v16 const/16 v6, 0x19 move-object/from16 v15, v18 move-object/from16 v16, v22 move-object/from16 v17, v20 invoke-direct/range {v11 .. v17}, Lcom/alibaba/fastjson/asm/MethodWriter;->(Lcom/alibaba/fastjson/asm/ClassWriter;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V const/4 v12, 0x1 .line 227 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 228 sget-object v12, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v13, "getWriter" new-instance v14, Ljava/lang/StringBuilder; invoke-direct {v14}, Ljava/lang/StringBuilder;->()V const-string v15, "()L" invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v15, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v15, ";" invoke-virtual {v14, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v14}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v14 const/16 v15, 0xb6 invoke-interface {v11, v15, v12, v13, v14}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v12, "out" .line 232 invoke-virtual {v4, v12}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v12 const/16 v13, 0x3a invoke-interface {v11, v13, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v14, 0x9a if-nez v7, :cond_12 if-eqz v3, :cond_11 .line 235 invoke-interface {v3}, Lcom/alibaba/fastjson/annotation/JSONType;->alphabetic()Z move-result v16 if-eqz v16, :cond_12 .line 236 :cond_11 new-instance v12, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v12}, Lcom/alibaba/fastjson/asm/Label;->()V const-string v13, "out" .line 238 invoke-virtual {v4, v13}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v13 invoke-interface {v11, v6, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 239 sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; const-string v6, "isSortField" move-object/from16 v25, v3 const-string v3, "()Z" invoke-interface {v11, v15, v13, v6, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 241 invoke-interface {v11, v14, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V const/16 v3, 0x19 const/4 v6, 0x0 .line 242 invoke-interface {v11, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x1 .line 243 invoke-interface {v11, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x2 .line 244 invoke-interface {v11, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x3 .line 245 invoke-interface {v11, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x4 .line 246 invoke-interface {v11, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v3, 0x5 const/16 v13, 0x15 .line 247 invoke-interface {v11, v13, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v3, "writeUnsorted" .line 248 new-instance v13, Ljava/lang/StringBuilder; invoke-direct {v13}, Ljava/lang/StringBuilder;->()V const-string v6, "(L" invoke-virtual {v13, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v13, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v6, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-virtual {v13, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v6 invoke-interface {v11, v15, v10, v3, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v3, 0xb1 .line 250 invoke-interface {v11, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 252 invoke-interface {v11, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V goto :goto_9 :cond_12 move-object/from16 v25, v3 .line 257 :goto_9 invoke-static {v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$000(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)Z move-result v3 if-eqz v3, :cond_13 .line 258 new-instance v3, Lcom/alibaba/fastjson/asm/Label; invoke-direct {v3}, Lcom/alibaba/fastjson/asm/Label;->()V const/16 v6, 0x19 const/4 v12, 0x1 .line 260 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 261 sget-object v13, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v12, "writeDirect" const-string v6, "()Z" invoke-interface {v11, v15, v13, v12, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V .line 262 invoke-interface {v11, v14, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitJumpInsn(ILcom/alibaba/fastjson/asm/Label;)V const/16 v6, 0x19 const/4 v12, 0x0 .line 263 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v12, 0x1 .line 264 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v12, 0x2 .line 265 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v12, 0x3 .line 266 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v12, 0x4 .line 267 invoke-interface {v11, v6, v12}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/4 v6, 0x5 const/16 v13, 0x15 .line 268 invoke-interface {v11, v13, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const-string v6, "write1" .line 269 new-instance v13, Ljava/lang/StringBuilder; invoke-direct {v13}, Ljava/lang/StringBuilder;->()V const-string v14, "(L" invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v14, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v14, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-virtual {v13, v14}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v13}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v13 invoke-interface {v11, v15, v10, v6, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const/16 v6, 0xb1 .line 271 invoke-interface {v11, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 273 invoke-interface {v11, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitLabel(Lcom/alibaba/fastjson/asm/Label;)V goto :goto_a :cond_13 const/16 v6, 0xb1 const/4 v12, 0x4 :goto_a const/16 v3, 0x19 const/4 v13, 0x2 .line 278 invoke-interface {v11, v3, v13}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 279 invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v3 const/16 v14, 0xc0 invoke-interface {v11, v14, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const-string v3, "entity" .line 280 invoke-virtual {v4, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v3 const/16 v14, 0x3a invoke-interface {v11, v14, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 281 invoke-direct {v0, v1, v11, v2, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->generateWriteMethod(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Ljava/util/List;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V .line 282 invoke-interface {v11, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 283 invoke-static {v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$100(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)I move-result v3 add-int/2addr v3, v13 const/4 v4, 0x7 invoke-interface {v11, v4, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMaxs(II)V .line 284 invoke-interface {v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitEnd()V add-int/lit8 v8, v8, 0x1 move-object/from16 v6, v24 move-object/from16 v3, v25 const/16 v4, 0xb1 const/4 v15, 0x4 goto/16 :goto_7 :cond_14 move-object/from16 v24, v6 const/4 v4, 0x7 const/16 v14, 0xc0 const/16 v15, 0xb6 if-nez v7, :cond_15 .line 289 new-instance v3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context; const/4 v6, 0x0 invoke-direct {v3, v10, v9, v6}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->(Ljava/lang/String;IZ)V .line 291 new-instance v6, Lcom/alibaba/fastjson/asm/MethodWriter; const/4 v13, 0x1 const-string v7, "writeUnsorted" new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;->()V const-string v11, "(L" invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v11, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v11, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;I)V" invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v8 const/16 v16, 0x0 const/4 v12, 0x1 new-array v11, v12, [Ljava/lang/String; const-string v17, "java/io/IOException" const/16 v18, 0x0 aput-object v17, v11, v18 move-object/from16 v17, v11 move-object v11, v6 const/4 v4, 0x1 move-object/from16 v12, v19 move-object v14, v7 const/16 v7, 0xb6 move-object v15, v8 invoke-direct/range {v11 .. v17}, Lcom/alibaba/fastjson/asm/MethodWriter;->(Lcom/alibaba/fastjson/asm/ClassWriter;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V const/16 v8, 0x19 .line 296 invoke-interface {v6, v8, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 297 sget-object v4, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v8, "getWriter" new-instance v11, Ljava/lang/StringBuilder; invoke-direct {v11}, Ljava/lang/StringBuilder;->()V const-string v12, "()L" invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v12, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v12, ";" invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v11 invoke-interface {v6, v7, v4, v8, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v4, "out" .line 299 invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v4 const/16 v8, 0x3a invoke-interface {v6, v8, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v4, 0x19 const/4 v11, 0x2 .line 301 invoke-interface {v6, v4, v11}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 302 invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v4 const/16 v15, 0xc0 invoke-interface {v6, v15, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const-string v4, "entity" .line 303 invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v4 invoke-interface {v6, v8, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 305 invoke-direct {v0, v1, v6, v5, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->generateWriteMethod(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Ljava/util/List;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 v4, 0xb1 .line 307 invoke-interface {v6, v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 308 invoke-static {v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$100(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)I move-result v3 add-int/2addr v3, v11 const/4 v4, 0x7 invoke-interface {v6, v4, v3}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMaxs(II)V .line 309 invoke-interface {v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitEnd()V goto :goto_b :cond_15 const/16 v7, 0xb6 const/16 v15, 0xc0 .line 314 :goto_b new-instance v3, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context; const/4 v4, 0x0 invoke-direct {v3, v10, v9, v4}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->(Ljava/lang/String;IZ)V .line 316 new-instance v4, Lcom/alibaba/fastjson/asm/MethodWriter; const/4 v13, 0x1 const-string v14, "writeAsArray" new-instance v5, Ljava/lang/StringBuilder; invoke-direct {v5}, Ljava/lang/StringBuilder;->()V const-string v6, "(L" invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v6, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v6, ";Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/reflect/Type;)V" invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v5 const/16 v16, 0x0 const/4 v6, 0x1 new-array v8, v6, [Ljava/lang/String; const-string v9, "java/io/IOException" const/4 v10, 0x0 aput-object v9, v8, v10 move-object v11, v4 move-object/from16 v12, v19 const/16 v9, 0xc0 move-object v15, v5 move-object/from16 v17, v8 invoke-direct/range {v11 .. v17}, Lcom/alibaba/fastjson/asm/MethodWriter;->(Lcom/alibaba/fastjson/asm/ClassWriter;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V const/16 v5, 0x19 .line 321 invoke-interface {v4, v5, v6}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 322 sget-object v5, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->JSONSerializer:Ljava/lang/String; const-string v6, "getWriter" new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8}, Ljava/lang/StringBuilder;->()V const-string v10, "()L" invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; sget-object v10, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->SerializeWriter:Ljava/lang/String; invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v10, ";" invoke-virtual {v8, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v8 invoke-interface {v4, v7, v5, v6, v8}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMethodInsn(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V const-string v5, "out" .line 324 invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v5 const/16 v6, 0x3a invoke-interface {v4, v6, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V const/16 v5, 0x19 const/4 v7, 0x2 .line 326 invoke-interface {v4, v5, v7}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 327 invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/ASMUtils;->type(Ljava/lang/Class;)Ljava/lang/String; move-result-object v5 invoke-interface {v4, v9, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitTypeInsn(ILjava/lang/String;)V const-string v5, "entity" .line 328 invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->var(Ljava/lang/String;)I move-result v5 invoke-interface {v4, v6, v5}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitVarInsn(II)V .line 329 invoke-direct {v0, v1, v4, v2, v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->generateWriteAsArray(Ljava/lang/Class;Lcom/alibaba/fastjson/asm/MethodVisitor;Ljava/util/List;Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)V const/16 v1, 0xb1 .line 330 invoke-interface {v4, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitInsn(I)V .line 331 invoke-static {v3}, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;->access$100(Lcom/alibaba/fastjson/serializer/ASMSerializerFactory$Context;)I move-result v1 add-int/2addr v1, v7 const/4 v2, 0x7 invoke-interface {v4, v2, v1}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitMaxs(II)V .line 332 invoke-interface {v4}, Lcom/alibaba/fastjson/asm/MethodVisitor;->visitEnd()V .line 335 invoke-virtual/range {v19 .. v19}, Lcom/alibaba/fastjson/asm/ClassWriter;->toByteArray()[B move-result-object v1 .line 352 iget-object v2, v0, Lcom/alibaba/fastjson/serializer/ASMSerializerFactory;->classLoader:Lcom/alibaba/fastjson/util/ASMClassLoader; array-length v3, v1 move-object/from16 v4, v24 const/4 v5, 0x0 invoke-virtual {v2, v4, v1, v5, v3}, Lcom/alibaba/fastjson/util/ASMClassLoader;->defineClassPublic(Ljava/lang/String;[BII)Ljava/lang/Class; move-result-object v1 .line 353 invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object v1 .line 355 check-cast v1, Lcom/alibaba/fastjson/serializer/ObjectSerializer; return-object v1 .line 94 :cond_16 new-instance v2, Lcom/alibaba/fastjson/JSONException; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "unsupportd class " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v1 invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v2, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v2 .end method