diff options
author | Werner Koch <[email protected]> | 2024-05-21 08:59:43 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2024-05-21 08:59:43 +0000 |
commit | 73403a8ba00303b95c0e39fe3d2b78c913b0ca98 (patch) | |
tree | af03f0ac21be08e39e2be6d0d9ff8949cfbdc73d /src | |
parent | m4: Update libassuan.m4 from master. (diff) | |
download | gpgme-73403a8ba00303b95c0e39fe3d2b78c913b0ca98.tar.gz gpgme-73403a8ba00303b95c0e39fe3d2b78c913b0ca98.zip |
core: speedup gpgme_get_key
* src/engine.c (_gpgme_set_engine_info): Change engine_get_version.
--
GnuPG-bug-id: 6369
Diffstat (limited to 'src')
-rw-r--r-- | src/engine.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/engine.c b/src/engine.c index 69f1c150..252d8805 100644 --- a/src/engine.c +++ b/src/engine.c @@ -449,9 +449,16 @@ _gpgme_set_engine_info (gpgme_engine_info_t info, gpgme_protocol_t proto, new_home_dir = NULL; } - new_version = engine_get_version (proto, new_file_name); + if (info && info->version + && ((!info->file_name && !new_file_name) + || (info->file_name && new_file_name + && !strcmp (info->file_name, new_file_name)))) + new_version = strdup (info->version); + else + new_version = engine_get_version (proto, new_file_name); if (!new_version) { + /* Note that we also get here on a ENOMEM in strdup. */ new_version = strdup ("1.0.0"); /* Fake one for dummy entries. */ if (!new_version) { |