refactor: use libgit free() functions instead of calloc()

This commit is contained in:
Aleksey Kulikov 2021-08-05 20:07:00 +03:00
parent 4f851bc2e5
commit 2477b4efd8
14 changed files with 30 additions and 21 deletions

View file

@ -9,8 +9,8 @@ void main() {
for (final entry in entries.entries) {
print('${entry.key}: ${entry.value}');
}
// .close should be called on object to free memory when done.
config.close();
// free() should be called on object to free memory when done.
config.free();
// Open config file at provided path.
// Exception is thrown if file not found.
@ -31,7 +31,7 @@ void main() {
// Delete variable
repoConfig.deleteEntry('core.variable');
repoConfig.close();
repoConfig.free();
} catch (e) {
print(e);
}
@ -45,7 +45,7 @@ void main() {
final userName = globalConfig.getValue('user.name');
print('\nUser Name from global config: $userName');
globalConfig.close();
globalConfig.free();
} catch (e) {
print('\n$e');
}

View file

@ -11,5 +11,5 @@ void main() {
print('Reference full name: ${ref.name}');
ref.free();
repo.close();
repo.free();
}

View file

@ -13,8 +13,8 @@ void main() {
print('Is head detached: ${repo.isHeadDetached}');
print('Repository refs: ${repo.references}');
// close() should be called on object to free memory when done.
repo.close();
// free() should be called on object to free memory when done.
repo.free();
} catch (e) {
print(e);
}

View file

@ -284,3 +284,6 @@ void deleteMultivar(
calloc.free(name);
calloc.free(regexpC);
}
/// Free the configuration and its associated memory and files.
void free(Pointer<git_config> cfg) => libgit2.git_config_free(cfg);

View file

@ -215,3 +215,6 @@ bool isValidName(String name) {
calloc.free(refname);
return result == 1 ? true : false;
}
/// Free the given reference.
void free(Pointer<git_reference> ref) => libgit2.git_reference_free(ref);

View file

@ -446,3 +446,6 @@ Pointer<Pointer<git_object>> revParseSingle(
return out;
}
/// Free a previously allocated repository.
void free(Pointer<git_repository> repo) => libgit2.git_repository_free(repo);

View file

@ -17,7 +17,7 @@ class Config {
/// [path] should point to single on-disk file; it's expected to be a native
/// Git config file following the default Git config syntax (see man git-config).
///
/// [Config] object should be closed with [close] function to release allocated memory.
/// [Config] object should be closed with [free] function to release allocated memory.
Config.open({this.path}) {
libgit2.git_libgit2_init();
@ -145,8 +145,8 @@ class Config {
}
/// Releases memory allocated for config object.
void close() {
calloc.free(_configPointer);
void free() {
bindings.free(_configPointer);
libgit2.git_libgit2_shutdown();
}
}

View file

@ -138,7 +138,7 @@ class Reference {
/// Releases memory allocated for reference object.
void free() {
calloc.free(_refPointer);
bindings.free(_refPointer);
libgit2.git_libgit2_shutdown();
}
}

View file

@ -14,7 +14,7 @@ class Repository {
/// or to the working directory. For a bare repository, [path] should directly
/// point to the repository folder.
///
/// [Repository] object should be close with [close] function to release allocated memory.
/// [Repository] object should be close with [free] function to release allocated memory.
///
/// Throws a [LibGit2Error] if error occured.
Repository.open(String path) {
@ -237,8 +237,8 @@ class Repository {
String get workdir => bindings.workdir(_repoPointer);
/// Releases memory allocated for repository object.
void close() {
calloc.free(_repoPointer);
void free() {
bindings.free(_repoPointer);
libgit2.git_libgit2_shutdown();
}

View file

@ -26,7 +26,7 @@ void main() {
});
tearDown(() {
config.close();
config.free();
File('$tmpDir/$configFileName').deleteSync();
});

View file

@ -26,7 +26,7 @@ void main() {
});
tearDownAll(() async {
repo.close();
repo.free();
await Directory(tmpDir).delete(recursive: true);
});

View file

@ -27,7 +27,7 @@ void main() {
});
tearDownAll(() async {
repo.close();
repo.free();
await Directory(tmpDir).delete(recursive: true);
});

View file

@ -27,7 +27,7 @@ void main() {
tearDownAll(() async {
repo.head.free();
reflog.free();
repo.close();
repo.free();
await Directory(tmpDir).delete(recursive: true);
});

View file

@ -22,7 +22,7 @@ void main() {
});
tearDown(() {
repo.close();
repo.free();
});
test('opens successfully', () {
@ -67,7 +67,7 @@ void main() {
});
tearDown(() {
repo.close();
repo.free();
});
test('opens standart repository from working directory successfully',
@ -144,7 +144,7 @@ void main() {
});
tearDownAll(() async {
repo.close();
repo.free();
await Directory(tmpDir).delete(recursive: true);
});