https://git.reactos.org/?p=reactos.git;a=commitdiff;h=dfd6d7f32a8073e2746d9005c303059e943a81df

commit dfd6d7f32a8073e2746d9005c303059e943a81df
Author:     Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com>
AuthorDate: Tue Dec 19 18:34:08 2023 +0900
Commit:     Katayama Hirofumi MZ <katayama.hirofumi...@gmail.com>
CommitDate: Tue Dec 19 18:34:08 2023 +0900

    [MSCTFIME] Add TLS::PeekTLS and use it
    
    Refactoring. CORE-19360
---
 dll/ime/msctfime/msctfime.cpp | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/dll/ime/msctfime/msctfime.cpp b/dll/ime/msctfime/msctfime.cpp
index 79472cf2b88..8d1d17f364a 100644
--- a/dll/ime/msctfime/msctfime.cpp
+++ b/dll/ime/msctfime/msctfime.cpp
@@ -344,8 +344,17 @@ public:
         return InternalAllocateTLS();
     }
 
+    /**
+     * @implemented
+     */
+    static TLS* PeekTLS()
+    {
+        return (TLS*)::TlsGetValue(TLS::s_dwTlsIndex);
+    }
+
     static TLS* InternalAllocateTLS();
     static BOOL InternalDestroyTLS();
+
 };
 
 DWORD TLS::s_dwTlsIndex = (DWORD)-1;
@@ -355,7 +364,7 @@ DWORD TLS::s_dwTlsIndex = (DWORD)-1;
  */
 TLS* TLS::InternalAllocateTLS()
 {
-    TLS *pTLS = (TLS *)::TlsGetValue(TLS::s_dwTlsIndex);
+    TLS *pTLS = TLS::PeekTLS();
     if (pTLS)
         return pTLS;
 
@@ -382,10 +391,7 @@ TLS* TLS::InternalAllocateTLS()
  */
 BOOL TLS::InternalDestroyTLS()
 {
-    if (s_dwTlsIndex == (DWORD)-1)
-        return FALSE;
-
-    TLS *pTLS = (TLS *)::TlsGetValue(s_dwTlsIndex);
+    TLS *pTLS = TLS::PeekTLS();
     if (!pTLS)
         return FALSE;
 
@@ -460,7 +466,7 @@ STDMETHODIMP_(ULONG) CicBridge::Release()
  */
 CicBridge::~CicBridge()
 {
-    TLS *pTLS = (TLS *)TlsGetValue(TLS::s_dwTlsIndex);
+    TLS *pTLS = TLS::PeekTLS();
     if (!pTLS || !pTLS->m_pThreadMgr)
         return;
 
@@ -718,7 +724,7 @@ ImeDestroy(
 {
     TRACE("(%u)\n", uReserved);
 
-    TLS *pTLS = (TLS *)::TlsGetValue(TLS::s_dwTlsIndex);
+    TLS *pTLS = TLS::PeekTLS();
     if (pTLS)
         return FALSE;
 
@@ -1009,7 +1015,7 @@ CtfImeDestroyThreadMgr(VOID)
 {
     TRACE("()\n");
 
-    TLS *pTLS = (TLS *)::TlsGetValue(TLS::s_dwTlsIndex);
+    TLS *pTLS = TLS::PeekTLS();
     if (!pTLS)
         return E_OUTOFMEMORY;
 
@@ -1051,7 +1057,7 @@ CtfImeDestroyInputContext(
 {
     TRACE("(%p)\n", hIMC);
 
-    TLS *pTLS = (TLS*)::TlsGetValue(TLS::s_dwTlsIndex);
+    TLS *pTLS = TLS::PeekTLS();
     if (!pTLS || !pTLS->m_pBridge)
         return E_OUTOFMEMORY;
 

Reply via email to