Line data Source code
1 : /*! 2 : * \file esys/repo/libgit2/guardrelease_libgit2.cpp 3 : * \brief 4 : * 5 : * \cond 6 : * __legal_b__ 7 : * 8 : * Copyright (c) 2020-2023 Michel Gillet 9 : * Distributed under the MIT License. 10 : * (See accompanying file LICENSE.txt or 11 : * copy at https://opensource.org/licenses/MIT) 12 : * 13 : * __legal_e__ 14 : * \endcond 15 : * 16 : */ 17 : 18 : #include "esys/repo/esysrepo_prec.h" 19 : #include "esys/repo/libgit2/guardrelease.h" 20 : 21 : namespace esys::repo::libgit2 22 : { 23 : 24 : template<> 25 149 : ESYSREPO_API void guard_release<git_remote>(git_remote *remote) 26 : { 27 149 : if (remote == nullptr) return; 28 149 : git_remote_free(remote); 29 : } 30 : 31 : template<> 32 163 : ESYSREPO_API void guard_release<git_branch_iterator>(git_branch_iterator *branch_iterator) 33 : { 34 163 : if (branch_iterator == nullptr) return; 35 163 : git_branch_iterator_free(branch_iterator); 36 : } 37 : 38 : template<> 39 711 : ESYSREPO_API void guard_release<git_reference>(git_reference *reference) 40 : { 41 711 : if (reference == nullptr) return; 42 463 : git_reference_free(reference); 43 : } 44 : 45 : template<> 46 268 : ESYSREPO_API void guard_release<git_object>(git_object *object) 47 : { 48 268 : if (object == nullptr) return; 49 27 : git_object_free(object); 50 : } 51 : 52 : template<> 53 203 : ESYSREPO_API void guard_release<git_credential>(git_credential *credential) 54 : { 55 203 : if (credential == nullptr) return; 56 0 : git_credential_free(credential); 57 : } 58 : 59 : template<> 60 140 : ESYSREPO_API void guard_release<git_commit>(git_commit *commit) 61 : { 62 140 : if (commit == nullptr) return; 63 128 : git_commit_free(commit); 64 : } 65 : 66 : template<> 67 61 : ESYSREPO_API void guard_release<git_status_list>(git_status_list *status_list) 68 : { 69 61 : if (status_list == nullptr) return; 70 61 : git_status_list_free(status_list); 71 : } 72 : 73 : template<> 74 122 : ESYSREPO_API void guard_release<git_annotated_commit>(git_annotated_commit *annotated_commit) 75 : { 76 122 : if (annotated_commit == nullptr) return; 77 115 : git_annotated_commit_free(annotated_commit); 78 : } 79 : 80 : template<> 81 2 : ESYSREPO_API void guard_release<git_revwalk>(git_revwalk *walker) 82 : { 83 2 : if (walker == nullptr) return; 84 2 : git_revwalk_free(walker); 85 : } 86 : 87 : template<> 88 8 : ESYSREPO_API void guard_release<git_tree>(git_tree *tree) 89 : { 90 8 : if (tree == nullptr) return; 91 : 92 7 : git_tree_free(tree); 93 : } 94 : 95 : template<> 96 4 : ESYSREPO_API void guard_release<git_diff>(git_diff *diff) 97 : { 98 4 : if (diff == nullptr) return; 99 : 100 4 : git_diff_free(diff); 101 : } 102 : 103 : template<> 104 4 : ESYSREPO_API void guard_release<git_diff_stats>(git_diff_stats *diff_stats) 105 : { 106 4 : if (diff_stats == nullptr) return; 107 : 108 4 : git_diff_stats_free(diff_stats); 109 : } 110 : 111 : template<> 112 5 : ESYSREPO_API void guard_release<git_note>(git_note *note) 113 : { 114 5 : if (note == nullptr) return; 115 : 116 5 : git_note_free(note); 117 : } 118 : 119 : template<> 120 7 : ESYSREPO_API void guard_release<git_note_iterator>(git_note_iterator *it) 121 : { 122 7 : if (it == nullptr) return; 123 : 124 6 : git_note_iterator_free(it); 125 : } 126 : 127 : template<> 128 2 : ESYSREPO_API void guard_release<git_refspec>(git_refspec *ref_spec) 129 : { 130 2 : if (ref_spec == nullptr) return; 131 : 132 2 : git_refspec_free(ref_spec); 133 : } 134 : 135 : template<> 136 12 : ESYSREPO_API void guard_release<git_signature>(git_signature *signature) 137 : { 138 12 : if (signature == nullptr) return; 139 : 140 12 : git_signature_free(signature); 141 : } 142 : 143 : } // namespace esys::repo::libgit2