aboutsummaryrefslogtreecommitdiff
path: root/src/json.c
diff options
context:
space:
mode:
authordrh <>2023-07-26 21:53:09 +0000
committerdrh <>2023-07-26 21:53:09 +0000
commitf7a164f34518825ae0351fd1c4453df8f30c3afe (patch)
tree5eeed11a5d3f41d042f97793e521637d8ac06019 /src/json.c
parent3f3dc2f5d8c8fb5fad4d94f5d1dc05926cb34794 (diff)
downloadsqlite-f7a164f34518825ae0351fd1c4453df8f30c3afe.tar.gz
sqlite-f7a164f34518825ae0351fd1c4453df8f30c3afe.zip
Minor changes to make coverage testing easier.
FossilOrigin-Name: ec8b43382e5402e15d9f2dda3cf21ac8be8c1589ddbe6c9433c33eef0036f764
Diffstat (limited to 'src/json.c')
-rw-r--r--src/json.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/json.c b/src/json.c
index 26ce90c51..7fb860a6e 100644
--- a/src/json.c
+++ b/src/json.c
@@ -2828,14 +2828,17 @@ static void jsonReplaceNode(
break;
}
if( sqlite3_value_subtype(pValue)!=JSON_SUBTYPE ){
- int k = jsonParseAddNode(p, JSON_STRING, n, z);
char *zCopy = sqlite3DbStrDup(0, z);
- if( k>0 ) p->aNode[k].jnFlags |= JNODE_RAW;
+ int k;
if( zCopy ){
jsonParseAddCleanup(p, sqlite3_free, zCopy);
- }else{
+ }else{
+ p->oom = 1;
sqlite3_result_error_nomem(pCtx);
}
+ k = jsonParseAddNode(p, JSON_STRING, n, zCopy);
+ assert( k>0 || p->oom );
+ if( p->oom==0 ) p->aNode[k].jnFlags |= JNODE_RAW;
}else{
JsonParse *pPatch = jsonParseCached(pCtx, pValue, pCtx, 1);
if( pPatch==0 ){