File indexing completed on 2024-05-19 04:45:32

0001 /******************************************************************************
0002  * This file is part of the libqgit2 library
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Lesser General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2.1 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Lesser General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Lesser General Public
0015  * License along with this library; if not, write to the Free Software
0016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0017  */
0018 
0019 #include "annotatedcommit.h"
0020 #include "qgitexception.h"
0021 
0022 namespace LibQGit2
0023 {
0024 namespace internal
0025 {
0026 
0027 inline static void no_op(git_annotated_commit *) {}
0028 
0029 inline git_annotated_commit *gitAnnotatedCommitFromRef(Repository &repo, const Reference &ref)
0030 {
0031     git_annotated_commit *commit = 0;
0032     if (!ref.isNull()) {
0033         qGitThrow(git_annotated_commit_from_ref(&commit, repo.data(), ref.constData()));
0034     }
0035     return commit;
0036 }
0037 
0038 AnnotatedCommit::AnnotatedCommit(git_annotated_commit *annotated_commit)
0039     : d(annotated_commit, git_annotated_commit_free)
0040 {
0041 }
0042 
0043 AnnotatedCommit::AnnotatedCommit(Repository &repo, const Reference &ref)
0044     : d(gitAnnotatedCommitFromRef(repo, ref), ref.isNull() ? no_op : git_annotated_commit_free)
0045 {
0046 }
0047 
0048 AnnotatedCommit::AnnotatedCommit(const AnnotatedCommit &other)
0049     : d(other.d)
0050 {
0051 }
0052 
0053 const git_annotated_commit *AnnotatedCommit::constData() const
0054 {
0055     return d.data();
0056 }
0057 }
0058 }