20 xorn_revision::xorn_revision() : is_transient(true)
25 : is_transient(true), obstates(rev->obstates),
26 children(rev->children), parent(rev->parent)
28 for (std::map<xorn_object_t, obstate *>::const_iterator i
29 = obstates.begin(); i != obstates.end(); ++i)
30 i->second->inc_refcnt();
33 xorn_revision::~xorn_revision()
35 for (std::map<xorn_object_t, obstate *>::const_iterator i
36 = obstates.begin(); i != obstates.end(); ++i)
37 i->second->dec_refcnt();
60 return new xorn_revision();
62 return new xorn_revision(rev);
63 }
catch (std::bad_alloc
const &) {
78 return rev->is_transient;
93 rev->is_transient =
false;
void xorn_free_revision(xorn_revision_t rev)
Free the memory associated with a revision.
struct xorn_revision * xorn_revision_t
Opaque type representing the contents of a file.
bool xorn_revision_is_transient(xorn_revision_t rev)
Return whether a revision can be changed.
xorn_revision_t xorn_new_revision(xorn_revision_t rev)
Create a new revision, either from scratch or by copying an existing one.
void xorn_finalize_revision(xorn_revision_t rev)
Prevent further changes to a revision.