diff options
author | Ramon Fernandez <ramon.fernandez@mongodb.com> | 2015-04-27 11:33:41 -0400 |
---|---|---|
committer | Ramon Fernandez <ramon.fernandez@mongodb.com> | 2015-04-27 11:33:47 -0400 |
commit | 34b853ed0566a3bbffcd825191b9000de331bddc (patch) | |
tree | 06f3f81436489f252da15900b2fef169e7ca1bde /src/third_party/wiredtiger/src/config/config.c | |
parent | 076cd926ab476f872afdd89a0e5e7e733d26c3ae (diff) | |
download | mongo-34b853ed0566a3bbffcd825191b9000de331bddc.tar.gz |
SERVER-18199 Import wiredtiger-wiredtiger-2.5.3-371-g1f44c05.tar.gz from wiredtiger branch mongodb-3.2
Diffstat (limited to 'src/third_party/wiredtiger/src/config/config.c')
-rw-r--r-- | src/third_party/wiredtiger/src/config/config.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/third_party/wiredtiger/src/config/config.c b/src/third_party/wiredtiger/src/config/config.c index fbb5a528ec7..2b3b9e6ca4b 100644 --- a/src/third_party/wiredtiger/src/config/config.c +++ b/src/third_party/wiredtiger/src/config/config.c @@ -621,21 +621,31 @@ __config_getraw( */ int __wt_config_get(WT_SESSION_IMPL *session, - const char **cfg, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) + const char **cfg_arg, WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value) { WT_CONFIG cparser; WT_DECL_RET; - int found; + const char **cfg; + + if (cfg_arg[0] == NULL) + return (WT_NOTFOUND); + + /* + * Search the strings in reverse order, that way the first hit wins + * and we don't search the base set until there's no other choice. + */ + for (cfg = cfg_arg; *cfg != NULL; ++cfg) + ; + do { + --cfg; - for (found = 0; *cfg != NULL; cfg++) { WT_RET(__wt_config_init(session, &cparser, *cfg)); if ((ret = __config_getraw(&cparser, key, value, 1)) == 0) - found = 1; - else if (ret != WT_NOTFOUND) - return (ret); - } + return (0); + WT_RET_NOTFOUND_OK(ret); + } while (cfg != cfg_arg); - return (found ? 0 : WT_NOTFOUND); + return (WT_NOTFOUND); } /* |