feat(module): implement module initialization status check
* Add STK_MOD_INIT_SUCCESS and STK_MOD_INIT_FAILURE macros to stk.h. * Update stk_module_load to validate module initialization before finalizing the load. * Unload library if the init func fails, return error.
This commit is contained in:
+5
-5
@@ -104,11 +104,13 @@ int stk_module_load(const char *path, int index)
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (index == -1)
|
||||
index = module_count;
|
||||
|
||||
extract_module_id(path, module_id);
|
||||
|
||||
if (init_func() != STK_MOD_INIT_SUCCESS) {
|
||||
platform_unload_library(handle);
|
||||
return -3;
|
||||
}
|
||||
|
||||
strncpy(stk_module_ids[index], module_id, STK_MOD_ID_BUFFER - 1);
|
||||
stk_module_ids[index][STK_MOD_ID_BUFFER - 1] = '\0';
|
||||
|
||||
@@ -116,8 +118,6 @@ int stk_module_load(const char *path, int index)
|
||||
stk_inits[index] = init_func;
|
||||
stk_shutdowns[index] = shutdown_func;
|
||||
|
||||
init_func(); /* TODO eventually return an int for success */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user