Skip to content

Commit 84daf1c

Browse files
committed
Add missing in.resetMark()
1 parent 709cc40 commit 84daf1c

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

jsoniter-scala-macros/shared/src/main/scala-2/com/github/plokhotnyuk/jsoniter_scala/macros/JsonCodecMaker.scala

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2060,15 +2060,21 @@ object JsonCodecMaker {
20602060
val l = in.readStringAsCharBuf()
20612061
..${genReadSubclassesBlock(leafClasses)}
20622062
} else in.decodeError(${"expected key: \"" + discrFieldName + '"'})
2063-
} else in.readNullOrTokenError(default, '{')"""
2063+
} else {
2064+
in.resetMark()
2065+
in.readNullOrTokenError(default, '{')
2066+
}"""
20642067
} else {
20652068
q"""in.setMark()
20662069
if (in.isNextToken('{')) {
20672070
if (in.skipToKey($discrFieldName)) {
20682071
val l = in.readStringAsCharBuf()
20692072
..${genReadSubclassesBlock(leafClasses)}
20702073
} else in.requiredFieldError($discrFieldName)
2071-
} else in.readNullOrTokenError(default, '{')"""
2074+
} else {
2075+
in.resetMark()
2076+
in.readNullOrTokenError(default, '{')
2077+
}"""
20722078
}
20732079
}
20742080
} else if (isNonAbstractScalaClass(tpe)) withDecoderFor(methodKey, default) {

jsoniter-scala-macros/shared/src/main/scala-3/com/github/plokhotnyuk/jsoniter_scala/macros/JsonCodecMaker.scala

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2079,15 +2079,21 @@ private class JsonCodecMakerInstance(cfg: CodecMakerConfig)(using Quotes) {
20792079
val l = $in.readStringAsCharBuf()
20802080
${genReadSubclassesBlock(objClasses, 'l)}
20812081
} else $in.decodeError(${Expr("expected key: \"" + discrFieldName + '"')})
2082-
} else $in.readNullOrTokenError($default, '{')
2082+
} else {
2083+
$in.resetMark()
2084+
$in.readNullOrTokenError($default, '{')
2085+
}
20832086
} else '{
20842087
${setMark}
20852088
if ($in.isNextToken('{')) {
20862089
if ($in.skipToKey(${Expr(discrFieldName)})) {
20872090
val l = $in.readStringAsCharBuf()
20882091
${genReadSubclassesBlock(objClasses, 'l)}
20892092
} else $in.requiredFieldError(${Expr(discrFieldName)})
2090-
} else $in.readNullOrTokenError($default, '{')
2093+
} else {
2094+
$in.resetMark()
2095+
$in.readNullOrTokenError($default, '{')
2096+
}
20912097
}
20922098
}
20932099

0 commit comments

Comments
 (0)