summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMinje Ahn <minje.ahn@samsung.com>2017-07-10 11:13:24 +0900
committerMinje Ahn <minje.ahn@samsung.com>2017-07-10 11:18:21 +0900
commit37e9042aa25253fe91f67d0ed2e7cb7cfda25b88 (patch)
tree8620745e63c873532fd421f9125ceb55e82befd1 /src
parent19fcd8fbf7baff560bc70737d42a5c3ea26887bb (diff)
downloadlibmedia-thumbnail-37e9042aa25253fe91f67d0ed2e7cb7cfda25b88.tar.gz
libmedia-thumbnail-37e9042aa25253fe91f67d0ed2e7cb7cfda25b88.tar.bz2
libmedia-thumbnail-37e9042aa25253fe91f67d0ed2e7cb7cfda25b88.zip
Reduce error checker
1. Reinforce query 2. Merge function Change-Id: Ia6c560056f7c4daeaf2dd9107308b91876e19a93 Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/include/util/media-thumb-db.h2
-rwxr-xr-xsrc/util/media-thumb-db.c83
2 files changed, 23 insertions, 62 deletions
diff --git a/src/include/util/media-thumb-db.h b/src/include/util/media-thumb-db.h
index a4cfc52..a6eedf9 100755
--- a/src/include/util/media-thumb-db.h
+++ b/src/include/util/media-thumb-db.h
@@ -29,7 +29,7 @@
#define SQLITE3_FINALIZE(x) {if (x != NULL) sqlite3_finalize(x); }
#define SQLITE3_SAFE_FREE(x) {if (x != NULL) {sqlite3_free(x); x = NULL; } }
-#define SELECT_THUMB_BY_PATH "SELECT thumbnail_path, width, height FROM media WHERE path='%q';"
+#define SELECT_THUMB_BY_PATH "SELECT thumbnail_path, width, height FROM media WHERE path='%q' AND thumbnail_path IS NOT NULL;"
#define UPDATE_THUMB_BY_PATH "UPDATE media SET thumbnail_path = '%q' WHERE path='%q';"
#define UPDATE_THUMB_WH_BY_PATH "UPDATE media SET thumbnail_path = '%q', width=%d,height=%d WHERE path='%q';"
diff --git a/src/util/media-thumb-db.c b/src/util/media-thumb-db.c
index 6f20e12..eab4ef1 100755
--- a/src/util/media-thumb-db.c
+++ b/src/util/media-thumb-db.c
@@ -34,55 +34,6 @@ sqlite3 *_media_thumb_db_get_handle()
return db_handle;
}
-int _media_thumb_get_thumb_path_wh_from_db(sqlite3 *handle,
- const char *origin_path,
- char *thumb_path,
- int max_length,
- int *width,
- int *height)
-{
-
- int err = MS_MEDIA_ERR_NONE;
- char *query_string = NULL;
- sqlite3_stmt *stmt = NULL;
-
- thumb_retvm_if(handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL");
- thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path");
-
- query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path);
- thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed");
-
- thumb_dbg_slog("Query: %s", query_string);
-
- err = sqlite3_prepare_v2(handle, query_string, strlen(query_string), &stmt, NULL);
- SQLITE3_SAFE_FREE(query_string);
- if (SQLITE_OK != err) {
- thumb_err("prepare error [%s]", sqlite3_errmsg(handle));
- return MS_MEDIA_ERR_DB_INTERNAL;
- }
-
- err = sqlite3_step(stmt);
- if (err != SQLITE_ROW) {
- thumb_err("end of row [%s]", sqlite3_errmsg(handle));
- SQLITE3_FINALIZE(stmt);
- return MS_MEDIA_ERR_DB_INTERNAL;
- }
-
- if (sqlite3_column_text(stmt, 0)) {
- strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length);
- *width = sqlite3_column_int(stmt, 1);
- *height = sqlite3_column_int(stmt, 2);
- } else {
- thumb_path[0] = '\0';
- *width = 0;
- *height = 0;
- }
-
- SQLITE3_FINALIZE(stmt);
-
- return MS_MEDIA_ERR_NONE;
-}
-
int _media_thumb_db_connect(uid_t uid)
{
int err = MS_MEDIA_ERR_NONE;
@@ -113,24 +64,34 @@ int _media_thumb_db_disconnect()
int _media_thumb_get_thumb_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *width, int *height)
{
int err = MS_MEDIA_ERR_NONE;
- int orig_w = 0;
- int orig_h = 0;
+ char *query_string = NULL;
+ sqlite3_stmt *stmt = NULL;
+
+ thumb_retvm_if(db_handle == NULL, MS_MEDIA_ERR_INVALID_PARAMETER, "DB handle is NULL");
+ thumb_retvm_if(!STRING_VALID(origin_path), MS_MEDIA_ERR_INVALID_PARAMETER, "Invalid origin_path");
- err = _media_thumb_get_thumb_path_wh_from_db(db_handle, origin_path, thumb_path, max_length, &orig_w, &orig_h);
- thumb_retvm_if(err != MS_MEDIA_ERR_NONE, err, "Original path doesn't exist in DB");
- thumb_retvm_if(!STRING_VALID(thumb_path), MS_MEDIA_ERR_INTERNAL, "[No-error] thumb path doesn't exist in DB");
+ query_string = sqlite3_mprintf(SELECT_THUMB_BY_PATH, origin_path);
+ thumb_retvm_if(!STRING_VALID(query_string), MS_MEDIA_ERR_OUT_OF_MEMORY, "Memory allocation is failed");
+ thumb_dbg_slog("Query: %s", query_string);
- thumb_dbg_slog("Thumb path in DB is %s", thumb_path);
+ err = sqlite3_prepare_v2(db_handle, query_string, strlen(query_string), &stmt, NULL);
+ SQLITE3_SAFE_FREE(query_string);
+ thumb_retvm_if(SQLITE_OK != err, MS_MEDIA_ERR_DB_INTERNAL, "prepare error [%s]", sqlite3_errmsg(db_handle));
- if (!g_file_test(thumb_path, G_FILE_TEST_EXISTS)) {
- thumb_warn("thumb path doesn't exist in file system");
- return MS_MEDIA_ERR_INTERNAL;
+ if (sqlite3_step(stmt) == SQLITE_ROW) {
+ strncpy(thumb_path, (const char *)sqlite3_column_text(stmt, 0), max_length);
+ *width = sqlite3_column_int(stmt, 1);
+ *height = sqlite3_column_int(stmt, 2);
} else {
- thumb_dbg("This thumb path already exist");
- *width = orig_w;
- *height = orig_h;
+ thumb_err("end of row [%s]", sqlite3_errmsg(db_handle));
+ SQLITE3_FINALIZE(stmt);
+ return MS_MEDIA_ERR_DB_INTERNAL;
}
+ SQLITE3_FINALIZE(stmt);
+
+ thumb_retvm_if(!g_file_test(thumb_path, G_FILE_TEST_EXISTS), MS_MEDIA_ERR_INTERNAL, "thumb path doesn't exist in file system");
+
return MS_MEDIA_ERR_NONE;
}