diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-05-24 13:03:03 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-05-24 13:03:03 -0400 |
commit | 091b1d6b496f2dcacff96230dbcc5d68722fa4d3 (patch) | |
tree | 8a775be3c7e74dff5301af04d6648be4426b9699 | |
parent | 8bc3ef03eba7210bf00615f6190b337f3eafac84 (diff) | |
download | spmc-091b1d6b496f2dcacff96230dbcc5d68722fa4d3.tar.gz |
Use the correct type to support large return by version_from()
-rw-r--r-- | include/version_spec.h | 2 | ||||
-rw-r--r-- | lib/version_spec.c | 14 |
2 files changed, 8 insertions, 8 deletions
diff --git a/include/version_spec.h b/include/version_spec.h index a05dcb8..b8d3260 100644 --- a/include/version_spec.h +++ b/include/version_spec.h @@ -28,7 +28,7 @@ int version_read(struct Version **version, char *s); void version_info(struct Version *version); uint64_t version_from(const char *str); -int version_spec_from(const char *op); +unsigned int version_spec_from(const char *op); ManifestPackage **find_by_spec(const Manifest *manifest, const char *name, const char *op, const char *version_str); int pep440_match(const char *version); struct PEP440 *pep440_version(const char *version); diff --git a/lib/version_spec.c b/lib/version_spec.c index 38ca134..54f814c 100644 --- a/lib/version_spec.c +++ b/lib/version_spec.c @@ -164,8 +164,8 @@ uint64_t version_from(const char *str) { * @param op * @return */ -int version_spec_from(const char *op) { - int flags = VERSION_NOOP; +unsigned int version_spec_from(const char *op) { + unsigned int flags = VERSION_NOOP; size_t len = strlen(op); for (size_t i = 0; i < len; i++) { if (op[i] == '>') { @@ -196,8 +196,8 @@ int version_spec_from(const char *op) { static int _find_by_spec_compare(const void *a, const void *b) { const ManifestPackage *aa = *(const ManifestPackage**)a; const ManifestPackage *bb = *(const ManifestPackage**)b; - int64_t version_a = version_from(aa->version); - int64_t version_b = version_from(bb->version); + uint64_t version_a = version_from(aa->version); + uint64_t version_b = version_from(bb->version); return version_a > version_b; } @@ -220,9 +220,9 @@ ManifestPackage **find_by_spec(const Manifest *manifest, const char *name, const for (size_t i = 0; i < manifest->records; i++) { if (strcmp(manifest->packages[i]->name, name) == 0) { - int64_t version_a = version_from(manifest->packages[i]->version); - int64_t version_b = version_from(version_str); - int spec = version_spec_from(op); + uint64_t version_a = version_from(manifest->packages[i]->version); + uint64_t version_b = version_from(version_str); + unsigned int spec = version_spec_from(op); int res = 0; if (spec & VERSION_GT && spec & VERSION_EQ) { |