summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/schema
diff options
context:
space:
mode:
authorMatt Kangas <matt.kangas@mongodb.com>2014-12-23 08:36:30 -0500
committerMatt Kangas <matt.kangas@mongodb.com>2014-12-23 12:03:28 -0500
commit55ae19200c7e17249420b4b34799e25b7d1ec92d (patch)
tree14b03241366fc2d0d53209b4f33371eb64a97d28 /src/third_party/wiredtiger/src/schema
parente50c1c5e1e75f2da16f2b8c216b16afe93d83d8d (diff)
downloadmongo-55ae19200c7e17249420b4b34799e25b7d1ec92d.tar.gz
Import wiredtiger-wiredtiger-2.8-rc2-311-gbc7ed41.tar.gz from wiredtiger branch mongodb-2.8
Diffstat (limited to 'src/third_party/wiredtiger/src/schema')
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_drop.c4
-rw-r--r--src/third_party/wiredtiger/src/schema/schema_list.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/src/third_party/wiredtiger/src/schema/schema_drop.c b/src/third_party/wiredtiger/src/schema/schema_drop.c
index ca09d25a495..9a74b26ffec 100644
--- a/src/third_party/wiredtiger/src/schema/schema_drop.c
+++ b/src/third_party/wiredtiger/src/schema/schema_drop.c
@@ -165,8 +165,8 @@ __wt_schema_drop(WT_SESSION_IMPL *session, const char *uri, const char *cfg[])
WT_RET(__wt_meta_track_on(session));
- /* Be careful to ignore any btree handle in our caller. */
- WT_CLEAR_BTREE_IN_SESSION(session);
+ /* Paranoia: clear any handle from our caller. */
+ session->dhandle = NULL;
if (WT_PREFIX_MATCH(uri, "colgroup:"))
ret = __drop_colgroup(session, uri, force, cfg);
diff --git a/src/third_party/wiredtiger/src/schema/schema_list.c b/src/third_party/wiredtiger/src/schema/schema_list.c
index 02556eb942c..1fbc52821a6 100644
--- a/src/third_party/wiredtiger/src/schema/schema_list.c
+++ b/src/third_party/wiredtiger/src/schema/schema_list.c
@@ -139,9 +139,13 @@ __wt_schema_destroy_index(WT_SESSION_IMPL *session, WT_INDEX *idx)
WT_DECL_RET;
/* If there is a custom extractor configured, terminate it. */
- if (idx->extractor != NULL && idx->extractor->terminate != NULL)
+ if (idx->extractor != NULL &&
+ idx->extractor_owned && idx->extractor->terminate != NULL) {
WT_TRET(idx->extractor->terminate(
idx->extractor, &session->iface));
+ idx->extractor = NULL;
+ idx->extractor_owned = 0;
+ }
__wt_free(session, idx->name);
__wt_free(session, idx->source);