When setting package name, set hash value as well
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
parent
dbf59a6b14
commit
c2a73ba989
4 changed files with 4 additions and 0 deletions
|
@ -179,6 +179,7 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
|
||||||
ptr = _alpm_strtrim(ptr);
|
ptr = _alpm_strtrim(ptr);
|
||||||
if(strcmp(key, "pkgname") == 0) {
|
if(strcmp(key, "pkgname") == 0) {
|
||||||
STRDUP(newpkg->name, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
STRDUP(newpkg->name, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
|
newpkg->name_hash = _alpm_hash_sdbm(newpkg->name);
|
||||||
} else if(strcmp(key, "pkgver") == 0) {
|
} else if(strcmp(key, "pkgver") == 0) {
|
||||||
STRDUP(newpkg->version, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
STRDUP(newpkg->version, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
} else if(strcmp(key, "pkgdesc") == 0) {
|
} else if(strcmp(key, "pkgdesc") == 0) {
|
||||||
|
|
|
@ -414,6 +414,7 @@ pmpkg_t *_alpm_pkg_dup(pmpkg_t *pkg)
|
||||||
|
|
||||||
CALLOC(newpkg, 1, sizeof(pmpkg_t), RET_ERR(PM_ERR_MEMORY, NULL));
|
CALLOC(newpkg, 1, sizeof(pmpkg_t), RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
|
||||||
|
newpkg->name_hash = pkg->name_hash;
|
||||||
STRDUP(newpkg->filename, pkg->filename, RET_ERR(PM_ERR_MEMORY, newpkg));
|
STRDUP(newpkg->filename, pkg->filename, RET_ERR(PM_ERR_MEMORY, newpkg));
|
||||||
STRDUP(newpkg->name, pkg->name, RET_ERR(PM_ERR_MEMORY, newpkg));
|
STRDUP(newpkg->name, pkg->name, RET_ERR(PM_ERR_MEMORY, newpkg));
|
||||||
STRDUP(newpkg->version, pkg->version, RET_ERR(PM_ERR_MEMORY, newpkg));
|
STRDUP(newpkg->version, pkg->version, RET_ERR(PM_ERR_MEMORY, newpkg));
|
||||||
|
|
|
@ -89,6 +89,7 @@ struct pkg_operations {
|
||||||
extern struct pkg_operations default_pkg_ops;
|
extern struct pkg_operations default_pkg_ops;
|
||||||
|
|
||||||
struct __pmpkg_t {
|
struct __pmpkg_t {
|
||||||
|
unsigned long name_hash;
|
||||||
char *filename;
|
char *filename;
|
||||||
char *name;
|
char *name;
|
||||||
char *version;
|
char *version;
|
||||||
|
|
|
@ -840,6 +840,7 @@ int _alpm_splitname(const char *target, pmpkg_t *pkg)
|
||||||
FREE(pkg->name);
|
FREE(pkg->name);
|
||||||
}
|
}
|
||||||
STRDUP(pkg->name, tmp, RET_ERR(PM_ERR_MEMORY, -1));
|
STRDUP(pkg->name, tmp, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
|
pkg->name_hash = _alpm_hash_sdbm(pkg->name);
|
||||||
|
|
||||||
free(tmp);
|
free(tmp);
|
||||||
return(0);
|
return(0);
|
||||||
|
|
Loading…
Add table
Reference in a new issue