MSYS2-packages/gpgme/0002-gpgme-engine-cache-version.patch
Christoph Reiter 7cd72afee2 gpgme: cache the engine version
See https://github.com/msys2/msys2-pacman/issues/26
See https://dev.gnupg.org/T6369

This saves a gpg spawn for every gpgme_get_key() call,
for example around 100ms when starting pacman.
2024-05-21 19:24:47 +02:00

26 lines
819 B
Diff

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)
{
--
2.30.2