perf(lib): remove file path validation

This commit is contained in:
Masahiko AMANO 2023-01-20 13:14:45 +03:00
parent 20ae688a31
commit d90570962b
2 changed files with 6 additions and 33 deletions

View File

@ -40,10 +40,9 @@ int tanabata_weed(Tanabata *tanabata) {
uint64_t hole_cnt = 0; uint64_t hole_cnt = 0;
uint64_t new_id; uint64_t new_id;
Kazari *current_kazari; Kazari *current_kazari;
struct stat st;
Sasa *current_sasa = tanabata->sasahyou.database; Sasa *current_sasa = tanabata->sasahyou.database;
for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) {
if (current_sasa->id != HOLE_ID && stat(current_sasa->path, &st) == 0) { if (current_sasa->id != HOLE_ID) {
if (hole_cnt > 0) { if (hole_cnt > 0) {
new_id = current_sasa->id - hole_cnt; new_id = current_sasa->id - hole_cnt;
for (current_kazari = tanabata->shoppyou.database + tanabata->shoppyou.size - 1; for (current_kazari = tanabata->shoppyou.database + tanabata->shoppyou.size - 1;

View File

@ -8,19 +8,14 @@ int tanabata_sasa_add(Tanabata *tanabata, const char *path) {
if (path == NULL || tanabata->sasahyou.size == -1 && tanabata->sasahyou.hole_cnt == 0) { if (path == NULL || tanabata->sasahyou.size == -1 && tanabata->sasahyou.hole_cnt == 0) {
return 1; return 1;
} }
char *abspath = NULL;
abspath = realpath(path, abspath);
if (abspath == NULL) {
return 1;
}
Sasa *current_sasa = tanabata->sasahyou.database; Sasa *current_sasa = tanabata->sasahyou.database;
for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) {
if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, abspath) == 0) { if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, path) == 0) {
return 1; return 1;
} }
current_sasa++; current_sasa++;
} }
return sasa_add(&tanabata->sasahyou, abspath); return sasa_add(&tanabata->sasahyou, path);
} }
int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id) { int tanabata_sasa_rem_by_id(Tanabata *tanabata, uint64_t sasa_id) {
@ -38,14 +33,9 @@ int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) {
if (tanabata->sasahyou.size == 0 || path == NULL) { if (tanabata->sasahyou.size == 0 || path == NULL) {
return 1; return 1;
} }
char *abspath = NULL;
abspath = realpath(path, abspath);
if (abspath == NULL) {
return 1;
}
Sasa *current_sasa = tanabata->sasahyou.database; Sasa *current_sasa = tanabata->sasahyou.database;
for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) {
if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, abspath) == 0) { if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, path) == 0) {
if (sasa_rem(&tanabata->sasahyou, current_sasa->id) == 0 && if (sasa_rem(&tanabata->sasahyou, current_sasa->id) == 0 &&
kazari_rem_by_sasa(&tanabata->shoppyou, current_sasa->id) == 0) { kazari_rem_by_sasa(&tanabata->shoppyou, current_sasa->id) == 0) {
return 0; return 0;
@ -58,18 +48,7 @@ int tanabata_sasa_rem_by_path(Tanabata *tanabata, const char *path) {
} }
int tanabata_sasa_upd(Tanabata *tanabata, uint64_t sasa_id, const char *path) { int tanabata_sasa_upd(Tanabata *tanabata, uint64_t sasa_id, const char *path) {
if (sasa_id == HOLE_ID || sasa_id >= tanabata->sasahyou.size) { return sasa_upd(&tanabata->sasahyou, sasa_id, path);
return 1;
}
if (path == NULL) {
return 0;
}
char *abspath = NULL;
abspath = realpath(path, abspath);
if (abspath == NULL) {
return 1;
}
return sasa_upd(&tanabata->sasahyou, sasa_id, abspath);
} }
Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id) { Sasa tanabata_sasa_get_by_id(Tanabata *tanabata, uint64_t sasa_id) {
@ -83,14 +62,9 @@ Sasa tanabata_sasa_get_by_path(Tanabata *tanabata, const char *path) {
if (path == NULL) { if (path == NULL) {
return HOLE_SASA; return HOLE_SASA;
} }
char *abspath = NULL;
abspath = realpath(path, abspath);
if (abspath == NULL) {
return HOLE_SASA;
}
Sasa *current_sasa = tanabata->sasahyou.database; Sasa *current_sasa = tanabata->sasahyou.database;
for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) { for (uint64_t i = 0; i < tanabata->sasahyou.size; i++) {
if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, abspath) == 0) { if (current_sasa->id != HOLE_ID && strcmp(current_sasa->path, path) == 0) {
return *current_sasa; return *current_sasa;
} }
current_sasa++; current_sasa++;