summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/config/config.c
diff options
context:
space:
mode:
authorRamon Fernandez <ramon.fernandez@mongodb.com>2015-04-27 11:33:41 -0400
committerRamon Fernandez <ramon.fernandez@mongodb.com>2015-04-27 11:33:47 -0400
commit34b853ed0566a3bbffcd825191b9000de331bddc (patch)
tree06f3f81436489f252da15900b2fef169e7ca1bde /src/third_party/wiredtiger/src/config/config.c
parent076cd926ab476f872afdd89a0e5e7e733d26c3ae (diff)
downloadmongo-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.c26
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);
}
/*