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

commit e554a359f34e35e403cb0464032caf4258246771
Author: Alexander Shaposhnikov <sanch...@reactos.org>
AuthorDate: Sun Oct 22 00:52:49 2017 +0300

    [RAPPS] Make CConfigParser a temp object.
---
 base/applications/rapps/available.cpp       | 15 ++++++++++-----
 base/applications/rapps/include/available.h |  2 +-
 2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/base/applications/rapps/available.cpp 
b/base/applications/rapps/available.cpp
index 8ee80c93db..f7577f0afc 100644
--- a/base/applications/rapps/available.cpp
+++ b/base/applications/rapps/available.cpp
@@ -19,7 +19,7 @@
 
  // CAvailableApplicationInfo
 CAvailableApplicationInfo::CAvailableApplicationInfo(const ATL::CStringW& 
sFileNameParam)
-    : m_IsInstalled(FALSE), m_HasLanguageInfo(FALSE), 
m_HasInstalledVersion(FALSE), m_Parser(sFileNameParam)
+    : m_IsInstalled(FALSE), m_HasLanguageInfo(FALSE), 
m_HasInstalledVersion(FALSE)
 {
     m_LicenseType = LICENSE_NONE;
 
@@ -39,11 +39,14 @@ VOID CAvailableApplicationInfo::RefreshAppInfo()
 // Lazily load general info from the file
 VOID CAvailableApplicationInfo::RetrieveGeneralInfo()
 {
-    m_Category = m_Parser.GetInt(L"Category");
+    m_Parser = new CConfigParser(m_sFileName);
+
+    m_Category = m_Parser->GetInt(L"Category");
 
     if (!GetString(L"Name", m_szName)
         || !GetString(L"URLDownload", m_szUrlDownload))
     {
+        delete m_Parser;
         return;
     }
 
@@ -64,6 +67,8 @@ VOID CAvailableApplicationInfo::RetrieveGeneralInfo()
     {
         RetrieveInstalledVersion();
     }
+
+    delete m_Parser;
 }
 
 VOID CAvailableApplicationInfo::RetrieveInstalledStatus()
@@ -87,7 +92,7 @@ VOID CAvailableApplicationInfo::RetrieveLanguages()
     ATL::CStringW szBuffer;
 
     // TODO: Get multiline parameter
-    if (!m_Parser.GetString(L"Languages", szBuffer))
+    if (!m_Parser->GetString(L"Languages", szBuffer))
     {
         m_HasLanguageInfo = FALSE;
         return;
@@ -126,7 +131,7 @@ VOID CAvailableApplicationInfo::RetrieveLanguages()
 
 VOID CAvailableApplicationInfo::RetrieveLicenseType()
 {
-    INT IntBuffer = m_Parser.GetInt(L"LicenseType");
+    INT IntBuffer = m_Parser->GetInt(L"LicenseType");
 
     if (IsLicenseType(IntBuffer))
     {
@@ -195,7 +200,7 @@ VOID CAvailableApplicationInfo::SetLastWriteTime(FILETIME* 
ftTime)
 
 inline BOOL CAvailableApplicationInfo::GetString(LPCWSTR lpKeyName, 
ATL::CStringW& ReturnedString)
 {
-    if (!m_Parser.GetString(lpKeyName, ReturnedString))
+    if (!m_Parser->GetString(lpKeyName, ReturnedString))
     {
         ReturnedString.Empty();
         return FALSE;
diff --git a/base/applications/rapps/include/available.h 
b/base/applications/rapps/include/available.h
index e005250e81..ab95afc3b3 100644
--- a/base/applications/rapps/include/available.h
+++ b/base/applications/rapps/include/available.h
@@ -64,7 +64,7 @@ private:
     BOOL m_IsInstalled;
     BOOL m_HasLanguageInfo;
     BOOL m_HasInstalledVersion;
-    CConfigParser m_Parser;
+    CConfigParser* m_Parser;
 
     inline BOOL GetString(LPCWSTR lpKeyName, ATL::CStringW& ReturnedString);
 

Reply via email to