函数逻辑报告 |
Source Code:lib\assoc_array.c |
Create Date:2022-07-27 07:51:28 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:assoc_array_delete - Script deletion of an object from an associative array*@array: The array to search.*@ops: The operations to use.*@index_key: The key to the object.* Precalculate and preallocate a script for the deletion of an object from an
函数原型:struct assoc_array_edit *assoc_array_delete(struct assoc_array *array, const struct assoc_array_ops *ops, const void *index_key)
返回类型:struct assoc_array_edit
参数:
类型 | 参数 | 名称 |
---|---|---|
struct assoc_array * | array | |
const struct assoc_array_ops * | ops | |
const void * | index_key |
1098 | adjust_count_by等于负1 |
1117 | 当:Navigate through the internal tree looking for the closest node to the key.恒等于assoc_array_walk_tree_empty |
1118 | 当:Navigate through the internal tree looking for the closest node to the key.恒等于assoc_array_walk_found_wrong_shortcut |
1119 | 默认 |
1125 | found_leaf : |
1126 | BUG_ON(nr_leaves_on_tree <= 0) |
1133 | to = NULL |
1134 | adjust_count_on等于node |
1139 | 如果nr_leaves_on_tree恒等于1则 |
1158 | 如果nr_leaves_on_branch小于等于Number of slots per node 加1则 |
1166 | has_meta = false |
1167 | 以i小于Number of slots per node 循环 |
1175 | 打印调试信息("leaves: %ld [m=%d]\n", nr_leaves_on_branch - 1, has_meta) |
1182 | collapse_up : |
1183 | 打印调试信息("collapse subtree: %ld\n", nr_leaves_on_branch) |
1185 | ptr等于back_pointer |
1186 | 如果非ptr则转到:do_collapse |
1188 | 如果assoc_array_ptr_is_shortcut(ptr)则 |
1196 | 如果nr_leaves_on_branch小于等于Number of slots per node 加1则 |
1197 | parent等于grandparent |
1198 | 转到:collapse_up |
1201 | do_collapse : |
1213 | new_meta[0]等于assoc_array_node_to_ptr(new_n0) |
1215 | back_pointer等于back_pointer |
1216 | parent_slot等于parent_slot |
1218 | adjust_count_on等于new_n0 |
1222 | slot等于0 |
1227 | 打印调试信息("collapsed %d,%lu\n", slot, nr_leaves_on_branch) |
1228 | BUG_ON(slot != nr_leaves_on_branch - 1) |
1230 | 如果非back_pointer则 |
1232 | 否则如果assoc_array_ptr_is_leaf(back_pointer)则 |
1233 | BUG() |
1234 | 否则如果assoc_array_ptr_is_node(back_pointer)则 |
1235 | p等于assoc_array_ptr_to_node(back_pointer) |
1237 | ptr等于slots[parent_slot] |
1238 | 否则如果assoc_array_ptr_is_shortcut(back_pointer)则 |
1243 | to等于assoc_array_node_to_ptr(new_n0) |
1248 | 返回:edit |
1250 | enomem : |
1252 | 打印调试信息("enomem\n") |
1254 | 返回:错误号 |
名称 | 描述 |
---|---|
__key_unlink_begin | Begin the process of unlinking a key from a keyring. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |