Fossil SCM
Reduced memory requirements in merge_try_to_resolve_conflict().
Commit
16515616307feec9fa23f566109456dd0792bb8f05158ad0992ba5e4f4539abf
Parent
1174e5f2fdd9ca2…
1 file changed
+2
-6
+2
-6
| --- src/merge3.c | ||
| +++ src/merge3.c | ||
| @@ -338,21 +338,17 @@ | ||
| 338 | 338 | mergebuilder_init_token(&mb); |
| 339 | 339 | blob_extract_lines(pMB->pPivot, nPivot, &pv); |
| 340 | 340 | blob_extract_lines(pMB->pV1, nV1, &v1); |
| 341 | 341 | blob_extract_lines(pMB->pV2, nV2, &v2); |
| 342 | 342 | blob_zero(pOut); |
| 343 | - blob_materialize(&pv); | |
| 344 | - blob_materialize(&v1); | |
| 345 | - blob_materialize(&v2); | |
| 346 | 343 | mb.pPivot = &pv; |
| 347 | 344 | mb.pV1 = &v1; |
| 348 | 345 | mb.pV2 = &v2; |
| 349 | 346 | mb.pOut = pOut; |
| 350 | 347 | nConflict = merge_three_blobs(&mb); |
| 351 | - blob_reset(&pv); | |
| 352 | - blob_reset(&v1); | |
| 353 | - blob_reset(&v2); | |
| 348 | + /* The pv, v1, and v2 blobs are all ephemeral and hence do not need | |
| 349 | + ** to be freed. */ | |
| 354 | 350 | /* mb has not allocated any resources, so we do not need to invoke |
| 355 | 351 | ** the xDestroy method. */ |
| 356 | 352 | blob_add_final_newline(pOut); |
| 357 | 353 | return nConflict; |
| 358 | 354 | } |
| 359 | 355 |
| --- src/merge3.c | |
| +++ src/merge3.c | |
| @@ -338,21 +338,17 @@ | |
| 338 | mergebuilder_init_token(&mb); |
| 339 | blob_extract_lines(pMB->pPivot, nPivot, &pv); |
| 340 | blob_extract_lines(pMB->pV1, nV1, &v1); |
| 341 | blob_extract_lines(pMB->pV2, nV2, &v2); |
| 342 | blob_zero(pOut); |
| 343 | blob_materialize(&pv); |
| 344 | blob_materialize(&v1); |
| 345 | blob_materialize(&v2); |
| 346 | mb.pPivot = &pv; |
| 347 | mb.pV1 = &v1; |
| 348 | mb.pV2 = &v2; |
| 349 | mb.pOut = pOut; |
| 350 | nConflict = merge_three_blobs(&mb); |
| 351 | blob_reset(&pv); |
| 352 | blob_reset(&v1); |
| 353 | blob_reset(&v2); |
| 354 | /* mb has not allocated any resources, so we do not need to invoke |
| 355 | ** the xDestroy method. */ |
| 356 | blob_add_final_newline(pOut); |
| 357 | return nConflict; |
| 358 | } |
| 359 |
| --- src/merge3.c | |
| +++ src/merge3.c | |
| @@ -338,21 +338,17 @@ | |
| 338 | mergebuilder_init_token(&mb); |
| 339 | blob_extract_lines(pMB->pPivot, nPivot, &pv); |
| 340 | blob_extract_lines(pMB->pV1, nV1, &v1); |
| 341 | blob_extract_lines(pMB->pV2, nV2, &v2); |
| 342 | blob_zero(pOut); |
| 343 | mb.pPivot = &pv; |
| 344 | mb.pV1 = &v1; |
| 345 | mb.pV2 = &v2; |
| 346 | mb.pOut = pOut; |
| 347 | nConflict = merge_three_blobs(&mb); |
| 348 | /* The pv, v1, and v2 blobs are all ephemeral and hence do not need |
| 349 | ** to be freed. */ |
| 350 | /* mb has not allocated any resources, so we do not need to invoke |
| 351 | ** the xDestroy method. */ |
| 352 | blob_add_final_newline(pOut); |
| 353 | return nConflict; |
| 354 | } |
| 355 |