|
26 | 26 | /* COMPONENT DEFINITION RELEASE */ |
27 | 27 | /* */ |
28 | 28 | /* txm_module_manager_util.h PORTABLE C */ |
29 | | -/* 6.1.6 */ |
| 29 | +/* 6.x */ |
30 | 30 | /* AUTHOR */ |
31 | 31 | /* */ |
32 | 32 | /* Scott Larson, Microsoft Corporation */ |
|
44 | 44 | /* 04-02-2021 Scott Larson Modified comment(s) and */ |
45 | 45 | /* optimized object checks, */ |
46 | 46 | /* resulting in version 6.1.6 */ |
| 47 | +/* xx-xx-xxxx Tiejun Zhou Modified comment(s) and */ |
| 48 | +/* improved object check, */ |
| 49 | +/* resulting in version 6.x */ |
47 | 50 | /* */ |
48 | 51 | /**************************************************************************/ |
49 | 52 |
|
|
100 | 103 |
|
101 | 104 | /* Kernel objects should be outside the module at the very least. */ |
102 | 105 | #define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_USE(module_instance, obj_ptr, obj_size) \ |
103 | | - ((TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size)) || \ |
| 106 | + (TXM_MODULE_MANAGER_ENSURE_OUTSIDE_MODULE(module_instance, obj_ptr, obj_size) || \ |
| 107 | + (_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \ |
104 | 108 | ((void *) (obj_ptr) == TX_NULL)) |
105 | 109 |
|
106 | 110 | /* When creating an object, the object must be inside the object pool. */ |
107 | 111 | #define TXM_MODULE_MANAGER_PARAM_CHECK_OBJECT_FOR_CREATION(module_instance, obj_ptr, obj_size) \ |
108 | 112 | ((TXM_MODULE_MANAGER_ENSURE_INSIDE_OBJ_POOL(module_instance, obj_ptr, obj_size) && \ |
109 | 113 | (_txm_module_manager_object_size_check(obj_ptr, obj_size) == TX_SUCCESS)) || \ |
| 114 | + (_txm_module_manager_created_object_check(module_instance, (void *)obj_ptr) == TX_FALSE) || \ |
110 | 115 | ((void *) (obj_ptr) == TX_NULL)) |
111 | 116 |
|
112 | 117 | /* Strings we dereference can be in RW/RO/Shared areas. */ |
|
0 commit comments