Fossil SCM
Only run xfer_ticket_code() when needed, and fix another logic error (found by Mark Janssen)
Commit
80e443bdbdd744d55cf3782bbf61f5b3c98ebaa0
Parent
e4af590ff935bd6…
2 files changed
+6
-4
+1
-1
+6
-4
| --- src/manifest.c | ||
| +++ src/manifest.c | ||
| @@ -1501,19 +1501,21 @@ | ||
| 1501 | 1501 | int i; |
| 1502 | 1502 | int rc = TH_OK; |
| 1503 | 1503 | int permitHooks = (flags & MC_PERMIT_HOOKS); |
| 1504 | 1504 | const char *zScript = 0; |
| 1505 | 1505 | assert( manifest_crosslink_busy==1 ); |
| 1506 | - zScript = xfer_ticket_code(); | |
| 1507 | - if( zScript && permitHooks ){ | |
| 1508 | - rc = xfer_run_common_script(); | |
| 1506 | + if( permitHooks ){ | |
| 1507 | + zScript = xfer_ticket_code(); | |
| 1508 | + if( zScript ){ | |
| 1509 | + rc = xfer_run_common_script(); | |
| 1510 | + } | |
| 1509 | 1511 | } |
| 1510 | 1512 | db_prepare(&q, "SELECT uuid FROM pending_tkt"); |
| 1511 | 1513 | while( db_step(&q)==SQLITE_ROW ){ |
| 1512 | 1514 | const char *zUuid = db_column_text(&q, 0); |
| 1513 | 1515 | ticket_rebuild_entry(zUuid); |
| 1514 | - if( rc==TH_OK && zScript && permitHooks ){ | |
| 1516 | + if( rc==TH_OK && zScript ){ | |
| 1515 | 1517 | rc = xfer_run_script(zScript, zUuid); |
| 1516 | 1518 | } |
| 1517 | 1519 | } |
| 1518 | 1520 | db_finalize(&q); |
| 1519 | 1521 | db_multi_exec("DROP TABLE pending_tkt"); |
| 1520 | 1522 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1501,19 +1501,21 @@ | |
| 1501 | int i; |
| 1502 | int rc = TH_OK; |
| 1503 | int permitHooks = (flags & MC_PERMIT_HOOKS); |
| 1504 | const char *zScript = 0; |
| 1505 | assert( manifest_crosslink_busy==1 ); |
| 1506 | zScript = xfer_ticket_code(); |
| 1507 | if( zScript && permitHooks ){ |
| 1508 | rc = xfer_run_common_script(); |
| 1509 | } |
| 1510 | db_prepare(&q, "SELECT uuid FROM pending_tkt"); |
| 1511 | while( db_step(&q)==SQLITE_ROW ){ |
| 1512 | const char *zUuid = db_column_text(&q, 0); |
| 1513 | ticket_rebuild_entry(zUuid); |
| 1514 | if( rc==TH_OK && zScript && permitHooks ){ |
| 1515 | rc = xfer_run_script(zScript, zUuid); |
| 1516 | } |
| 1517 | } |
| 1518 | db_finalize(&q); |
| 1519 | db_multi_exec("DROP TABLE pending_tkt"); |
| 1520 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1501,19 +1501,21 @@ | |
| 1501 | int i; |
| 1502 | int rc = TH_OK; |
| 1503 | int permitHooks = (flags & MC_PERMIT_HOOKS); |
| 1504 | const char *zScript = 0; |
| 1505 | assert( manifest_crosslink_busy==1 ); |
| 1506 | if( permitHooks ){ |
| 1507 | zScript = xfer_ticket_code(); |
| 1508 | if( zScript ){ |
| 1509 | rc = xfer_run_common_script(); |
| 1510 | } |
| 1511 | } |
| 1512 | db_prepare(&q, "SELECT uuid FROM pending_tkt"); |
| 1513 | while( db_step(&q)==SQLITE_ROW ){ |
| 1514 | const char *zUuid = db_column_text(&q, 0); |
| 1515 | ticket_rebuild_entry(zUuid); |
| 1516 | if( rc==TH_OK && zScript ){ |
| 1517 | rc = xfer_run_script(zScript, zUuid); |
| 1518 | } |
| 1519 | } |
| 1520 | db_finalize(&q); |
| 1521 | db_multi_exec("DROP TABLE pending_tkt"); |
| 1522 |
+1
-1
| --- src/tkt.c | ||
| +++ src/tkt.c | ||
| @@ -537,11 +537,11 @@ | ||
| 537 | 537 | db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid); |
| 538 | 538 | } |
| 539 | 539 | manifest_crosslink_begin(); |
| 540 | 540 | result = (manifest_crosslink(rid, pTicket, 0)==0); |
| 541 | 541 | assert( blob_is_reset(pTicket) ); |
| 542 | - if( result ){ | |
| 542 | + if( !result ){ | |
| 543 | 543 | result = manifest_crosslink_end(MC_PERMIT_HOOKS); |
| 544 | 544 | }else{ |
| 545 | 545 | manifest_crosslink_end(0); |
| 546 | 546 | } |
| 547 | 547 | return result; |
| 548 | 548 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -537,11 +537,11 @@ | |
| 537 | db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid); |
| 538 | } |
| 539 | manifest_crosslink_begin(); |
| 540 | result = (manifest_crosslink(rid, pTicket, 0)==0); |
| 541 | assert( blob_is_reset(pTicket) ); |
| 542 | if( result ){ |
| 543 | result = manifest_crosslink_end(MC_PERMIT_HOOKS); |
| 544 | }else{ |
| 545 | manifest_crosslink_end(0); |
| 546 | } |
| 547 | return result; |
| 548 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -537,11 +537,11 @@ | |
| 537 | db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d);", rid); |
| 538 | } |
| 539 | manifest_crosslink_begin(); |
| 540 | result = (manifest_crosslink(rid, pTicket, 0)==0); |
| 541 | assert( blob_is_reset(pTicket) ); |
| 542 | if( !result ){ |
| 543 | result = manifest_crosslink_end(MC_PERMIT_HOOKS); |
| 544 | }else{ |
| 545 | manifest_crosslink_end(0); |
| 546 | } |
| 547 | return result; |
| 548 |