| 1228 | } |
| 1229 | |
| 1230 | void ref_transaction_free(struct ref_transaction *transaction) |
| 1231 | { |
| 1232 | size_t i; |
| 1233 | |
| 1234 | if (!transaction) |
| 1235 | return; |
| 1236 | |
| 1237 | switch (transaction->state) { |
| 1238 | case REF_TRANSACTION_OPEN: |
| 1239 | case REF_TRANSACTION_CLOSED: |
| 1240 | /* OK */ |
| 1241 | break; |
| 1242 | case REF_TRANSACTION_PREPARED: |
| 1243 | BUG("free called on a prepared reference transaction"); |
| 1244 | break; |
| 1245 | default: |
| 1246 | BUG("unexpected reference transaction state"); |
| 1247 | break; |
| 1248 | } |
| 1249 | |
| 1250 | for (i = 0; i < transaction->nr; i++) { |
| 1251 | free(transaction->updates[i]->msg); |
| 1252 | free(transaction->updates[i]->committer_info); |
| 1253 | free((char *)transaction->updates[i]->new_target); |
| 1254 | free((char *)transaction->updates[i]->old_target); |
| 1255 | free((char *)transaction->updates[i]->rejection_details); |
| 1256 | free(transaction->updates[i]); |
| 1257 | } |
| 1258 | |
| 1259 | if (transaction->rejections) |
| 1260 | free(transaction->rejections->update_indices); |
| 1261 | free(transaction->rejections); |
| 1262 | |
| 1263 | string_list_clear(&transaction->refnames, 0); |
| 1264 | free(transaction->updates); |
| 1265 | free(transaction); |
| 1266 | } |
| 1267 | |
| 1268 | int ref_transaction_maybe_set_rejected(struct ref_transaction *transaction, |
| 1269 | size_t update_idx, |
no test coverage detected