mirror of
https://github.com/ostreedev/ostree.git
synced 2025-03-19 22:50:35 +03:00
repo: Factor out _ostree_repo_auto_transaction_new()
This will allow the direct allocation in ostree_repo_prepare_transaction() to be replaced with a call to this function, avoiding breaking encapsulation. Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
parent
9cdd981250
commit
540e60c3e3
@ -554,4 +554,8 @@ GType _ostree_repo_auto_transaction_get_type (void);
|
||||
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoTransaction, _ostree_repo_auto_transaction_unref);
|
||||
|
||||
/* Internal function to break a circular dependency:
|
||||
* should not be made into public API, even if the rest is */
|
||||
OstreeRepoAutoTransaction *_ostree_repo_auto_transaction_new (OstreeRepo *repo);
|
||||
|
||||
G_END_DECLS
|
||||
|
@ -710,6 +710,32 @@ ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *auto_lock)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* _ostree_repo_auto_transaction_new:
|
||||
* @repo: (not nullable): an #OsreeRepo object
|
||||
* @cancellable: Cancellable
|
||||
* @error: a #GError
|
||||
*
|
||||
* Return a guard for a transaction in @repo.
|
||||
*
|
||||
* Do not call this function outside the OstreeRepo transaction implementation.
|
||||
* Use _ostree_repo_auto_transaction_start() instead.
|
||||
*
|
||||
* Returns: (transfer full): an #OstreeRepoAutoTransaction guard on success,
|
||||
* %NULL otherwise.
|
||||
*/
|
||||
OstreeRepoAutoTransaction *
|
||||
_ostree_repo_auto_transaction_new (OstreeRepo *repo)
|
||||
{
|
||||
g_assert (repo != NULL);
|
||||
|
||||
OstreeRepoAutoTransaction *txn = g_malloc(sizeof(OstreeRepoAutoTransaction));
|
||||
txn->atomic_refcount = 1;
|
||||
txn->repo = g_object_ref (repo);
|
||||
|
||||
return g_steal_pointer (&txn);
|
||||
}
|
||||
|
||||
/**
|
||||
* _ostree_repo_auto_transaction_start:
|
||||
* @repo: (not nullable): an #OsreeRepo object
|
||||
@ -731,11 +757,7 @@ _ostree_repo_auto_transaction_start (OstreeRepo *repo,
|
||||
if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error))
|
||||
return NULL;
|
||||
|
||||
OstreeRepoAutoTransaction *txn = g_malloc(sizeof(OstreeRepoAutoTransaction));
|
||||
txn->atomic_refcount = 1;
|
||||
txn->repo = g_object_ref (repo);
|
||||
|
||||
return g_steal_pointer (&txn);
|
||||
return _ostree_repo_auto_transaction_new (repo);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user