Author: cwittich
Date: Fri Apr 17 12:37:08 2015
New Revision: 67224

URL: http://svn.reactos.org/svn/reactos?rev=67224&view=rev
Log:
[RAPPS]
free cached entries and some other improvements
patch by Ismael Ferreras Morezuelas aka swyter
CORE-9060

Modified:
    trunk/reactos/base/applications/rapps/CreateCabFile.sh
    trunk/reactos/base/applications/rapps/available.c
    trunk/reactos/base/applications/rapps/lang/es-ES.rc
    trunk/reactos/base/applications/rapps/misc.c
    trunk/reactos/base/applications/rapps/rapps.h
    trunk/reactos/base/applications/rapps/winmain.c

Modified: trunk/reactos/base/applications/rapps/CreateCabFile.sh
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/CreateCabFile.sh?rev=67224&r1=67223&r2=67224&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/CreateCabFile.sh      [iso-8859-1] 
(original)
+++ trunk/reactos/base/applications/rapps/CreateCabFile.sh      [iso-8859-1] 
Fri Apr 17 12:37:08 2015
@@ -2,8 +2,8 @@
 cd rapps
 mkdir utf16
 for i in $(find -type f); do
-  ../../../../output-MinGW-i386/host-tools/tools/utf16le.exe $i utf16/$i
+  ../../../host-tools/tools/utf16le $i utf16/$i
 done
 cd ..
-../../../output-MinGW-i386/host-tools/tools/cabman/cabman -M mszip -S 
rappmgr.cab rapps/utf16/*.txt
+../../host-tools/tools/cabman/cabman -M mszip -S rappmgr.cab rapps/utf16/*.txt
 rm -r rapps/uft16

Modified: trunk/reactos/base/applications/rapps/available.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/available.c?rev=67224&r1=67223&r2=67224&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/available.c   [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/available.c   [iso-8859-1] Fri Apr 17 
12:37:08 2015
@@ -246,7 +246,7 @@
 
 skip_if_cached:
 
-        if (Info->Category == -1)
+        if (Info->Category == FALSE)
             continue;
 
         if (EnumType != Info->Category && EnumType != ENUM_ALL_AVAILABLE)
@@ -277,4 +277,22 @@
     FindClose(hFind);
 
     return TRUE;
+}
+
+VOID FreeCachedAvailableEntries(VOID)
+{
+     PAPPLICATION_INFO Info;
+ 
+    /* loop and deallocate all the cached app infos in the list */
+    for (pCachedEntry = CachedEntriesHead.Flink; pCachedEntry != 
&CachedEntriesHead;)
+    {
+         Info = CONTAINING_RECORD(pCachedEntry, APPLICATION_INFO, List);
+ 
+        /* grab a reference to the next linked entry before getting rid of the 
current one */
+        pCachedEntry = pCachedEntry->Flink;
+ 
+        /* flush them down the toilet :D */
+        RemoveEntryList(&Info->List);
+        HeapFree(GetProcessHeap(), 0, Info);
+    }
 }

Modified: trunk/reactos/base/applications/rapps/lang/es-ES.rc
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/lang/es-ES.rc?rev=67224&r1=67223&r2=67224&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/lang/es-ES.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/lang/es-ES.rc [iso-8859-1] Fri Apr 17 
12:37:08 2015
@@ -194,10 +194,10 @@
     IDS_AVAILABLEFORINST "Disponible para su instalación"
     IDS_UPDATES "Actualizaciones"
     IDS_APPLICATIONS "Aplicaciones"
-    IDS_CHOOSE_FOLDER_TEXT "Seleccione una carpeta donde se descargarán los 
programas:"
-    IDS_CHOOSE_FOLDER_ERROR "¡La carpeta especificada no existe!"
+    IDS_CHOOSE_FOLDER_TEXT "Seleccione una carpeta de donde se descargarán 
los programas:"
+    IDS_CHOOSE_FOLDER_ERROR "La carpeta especificada no existe."
     IDS_APP_REG_REMOVE "¿Está seguro de querer borrar del Registro los datos 
de instalación del programa?"
     IDS_INFORMATION "Información"
-    IDS_UNABLE_TO_DOWNLOAD "Unable to download the package! Address not found!"
-    IDS_UNABLE_TO_REMOVE "¡No se pudieron borrar del Registro los datos de 
instalación del programa!"
-END
+    IDS_UNABLE_TO_DOWNLOAD "No se pudo descargar el paquete. No se ha 
encontrado la dirección de Internet."
+    IDS_UNABLE_TO_REMOVE "No se pudieron borrar del Registro los datos de 
instalación del programa."
+END

Modified: trunk/reactos/base/applications/rapps/misc.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/misc.c?rev=67224&r1=67223&r2=67224&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/misc.c        [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/misc.c        [iso-8859-1] Fri Apr 17 
12:37:08 2015
@@ -414,11 +414,7 @@
 UINT ParserGetString(LPCWSTR lpKeyName, LPWSTR lpReturnedString, UINT nSize, 
LPCWSTR lpFileName)
 {
     PWSTR lpFullFileName = GetINIFullPath(lpFileName);
-    LPSTR  lpRequiredBuf = HeapAlloc(GetProcessHeap(), 0, nSize);
     DWORD dwResult;
-
-    if (!lpRequiredBuf)
-        return FALSE;
 
     /* we don't have cached section strings for the current system language, 
create them */
     if(bCachedSectionStatus == FALSE)
@@ -457,7 +453,7 @@
                                         lpFullFileName);
 
     if (dwResult != 0)
-        goto skip;
+        return TRUE;
 
     /* 2nd - if they weren't present check for neutral sub-langs/ generic 
translations (e.g. "Section.0a") */
     dwResult = GetPrivateProfileStringW(szCachedINISectionLocaleNeutral,
@@ -468,7 +464,7 @@
                                         lpFullFileName);
 
     if (dwResult != 0)
-        goto skip;
+        return TRUE;
 
     /* 3rd - if they weren't present fallback to standard english strings 
(just "Section") */
     dwResult = GetPrivateProfileStringW(L"Section",
@@ -478,18 +474,7 @@
                                         nSize,
                                         lpFullFileName);
 
-    if (dwResult == 0)
-    {
-        HeapFree(GetProcessHeap(), 0, lpRequiredBuf);
-        return FALSE;
-    }
-
-skip:
-
-    /* get rid of the dynamically allocated ANSI buffer */
-    HeapFree(GetProcessHeap(), 0, lpRequiredBuf);
-
-    return TRUE;
+    return (dwResult != 0 ? TRUE : FALSE);
 }
 
 UINT ParserGetInt(LPCWSTR lpKeyName, LPCWSTR lpFileName)

Modified: trunk/reactos/base/applications/rapps/rapps.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/rapps.h?rev=67224&r1=67223&r2=67224&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/rapps.h       [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/rapps.h       [iso-8859-1] Fri Apr 17 
12:37:08 2015
@@ -125,6 +125,7 @@
 BOOL EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc);
 BOOL ShowAvailableAppInfo(INT Index);
 BOOL UpdateAppsDB(VOID);
+VOID FreeCachedAvailableEntries(VOID);
 
 /* installdlg.c */
 BOOL InstallApplication(INT Index);

Modified: trunk/reactos/base/applications/rapps/winmain.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/winmain.c?rev=67224&r1=67223&r2=67224&view=diff
==============================================================================
--- trunk/reactos/base/applications/rapps/winmain.c     [iso-8859-1] (original)
+++ trunk/reactos/base/applications/rapps/winmain.c     [iso-8859-1] Fri Apr 17 
12:37:08 2015
@@ -147,21 +147,6 @@
     return TRUE;
 }
 
-VOID
-FreeAvailableAppList(VOID)
-{
-    INT Count = ListView_GetItemCount(hListView) - 1;
-    PVOID Info;
-
-    while (Count >= 0)
-    {
-        Info = ListViewGetlParam(Count);
-        if (Info)
-            HeapFree(GetProcessHeap(), 0, Info);
-        Count--;
-    }
-}
-
 BOOL
 CALLBACK
 EnumAvailableAppProc(PAPPLICATION_INFO Info)
@@ -202,9 +187,6 @@
 
     if (IS_INSTALLED_ENUM(SelectedEnumType))
         FreeInstalledAppList();
-    /* FIXME: reenable when caching is fixed */
-    /*    else if (IS_AVAILABLE_ENUM(SelectedEnumType))
-            FreeAvailableAppList(); */
 
     (VOID) ListView_DeleteAllItems(hListView);
 
@@ -887,11 +869,13 @@
 
             FreeLogs();
 
-            if (IS_AVAILABLE_ENUM(SelectedEnumType))
-                FreeAvailableAppList();
+            FreeCachedAvailableEntries();
+
             if (IS_INSTALLED_ENUM(SelectedEnumType))
                 FreeInstalledAppList();
-            if (hImageTreeView) ImageList_Destroy(hImageTreeView);
+
+            if (hImageTreeView)
+                ImageList_Destroy(hImageTreeView);
 
             PostQuitMessage(0);
             return 0;


Reply via email to