aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2024-05-21 08:59:43 +0000
committerWerner Koch <[email protected]>2024-05-21 08:59:43 +0000
commit73403a8ba00303b95c0e39fe3d2b78c913b0ca98 (patch)
treeaf03f0ac21be08e39e2be6d0d9ff8949cfbdc73d /src
parentm4: Update libassuan.m4 from master. (diff)
downloadgpgme-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.c9
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)
{