Skip to content

Commit cc0a1f4

Browse files
committed
fix: OcrManager析构函数中的cleanup可能导致的双重释放问题,直接在析构中清除
1 parent 9d569ca commit cc0a1f4

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

ocrmanager.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,15 @@ OcrManager::OcrManager()
3939

4040
OcrManager::~OcrManager()
4141
{
42-
cleanup();
42+
#ifdef USE_TESSERACT
43+
if (m_tesseractApi != nullptr)
44+
{
45+
m_tesseractApi->End();
46+
delete m_tesseractApi;
47+
m_tesseractApi = nullptr;
48+
m_tesseractInitialized = false;
49+
}
50+
#endif
4351
}
4452

4553
OcrManager *OcrManager::instance()
@@ -224,16 +232,6 @@ void OcrManager::cleanup()
224232

225233
if (m_instance != nullptr)
226234
{
227-
#ifdef USE_TESSERACT
228-
if (m_instance->m_tesseractApi != nullptr)
229-
{
230-
m_instance->m_tesseractApi->End();
231-
delete m_instance->m_tesseractApi;
232-
m_instance->m_tesseractApi = nullptr;
233-
m_instance->m_tesseractInitialized = false;
234-
}
235-
#endif
236-
237235
delete m_instance;
238236
m_instance = nullptr;
239237
}

0 commit comments

Comments
 (0)