Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a1170e80
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a1170e80
编写于
11月 24, 2021
作者:
Y
Yifan Hao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Hash table cleanup [9/n]
Remove unused "freeFp".
上级
444ac549
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
18 deletion
+8
-18
src/util/src/hash.c
src/util/src/hash.c
+8
-18
未找到文件。
src/util/src/hash.c
浏览文件 @
a1170e80
...
@@ -29,18 +29,9 @@
...
@@ -29,18 +29,9 @@
#define HASH_NEED_RESIZE(_h) ((_h)->size >= (_h)->capacity * HASH_DEFAULT_LOAD_FACTOR)
#define HASH_NEED_RESIZE(_h) ((_h)->size >= (_h)->capacity * HASH_DEFAULT_LOAD_FACTOR)
#define DO_FREE_HASH_NODE(_n) \
#define FREE_HASH_NODE(_n) \
do { \
tfree(_n); \
} while (0)
#define FREE_HASH_NODE(_h, _n) \
do { \
do { \
if ((_h)->freeFp) { \
tfree(_n); \
(_h)->freeFp(GET_HASH_NODE_DATA(_n)); \
} \
\
DO_FREE_HASH_NODE(_n); \
} while (0);
} while (0);
#define GET_HASH_NODE_KEY(_n) ((char*)(_n) + sizeof(SHashNode) + (_n)->dataLen)
#define GET_HASH_NODE_KEY(_n) ((char*)(_n) + sizeof(SHashNode) + (_n)->dataLen)
...
@@ -64,7 +55,6 @@ typedef struct SHashObj {
...
@@ -64,7 +55,6 @@ typedef struct SHashObj {
size_t
capacity
;
// number of slots
size_t
capacity
;
// number of slots
size_t
size
;
// number of elements in hash table
size_t
size
;
// number of elements in hash table
_hash_fn_t
hashFp
;
// hash function
_hash_fn_t
hashFp
;
// hash function
_hash_free_fn_t
freeFp
;
// hash node free callback function
_equal_fn_t
equalFp
;
// equal function
_equal_fn_t
equalFp
;
// equal function
SRWLatch
lock
;
// read-write spin lock
SRWLatch
lock
;
// read-write spin lock
...
@@ -169,7 +159,7 @@ static FORCE_INLINE void doUpdateHashNode(SHashObj *pHashObj, SHashEntry* pe, SH
...
@@ -169,7 +159,7 @@ static FORCE_INLINE void doUpdateHashNode(SHashObj *pHashObj, SHashEntry* pe, SH
if
(
pNode
->
refCount
<=
0
)
{
if
(
pNode
->
refCount
<=
0
)
{
pNewNode
->
next
=
pNode
->
next
;
pNewNode
->
next
=
pNode
->
next
;
DO_
FREE_HASH_NODE
(
pNode
);
FREE_HASH_NODE
(
pNode
);
}
else
{
}
else
{
pNewNode
->
next
=
pNode
;
pNewNode
->
next
=
pNode
;
pe
->
num
++
;
pe
->
num
++
;
...
@@ -345,7 +335,7 @@ int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *da
...
@@ -345,7 +335,7 @@ int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *da
if
(
pHashObj
->
enableUpdate
)
{
if
(
pHashObj
->
enableUpdate
)
{
doUpdateHashNode
(
pHashObj
,
pe
,
prev
,
pNode
,
pNewNode
);
doUpdateHashNode
(
pHashObj
,
pe
,
prev
,
pNode
,
pNewNode
);
}
else
{
}
else
{
DO_
FREE_HASH_NODE
(
pNewNode
);
FREE_HASH_NODE
(
pNewNode
);
}
}
if
(
pHashObj
->
type
==
HASH_ENTRY_LOCK
)
{
if
(
pHashObj
->
type
==
HASH_ENTRY_LOCK
)
{
...
@@ -531,7 +521,7 @@ int32_t taosHashRemoveWithData(SHashObj *pHashObj, const void *key, size_t keyLe
...
@@ -531,7 +521,7 @@ int32_t taosHashRemoveWithData(SHashObj *pHashObj, const void *key, size_t keyLe
pe
->
num
--
;
pe
->
num
--
;
atomic_sub_fetch_64
(
&
pHashObj
->
size
,
1
);
atomic_sub_fetch_64
(
&
pHashObj
->
size
,
1
);
FREE_HASH_NODE
(
p
HashObj
,
p
Node
);
FREE_HASH_NODE
(
pNode
);
}
}
}
else
{
}
else
{
prevNode
=
pNode
;
prevNode
=
pNode
;
...
@@ -582,7 +572,7 @@ void taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), void *
...
@@ -582,7 +572,7 @@ void taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), void *
pEntry
->
num
-=
1
;
pEntry
->
num
-=
1
;
atomic_sub_fetch_64
(
&
pHashObj
->
size
,
1
);
atomic_sub_fetch_64
(
&
pHashObj
->
size
,
1
);
SHashNode
*
next
=
pNode
->
next
;
SHashNode
*
next
=
pNode
->
next
;
FREE_HASH_NODE
(
p
HashObj
,
p
Node
);
FREE_HASH_NODE
(
pNode
);
pNode
=
next
;
pNode
=
next
;
}
}
}
}
...
@@ -616,7 +606,7 @@ void taosHashClear(SHashObj *pHashObj) {
...
@@ -616,7 +606,7 @@ void taosHashClear(SHashObj *pHashObj) {
while
(
pNode
)
{
while
(
pNode
)
{
pNext
=
pNode
->
next
;
pNext
=
pNode
->
next
;
FREE_HASH_NODE
(
p
HashObj
,
p
Node
);
FREE_HASH_NODE
(
pNode
);
pNode
=
pNext
;
pNode
=
pNext
;
}
}
...
@@ -834,7 +824,7 @@ static void *taosHashReleaseNode(SHashObj *pHashObj, void *p, int *slot) {
...
@@ -834,7 +824,7 @@ static void *taosHashReleaseNode(SHashObj *pHashObj, void *p, int *slot) {
pe
->
num
--
;
pe
->
num
--
;
atomic_sub_fetch_64
(
&
pHashObj
->
size
,
1
);
atomic_sub_fetch_64
(
&
pHashObj
->
size
,
1
);
FREE_HASH_NODE
(
p
HashObj
,
p
Old
);
FREE_HASH_NODE
(
pOld
);
}
}
}
else
{
}
else
{
uError
(
"pNode:%p data:%p is not there!!!"
,
pNode
,
p
);
uError
(
"pNode:%p data:%p is not there!!!"
,
pNode
,
p
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录