Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
797722a6
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
797722a6
编写于
2月 23, 2023
作者:
M
Minglei Jin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(tdb/coder): free key memory of stack btc's coder
上级
c16bbfad
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
12 deletion
+11
-12
source/libs/tdb/src/db/tdbBtree.c
source/libs/tdb/src/db/tdbBtree.c
+11
-12
未找到文件。
source/libs/tdb/src/db/tdbBtree.c
浏览文件 @
797722a6
...
@@ -264,7 +264,10 @@ int tdbBtreeUpsert(SBTree *pBt, const void *pKey, int nKey, const void *pData, i
...
@@ -264,7 +264,10 @@ int tdbBtreeUpsert(SBTree *pBt, const void *pKey, int nKey, const void *pData, i
// move the cursor
// move the cursor
ret
=
tdbBtcMoveTo
(
&
btc
,
pKey
,
nKey
,
&
c
);
ret
=
tdbBtcMoveTo
(
&
btc
,
pKey
,
nKey
,
&
c
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
ASSERT
(
0
);
tdbError
(
"tdb/btree-upsert: btc move to failed with ret: %d."
,
ret
);
if
(
TDB_CELLDECODER_FREE_KEY
(
&
btc
.
coder
))
{
tdbFree
(
btc
.
coder
.
pKey
);
}
tdbBtcClose
(
&
btc
);
tdbBtcClose
(
&
btc
);
return
-
1
;
return
-
1
;
}
}
...
@@ -280,11 +283,17 @@ int tdbBtreeUpsert(SBTree *pBt, const void *pKey, int nKey, const void *pData, i
...
@@ -280,11 +283,17 @@ int tdbBtreeUpsert(SBTree *pBt, const void *pKey, int nKey, const void *pData, i
ret
=
tdbBtcUpsert
(
&
btc
,
pKey
,
nKey
,
pData
,
nData
,
c
);
ret
=
tdbBtcUpsert
(
&
btc
,
pKey
,
nKey
,
pData
,
nData
,
c
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
ASSERT
(
0
);
if
(
TDB_CELLDECODER_FREE_KEY
(
&
btc
.
coder
))
{
tdbFree
(
btc
.
coder
.
pKey
);
}
tdbBtcClose
(
&
btc
);
tdbBtcClose
(
&
btc
);
tdbError
(
"tdb/btree-upsert: btc upsert failed with ret: %d."
,
ret
);
return
-
1
;
return
-
1
;
}
}
if
(
TDB_CELLDECODER_FREE_KEY
(
&
btc
.
coder
))
{
tdbFree
(
btc
.
coder
.
pKey
);
}
tdbBtcClose
(
&
btc
);
tdbBtcClose
(
&
btc
);
return
0
;
return
0
;
}
}
...
@@ -2188,10 +2197,6 @@ int tdbBtcMoveTo(SBTC *pBtc, const void *pKey, int kLen, int *pCRst) {
...
@@ -2188,10 +2197,6 @@ int tdbBtcMoveTo(SBTC *pBtc, const void *pKey, int kLen, int *pCRst) {
}
else
{
}
else
{
lidx
=
lidx
+
1
;
lidx
=
lidx
+
1
;
}
}
if
(
TDB_CELLDECODER_FREE_KEY
(
&
pBtc
->
coder
))
{
tdbFree
((
void
*
)
pTKey
);
}
// compare last cell
// compare last cell
if
(
lidx
<=
ridx
)
{
if
(
lidx
<=
ridx
)
{
pBtc
->
idx
=
ridx
;
pBtc
->
idx
=
ridx
;
...
@@ -2202,9 +2207,6 @@ int tdbBtcMoveTo(SBTC *pBtc, const void *pKey, int kLen, int *pCRst) {
...
@@ -2202,9 +2207,6 @@ int tdbBtcMoveTo(SBTC *pBtc, const void *pKey, int kLen, int *pCRst) {
}
else
{
}
else
{
ridx
=
ridx
-
1
;
ridx
=
ridx
-
1
;
}
}
if
(
TDB_CELLDECODER_FREE_KEY
(
&
pBtc
->
coder
))
{
tdbFree
((
void
*
)
pTKey
);
}
}
}
// binary search
// binary search
...
@@ -2215,9 +2217,6 @@ int tdbBtcMoveTo(SBTC *pBtc, const void *pKey, int kLen, int *pCRst) {
...
@@ -2215,9 +2217,6 @@ int tdbBtcMoveTo(SBTC *pBtc, const void *pKey, int kLen, int *pCRst) {
pBtc
->
idx
=
(
lidx
+
ridx
)
>>
1
;
pBtc
->
idx
=
(
lidx
+
ridx
)
>>
1
;
tdbBtcGet
(
pBtc
,
&
pTKey
,
&
tkLen
,
NULL
,
NULL
);
tdbBtcGet
(
pBtc
,
&
pTKey
,
&
tkLen
,
NULL
,
NULL
);
c
=
pBt
->
kcmpr
(
pKey
,
kLen
,
pTKey
,
tkLen
);
c
=
pBt
->
kcmpr
(
pKey
,
kLen
,
pTKey
,
tkLen
);
if
(
TDB_CELLDECODER_FREE_KEY
(
&
pBtc
->
coder
))
{
tdbFree
((
void
*
)
pTKey
);
}
if
(
c
<
0
)
{
if
(
c
<
0
)
{
// pKey < cd.pKey
// pKey < cd.pKey
ridx
=
pBtc
->
idx
-
1
;
ridx
=
pBtc
->
idx
-
1
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录