style: use "map/where" instead of "for" loop

This commit is contained in:
Aleksey Kulikov 2021-10-12 14:56:56 +03:00
parent 3a0fa75929
commit cfa5268af2
28 changed files with 193 additions and 323 deletions

View file

@ -19,15 +19,18 @@ void head({
String? directory,
List<String>? paths,
}) {
final initOpts =
initOptions(strategy: strategy, directory: directory, paths: paths);
final initOpts = initOptions(
strategy: strategy,
directory: directory,
paths: paths,
);
final optsC = initOpts[0];
final pathPointers = initOpts[1];
final strArray = initOpts[2];
final error = libgit2.git_checkout_head(repoPointer, optsC);
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
@ -48,15 +51,18 @@ void index({
String? directory,
List<String>? paths,
}) {
final initOpts =
initOptions(strategy: strategy, directory: directory, paths: paths);
final initOpts = initOptions(
strategy: strategy,
directory: directory,
paths: paths,
);
final optsC = initOpts[0];
final pathPointers = initOpts[1];
final strArray = initOpts[2];
final error = libgit2.git_checkout_index(repoPointer, nullptr, optsC);
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
@ -90,7 +96,7 @@ void tree({
final error = libgit2.git_checkout_tree(repoPointer, treeishPointer, optsC);
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
@ -128,9 +134,5 @@ List<dynamic> initOptions({
optsC.ref.paths.count = paths.length;
}
var result = <dynamic>[];
result.add(optsC);
result.add(pathPointers);
result.add(strArray);
return result;
return [optsC, pathPointers, strArray];
}

View file

@ -230,7 +230,7 @@ void addAll({
);
calloc.free(pathspecC);
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
calloc.free(strArray);
@ -296,7 +296,7 @@ void removeAll({
);
calloc.free(pathspecC);
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
calloc.free(strArray);

View file

@ -66,14 +66,13 @@ void merge({
required Pointer<Pointer<git_annotated_commit>> theirHeadsPointer,
required int theirHeadsLen,
}) {
final mergeOpts = calloc<git_merge_options>(sizeOf<git_merge_options>());
final mergeOpts = calloc<git_merge_options>();
libgit2.git_merge_options_init(mergeOpts, GIT_MERGE_OPTIONS_VERSION);
final checkoutOpts =
calloc<git_checkout_options>(sizeOf<git_checkout_options>());
final checkoutOpts = calloc<git_checkout_options>();
libgit2.git_checkout_options_init(checkoutOpts, GIT_CHECKOUT_OPTIONS_VERSION);
checkoutOpts.ref.checkout_strategy =
git_checkout_strategy_t.GIT_CHECKOUT_SAFE +
git_checkout_strategy_t.GIT_CHECKOUT_SAFE |
git_checkout_strategy_t.GIT_CHECKOUT_RECREATE_MISSING;
final error = libgit2.git_merge(
@ -131,24 +130,26 @@ Pointer<git_index> mergeCommits({
required Pointer<git_repository> repoPointer,
required Pointer<git_commit> ourCommitPointer,
required Pointer<git_commit> theirCommitPointer,
required Map<String, int> opts,
required int favor,
required int mergeFlags,
required int fileFlags,
}) {
final out = calloc<Pointer<git_index>>();
final optsC = calloc<git_merge_options>(sizeOf<git_merge_options>());
optsC.ref.file_favor = opts['favor']!;
optsC.ref.flags = opts['mergeFlags']!;
optsC.ref.file_flags = opts['fileFlags']!;
optsC.ref.version = GIT_MERGE_OPTIONS_VERSION;
final opts = _initMergeOptions(
favor: favor,
mergeFlags: mergeFlags,
fileFlags: fileFlags,
);
final error = libgit2.git_merge_commits(
out,
repoPointer,
ourCommitPointer,
theirCommitPointer,
optsC,
opts,
);
calloc.free(optsC);
calloc.free(opts);
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
@ -170,14 +171,16 @@ Pointer<git_index> mergeTrees({
required Pointer<git_tree> ancestorTreePointer,
required Pointer<git_tree> ourTreePointer,
required Pointer<git_tree> theirTreePointer,
required Map<String, int> opts,
required int favor,
required int mergeFlags,
required int fileFlags,
}) {
final out = calloc<Pointer<git_index>>();
final optsC = calloc<git_merge_options>(sizeOf<git_merge_options>());
optsC.ref.file_favor = opts['favor']!;
optsC.ref.flags = opts['mergeFlags']!;
optsC.ref.file_flags = opts['fileFlags']!;
optsC.ref.version = GIT_MERGE_OPTIONS_VERSION;
final opts = _initMergeOptions(
favor: favor,
mergeFlags: mergeFlags,
fileFlags: fileFlags,
);
final error = libgit2.git_merge_trees(
out,
@ -185,10 +188,10 @@ Pointer<git_index> mergeTrees({
ancestorTreePointer,
ourTreePointer,
theirTreePointer,
optsC,
opts,
);
calloc.free(optsC);
calloc.free(opts);
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
@ -215,3 +218,25 @@ void cherryPick({
throw LibGit2Error(libgit2.git_error_last());
}
}
Pointer<git_merge_options> _initMergeOptions({
required int favor,
required int mergeFlags,
required int fileFlags,
}) {
final opts = calloc<git_merge_options>();
final error = libgit2.git_merge_options_init(
opts,
GIT_MERGE_OPTIONS_VERSION,
);
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
}
opts.ref.file_favor = favor;
opts.ref.flags = mergeFlags;
opts.ref.file_flags = fileFlags;
return opts;
}

View file

@ -17,9 +17,8 @@ List<String> list(Pointer<git_repository> repo) {
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
final count = out.ref.count;
var result = <String>[];
for (var i = 0; i < count; i++) {
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
calloc.free(out);
@ -151,9 +150,8 @@ List<String> rename({
if (error < 0) {
throw LibGit2Error(libgit2.git_error_last());
} else {
final count = out.ref.count;
var result = <String>[];
for (var i = 0; i < count; i++) {
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
calloc.free(out);
@ -249,8 +247,7 @@ List<String> fetchRefspecs(Pointer<git_remote> remote) {
libgit2.git_remote_get_fetch_refspecs(out, remote);
var result = <String>[];
final count = out.ref.count;
for (var i = 0; i < count; i++) {
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
calloc.free(out);
@ -263,8 +260,7 @@ List<String> pushRefspecs(Pointer<git_remote> remote) {
libgit2.git_remote_get_push_refspecs(out, remote);
var result = <String>[];
final count = out.ref.count;
for (var i = 0; i < count; i++) {
for (var i = 0; i < out.ref.count; i++) {
result.add(out.ref.strings[i].cast<Utf8>().toDartString());
}
calloc.free(out);
@ -462,7 +458,7 @@ void fetch({
reflogMessageC,
);
for (var p in refspecsPointers) {
for (final p in refspecsPointers) {
calloc.free(p);
}
calloc.free(strArray);
@ -516,7 +512,7 @@ void push({
final error = libgit2.git_remote_push(remotePointer, refspecsC, opts);
for (var p in refspecsPointers) {
for (final p in refspecsPointers) {
calloc.free(p);
}
calloc.free(strArray);

View file

@ -71,10 +71,9 @@ void apply({
throw LibGit2Error(libgit2.git_error_last());
}
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
calloc.free(strArray);
calloc.free(optsC);
calloc.free(options);
@ -125,10 +124,9 @@ void pop({
throw LibGit2Error(libgit2.git_error_last());
}
for (var p in pathPointers) {
for (final p in pathPointers) {
calloc.free(p);
}
calloc.free(strArray);
calloc.free(optsC);
calloc.free(options);