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/Cre... ============================================================================== --- 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/ava... ============================================================================== --- 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/lan... ============================================================================== --- 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/mis... ============================================================================== --- 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/rap... ============================================================================== --- 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/win... ============================================================================== --- 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;