Fix appcore_base_flush_memory API 58/170458/1
authorHwankyu Jhun <h.jhun@samsung.com>
Tue, 20 Feb 2018 06:18:15 +0000 (15:18 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Tue, 20 Feb 2018 06:19:46 +0000 (15:19 +0900)
- Releases sqlite3 memory

Change-Id: Ibeb319caa02ed2e35dd20e201bf93556b500cc41
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/base/appcore_base.c

index a792d8f..cc311a9 100644 (file)
@@ -45,6 +45,7 @@
 #define RESOURCED_FREEZER_PATH "/Org/Tizen/Resourced/Freezer"
 #define RESOURCED_FREEZER_INTERFACE "org.tizen.resourced.freezer"
 #define RESOURCED_FREEZER_SIGNAL "FreezerState"
+#define SQLITE_FLUSH_MAX (1024 * 1024)
 
 typedef struct _appcore_base_context {
        appcore_base_ops ops;
@@ -1088,6 +1089,13 @@ EXPORT_API void appcore_base_fini(void)
 
 EXPORT_API int appcore_base_flush_memory(void)
 {
+       int (*sqlite3_free_heap_memory)(int);
+
+       sqlite3_free_heap_memory = dlsym(RTLD_DEFAULT,
+                       "sqlite3_release_memory");
+       if (sqlite3_free_heap_memory)
+               sqlite3_free_heap_memory(SQLITE_FLUSH_MAX);
+
        malloc_trim(0);
        return 0;
 }