Skip to content

Commit d047593

Browse files
committed
修正tdx释放内存崩溃的bug
1 parent 770e1dc commit d047593

4 files changed

Lines changed: 16 additions & 0 deletions

File tree

apis/Tdx_Trade/SingleUser.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ int CSingleUser::OnRespone_ReqQryOrder(CTdxApi* pApi, RequestRespone_STRUCT* pRe
313313
OutputQueryTime(m_QueryTradeTime, _queryTime, "NextQueryTrade_QueryOrder");
314314
}
315315

316+
DeleteStructs((void***)&ppRS);
317+
316318
return 0;
317319
}
318320

@@ -533,6 +535,8 @@ int CSingleUser::OnRespone_ReqQryTrade(CTdxApi* pApi, RequestRespone_STRUCT* pRe
533535
m_OldTradeList = m_NewTradeList;
534536
m_NewTradeList.clear();
535537

538+
DeleteStructs((void***)&ppRS);
539+
536540
return 0;
537541
}
538542

@@ -643,6 +647,8 @@ int CSingleUser::OnRespone_ReqUserLogin(CTdxApi* pApi, RequestRespone_STRUCT* pR
643647
m_msgQueue->Input_NoCopy(ResponeType::ResponeType_OnConnectionStatus, m_msgQueue, m_pClass, ConnectionStatus::ConnectionStatus_Done, 0, nullptr, 0, nullptr, 0, nullptr, 0);
644648
}
645649

650+
DeleteStructs((void***)&ppRS);
651+
646652
return 0;
647653
}
648654

@@ -678,6 +684,8 @@ int CSingleUser::OnRespone_ReqQryInvestor(CTdxApi* pApi, RequestRespone_STRUCT*
678684
m_msgQueue->Input_NoCopy(ResponeType::ResponeType_OnConnectionStatus, m_msgQueue, m_pClass, ConnectionStatus::ConnectionStatus_Done, 0, nullptr, 0, nullptr, 0, nullptr, 0);
679685
}
680686

687+
DeleteStructs((void***)&ppRS);
688+
681689
return 0;
682690
}
683691

@@ -720,6 +728,8 @@ int CSingleUser::OnRespone_ReqQryTradingAccount(CTdxApi* pApi, RequestRespone_ST
720728
m_msgQueue->Input_NoCopy(ResponeType::ResponeType_OnRspQryTradingAccount, m_msgQueue, m_pClass, i == count - 1, 0, pField, sizeof(AccountField), nullptr, 0, nullptr, 0);
721729
}
722730

731+
DeleteStructs((void***)&ppRS);
732+
723733
return 0;
724734
}
725735

@@ -750,6 +760,8 @@ int CSingleUser::OnRespone_ReqQryInvestorPosition(CTdxApi* pApi, RequestRespone_
750760
m_msgQueue->Input_NoCopy(ResponeType::ResponeType_OnRspQryInvestorPosition, m_msgQueue, m_pClass, i == count - 1, 0, pField, sizeof(PositionField), nullptr, 0, nullptr, 0);
751761
}
752762

763+
DeleteStructs((void***)&ppRS);
764+
753765
return 0;
754766
}
755767

include/Tdx/tdx_function.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,9 @@ void CharTable2GDLB(FieldInfo_STRUCT** ppFieldInfos, char** ppTable, GDLB_STRUCT
428428

429429
void DeleteStructs(void*** pppStructs)
430430
{
431+
if (pppStructs == nullptr)
432+
return;
433+
431434
if (*pppStructs == nullptr)
432435
return;
433436

@@ -436,6 +439,7 @@ void DeleteStructs(void*** pppStructs)
436439
int i = 0;
437440
while (ppStructs[i] != 0)
438441
{
442+
//delete ppStructs[i];
439443
delete[] ppStructs[i];
440444
ppStructs[i] = nullptr;
441445

include/Tdx/win32/TdxApi.dll

0 Bytes
Binary file not shown.

include/Tdx/win32/TdxApi.lib

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)