From 609b8656910eccbb409b58050c306798be22a078 Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Tue, 6 Jul 2010 04:06:23 +0300 Subject: s4-dsdb/util: Reorder DSDB_FLAG_* checks On good thing about having more clear function interfaces (and forcing callers to specify clearly what they want) is that now I can execute following search: git grep DSDB_FLAG_NEXT_MODULE | wc -l This showed that DSDB_FLAG_NEXT_MODULE flag is about 6 times more frequently used than DSDB_FLAG_OWN_MODULE. So this should reduce branch prediction by six times in this part of the code, right :) --- source4/dsdb/samdb/ldb_modules/util.c | 60 +++++++++++++++++------------------ 1 file changed, 30 insertions(+), 30 deletions(-) (limited to 'source4/dsdb/samdb') diff --git a/source4/dsdb/samdb/ldb_modules/util.c b/source4/dsdb/samdb/ldb_modules/util.c index 8797b106e7..bf260f99e4 100644 --- a/source4/dsdb/samdb/ldb_modules/util.c +++ b/source4/dsdb/samdb/ldb_modules/util.c @@ -72,14 +72,14 @@ int dsdb_module_search_dn(struct ldb_module *module, } /* Run the new request */ - if (dsdb_flags & DSDB_FLAG_OWN_MODULE) { - const struct ldb_module_ops *ops = ldb_module_get_ops(module); - ret = ops->modify(module, req); + if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) { + ret = ldb_next_request(module, req); } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) { ret = ldb_request(ldb_module_get_ctx(module), req); } else { - SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE); - ret = ldb_next_request(module, req); + const struct ldb_module_ops *ops = ldb_module_get_ops(module); + SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE); + ret = ops->modify(module, req); } if (ret == LDB_SUCCESS) { ret = ldb_wait(req->handle, LDB_WAIT_ALL); @@ -162,14 +162,14 @@ int dsdb_module_search(struct ldb_module *module, return ret; } - if (dsdb_flags & DSDB_FLAG_OWN_MODULE) { - const struct ldb_module_ops *ops = ldb_module_get_ops(module); - ret = ops->search(module, req); + if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) { + ret = ldb_next_request(module, req); } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) { ret = ldb_request(ldb_module_get_ctx(module), req); } else { - SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE); - ret = ldb_next_request(module, req); + const struct ldb_module_ops *ops = ldb_module_get_ops(module); + SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE); + ret = ops->search(module, req); } if (ret == LDB_SUCCESS) { ret = ldb_wait(req->handle, LDB_WAIT_ALL); @@ -292,14 +292,14 @@ int dsdb_module_modify(struct ldb_module *module, } /* Run the new request */ - if (dsdb_flags & DSDB_FLAG_OWN_MODULE) { - const struct ldb_module_ops *ops = ldb_module_get_ops(module); - ret = ops->modify(module, mod_req); + if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) { + ret = ldb_next_request(module, mod_req); } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) { ret = ldb_request(ldb_module_get_ctx(module), mod_req); } else { - SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE); - ret = ldb_next_request(module, mod_req); + const struct ldb_module_ops *ops = ldb_module_get_ops(module); + SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE); + ret = ops->modify(module, mod_req); } if (ret == LDB_SUCCESS) { ret = ldb_wait(mod_req->handle, LDB_WAIT_ALL); @@ -350,14 +350,14 @@ int dsdb_module_rename(struct ldb_module *module, } /* Run the new request */ - if (dsdb_flags & DSDB_FLAG_OWN_MODULE) { - const struct ldb_module_ops *ops = ldb_module_get_ops(module); - ret = ops->rename(module, req); + if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) { + ret = ldb_next_request(module, req); } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) { ret = ldb_request(ldb_module_get_ctx(module), req); } else { - SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE); - ret = ldb_next_request(module, req); + const struct ldb_module_ops *ops = ldb_module_get_ops(module); + SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE); + ret = ops->rename(module, req); } if (ret == LDB_SUCCESS) { ret = ldb_wait(req->handle, LDB_WAIT_ALL); @@ -405,14 +405,14 @@ int dsdb_module_add(struct ldb_module *module, } /* Run the new request */ - if (dsdb_flags & DSDB_FLAG_OWN_MODULE) { - const struct ldb_module_ops *ops = ldb_module_get_ops(module); - ret = ops->add(module, req); + if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) { + ret = ldb_next_request(module, req); } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) { ret = ldb_request(ldb_module_get_ctx(module), req); } else { - SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE); - ret = ldb_next_request(module, req); + const struct ldb_module_ops *ops = ldb_module_get_ops(module); + SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE); + ret = ops->add(module, req); } if (ret == LDB_SUCCESS) { ret = ldb_wait(req->handle, LDB_WAIT_ALL); @@ -460,14 +460,14 @@ int dsdb_module_del(struct ldb_module *module, } /* Run the new request */ - if (dsdb_flags & DSDB_FLAG_OWN_MODULE) { - const struct ldb_module_ops *ops = ldb_module_get_ops(module); - ret = ops->del(module, req); + if (dsdb_flags & DSDB_FLAG_NEXT_MODULE) { + ret = ldb_next_request(module, req); } else if (dsdb_flags & DSDB_FLAG_TOP_MODULE) { ret = ldb_request(ldb_module_get_ctx(module), req); } else { - SMB_ASSERT(dsdb_flags & DSDB_FLAG_NEXT_MODULE); - ret = ldb_next_request(module, req); + const struct ldb_module_ops *ops = ldb_module_get_ops(module); + SMB_ASSERT(dsdb_flags & DSDB_FLAG_OWN_MODULE); + ret = ops->del(module, req); } if (ret == LDB_SUCCESS) { ret = ldb_wait(req->handle, LDB_WAIT_ALL); -- cgit