Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Avoid redundant edits in the json_merge_patch() function. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | json_mergepatch |
Files: | files | file ages | folders |
SHA3-256: |
4a8e6437dd610c5376a07867a73e5a7e |
User & Date: | drh 2017-03-23 12:56:44.298 |
Context
2017-03-23
| ||
20:33 | Change the name of the json_merge_patch() function to just json_patch(). (Closed-Leaf check-in: 04d4100445 user: drh tags: json_mergepatch) | |
12:56 | Avoid redundant edits in the json_merge_patch() function. (check-in: 4a8e6437dd user: drh tags: json_mergepatch) | |
00:46 | Fix harmless compiler warnings in the new json_merge_patch() logic. (check-in: 5d2cf5a2f8 user: drh tags: json_mergepatch) | |
Changes
Changes to ext/misc/json1.c.
︙ | ︙ | |||
1389 1390 1391 1392 1393 1394 1395 | nKey = pPatch[i].n; zKey = pPatch[i].u.zJContent; assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); for(j=1; j<pTarget->n; j += jsonNodeSize(&pTarget[j+1])+1 ){ assert( pTarget[j].eType==JSON_STRING ); assert( pTarget[j].jnFlags & JNODE_LABEL ); assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); | > | < < < | 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 | nKey = pPatch[i].n; zKey = pPatch[i].u.zJContent; assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); for(j=1; j<pTarget->n; j += jsonNodeSize(&pTarget[j+1])+1 ){ assert( pTarget[j].eType==JSON_STRING ); assert( pTarget[j].jnFlags & JNODE_LABEL ); assert( (pPatch[i].jnFlags & JNODE_RAW)==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{ JsonNode *pNew = jsonMergePatch(pParse, iTarget+j+1, &pPatch[i+1]); if( pNew==0 ) return 0; pTarget = &pParse->aNode[iTarget]; if( pNew!=&pTarget[j+1] ){ |
︙ | ︙ |