forked from mirror/go-json
Fix recursive call
This commit is contained in:
parent
b78ca46c15
commit
d84b6bca18
|
@ -237,7 +237,7 @@ func (t opType) fieldToStringTagField() opType {
|
|||
"array", "map", "slice", "struct", "MarshalJSON", "MarshalText", "recursive",
|
||||
"intString", "uintString",
|
||||
"intPtr", "uintPtr", "float32Ptr", "float64Ptr", "boolPtr", "stringPtr", "bytesPtr", "numberPtr",
|
||||
"arrayPtr", "mapPtr", "slicePtr", "marshalJSONPtr", "marshalTextPtr", "interfacePtr",
|
||||
"arrayPtr", "mapPtr", "slicePtr", "marshalJSONPtr", "marshalTextPtr", "interfacePtr", "recursivePtr",
|
||||
}
|
||||
primitiveTypesUpper := []string{}
|
||||
for _, typ := range primitiveTypes {
|
||||
|
|
|
@ -103,7 +103,7 @@ func encodeCompileHead(ctx *encodeCompileContext) (*opcode, error) {
|
|||
func encodeLinkRecursiveCode(c *opcode) {
|
||||
for code := c; code.op != opEnd && code.op != opStructFieldRecursiveEnd; {
|
||||
switch code.op {
|
||||
case opStructFieldRecursive, opStructFieldPtrHeadRecursive:
|
||||
case opStructFieldRecursive, opStructFieldRecursivePtr:
|
||||
if code.jmp.linked {
|
||||
code = code.next
|
||||
continue
|
||||
|
@ -144,7 +144,7 @@ func encodeLinkRecursiveCode(c *opcode) {
|
|||
|
||||
func encodeOptimizeStructEnd(c *opcode) {
|
||||
for code := c; code.op != opEnd; {
|
||||
if code.op == opStructFieldRecursive {
|
||||
if code.op == opStructFieldRecursive || code.op == opStructFieldRecursivePtr {
|
||||
// ignore if exists recursive operation
|
||||
return
|
||||
}
|
||||
|
@ -313,6 +313,8 @@ func encodeConvertPtrOp(code *opcode) opType {
|
|||
return opMarshalTextPtr
|
||||
case opInterface:
|
||||
return opInterfacePtr
|
||||
case opStructFieldRecursive:
|
||||
return opStructFieldRecursivePtr
|
||||
}
|
||||
return code.op
|
||||
}
|
||||
|
@ -867,8 +869,6 @@ func encodeTypeToFieldType(ctx *encodeCompileContext, code *opcode) opType {
|
|||
return opStructFieldMarshalText
|
||||
case opMarshalTextPtr:
|
||||
return opStructFieldMarshalTextPtr
|
||||
case opStructFieldRecursive:
|
||||
return opStructFieldRecursive
|
||||
}
|
||||
return opStructField
|
||||
}
|
||||
|
@ -1294,12 +1294,6 @@ func encodeCompileStruct(ctx *encodeCompileContext, isPtr bool) (*opcode, error)
|
|||
}
|
||||
|
||||
if field.Anonymous {
|
||||
if valueCode.op == opPtr && valueCode.next.op == opStructFieldRecursive {
|
||||
valueCode = valueCode.next
|
||||
valueCode.decOpcodeIndex()
|
||||
ctx.decIndex()
|
||||
valueCode.op = opStructFieldPtrHeadRecursive
|
||||
}
|
||||
tagKey := ""
|
||||
if tag.isTaggedKey {
|
||||
tagKey = tag.key
|
||||
|
|
804
encode_optype.go
804
encode_optype.go
|
@ -22,7 +22,7 @@ const (
|
|||
codeStructEnd codeType = 11
|
||||
)
|
||||
|
||||
var opTypeStrings = [429]string{
|
||||
var opTypeStrings = [442]string{
|
||||
"End",
|
||||
"Interface",
|
||||
"Ptr",
|
||||
|
@ -68,6 +68,7 @@ var opTypeStrings = [429]string{
|
|||
"MarshalJSONPtr",
|
||||
"MarshalTextPtr",
|
||||
"InterfacePtr",
|
||||
"RecursivePtr",
|
||||
"StructFieldHeadInt",
|
||||
"StructFieldHeadOmitEmptyInt",
|
||||
"StructFieldHeadStringTagInt",
|
||||
|
@ -254,6 +255,12 @@ var opTypeStrings = [429]string{
|
|||
"StructFieldPtrHeadInterfacePtr",
|
||||
"StructFieldPtrHeadOmitEmptyInterfacePtr",
|
||||
"StructFieldPtrHeadStringTagInterfacePtr",
|
||||
"StructFieldHeadRecursivePtr",
|
||||
"StructFieldHeadOmitEmptyRecursivePtr",
|
||||
"StructFieldHeadStringTagRecursivePtr",
|
||||
"StructFieldPtrHeadRecursivePtr",
|
||||
"StructFieldPtrHeadOmitEmptyRecursivePtr",
|
||||
"StructFieldPtrHeadStringTagRecursivePtr",
|
||||
"StructFieldHead",
|
||||
"StructFieldHeadOmitEmpty",
|
||||
"StructFieldHeadStringTag",
|
||||
|
@ -353,6 +360,9 @@ var opTypeStrings = [429]string{
|
|||
"StructFieldInterfacePtr",
|
||||
"StructFieldOmitEmptyInterfacePtr",
|
||||
"StructFieldStringTagInterfacePtr",
|
||||
"StructFieldRecursivePtr",
|
||||
"StructFieldOmitEmptyRecursivePtr",
|
||||
"StructFieldStringTagRecursivePtr",
|
||||
"StructField",
|
||||
"StructFieldOmitEmpty",
|
||||
"StructFieldStringTag",
|
||||
|
@ -449,6 +459,9 @@ var opTypeStrings = [429]string{
|
|||
"StructEndInterfacePtr",
|
||||
"StructEndOmitEmptyInterfacePtr",
|
||||
"StructEndStringTagInterfacePtr",
|
||||
"StructEndRecursivePtr",
|
||||
"StructEndOmitEmptyRecursivePtr",
|
||||
"StructEndStringTagRecursivePtr",
|
||||
"StructEnd",
|
||||
"StructEndOmitEmpty",
|
||||
"StructEndStringTag",
|
||||
|
@ -502,394 +515,407 @@ const (
|
|||
opMarshalJSONPtr opType = 42
|
||||
opMarshalTextPtr opType = 43
|
||||
opInterfacePtr opType = 44
|
||||
opStructFieldHeadInt opType = 45
|
||||
opStructFieldHeadOmitEmptyInt opType = 46
|
||||
opStructFieldHeadStringTagInt opType = 47
|
||||
opStructFieldPtrHeadInt opType = 48
|
||||
opStructFieldPtrHeadOmitEmptyInt opType = 49
|
||||
opStructFieldPtrHeadStringTagInt opType = 50
|
||||
opStructFieldHeadUint opType = 51
|
||||
opStructFieldHeadOmitEmptyUint opType = 52
|
||||
opStructFieldHeadStringTagUint opType = 53
|
||||
opStructFieldPtrHeadUint opType = 54
|
||||
opStructFieldPtrHeadOmitEmptyUint opType = 55
|
||||
opStructFieldPtrHeadStringTagUint opType = 56
|
||||
opStructFieldHeadFloat32 opType = 57
|
||||
opStructFieldHeadOmitEmptyFloat32 opType = 58
|
||||
opStructFieldHeadStringTagFloat32 opType = 59
|
||||
opStructFieldPtrHeadFloat32 opType = 60
|
||||
opStructFieldPtrHeadOmitEmptyFloat32 opType = 61
|
||||
opStructFieldPtrHeadStringTagFloat32 opType = 62
|
||||
opStructFieldHeadFloat64 opType = 63
|
||||
opStructFieldHeadOmitEmptyFloat64 opType = 64
|
||||
opStructFieldHeadStringTagFloat64 opType = 65
|
||||
opStructFieldPtrHeadFloat64 opType = 66
|
||||
opStructFieldPtrHeadOmitEmptyFloat64 opType = 67
|
||||
opStructFieldPtrHeadStringTagFloat64 opType = 68
|
||||
opStructFieldHeadBool opType = 69
|
||||
opStructFieldHeadOmitEmptyBool opType = 70
|
||||
opStructFieldHeadStringTagBool opType = 71
|
||||
opStructFieldPtrHeadBool opType = 72
|
||||
opStructFieldPtrHeadOmitEmptyBool opType = 73
|
||||
opStructFieldPtrHeadStringTagBool opType = 74
|
||||
opStructFieldHeadString opType = 75
|
||||
opStructFieldHeadOmitEmptyString opType = 76
|
||||
opStructFieldHeadStringTagString opType = 77
|
||||
opStructFieldPtrHeadString opType = 78
|
||||
opStructFieldPtrHeadOmitEmptyString opType = 79
|
||||
opStructFieldPtrHeadStringTagString opType = 80
|
||||
opStructFieldHeadBytes opType = 81
|
||||
opStructFieldHeadOmitEmptyBytes opType = 82
|
||||
opStructFieldHeadStringTagBytes opType = 83
|
||||
opStructFieldPtrHeadBytes opType = 84
|
||||
opStructFieldPtrHeadOmitEmptyBytes opType = 85
|
||||
opStructFieldPtrHeadStringTagBytes opType = 86
|
||||
opStructFieldHeadNumber opType = 87
|
||||
opStructFieldHeadOmitEmptyNumber opType = 88
|
||||
opStructFieldHeadStringTagNumber opType = 89
|
||||
opStructFieldPtrHeadNumber opType = 90
|
||||
opStructFieldPtrHeadOmitEmptyNumber opType = 91
|
||||
opStructFieldPtrHeadStringTagNumber opType = 92
|
||||
opStructFieldHeadArray opType = 93
|
||||
opStructFieldHeadOmitEmptyArray opType = 94
|
||||
opStructFieldHeadStringTagArray opType = 95
|
||||
opStructFieldPtrHeadArray opType = 96
|
||||
opStructFieldPtrHeadOmitEmptyArray opType = 97
|
||||
opStructFieldPtrHeadStringTagArray opType = 98
|
||||
opStructFieldHeadMap opType = 99
|
||||
opStructFieldHeadOmitEmptyMap opType = 100
|
||||
opStructFieldHeadStringTagMap opType = 101
|
||||
opStructFieldPtrHeadMap opType = 102
|
||||
opStructFieldPtrHeadOmitEmptyMap opType = 103
|
||||
opStructFieldPtrHeadStringTagMap opType = 104
|
||||
opStructFieldHeadSlice opType = 105
|
||||
opStructFieldHeadOmitEmptySlice opType = 106
|
||||
opStructFieldHeadStringTagSlice opType = 107
|
||||
opStructFieldPtrHeadSlice opType = 108
|
||||
opStructFieldPtrHeadOmitEmptySlice opType = 109
|
||||
opStructFieldPtrHeadStringTagSlice opType = 110
|
||||
opStructFieldHeadStruct opType = 111
|
||||
opStructFieldHeadOmitEmptyStruct opType = 112
|
||||
opStructFieldHeadStringTagStruct opType = 113
|
||||
opStructFieldPtrHeadStruct opType = 114
|
||||
opStructFieldPtrHeadOmitEmptyStruct opType = 115
|
||||
opStructFieldPtrHeadStringTagStruct opType = 116
|
||||
opStructFieldHeadMarshalJSON opType = 117
|
||||
opStructFieldHeadOmitEmptyMarshalJSON opType = 118
|
||||
opStructFieldHeadStringTagMarshalJSON opType = 119
|
||||
opStructFieldPtrHeadMarshalJSON opType = 120
|
||||
opStructFieldPtrHeadOmitEmptyMarshalJSON opType = 121
|
||||
opStructFieldPtrHeadStringTagMarshalJSON opType = 122
|
||||
opStructFieldHeadMarshalText opType = 123
|
||||
opStructFieldHeadOmitEmptyMarshalText opType = 124
|
||||
opStructFieldHeadStringTagMarshalText opType = 125
|
||||
opStructFieldPtrHeadMarshalText opType = 126
|
||||
opStructFieldPtrHeadOmitEmptyMarshalText opType = 127
|
||||
opStructFieldPtrHeadStringTagMarshalText opType = 128
|
||||
opStructFieldHeadRecursive opType = 129
|
||||
opStructFieldHeadOmitEmptyRecursive opType = 130
|
||||
opStructFieldHeadStringTagRecursive opType = 131
|
||||
opStructFieldPtrHeadRecursive opType = 132
|
||||
opStructFieldPtrHeadOmitEmptyRecursive opType = 133
|
||||
opStructFieldPtrHeadStringTagRecursive opType = 134
|
||||
opStructFieldHeadIntString opType = 135
|
||||
opStructFieldHeadOmitEmptyIntString opType = 136
|
||||
opStructFieldHeadStringTagIntString opType = 137
|
||||
opStructFieldPtrHeadIntString opType = 138
|
||||
opStructFieldPtrHeadOmitEmptyIntString opType = 139
|
||||
opStructFieldPtrHeadStringTagIntString opType = 140
|
||||
opStructFieldHeadUintString opType = 141
|
||||
opStructFieldHeadOmitEmptyUintString opType = 142
|
||||
opStructFieldHeadStringTagUintString opType = 143
|
||||
opStructFieldPtrHeadUintString opType = 144
|
||||
opStructFieldPtrHeadOmitEmptyUintString opType = 145
|
||||
opStructFieldPtrHeadStringTagUintString opType = 146
|
||||
opStructFieldHeadIntPtr opType = 147
|
||||
opStructFieldHeadOmitEmptyIntPtr opType = 148
|
||||
opStructFieldHeadStringTagIntPtr opType = 149
|
||||
opStructFieldPtrHeadIntPtr opType = 150
|
||||
opStructFieldPtrHeadOmitEmptyIntPtr opType = 151
|
||||
opStructFieldPtrHeadStringTagIntPtr opType = 152
|
||||
opStructFieldHeadUintPtr opType = 153
|
||||
opStructFieldHeadOmitEmptyUintPtr opType = 154
|
||||
opStructFieldHeadStringTagUintPtr opType = 155
|
||||
opStructFieldPtrHeadUintPtr opType = 156
|
||||
opStructFieldPtrHeadOmitEmptyUintPtr opType = 157
|
||||
opStructFieldPtrHeadStringTagUintPtr opType = 158
|
||||
opStructFieldHeadFloat32Ptr opType = 159
|
||||
opStructFieldHeadOmitEmptyFloat32Ptr opType = 160
|
||||
opStructFieldHeadStringTagFloat32Ptr opType = 161
|
||||
opStructFieldPtrHeadFloat32Ptr opType = 162
|
||||
opStructFieldPtrHeadOmitEmptyFloat32Ptr opType = 163
|
||||
opStructFieldPtrHeadStringTagFloat32Ptr opType = 164
|
||||
opStructFieldHeadFloat64Ptr opType = 165
|
||||
opStructFieldHeadOmitEmptyFloat64Ptr opType = 166
|
||||
opStructFieldHeadStringTagFloat64Ptr opType = 167
|
||||
opStructFieldPtrHeadFloat64Ptr opType = 168
|
||||
opStructFieldPtrHeadOmitEmptyFloat64Ptr opType = 169
|
||||
opStructFieldPtrHeadStringTagFloat64Ptr opType = 170
|
||||
opStructFieldHeadBoolPtr opType = 171
|
||||
opStructFieldHeadOmitEmptyBoolPtr opType = 172
|
||||
opStructFieldHeadStringTagBoolPtr opType = 173
|
||||
opStructFieldPtrHeadBoolPtr opType = 174
|
||||
opStructFieldPtrHeadOmitEmptyBoolPtr opType = 175
|
||||
opStructFieldPtrHeadStringTagBoolPtr opType = 176
|
||||
opStructFieldHeadStringPtr opType = 177
|
||||
opStructFieldHeadOmitEmptyStringPtr opType = 178
|
||||
opStructFieldHeadStringTagStringPtr opType = 179
|
||||
opStructFieldPtrHeadStringPtr opType = 180
|
||||
opStructFieldPtrHeadOmitEmptyStringPtr opType = 181
|
||||
opStructFieldPtrHeadStringTagStringPtr opType = 182
|
||||
opStructFieldHeadBytesPtr opType = 183
|
||||
opStructFieldHeadOmitEmptyBytesPtr opType = 184
|
||||
opStructFieldHeadStringTagBytesPtr opType = 185
|
||||
opStructFieldPtrHeadBytesPtr opType = 186
|
||||
opStructFieldPtrHeadOmitEmptyBytesPtr opType = 187
|
||||
opStructFieldPtrHeadStringTagBytesPtr opType = 188
|
||||
opStructFieldHeadNumberPtr opType = 189
|
||||
opStructFieldHeadOmitEmptyNumberPtr opType = 190
|
||||
opStructFieldHeadStringTagNumberPtr opType = 191
|
||||
opStructFieldPtrHeadNumberPtr opType = 192
|
||||
opStructFieldPtrHeadOmitEmptyNumberPtr opType = 193
|
||||
opStructFieldPtrHeadStringTagNumberPtr opType = 194
|
||||
opStructFieldHeadArrayPtr opType = 195
|
||||
opStructFieldHeadOmitEmptyArrayPtr opType = 196
|
||||
opStructFieldHeadStringTagArrayPtr opType = 197
|
||||
opStructFieldPtrHeadArrayPtr opType = 198
|
||||
opStructFieldPtrHeadOmitEmptyArrayPtr opType = 199
|
||||
opStructFieldPtrHeadStringTagArrayPtr opType = 200
|
||||
opStructFieldHeadMapPtr opType = 201
|
||||
opStructFieldHeadOmitEmptyMapPtr opType = 202
|
||||
opStructFieldHeadStringTagMapPtr opType = 203
|
||||
opStructFieldPtrHeadMapPtr opType = 204
|
||||
opStructFieldPtrHeadOmitEmptyMapPtr opType = 205
|
||||
opStructFieldPtrHeadStringTagMapPtr opType = 206
|
||||
opStructFieldHeadSlicePtr opType = 207
|
||||
opStructFieldHeadOmitEmptySlicePtr opType = 208
|
||||
opStructFieldHeadStringTagSlicePtr opType = 209
|
||||
opStructFieldPtrHeadSlicePtr opType = 210
|
||||
opStructFieldPtrHeadOmitEmptySlicePtr opType = 211
|
||||
opStructFieldPtrHeadStringTagSlicePtr opType = 212
|
||||
opStructFieldHeadMarshalJSONPtr opType = 213
|
||||
opStructFieldHeadOmitEmptyMarshalJSONPtr opType = 214
|
||||
opStructFieldHeadStringTagMarshalJSONPtr opType = 215
|
||||
opStructFieldPtrHeadMarshalJSONPtr opType = 216
|
||||
opStructFieldPtrHeadOmitEmptyMarshalJSONPtr opType = 217
|
||||
opStructFieldPtrHeadStringTagMarshalJSONPtr opType = 218
|
||||
opStructFieldHeadMarshalTextPtr opType = 219
|
||||
opStructFieldHeadOmitEmptyMarshalTextPtr opType = 220
|
||||
opStructFieldHeadStringTagMarshalTextPtr opType = 221
|
||||
opStructFieldPtrHeadMarshalTextPtr opType = 222
|
||||
opStructFieldPtrHeadOmitEmptyMarshalTextPtr opType = 223
|
||||
opStructFieldPtrHeadStringTagMarshalTextPtr opType = 224
|
||||
opStructFieldHeadInterfacePtr opType = 225
|
||||
opStructFieldHeadOmitEmptyInterfacePtr opType = 226
|
||||
opStructFieldHeadStringTagInterfacePtr opType = 227
|
||||
opStructFieldPtrHeadInterfacePtr opType = 228
|
||||
opStructFieldPtrHeadOmitEmptyInterfacePtr opType = 229
|
||||
opStructFieldPtrHeadStringTagInterfacePtr opType = 230
|
||||
opStructFieldHead opType = 231
|
||||
opStructFieldHeadOmitEmpty opType = 232
|
||||
opStructFieldHeadStringTag opType = 233
|
||||
opStructFieldPtrHead opType = 234
|
||||
opStructFieldPtrHeadOmitEmpty opType = 235
|
||||
opStructFieldPtrHeadStringTag opType = 236
|
||||
opStructFieldInt opType = 237
|
||||
opStructFieldOmitEmptyInt opType = 238
|
||||
opStructFieldStringTagInt opType = 239
|
||||
opStructFieldUint opType = 240
|
||||
opStructFieldOmitEmptyUint opType = 241
|
||||
opStructFieldStringTagUint opType = 242
|
||||
opStructFieldFloat32 opType = 243
|
||||
opStructFieldOmitEmptyFloat32 opType = 244
|
||||
opStructFieldStringTagFloat32 opType = 245
|
||||
opStructFieldFloat64 opType = 246
|
||||
opStructFieldOmitEmptyFloat64 opType = 247
|
||||
opStructFieldStringTagFloat64 opType = 248
|
||||
opStructFieldBool opType = 249
|
||||
opStructFieldOmitEmptyBool opType = 250
|
||||
opStructFieldStringTagBool opType = 251
|
||||
opStructFieldString opType = 252
|
||||
opStructFieldOmitEmptyString opType = 253
|
||||
opStructFieldStringTagString opType = 254
|
||||
opStructFieldBytes opType = 255
|
||||
opStructFieldOmitEmptyBytes opType = 256
|
||||
opStructFieldStringTagBytes opType = 257
|
||||
opStructFieldNumber opType = 258
|
||||
opStructFieldOmitEmptyNumber opType = 259
|
||||
opStructFieldStringTagNumber opType = 260
|
||||
opStructFieldArray opType = 261
|
||||
opStructFieldOmitEmptyArray opType = 262
|
||||
opStructFieldStringTagArray opType = 263
|
||||
opStructFieldMap opType = 264
|
||||
opStructFieldOmitEmptyMap opType = 265
|
||||
opStructFieldStringTagMap opType = 266
|
||||
opStructFieldSlice opType = 267
|
||||
opStructFieldOmitEmptySlice opType = 268
|
||||
opStructFieldStringTagSlice opType = 269
|
||||
opStructFieldStruct opType = 270
|
||||
opStructFieldOmitEmptyStruct opType = 271
|
||||
opStructFieldStringTagStruct opType = 272
|
||||
opStructFieldMarshalJSON opType = 273
|
||||
opStructFieldOmitEmptyMarshalJSON opType = 274
|
||||
opStructFieldStringTagMarshalJSON opType = 275
|
||||
opStructFieldMarshalText opType = 276
|
||||
opStructFieldOmitEmptyMarshalText opType = 277
|
||||
opStructFieldStringTagMarshalText opType = 278
|
||||
opStructFieldRecursive opType = 279
|
||||
opStructFieldOmitEmptyRecursive opType = 280
|
||||
opStructFieldStringTagRecursive opType = 281
|
||||
opStructFieldIntString opType = 282
|
||||
opStructFieldOmitEmptyIntString opType = 283
|
||||
opStructFieldStringTagIntString opType = 284
|
||||
opStructFieldUintString opType = 285
|
||||
opStructFieldOmitEmptyUintString opType = 286
|
||||
opStructFieldStringTagUintString opType = 287
|
||||
opStructFieldIntPtr opType = 288
|
||||
opStructFieldOmitEmptyIntPtr opType = 289
|
||||
opStructFieldStringTagIntPtr opType = 290
|
||||
opStructFieldUintPtr opType = 291
|
||||
opStructFieldOmitEmptyUintPtr opType = 292
|
||||
opStructFieldStringTagUintPtr opType = 293
|
||||
opStructFieldFloat32Ptr opType = 294
|
||||
opStructFieldOmitEmptyFloat32Ptr opType = 295
|
||||
opStructFieldStringTagFloat32Ptr opType = 296
|
||||
opStructFieldFloat64Ptr opType = 297
|
||||
opStructFieldOmitEmptyFloat64Ptr opType = 298
|
||||
opStructFieldStringTagFloat64Ptr opType = 299
|
||||
opStructFieldBoolPtr opType = 300
|
||||
opStructFieldOmitEmptyBoolPtr opType = 301
|
||||
opStructFieldStringTagBoolPtr opType = 302
|
||||
opStructFieldStringPtr opType = 303
|
||||
opStructFieldOmitEmptyStringPtr opType = 304
|
||||
opStructFieldStringTagStringPtr opType = 305
|
||||
opStructFieldBytesPtr opType = 306
|
||||
opStructFieldOmitEmptyBytesPtr opType = 307
|
||||
opStructFieldStringTagBytesPtr opType = 308
|
||||
opStructFieldNumberPtr opType = 309
|
||||
opStructFieldOmitEmptyNumberPtr opType = 310
|
||||
opStructFieldStringTagNumberPtr opType = 311
|
||||
opStructFieldArrayPtr opType = 312
|
||||
opStructFieldOmitEmptyArrayPtr opType = 313
|
||||
opStructFieldStringTagArrayPtr opType = 314
|
||||
opStructFieldMapPtr opType = 315
|
||||
opStructFieldOmitEmptyMapPtr opType = 316
|
||||
opStructFieldStringTagMapPtr opType = 317
|
||||
opStructFieldSlicePtr opType = 318
|
||||
opStructFieldOmitEmptySlicePtr opType = 319
|
||||
opStructFieldStringTagSlicePtr opType = 320
|
||||
opStructFieldMarshalJSONPtr opType = 321
|
||||
opStructFieldOmitEmptyMarshalJSONPtr opType = 322
|
||||
opStructFieldStringTagMarshalJSONPtr opType = 323
|
||||
opStructFieldMarshalTextPtr opType = 324
|
||||
opStructFieldOmitEmptyMarshalTextPtr opType = 325
|
||||
opStructFieldStringTagMarshalTextPtr opType = 326
|
||||
opStructFieldInterfacePtr opType = 327
|
||||
opStructFieldOmitEmptyInterfacePtr opType = 328
|
||||
opStructFieldStringTagInterfacePtr opType = 329
|
||||
opStructField opType = 330
|
||||
opStructFieldOmitEmpty opType = 331
|
||||
opStructFieldStringTag opType = 332
|
||||
opStructEndInt opType = 333
|
||||
opStructEndOmitEmptyInt opType = 334
|
||||
opStructEndStringTagInt opType = 335
|
||||
opStructEndUint opType = 336
|
||||
opStructEndOmitEmptyUint opType = 337
|
||||
opStructEndStringTagUint opType = 338
|
||||
opStructEndFloat32 opType = 339
|
||||
opStructEndOmitEmptyFloat32 opType = 340
|
||||
opStructEndStringTagFloat32 opType = 341
|
||||
opStructEndFloat64 opType = 342
|
||||
opStructEndOmitEmptyFloat64 opType = 343
|
||||
opStructEndStringTagFloat64 opType = 344
|
||||
opStructEndBool opType = 345
|
||||
opStructEndOmitEmptyBool opType = 346
|
||||
opStructEndStringTagBool opType = 347
|
||||
opStructEndString opType = 348
|
||||
opStructEndOmitEmptyString opType = 349
|
||||
opStructEndStringTagString opType = 350
|
||||
opStructEndBytes opType = 351
|
||||
opStructEndOmitEmptyBytes opType = 352
|
||||
opStructEndStringTagBytes opType = 353
|
||||
opStructEndNumber opType = 354
|
||||
opStructEndOmitEmptyNumber opType = 355
|
||||
opStructEndStringTagNumber opType = 356
|
||||
opStructEndArray opType = 357
|
||||
opStructEndOmitEmptyArray opType = 358
|
||||
opStructEndStringTagArray opType = 359
|
||||
opStructEndMap opType = 360
|
||||
opStructEndOmitEmptyMap opType = 361
|
||||
opStructEndStringTagMap opType = 362
|
||||
opStructEndSlice opType = 363
|
||||
opStructEndOmitEmptySlice opType = 364
|
||||
opStructEndStringTagSlice opType = 365
|
||||
opStructEndStruct opType = 366
|
||||
opStructEndOmitEmptyStruct opType = 367
|
||||
opStructEndStringTagStruct opType = 368
|
||||
opStructEndMarshalJSON opType = 369
|
||||
opStructEndOmitEmptyMarshalJSON opType = 370
|
||||
opStructEndStringTagMarshalJSON opType = 371
|
||||
opStructEndMarshalText opType = 372
|
||||
opStructEndOmitEmptyMarshalText opType = 373
|
||||
opStructEndStringTagMarshalText opType = 374
|
||||
opStructEndRecursive opType = 375
|
||||
opStructEndOmitEmptyRecursive opType = 376
|
||||
opStructEndStringTagRecursive opType = 377
|
||||
opStructEndIntString opType = 378
|
||||
opStructEndOmitEmptyIntString opType = 379
|
||||
opStructEndStringTagIntString opType = 380
|
||||
opStructEndUintString opType = 381
|
||||
opStructEndOmitEmptyUintString opType = 382
|
||||
opStructEndStringTagUintString opType = 383
|
||||
opStructEndIntPtr opType = 384
|
||||
opStructEndOmitEmptyIntPtr opType = 385
|
||||
opStructEndStringTagIntPtr opType = 386
|
||||
opStructEndUintPtr opType = 387
|
||||
opStructEndOmitEmptyUintPtr opType = 388
|
||||
opStructEndStringTagUintPtr opType = 389
|
||||
opStructEndFloat32Ptr opType = 390
|
||||
opStructEndOmitEmptyFloat32Ptr opType = 391
|
||||
opStructEndStringTagFloat32Ptr opType = 392
|
||||
opStructEndFloat64Ptr opType = 393
|
||||
opStructEndOmitEmptyFloat64Ptr opType = 394
|
||||
opStructEndStringTagFloat64Ptr opType = 395
|
||||
opStructEndBoolPtr opType = 396
|
||||
opStructEndOmitEmptyBoolPtr opType = 397
|
||||
opStructEndStringTagBoolPtr opType = 398
|
||||
opStructEndStringPtr opType = 399
|
||||
opStructEndOmitEmptyStringPtr opType = 400
|
||||
opStructEndStringTagStringPtr opType = 401
|
||||
opStructEndBytesPtr opType = 402
|
||||
opStructEndOmitEmptyBytesPtr opType = 403
|
||||
opStructEndStringTagBytesPtr opType = 404
|
||||
opStructEndNumberPtr opType = 405
|
||||
opStructEndOmitEmptyNumberPtr opType = 406
|
||||
opStructEndStringTagNumberPtr opType = 407
|
||||
opStructEndArrayPtr opType = 408
|
||||
opStructEndOmitEmptyArrayPtr opType = 409
|
||||
opStructEndStringTagArrayPtr opType = 410
|
||||
opStructEndMapPtr opType = 411
|
||||
opStructEndOmitEmptyMapPtr opType = 412
|
||||
opStructEndStringTagMapPtr opType = 413
|
||||
opStructEndSlicePtr opType = 414
|
||||
opStructEndOmitEmptySlicePtr opType = 415
|
||||
opStructEndStringTagSlicePtr opType = 416
|
||||
opStructEndMarshalJSONPtr opType = 417
|
||||
opStructEndOmitEmptyMarshalJSONPtr opType = 418
|
||||
opStructEndStringTagMarshalJSONPtr opType = 419
|
||||
opStructEndMarshalTextPtr opType = 420
|
||||
opStructEndOmitEmptyMarshalTextPtr opType = 421
|
||||
opStructEndStringTagMarshalTextPtr opType = 422
|
||||
opStructEndInterfacePtr opType = 423
|
||||
opStructEndOmitEmptyInterfacePtr opType = 424
|
||||
opStructEndStringTagInterfacePtr opType = 425
|
||||
opStructEnd opType = 426
|
||||
opStructEndOmitEmpty opType = 427
|
||||
opStructEndStringTag opType = 428
|
||||
opRecursivePtr opType = 45
|
||||
opStructFieldHeadInt opType = 46
|
||||
opStructFieldHeadOmitEmptyInt opType = 47
|
||||
opStructFieldHeadStringTagInt opType = 48
|
||||
opStructFieldPtrHeadInt opType = 49
|
||||
opStructFieldPtrHeadOmitEmptyInt opType = 50
|
||||
opStructFieldPtrHeadStringTagInt opType = 51
|
||||
opStructFieldHeadUint opType = 52
|
||||
opStructFieldHeadOmitEmptyUint opType = 53
|
||||
opStructFieldHeadStringTagUint opType = 54
|
||||
opStructFieldPtrHeadUint opType = 55
|
||||
opStructFieldPtrHeadOmitEmptyUint opType = 56
|
||||
opStructFieldPtrHeadStringTagUint opType = 57
|
||||
opStructFieldHeadFloat32 opType = 58
|
||||
opStructFieldHeadOmitEmptyFloat32 opType = 59
|
||||
opStructFieldHeadStringTagFloat32 opType = 60
|
||||
opStructFieldPtrHeadFloat32 opType = 61
|
||||
opStructFieldPtrHeadOmitEmptyFloat32 opType = 62
|
||||
opStructFieldPtrHeadStringTagFloat32 opType = 63
|
||||
opStructFieldHeadFloat64 opType = 64
|
||||
opStructFieldHeadOmitEmptyFloat64 opType = 65
|
||||
opStructFieldHeadStringTagFloat64 opType = 66
|
||||
opStructFieldPtrHeadFloat64 opType = 67
|
||||
opStructFieldPtrHeadOmitEmptyFloat64 opType = 68
|
||||
opStructFieldPtrHeadStringTagFloat64 opType = 69
|
||||
opStructFieldHeadBool opType = 70
|
||||
opStructFieldHeadOmitEmptyBool opType = 71
|
||||
opStructFieldHeadStringTagBool opType = 72
|
||||
opStructFieldPtrHeadBool opType = 73
|
||||
opStructFieldPtrHeadOmitEmptyBool opType = 74
|
||||
opStructFieldPtrHeadStringTagBool opType = 75
|
||||
opStructFieldHeadString opType = 76
|
||||
opStructFieldHeadOmitEmptyString opType = 77
|
||||
opStructFieldHeadStringTagString opType = 78
|
||||
opStructFieldPtrHeadString opType = 79
|
||||
opStructFieldPtrHeadOmitEmptyString opType = 80
|
||||
opStructFieldPtrHeadStringTagString opType = 81
|
||||
opStructFieldHeadBytes opType = 82
|
||||
opStructFieldHeadOmitEmptyBytes opType = 83
|
||||
opStructFieldHeadStringTagBytes opType = 84
|
||||
opStructFieldPtrHeadBytes opType = 85
|
||||
opStructFieldPtrHeadOmitEmptyBytes opType = 86
|
||||
opStructFieldPtrHeadStringTagBytes opType = 87
|
||||
opStructFieldHeadNumber opType = 88
|
||||
opStructFieldHeadOmitEmptyNumber opType = 89
|
||||
opStructFieldHeadStringTagNumber opType = 90
|
||||
opStructFieldPtrHeadNumber opType = 91
|
||||
opStructFieldPtrHeadOmitEmptyNumber opType = 92
|
||||
opStructFieldPtrHeadStringTagNumber opType = 93
|
||||
opStructFieldHeadArray opType = 94
|
||||
opStructFieldHeadOmitEmptyArray opType = 95
|
||||
opStructFieldHeadStringTagArray opType = 96
|
||||
opStructFieldPtrHeadArray opType = 97
|
||||
opStructFieldPtrHeadOmitEmptyArray opType = 98
|
||||
opStructFieldPtrHeadStringTagArray opType = 99
|
||||
opStructFieldHeadMap opType = 100
|
||||
opStructFieldHeadOmitEmptyMap opType = 101
|
||||
opStructFieldHeadStringTagMap opType = 102
|
||||
opStructFieldPtrHeadMap opType = 103
|
||||
opStructFieldPtrHeadOmitEmptyMap opType = 104
|
||||
opStructFieldPtrHeadStringTagMap opType = 105
|
||||
opStructFieldHeadSlice opType = 106
|
||||
opStructFieldHeadOmitEmptySlice opType = 107
|
||||
opStructFieldHeadStringTagSlice opType = 108
|
||||
opStructFieldPtrHeadSlice opType = 109
|
||||
opStructFieldPtrHeadOmitEmptySlice opType = 110
|
||||
opStructFieldPtrHeadStringTagSlice opType = 111
|
||||
opStructFieldHeadStruct opType = 112
|
||||
opStructFieldHeadOmitEmptyStruct opType = 113
|
||||
opStructFieldHeadStringTagStruct opType = 114
|
||||
opStructFieldPtrHeadStruct opType = 115
|
||||
opStructFieldPtrHeadOmitEmptyStruct opType = 116
|
||||
opStructFieldPtrHeadStringTagStruct opType = 117
|
||||
opStructFieldHeadMarshalJSON opType = 118
|
||||
opStructFieldHeadOmitEmptyMarshalJSON opType = 119
|
||||
opStructFieldHeadStringTagMarshalJSON opType = 120
|
||||
opStructFieldPtrHeadMarshalJSON opType = 121
|
||||
opStructFieldPtrHeadOmitEmptyMarshalJSON opType = 122
|
||||
opStructFieldPtrHeadStringTagMarshalJSON opType = 123
|
||||
opStructFieldHeadMarshalText opType = 124
|
||||
opStructFieldHeadOmitEmptyMarshalText opType = 125
|
||||
opStructFieldHeadStringTagMarshalText opType = 126
|
||||
opStructFieldPtrHeadMarshalText opType = 127
|
||||
opStructFieldPtrHeadOmitEmptyMarshalText opType = 128
|
||||
opStructFieldPtrHeadStringTagMarshalText opType = 129
|
||||
opStructFieldHeadRecursive opType = 130
|
||||
opStructFieldHeadOmitEmptyRecursive opType = 131
|
||||
opStructFieldHeadStringTagRecursive opType = 132
|
||||
opStructFieldPtrHeadRecursive opType = 133
|
||||
opStructFieldPtrHeadOmitEmptyRecursive opType = 134
|
||||
opStructFieldPtrHeadStringTagRecursive opType = 135
|
||||
opStructFieldHeadIntString opType = 136
|
||||
opStructFieldHeadOmitEmptyIntString opType = 137
|
||||
opStructFieldHeadStringTagIntString opType = 138
|
||||
opStructFieldPtrHeadIntString opType = 139
|
||||
opStructFieldPtrHeadOmitEmptyIntString opType = 140
|
||||
opStructFieldPtrHeadStringTagIntString opType = 141
|
||||
opStructFieldHeadUintString opType = 142
|
||||
opStructFieldHeadOmitEmptyUintString opType = 143
|
||||
opStructFieldHeadStringTagUintString opType = 144
|
||||
opStructFieldPtrHeadUintString opType = 145
|
||||
opStructFieldPtrHeadOmitEmptyUintString opType = 146
|
||||
opStructFieldPtrHeadStringTagUintString opType = 147
|
||||
opStructFieldHeadIntPtr opType = 148
|
||||
opStructFieldHeadOmitEmptyIntPtr opType = 149
|
||||
opStructFieldHeadStringTagIntPtr opType = 150
|
||||
opStructFieldPtrHeadIntPtr opType = 151
|
||||
opStructFieldPtrHeadOmitEmptyIntPtr opType = 152
|
||||
opStructFieldPtrHeadStringTagIntPtr opType = 153
|
||||
opStructFieldHeadUintPtr opType = 154
|
||||
opStructFieldHeadOmitEmptyUintPtr opType = 155
|
||||
opStructFieldHeadStringTagUintPtr opType = 156
|
||||
opStructFieldPtrHeadUintPtr opType = 157
|
||||
opStructFieldPtrHeadOmitEmptyUintPtr opType = 158
|
||||
opStructFieldPtrHeadStringTagUintPtr opType = 159
|
||||
opStructFieldHeadFloat32Ptr opType = 160
|
||||
opStructFieldHeadOmitEmptyFloat32Ptr opType = 161
|
||||
opStructFieldHeadStringTagFloat32Ptr opType = 162
|
||||
opStructFieldPtrHeadFloat32Ptr opType = 163
|
||||
opStructFieldPtrHeadOmitEmptyFloat32Ptr opType = 164
|
||||
opStructFieldPtrHeadStringTagFloat32Ptr opType = 165
|
||||
opStructFieldHeadFloat64Ptr opType = 166
|
||||
opStructFieldHeadOmitEmptyFloat64Ptr opType = 167
|
||||
opStructFieldHeadStringTagFloat64Ptr opType = 168
|
||||
opStructFieldPtrHeadFloat64Ptr opType = 169
|
||||
opStructFieldPtrHeadOmitEmptyFloat64Ptr opType = 170
|
||||
opStructFieldPtrHeadStringTagFloat64Ptr opType = 171
|
||||
opStructFieldHeadBoolPtr opType = 172
|
||||
opStructFieldHeadOmitEmptyBoolPtr opType = 173
|
||||
opStructFieldHeadStringTagBoolPtr opType = 174
|
||||
opStructFieldPtrHeadBoolPtr opType = 175
|
||||
opStructFieldPtrHeadOmitEmptyBoolPtr opType = 176
|
||||
opStructFieldPtrHeadStringTagBoolPtr opType = 177
|
||||
opStructFieldHeadStringPtr opType = 178
|
||||
opStructFieldHeadOmitEmptyStringPtr opType = 179
|
||||
opStructFieldHeadStringTagStringPtr opType = 180
|
||||
opStructFieldPtrHeadStringPtr opType = 181
|
||||
opStructFieldPtrHeadOmitEmptyStringPtr opType = 182
|
||||
opStructFieldPtrHeadStringTagStringPtr opType = 183
|
||||
opStructFieldHeadBytesPtr opType = 184
|
||||
opStructFieldHeadOmitEmptyBytesPtr opType = 185
|
||||
opStructFieldHeadStringTagBytesPtr opType = 186
|
||||
opStructFieldPtrHeadBytesPtr opType = 187
|
||||
opStructFieldPtrHeadOmitEmptyBytesPtr opType = 188
|
||||
opStructFieldPtrHeadStringTagBytesPtr opType = 189
|
||||
opStructFieldHeadNumberPtr opType = 190
|
||||
opStructFieldHeadOmitEmptyNumberPtr opType = 191
|
||||
opStructFieldHeadStringTagNumberPtr opType = 192
|
||||
opStructFieldPtrHeadNumberPtr opType = 193
|
||||
opStructFieldPtrHeadOmitEmptyNumberPtr opType = 194
|
||||
opStructFieldPtrHeadStringTagNumberPtr opType = 195
|
||||
opStructFieldHeadArrayPtr opType = 196
|
||||
opStructFieldHeadOmitEmptyArrayPtr opType = 197
|
||||
opStructFieldHeadStringTagArrayPtr opType = 198
|
||||
opStructFieldPtrHeadArrayPtr opType = 199
|
||||
opStructFieldPtrHeadOmitEmptyArrayPtr opType = 200
|
||||
opStructFieldPtrHeadStringTagArrayPtr opType = 201
|
||||
opStructFieldHeadMapPtr opType = 202
|
||||
opStructFieldHeadOmitEmptyMapPtr opType = 203
|
||||
opStructFieldHeadStringTagMapPtr opType = 204
|
||||
opStructFieldPtrHeadMapPtr opType = 205
|
||||
opStructFieldPtrHeadOmitEmptyMapPtr opType = 206
|
||||
opStructFieldPtrHeadStringTagMapPtr opType = 207
|
||||
opStructFieldHeadSlicePtr opType = 208
|
||||
opStructFieldHeadOmitEmptySlicePtr opType = 209
|
||||
opStructFieldHeadStringTagSlicePtr opType = 210
|
||||
opStructFieldPtrHeadSlicePtr opType = 211
|
||||
opStructFieldPtrHeadOmitEmptySlicePtr opType = 212
|
||||
opStructFieldPtrHeadStringTagSlicePtr opType = 213
|
||||
opStructFieldHeadMarshalJSONPtr opType = 214
|
||||
opStructFieldHeadOmitEmptyMarshalJSONPtr opType = 215
|
||||
opStructFieldHeadStringTagMarshalJSONPtr opType = 216
|
||||
opStructFieldPtrHeadMarshalJSONPtr opType = 217
|
||||
opStructFieldPtrHeadOmitEmptyMarshalJSONPtr opType = 218
|
||||
opStructFieldPtrHeadStringTagMarshalJSONPtr opType = 219
|
||||
opStructFieldHeadMarshalTextPtr opType = 220
|
||||
opStructFieldHeadOmitEmptyMarshalTextPtr opType = 221
|
||||
opStructFieldHeadStringTagMarshalTextPtr opType = 222
|
||||
opStructFieldPtrHeadMarshalTextPtr opType = 223
|
||||
opStructFieldPtrHeadOmitEmptyMarshalTextPtr opType = 224
|
||||
opStructFieldPtrHeadStringTagMarshalTextPtr opType = 225
|
||||
opStructFieldHeadInterfacePtr opType = 226
|
||||
opStructFieldHeadOmitEmptyInterfacePtr opType = 227
|
||||
opStructFieldHeadStringTagInterfacePtr opType = 228
|
||||
opStructFieldPtrHeadInterfacePtr opType = 229
|
||||
opStructFieldPtrHeadOmitEmptyInterfacePtr opType = 230
|
||||
opStructFieldPtrHeadStringTagInterfacePtr opType = 231
|
||||
opStructFieldHeadRecursivePtr opType = 232
|
||||
opStructFieldHeadOmitEmptyRecursivePtr opType = 233
|
||||
opStructFieldHeadStringTagRecursivePtr opType = 234
|
||||
opStructFieldPtrHeadRecursivePtr opType = 235
|
||||
opStructFieldPtrHeadOmitEmptyRecursivePtr opType = 236
|
||||
opStructFieldPtrHeadStringTagRecursivePtr opType = 237
|
||||
opStructFieldHead opType = 238
|
||||
opStructFieldHeadOmitEmpty opType = 239
|
||||
opStructFieldHeadStringTag opType = 240
|
||||
opStructFieldPtrHead opType = 241
|
||||
opStructFieldPtrHeadOmitEmpty opType = 242
|
||||
opStructFieldPtrHeadStringTag opType = 243
|
||||
opStructFieldInt opType = 244
|
||||
opStructFieldOmitEmptyInt opType = 245
|
||||
opStructFieldStringTagInt opType = 246
|
||||
opStructFieldUint opType = 247
|
||||
opStructFieldOmitEmptyUint opType = 248
|
||||
opStructFieldStringTagUint opType = 249
|
||||
opStructFieldFloat32 opType = 250
|
||||
opStructFieldOmitEmptyFloat32 opType = 251
|
||||
opStructFieldStringTagFloat32 opType = 252
|
||||
opStructFieldFloat64 opType = 253
|
||||
opStructFieldOmitEmptyFloat64 opType = 254
|
||||
opStructFieldStringTagFloat64 opType = 255
|
||||
opStructFieldBool opType = 256
|
||||
opStructFieldOmitEmptyBool opType = 257
|
||||
opStructFieldStringTagBool opType = 258
|
||||
opStructFieldString opType = 259
|
||||
opStructFieldOmitEmptyString opType = 260
|
||||
opStructFieldStringTagString opType = 261
|
||||
opStructFieldBytes opType = 262
|
||||
opStructFieldOmitEmptyBytes opType = 263
|
||||
opStructFieldStringTagBytes opType = 264
|
||||
opStructFieldNumber opType = 265
|
||||
opStructFieldOmitEmptyNumber opType = 266
|
||||
opStructFieldStringTagNumber opType = 267
|
||||
opStructFieldArray opType = 268
|
||||
opStructFieldOmitEmptyArray opType = 269
|
||||
opStructFieldStringTagArray opType = 270
|
||||
opStructFieldMap opType = 271
|
||||
opStructFieldOmitEmptyMap opType = 272
|
||||
opStructFieldStringTagMap opType = 273
|
||||
opStructFieldSlice opType = 274
|
||||
opStructFieldOmitEmptySlice opType = 275
|
||||
opStructFieldStringTagSlice opType = 276
|
||||
opStructFieldStruct opType = 277
|
||||
opStructFieldOmitEmptyStruct opType = 278
|
||||
opStructFieldStringTagStruct opType = 279
|
||||
opStructFieldMarshalJSON opType = 280
|
||||
opStructFieldOmitEmptyMarshalJSON opType = 281
|
||||
opStructFieldStringTagMarshalJSON opType = 282
|
||||
opStructFieldMarshalText opType = 283
|
||||
opStructFieldOmitEmptyMarshalText opType = 284
|
||||
opStructFieldStringTagMarshalText opType = 285
|
||||
opStructFieldRecursive opType = 286
|
||||
opStructFieldOmitEmptyRecursive opType = 287
|
||||
opStructFieldStringTagRecursive opType = 288
|
||||
opStructFieldIntString opType = 289
|
||||
opStructFieldOmitEmptyIntString opType = 290
|
||||
opStructFieldStringTagIntString opType = 291
|
||||
opStructFieldUintString opType = 292
|
||||
opStructFieldOmitEmptyUintString opType = 293
|
||||
opStructFieldStringTagUintString opType = 294
|
||||
opStructFieldIntPtr opType = 295
|
||||
opStructFieldOmitEmptyIntPtr opType = 296
|
||||
opStructFieldStringTagIntPtr opType = 297
|
||||
opStructFieldUintPtr opType = 298
|
||||
opStructFieldOmitEmptyUintPtr opType = 299
|
||||
opStructFieldStringTagUintPtr opType = 300
|
||||
opStructFieldFloat32Ptr opType = 301
|
||||
opStructFieldOmitEmptyFloat32Ptr opType = 302
|
||||
opStructFieldStringTagFloat32Ptr opType = 303
|
||||
opStructFieldFloat64Ptr opType = 304
|
||||
opStructFieldOmitEmptyFloat64Ptr opType = 305
|
||||
opStructFieldStringTagFloat64Ptr opType = 306
|
||||
opStructFieldBoolPtr opType = 307
|
||||
opStructFieldOmitEmptyBoolPtr opType = 308
|
||||
opStructFieldStringTagBoolPtr opType = 309
|
||||
opStructFieldStringPtr opType = 310
|
||||
opStructFieldOmitEmptyStringPtr opType = 311
|
||||
opStructFieldStringTagStringPtr opType = 312
|
||||
opStructFieldBytesPtr opType = 313
|
||||
opStructFieldOmitEmptyBytesPtr opType = 314
|
||||
opStructFieldStringTagBytesPtr opType = 315
|
||||
opStructFieldNumberPtr opType = 316
|
||||
opStructFieldOmitEmptyNumberPtr opType = 317
|
||||
opStructFieldStringTagNumberPtr opType = 318
|
||||
opStructFieldArrayPtr opType = 319
|
||||
opStructFieldOmitEmptyArrayPtr opType = 320
|
||||
opStructFieldStringTagArrayPtr opType = 321
|
||||
opStructFieldMapPtr opType = 322
|
||||
opStructFieldOmitEmptyMapPtr opType = 323
|
||||
opStructFieldStringTagMapPtr opType = 324
|
||||
opStructFieldSlicePtr opType = 325
|
||||
opStructFieldOmitEmptySlicePtr opType = 326
|
||||
opStructFieldStringTagSlicePtr opType = 327
|
||||
opStructFieldMarshalJSONPtr opType = 328
|
||||
opStructFieldOmitEmptyMarshalJSONPtr opType = 329
|
||||
opStructFieldStringTagMarshalJSONPtr opType = 330
|
||||
opStructFieldMarshalTextPtr opType = 331
|
||||
opStructFieldOmitEmptyMarshalTextPtr opType = 332
|
||||
opStructFieldStringTagMarshalTextPtr opType = 333
|
||||
opStructFieldInterfacePtr opType = 334
|
||||
opStructFieldOmitEmptyInterfacePtr opType = 335
|
||||
opStructFieldStringTagInterfacePtr opType = 336
|
||||
opStructFieldRecursivePtr opType = 337
|
||||
opStructFieldOmitEmptyRecursivePtr opType = 338
|
||||
opStructFieldStringTagRecursivePtr opType = 339
|
||||
opStructField opType = 340
|
||||
opStructFieldOmitEmpty opType = 341
|
||||
opStructFieldStringTag opType = 342
|
||||
opStructEndInt opType = 343
|
||||
opStructEndOmitEmptyInt opType = 344
|
||||
opStructEndStringTagInt opType = 345
|
||||
opStructEndUint opType = 346
|
||||
opStructEndOmitEmptyUint opType = 347
|
||||
opStructEndStringTagUint opType = 348
|
||||
opStructEndFloat32 opType = 349
|
||||
opStructEndOmitEmptyFloat32 opType = 350
|
||||
opStructEndStringTagFloat32 opType = 351
|
||||
opStructEndFloat64 opType = 352
|
||||
opStructEndOmitEmptyFloat64 opType = 353
|
||||
opStructEndStringTagFloat64 opType = 354
|
||||
opStructEndBool opType = 355
|
||||
opStructEndOmitEmptyBool opType = 356
|
||||
opStructEndStringTagBool opType = 357
|
||||
opStructEndString opType = 358
|
||||
opStructEndOmitEmptyString opType = 359
|
||||
opStructEndStringTagString opType = 360
|
||||
opStructEndBytes opType = 361
|
||||
opStructEndOmitEmptyBytes opType = 362
|
||||
opStructEndStringTagBytes opType = 363
|
||||
opStructEndNumber opType = 364
|
||||
opStructEndOmitEmptyNumber opType = 365
|
||||
opStructEndStringTagNumber opType = 366
|
||||
opStructEndArray opType = 367
|
||||
opStructEndOmitEmptyArray opType = 368
|
||||
opStructEndStringTagArray opType = 369
|
||||
opStructEndMap opType = 370
|
||||
opStructEndOmitEmptyMap opType = 371
|
||||
opStructEndStringTagMap opType = 372
|
||||
opStructEndSlice opType = 373
|
||||
opStructEndOmitEmptySlice opType = 374
|
||||
opStructEndStringTagSlice opType = 375
|
||||
opStructEndStruct opType = 376
|
||||
opStructEndOmitEmptyStruct opType = 377
|
||||
opStructEndStringTagStruct opType = 378
|
||||
opStructEndMarshalJSON opType = 379
|
||||
opStructEndOmitEmptyMarshalJSON opType = 380
|
||||
opStructEndStringTagMarshalJSON opType = 381
|
||||
opStructEndMarshalText opType = 382
|
||||
opStructEndOmitEmptyMarshalText opType = 383
|
||||
opStructEndStringTagMarshalText opType = 384
|
||||
opStructEndRecursive opType = 385
|
||||
opStructEndOmitEmptyRecursive opType = 386
|
||||
opStructEndStringTagRecursive opType = 387
|
||||
opStructEndIntString opType = 388
|
||||
opStructEndOmitEmptyIntString opType = 389
|
||||
opStructEndStringTagIntString opType = 390
|
||||
opStructEndUintString opType = 391
|
||||
opStructEndOmitEmptyUintString opType = 392
|
||||
opStructEndStringTagUintString opType = 393
|
||||
opStructEndIntPtr opType = 394
|
||||
opStructEndOmitEmptyIntPtr opType = 395
|
||||
opStructEndStringTagIntPtr opType = 396
|
||||
opStructEndUintPtr opType = 397
|
||||
opStructEndOmitEmptyUintPtr opType = 398
|
||||
opStructEndStringTagUintPtr opType = 399
|
||||
opStructEndFloat32Ptr opType = 400
|
||||
opStructEndOmitEmptyFloat32Ptr opType = 401
|
||||
opStructEndStringTagFloat32Ptr opType = 402
|
||||
opStructEndFloat64Ptr opType = 403
|
||||
opStructEndOmitEmptyFloat64Ptr opType = 404
|
||||
opStructEndStringTagFloat64Ptr opType = 405
|
||||
opStructEndBoolPtr opType = 406
|
||||
opStructEndOmitEmptyBoolPtr opType = 407
|
||||
opStructEndStringTagBoolPtr opType = 408
|
||||
opStructEndStringPtr opType = 409
|
||||
opStructEndOmitEmptyStringPtr opType = 410
|
||||
opStructEndStringTagStringPtr opType = 411
|
||||
opStructEndBytesPtr opType = 412
|
||||
opStructEndOmitEmptyBytesPtr opType = 413
|
||||
opStructEndStringTagBytesPtr opType = 414
|
||||
opStructEndNumberPtr opType = 415
|
||||
opStructEndOmitEmptyNumberPtr opType = 416
|
||||
opStructEndStringTagNumberPtr opType = 417
|
||||
opStructEndArrayPtr opType = 418
|
||||
opStructEndOmitEmptyArrayPtr opType = 419
|
||||
opStructEndStringTagArrayPtr opType = 420
|
||||
opStructEndMapPtr opType = 421
|
||||
opStructEndOmitEmptyMapPtr opType = 422
|
||||
opStructEndStringTagMapPtr opType = 423
|
||||
opStructEndSlicePtr opType = 424
|
||||
opStructEndOmitEmptySlicePtr opType = 425
|
||||
opStructEndStringTagSlicePtr opType = 426
|
||||
opStructEndMarshalJSONPtr opType = 427
|
||||
opStructEndOmitEmptyMarshalJSONPtr opType = 428
|
||||
opStructEndStringTagMarshalJSONPtr opType = 429
|
||||
opStructEndMarshalTextPtr opType = 430
|
||||
opStructEndOmitEmptyMarshalTextPtr opType = 431
|
||||
opStructEndStringTagMarshalTextPtr opType = 432
|
||||
opStructEndInterfacePtr opType = 433
|
||||
opStructEndOmitEmptyInterfacePtr opType = 434
|
||||
opStructEndStringTagInterfacePtr opType = 435
|
||||
opStructEndRecursivePtr opType = 436
|
||||
opStructEndOmitEmptyRecursivePtr opType = 437
|
||||
opStructEndStringTagRecursivePtr opType = 438
|
||||
opStructEnd opType = 439
|
||||
opStructEndOmitEmpty opType = 440
|
||||
opStructEndStringTag opType = 441
|
||||
)
|
||||
|
||||
func (t opType) String() string {
|
||||
if int(t) >= 429 {
|
||||
if int(t) >= 442 {
|
||||
return ""
|
||||
}
|
||||
return opTypeStrings[int(t)]
|
||||
|
@ -1137,6 +1163,12 @@ func (t opType) fieldToEnd() opType {
|
|||
return opStructEndOmitEmptyInterfacePtr
|
||||
case opStructFieldStringTagInterfacePtr:
|
||||
return opStructEndStringTagInterfacePtr
|
||||
case opStructFieldRecursivePtr:
|
||||
return opStructEndRecursivePtr
|
||||
case opStructFieldOmitEmptyRecursivePtr:
|
||||
return opStructEndOmitEmptyRecursivePtr
|
||||
case opStructFieldStringTagRecursivePtr:
|
||||
return opStructEndStringTagRecursivePtr
|
||||
}
|
||||
return t
|
||||
}
|
||||
|
|
10
encode_vm.go
10
encode_vm.go
|
@ -432,8 +432,14 @@ func encodeRun(ctx *encodeRuntimeContext, b []byte, codeSet *opcodeSet, opt Enco
|
|||
mapCtx.buf = buf
|
||||
releaseMapContext(mapCtx)
|
||||
code = code.next
|
||||
case opStructFieldPtrHeadRecursive:
|
||||
store(ctxptr, code.idx, ptrToPtr(load(ctxptr, code.idx)))
|
||||
case opStructFieldRecursivePtr:
|
||||
p := load(ctxptr, code.idx)
|
||||
if p == 0 {
|
||||
code = code.next
|
||||
break
|
||||
}
|
||||
store(ctxptr, code.idx, ptrToPtr(p))
|
||||
fallthrough
|
||||
case opStructFieldRecursive:
|
||||
ptr := load(ctxptr, code.idx)
|
||||
if ptr != 0 {
|
||||
|
|
|
@ -14,7 +14,6 @@ func encodeRunEscaped(ctx *encodeRuntimeContext, b []byte, codeSet *opcodeSet, o
|
|||
ptrOffset := uintptr(0)
|
||||
ctxptr := ctx.ptr()
|
||||
code := codeSet.code
|
||||
//fmt.Println(code.dump())
|
||||
|
||||
for {
|
||||
switch code.op {
|
||||
|
@ -393,8 +392,14 @@ func encodeRunEscaped(ctx *encodeRuntimeContext, b []byte, codeSet *opcodeSet, o
|
|||
mapCtx.buf = buf
|
||||
releaseMapContext(mapCtx)
|
||||
code = code.next
|
||||
case opStructFieldPtrHeadRecursive:
|
||||
store(ctxptr, code.idx, ptrToPtr(load(ctxptr, code.idx)))
|
||||
case opStructFieldRecursivePtr:
|
||||
p := load(ctxptr, code.idx)
|
||||
if p == 0 {
|
||||
code = code.next
|
||||
break
|
||||
}
|
||||
store(ctxptr, code.idx, ptrToPtr(p))
|
||||
fallthrough
|
||||
case opStructFieldRecursive:
|
||||
ptr := load(ctxptr, code.idx)
|
||||
if ptr != 0 {
|
||||
|
|
Loading…
Reference in New Issue