chore: Simplify module db add

main
Sean McBride 4 years ago
parent d3df215963
commit e0a80711f9

@ -17,19 +17,13 @@ extern int module_database_free_offset;
static inline int static inline int
module_database_add(struct module *module) module_database_add(struct module *module)
{ {
int rc; assert(module_database_free_offset >= 0);
assert(module_database_free_offset <= MODULE_MAX_MODULE_COUNT);
if (module_database_free_offset >= MODULE_MAX_MODULE_COUNT) goto err_no_space;
int f = __sync_fetch_and_add(&module_database_free_offset, 1); int rc;
if (module_database_free_offset > MODULE_MAX_MODULE_COUNT) {
__sync_fetch_and_sub(&module_database_free_offset, 1);
goto err_no_space;
}
if (module_database_free_offset == MODULE_MAX_MODULE_COUNT) goto err_no_space; if (module_database_free_offset == MODULE_MAX_MODULE_COUNT) goto err_no_space;
assert(f < MODULE_MAX_MODULE_COUNT); module_database[module_database_free_offset++] = module;
module_database[f] = module;
rc = 0; rc = 0;
done: done:

Loading…
Cancel
Save