aboutsummaryrefslogtreecommitdiff
path: root/ext/misc/json1.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2017-03-23 12:56:44 +0000
committerdrh <drh@noemail.net>2017-03-23 12:56:44 +0000
commit1fe162fd0ce451dacee29c9d7164415c8815ca7b (patch)
tree829e70b550c3db153959978f99c72aebcb87c5a0 /ext/misc/json1.c
parent0002d246a94f03b7947c0fe4156f2dcc31cd722b (diff)
downloadsqlite-1fe162fd0ce451dacee29c9d7164415c8815ca7b.tar.gz
sqlite-1fe162fd0ce451dacee29c9d7164415c8815ca7b.zip
Avoid redundant edits in the json_merge_patch() function.
FossilOrigin-Name: 4a8e6437dd610c5376a07867a73e5a7e2ea90357a018e1788ecce6f4e10bc939
Diffstat (limited to 'ext/misc/json1.c')
-rw-r--r--ext/misc/json1.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/ext/misc/json1.c b/ext/misc/json1.c
index 31e03d1e7..80b654d68 100644
--- a/ext/misc/json1.c
+++ b/ext/misc/json1.c
@@ -1393,10 +1393,8 @@ static JsonNode *jsonMergePatch(
assert( pTarget[j].eType==JSON_STRING );
assert( pTarget[j].jnFlags & JNODE_LABEL );
assert( (pPatch[i].jnFlags & JNODE_RAW)==0 );
- if( (pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH))==0
- && pTarget[j].n==nKey
- && strncmp(pTarget[j].u.zJContent, zKey, nKey)==0
- ){
+ if( pTarget[j].n==nKey && strncmp(pTarget[j].u.zJContent,zKey,nKey)==0 ){
+ if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH) ) break;
if( pPatch[i+1].eType==JSON_NULL ){
pTarget[j+1].jnFlags |= JNODE_REMOVE;
}else{