函数逻辑报告 |
Source Code:lib\assoc_array.c |
Create Date:2022-07-27 07:51:11 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Destructively iterate over an associative array. The caller must prevent* other simultaneous accesses.
函数原型:static void assoc_array_destroy_subtree(struct assoc_array_ptr *root, const struct assoc_array_ops *ops)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct assoc_array_ptr * | root | |
const struct assoc_array_ops * | ops |
348 | struct assoc_array_ptr * cursor, * parent = NULL |
349 | slot等于负1 |
354 | 如果非cursor则 |
355 | 打印调试信息("empty\n") |
356 | 返回 |
359 | move_to_meta : |
360 | 如果assoc_array_ptr_is_shortcut(cursor)则 |
365 | BUG_ON(back_pointer != parent) |
366 | BUG_ON(slot != - 1 && parent_slot != slot) |
369 | slot等于负1 |
370 | BUG_ON(!assoc_array_ptr_is_node(cursor)) |
375 | BUG_ON(back_pointer != parent) |
376 | BUG_ON(slot != - 1 && parent_slot != slot) |
377 | slot等于0 |
379 | continue_node : |
380 | 打印调试信息("Node %p [back=%p]\n", node, back_pointer) |
381 | 以slot小于Number of slots per node 循环 |
397 | parent等于back_pointer |
398 | slot等于parent_slot |
399 | 打印调试信息("free node\n") |
401 | 如果非parent则返回 |
406 | 如果assoc_array_ptr_is_shortcut(parent)则 |
410 | parent等于back_pointer |
411 | slot等于parent_slot |
412 | 打印调试信息("free shortcut\n") |
414 | 如果非parent则返回 |
417 | BUG_ON(!assoc_array_ptr_is_node(parent)) |
424 | slot自加 |
425 | 转到:continue_node |
名称 | 描述 |
---|---|
assoc_array_destroy | assoc_array_destroy - Destroy an associative array*@array: The array to destroy.*@ops: The operations to use.* Discard all metadata and free all objects in an associative array. The* array will be empty and ready to use again upon completion. This function |
assoc_array_rcu_cleanup | |
assoc_array_gc | assoc_array_gc - Garbage collect an associative array |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |